diff options
Diffstat (limited to 'vendor')
227 files changed, 2087 insertions, 1150 deletions
diff --git a/vendor/autoload.php b/vendor/autoload.php index 8b4926c3d..063a1b7e1 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -2,6 +2,6 @@ // autoload.php @generated by Composer -require_once __DIR__ . '/composer/autoload_real.php'; +require_once __DIR__ . '/composer' . '/autoload_real.php'; return ComposerAutoloaderInit7b34d7e50a62201ec5d5e526a5b8b35d::getLoader(); diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index 2c72175e7..795376e87 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -53,9 +53,8 @@ class ClassLoader private $useIncludePath = false; private $classMap = array(); + private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; public function getPrefixes() { @@ -273,26 +272,6 @@ class ClassLoader } /** - * 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 @@ -334,34 +313,29 @@ class ClassLoader */ public function findFile($class) { + // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731 + if ('\\' == $class[0]) { + $class = substr($class, 1); + } + // class map lookup if (isset($this->classMap[$class])) { return $this->classMap[$class]; } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + if ($this->classMapAuthoritative) { 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')) { + if ($file === null && defined('HHVM_VERSION')) { $file = $this->findFileWithExtension($class, '.hh'); } - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { + if ($file === null) { // Remember that this class does not exist. - $this->missingClasses[$class] = true; + return $this->classMap[$class] = false; } return $file; @@ -429,8 +403,6 @@ class ClassLoader if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { return $file; } - - return false; } } diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE index f27399a04..ecd380626 100644 --- a/vendor/composer/LICENSE +++ b/vendor/composer/LICENSE @@ -1,21 +1,430 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Composer +Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be> +Source: https://github.com/composer/composer 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: +Files: res/cacert.pem +Copyright: 2015, Mozilla Foundation +License: MPL-2.0 -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +Files: src/Composer/Util/RemoteFilesystem.php + src/Composer/Util/TlsHelper.php +Copyright: 2016, Nils Adermann <naderman@naderman.de> + 2016, Jordi Boggiano <j.boggiano@seld.be> + 2013, Evan Coury <me@evancoury.com> +License: Expat and BSD-2-Clause -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. +License: BSD-2-Clause + 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. + . + 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. +License: Expat + 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. + +License: MPL-2.0 + 1. Definitions + -------------- + . + 1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + . + 1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + . + 1.3. "Contribution" + means Covered Software of a particular Contributor. + . + 1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + . + 1.5. "Incompatible With Secondary Licenses" + means + . + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + . + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + . + 1.6. "Executable Form" + means any form of the work other than Source Code Form. + . + 1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + . + 1.8. "License" + means this document. + . + 1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + . + 1.10. "Modifications" + means any of the following: + . + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + . + (b) any new file in Source Code Form that contains any Covered + Software. + . + 1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + . + 1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + . + 1.13. "Source Code Form" + means the form of the work preferred for making modifications. + . + 1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + . + 2. License Grants and Conditions + -------------------------------- + . + 2.1. Grants + . + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + . + (a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + . + (b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + . + 2.2. Effective Date + . + The licenses granted in Section 2.1 with respect to any Contribution + become effective for each Contribution on the date the Contributor first + distributes such Contribution. + . + 2.3. Limitations on Grant Scope + . + The licenses granted in this Section 2 are the only rights granted under + this License. No additional rights or licenses will be implied from the + distribution or licensing of Covered Software under this License. + Notwithstanding Section 2.1(b) above, no patent license is granted by a + Contributor: + . + (a) for any code that a Contributor has removed from Covered Software; + or + . + (b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + . + (c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + . + This License does not grant any rights in the trademarks, service marks, + or logos of any Contributor (except as may be necessary to comply with + the notice requirements in Section 3.4). + . + 2.4. Subsequent Licenses + . + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this + License (see Section 10.2) or under the terms of a Secondary License (if + permitted under the terms of Section 3.3). + . + 2.5. Representation + . + Each Contributor represents that the Contributor believes its + Contributions are its original creation(s) or it has sufficient rights + to grant the rights to its Contributions conveyed by this License. + . + 2.6. Fair Use + . + This License is not intended to limit any rights You have under + applicable copyright doctrines of fair use, fair dealing, or other + equivalents. + . + 2.7. Conditions + . + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted + in Section 2.1. + . + 3. Responsibilities + ------------------- + . + 3.1. Distribution of Source Form + . + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under + the terms of this License. You must inform recipients that the Source + Code Form of the Covered Software is governed by the terms of this + License, and how they can obtain a copy of this License. You may not + attempt to alter or restrict the recipients' rights in the Source Code + Form. + . + 3.2. Distribution of Executable Form + . + If You distribute Covered Software in Executable Form then: + . + (a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + . + (b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + . + 3.3. Distribution of a Larger Work + . + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for + the Covered Software. If the Larger Work is a combination of Covered + Software with a work governed by one or more Secondary Licenses, and the + Covered Software is not Incompatible With Secondary Licenses, this + License permits You to additionally distribute such Covered Software + under the terms of such Secondary License(s), so that the recipient of + the Larger Work may, at their option, further distribute the Covered + Software under the terms of either this License or such Secondary + License(s). + . + 3.4. Notices + . + You may not remove or alter the substance of any license notices + (including copyright notices, patent notices, disclaimers of warranty, + or limitations of liability) contained within the Source Code Form of + the Covered Software, except that You may alter any license notices to + the extent required to remedy known factual inaccuracies. + . + 3.5. Application of Additional Terms + . + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on + behalf of any Contributor. You must make it absolutely clear that any + such warranty, support, indemnity, or liability obligation is offered by + You alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + . + 4. Inability to Comply Due to Statute or Regulation + --------------------------------------------------- + . + If it is impossible for You to comply with any of the terms of this + License with respect to some or all of the Covered Software due to + statute, judicial order, or regulation then You must: (a) comply with + the terms of this License to the maximum extent possible; and (b) + describe the limitations and the code they affect. Such description must + be placed in a text file included with all distributions of the Covered + Software under this License. Except to the extent prohibited by statute + or regulation, such description must be sufficiently detailed for a + recipient of ordinary skill to be able to understand it. + . + 5. Termination + -------------- + . + 5.1. The rights granted under this License will terminate automatically + if You fail to comply with any of its terms. However, if You become + compliant, then the rights granted under this License from a particular + Contributor are reinstated (a) provisionally, unless and until such + Contributor explicitly and finally terminates Your grants, and (b) on an + ongoing basis, if such Contributor fails to notify You of the + non-compliance by some reasonable means prior to 60 days after You have + come back into compliance. Moreover, Your grants from a particular + Contributor are reinstated on an ongoing basis if such Contributor + notifies You of the non-compliance by some reasonable means, this is the + first time You have received notice of non-compliance with this License + from such Contributor, and You become compliant prior to 30 days after + Your receipt of the notice. + . + 5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, + counter-claims, and cross-claims) alleging that a Contributor Version + directly or indirectly infringes any patent, then the rights granted to + You by any and all Contributors for the Covered Software under Section + 2.1 of this License shall terminate. + . + 5.3. In the event of termination under Sections 5.1 or 5.2 above, all + end user license agreements (excluding distributors and resellers) which + have been validly granted by You or Your distributors under this License + prior to termination shall survive termination. + . + ************************************************************************ + * * + * 6. Disclaimer of Warranty * + * ------------------------- * + * * + * Covered Software is provided under this License on an "as is" * + * basis, without warranty of any kind, either expressed, implied, or * + * statutory, including, without limitation, warranties that the * + * Covered Software is free of defects, merchantable, fit for a * + * particular purpose or non-infringing. The entire risk as to the * + * quality and performance of the Covered Software is with You. * + * Should any Covered Software prove defective in any respect, You * + * (not any Contributor) assume the cost of any necessary servicing, * + * repair, or correction. This disclaimer of warranty constitutes an * + * essential part of this License. No use of any Covered Software is * + * authorized under this License except under this disclaimer. * + * * + ************************************************************************ + . + ************************************************************************ + * * + * 7. Limitation of Liability * + * -------------------------- * + * * + * Under no circumstances and under no legal theory, whether tort * + * (including negligence), contract, or otherwise, shall any * + * Contributor, or anyone who distributes Covered Software as * + * permitted above, be liable to You for any direct, indirect, * + * special, incidental, or consequential damages of any character * + * including, without limitation, damages for lost profits, loss of * + * goodwill, work stoppage, computer failure or malfunction, or any * + * and all other commercial damages or losses, even if such party * + * shall have been informed of the possibility of such damages. This * + * limitation of liability shall not apply to liability for death or * + * personal injury resulting from such party's negligence to the * + * extent applicable law prohibits such limitation. Some * + * jurisdictions do not allow the exclusion or limitation of * + * incidental or consequential damages, so this exclusion and * + * limitation may not apply to You. * + * * + ************************************************************************ + . + 8. Litigation + ------------- + . + Any litigation relating to this License may be brought only in the + courts of a jurisdiction where the defendant maintains its principal + place of business and such litigation shall be governed by laws of that + jurisdiction, without reference to its conflict-of-law provisions. + Nothing in this Section shall prevent a party's ability to bring + cross-claims or counter-claims. + . + 9. Miscellaneous + ---------------- + . + This License represents the complete agreement concerning the subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. Any law or regulation which provides + that the language of a contract shall be construed against the drafter + shall not be used to construe this License against a Contributor. + . + 10. Versions of the License + --------------------------- + . + 10.1. New Versions + . + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + . + 10.2. Effect of New Versions + . + You may distribute the Covered Software under the terms of the version + of the License under which You originally received the Covered Software, + or under the terms of any subsequent version published by the license + steward. + . + 10.3. Modified Versions + . + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a + modified version of this License if you rename the license and remove + any references to the name of the license steward (except to note that + such modified license differs from this License). + . + 10.4. Distributing Source Code Form that is Incompatible With Secondary + Licenses + . + If You choose to distribute Source Code Form that is Incompatible With + Secondary Licenses under the terms of this version of the License, the + notice described in Exhibit B of this License must be attached. + . + Exhibit A - Source Code Form License Notice + ------------------------------------------- + . + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + . + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to look + for such a notice. + . + You may add additional accurate notices of copyright ownership. + . + Exhibit B - "Incompatible With Secondary Licenses" Notice + --------------------------------------------------------- + . + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index bcae78e29..6200547d3 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -23,35 +23,24 @@ class ComposerAutoloaderInit7b34d7e50a62201ec5d5e526a5b8b35d self::$loader = $loader = new \Composer\Autoload\ClassLoader(); spl_autoload_unregister(array('ComposerAutoloaderInit7b34d7e50a62201ec5d5e526a5b8b35d', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 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\ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } + $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); - } + $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); - } + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); } $loader->register(true); - if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$files; - } else { - $includeFiles = require __DIR__ . '/autoload_files.php'; - } + $includeFiles = require __DIR__ . '/autoload_files.php'; foreach ($includeFiles as $fileIdentifier => $file) { composerRequire7b34d7e50a62201ec5d5e526a5b8b35d($fileIdentifier, $file); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 3a70e56c8..a3975f731 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1,157 +1,5 @@ [ { - "name": "sabre/uri", - "version": "1.1.0", - "version_normalized": "1.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/fruux/sabre-uri.git", - "reference": "9012116434d84ef6e5e37a89dfdbfbe2204a8704" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fruux/sabre-uri/zipball/9012116434d84ef6e5e37a89dfdbfbe2204a8704", - "reference": "9012116434d84ef6e5e37a89dfdbfbe2204a8704", - "shasum": "" - }, - "require": { - "php": ">=5.4.7" - }, - "require-dev": { - "phpunit/phpunit": "*", - "sabre/cs": "~0.0.1" - }, - "time": "2016-03-08T02:29:27+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "lib/functions.php" - ], - "psr-4": { - "Sabre\\Uri\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Evert Pot", - "email": "me@evertpot.com", - "homepage": "http://evertpot.com/", - "role": "Developer" - } - ], - "description": "Functions for making sense out of URIs.", - "homepage": "http://sabre.io/uri/", - "keywords": [ - "rfc3986", - "uri", - "url" - ] - }, - { - "name": "sabre/vobject", - "version": "4.1.1", - "version_normalized": "4.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/fruux/sabre-vobject.git", - "reference": "a3a59b06947f122af2d45d52b72172cdc1efd68f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fruux/sabre-vobject/zipball/a3a59b06947f122af2d45d52b72172cdc1efd68f", - "reference": "a3a59b06947f122af2d45d52b72172cdc1efd68f", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.5", - "sabre/xml": "~1.1" - }, - "require-dev": { - "phpunit/phpunit": "*", - "sabre/cs": "~0.0.3" - }, - "suggest": { - "hoa/bench": "If you would like to run the benchmark scripts" - }, - "time": "2016-07-15T19:52:17+00:00", - "bin": [ - "bin/vobject", - "bin/generate_vcards" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Sabre\\VObject\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Evert Pot", - "email": "me@evertpot.com", - "homepage": "http://evertpot.com/", - "role": "Developer" - }, - { - "name": "Dominik Tobschall", - "email": "dominik@fruux.com", - "homepage": "http://tobschall.de/", - "role": "Developer" - }, - { - "name": "Ivan Enderlin", - "email": "ivan.enderlin@hoa-project.net", - "homepage": "http://mnt.io/", - "role": "Developer" - } - ], - "description": "The VObject library for PHP allows you to easily parse and manipulate iCalendar and vCard objects", - "homepage": "http://sabre.io/vobject/", - "keywords": [ - "availability", - "freebusy", - "iCalendar", - "ical", - "ics", - "jCal", - "jCard", - "recurrence", - "rfc2425", - "rfc2426", - "rfc2739", - "rfc4770", - "rfc5545", - "rfc5546", - "rfc6321", - "rfc6350", - "rfc6351", - "rfc6474", - "rfc6638", - "rfc6715", - "rfc6868", - "vCalendar", - "vCard", - "vcf", - "xCal", - "xCard" - ] - }, - { "name": "sabre/event", "version": "3.0.0", "version_normalized": "3.0.0.0", @@ -173,7 +21,7 @@ "phpunit/phpunit": "*", "sabre/cs": "~0.0.4" }, - "time": "2015-11-05T20:14:39+00:00", + "time": "2015-11-05 20:14:39", "type": "library", "installation-source": "dist", "autoload": { @@ -211,148 +59,6 @@ ] }, { - "name": "sabre/http", - "version": "4.2.1", - "version_normalized": "4.2.1.0", - "source": { - "type": "git", - "url": "https://github.com/fruux/sabre-http.git", - "reference": "2e93bc8321524c67be4ca5b8415daebd4c8bf85e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fruux/sabre-http/zipball/2e93bc8321524c67be4ca5b8415daebd4c8bf85e", - "reference": "2e93bc8321524c67be4ca5b8415daebd4c8bf85e", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.4", - "sabre/event": ">=1.0.0,<4.0.0", - "sabre/uri": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.3", - "sabre/cs": "~0.0.1" - }, - "suggest": { - "ext-curl": " to make http requests with the Client class" - }, - "time": "2016-01-06T23:00:08+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "lib/functions.php" - ], - "psr-4": { - "Sabre\\HTTP\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Evert Pot", - "email": "me@evertpot.com", - "homepage": "http://evertpot.com/", - "role": "Developer" - } - ], - "description": "The sabre/http library provides utilities for dealing with http requests and responses. ", - "homepage": "https://github.com/fruux/sabre-http", - "keywords": [ - "http" - ] - }, - { - "name": "sabre/dav", - "version": "3.2.0", - "version_normalized": "3.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/fruux/sabre-dav.git", - "reference": "5b9737cc2f0182e368d14c80df7f6b2d77dc1457" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fruux/sabre-dav/zipball/5b9737cc2f0182e368d14c80df7f6b2d77dc1457", - "reference": "5b9737cc2f0182e368d14c80df7f6b2d77dc1457", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-date": "*", - "ext-dom": "*", - "ext-iconv": "*", - "ext-mbstring": "*", - "ext-pcre": "*", - "ext-simplexml": "*", - "ext-spl": "*", - "lib-libxml": ">=2.7.0", - "php": ">=5.5.0", - "psr/log": "^1.0", - "sabre/event": ">=2.0.0, <4.0.0", - "sabre/http": "^4.2.1", - "sabre/uri": "^1.0.1", - "sabre/vobject": "^4.1.0", - "sabre/xml": "^1.4.0" - }, - "require-dev": { - "evert/phpdoc-md": "~0.1.0", - "monolog/monolog": "^1.18", - "phpunit/phpunit": "> 4.8, <=6.0.0", - "sabre/cs": "~0.0.5" - }, - "suggest": { - "ext-curl": "*", - "ext-pdo": "*" - }, - "time": "2016-06-28T02:44:05+00:00", - "bin": [ - "bin/sabredav", - "bin/naturalselection" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Sabre\\DAV\\": "lib/DAV/", - "Sabre\\DAVACL\\": "lib/DAVACL/", - "Sabre\\CalDAV\\": "lib/CalDAV/", - "Sabre\\CardDAV\\": "lib/CardDAV/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Evert Pot", - "email": "me@evertpot.com", - "homepage": "http://evertpot.com/", - "role": "Developer" - } - ], - "description": "WebDAV Framework for PHP", - "homepage": "http://sabre.io/", - "keywords": [ - "CalDAV", - "CardDAV", - "WebDAV", - "framework", - "iCalendar" - ] - }, - { "name": "sabre/xml", "version": "1.5.0", "version_normalized": "1.5.0.0", @@ -379,7 +85,7 @@ "phpunit/phpunit": "*", "sabre/cs": "~1.0.0" }, - "time": "2016-10-09T22:57:52+00:00", + "time": "2016-10-09 22:57:52", "type": "library", "installation-source": "dist", "autoload": { @@ -435,7 +141,7 @@ "require": { "php": ">=5.3.0" }, - "time": "2016-10-10T12:19:37+00:00", + "time": "2016-10-10 12:19:37", "type": "library", "extra": { "branch-alias": { @@ -484,7 +190,7 @@ "require": { "php": ">=5.3.0" }, - "time": "2016-10-29T18:58:20+00:00", + "time": "2016-10-29 18:58:20", "type": "library", "extra": { "branch-alias": { @@ -540,7 +246,7 @@ "require-dev": { "phpunit/phpunit": "^4.8" }, - "time": "2016-09-21T13:01:43+00:00", + "time": "2016-09-21 13:01:43", "type": "lib", "installation-source": "dist", "autoload": { @@ -608,6 +314,359 @@ "predis/predis": "Required to use Redis storage", "thobbs/phpcassa": "Required to use Cassandra storage" }, + "time": "2017-01-06 23:20:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-0": { + "OAuth2": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brent Shaffer", + "email": "bshafs@gmail.com", + "homepage": "http://brentertainment.com" + } + ], + "description": "OAuth2 Server for PHP", + "homepage": "http://github.com/bshaffer/oauth2-server-php", + "keywords": [ + "auth", + "oauth", + "oauth2" + ] + }, + { + "name": "sabre/uri", + "version": "1.2.1", + "version_normalized": "1.2.1.0", + "source": { + "type": "git", + "url": "https://github.com/fruux/sabre-uri.git", + "reference": "ada354d83579565949d80b2e15593c2371225e61" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruux/sabre-uri/zipball/ada354d83579565949d80b2e15593c2371225e61", + "reference": "ada354d83579565949d80b2e15593c2371225e61", + "shasum": "" + }, + "require": { + "php": ">=5.4.7" + }, + "require-dev": { + "phpunit/phpunit": ">=4.0,<6.0", + "sabre/cs": "~1.0.0" + }, + "time": "2017-02-20 19:59:28", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Sabre\\Uri\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage": "http://evertpot.com/", + "role": "Developer" + } + ], + "description": "Functions for making sense out of URIs.", + "homepage": "http://sabre.io/uri/", + "keywords": [ + "rfc3986", + "uri", + "url" + ] + }, + { + "name": "sabre/vobject", + "version": "4.1.2", + "version_normalized": "4.1.2.0", + "source": { + "type": "git", + "url": "https://github.com/fruux/sabre-vobject.git", + "reference": "d0fde2fafa2a3dad1f559c2d1c2591d4fd75ae3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruux/sabre-vobject/zipball/d0fde2fafa2a3dad1f559c2d1c2591d4fd75ae3c", + "reference": "d0fde2fafa2a3dad1f559c2d1c2591d4fd75ae3c", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.5", + "sabre/xml": ">=1.5 <3.0" + }, + "require-dev": { + "phpunit/phpunit": "*", + "sabre/cs": "^1.0.0" + }, + "suggest": { + "hoa/bench": "If you would like to run the benchmark scripts" + }, + "time": "2016-12-06 04:14:09", + "bin": [ + "bin/vobject", + "bin/generate_vcards" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Sabre\\VObject\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage": "http://evertpot.com/", + "role": "Developer" + }, + { + "name": "Dominik Tobschall", + "email": "dominik@fruux.com", + "homepage": "http://tobschall.de/", + "role": "Developer" + }, + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net", + "homepage": "http://mnt.io/", + "role": "Developer" + } + ], + "description": "The VObject library for PHP allows you to easily parse and manipulate iCalendar and vCard objects", + "homepage": "http://sabre.io/vobject/", + "keywords": [ + "availability", + "freebusy", + "iCalendar", + "ical", + "ics", + "jCal", + "jCard", + "recurrence", + "rfc2425", + "rfc2426", + "rfc2739", + "rfc4770", + "rfc5545", + "rfc5546", + "rfc6321", + "rfc6350", + "rfc6351", + "rfc6474", + "rfc6638", + "rfc6715", + "rfc6868", + "vCalendar", + "vCard", + "vcf", + "xCal", + "xCard" + ] + }, + { + "name": "sabre/http", + "version": "4.2.2", + "version_normalized": "4.2.2.0", + "source": { + "type": "git", + "url": "https://github.com/fruux/sabre-http.git", + "reference": "dd50e7260356f4599d40270826f9548b23efa204" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruux/sabre-http/zipball/dd50e7260356f4599d40270826f9548b23efa204", + "reference": "dd50e7260356f4599d40270826f9548b23efa204", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-mbstring": "*", + "php": ">=5.4", + "sabre/event": ">=1.0.0,<4.0.0", + "sabre/uri": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.3", + "sabre/cs": "~0.0.1" + }, + "suggest": { + "ext-curl": " to make http requests with the Client class" + }, + "time": "2017-01-02 19:38:42", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "lib/functions.php" + ], + "psr-4": { + "Sabre\\HTTP\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage": "http://evertpot.com/", + "role": "Developer" + } + ], + "description": "The sabre/http library provides utilities for dealing with http requests and responses. ", + "homepage": "https://github.com/fruux/sabre-http", + "keywords": [ + "http" + ] + }, + { + "name": "sabre/dav", + "version": "3.2.2", + "version_normalized": "3.2.2.0", + "source": { + "type": "git", + "url": "https://github.com/fruux/sabre-dav.git", + "reference": "e987775e619728f12205606c9cc3ee565ffb1516" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruux/sabre-dav/zipball/e987775e619728f12205606c9cc3ee565ffb1516", + "reference": "e987775e619728f12205606c9cc3ee565ffb1516", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-date": "*", + "ext-dom": "*", + "ext-iconv": "*", + "ext-mbstring": "*", + "ext-pcre": "*", + "ext-simplexml": "*", + "ext-spl": "*", + "lib-libxml": ">=2.7.0", + "php": ">=5.5.0", + "psr/log": "^1.0", + "sabre/event": ">=2.0.0, <4.0.0", + "sabre/http": "^4.2.1", + "sabre/uri": "^1.0.1", + "sabre/vobject": "^4.1.0", + "sabre/xml": "^1.4.0" + }, + "require-dev": { + "evert/phpdoc-md": "~0.1.0", + "monolog/monolog": "^1.18", + "phpunit/phpunit": "> 4.8, <6.0.0", + "sabre/cs": "^1.0.0" + }, + "suggest": { + "ext-curl": "*", + "ext-pdo": "*" + }, + "time": "2017-02-15 03:06:08", + "bin": [ + "bin/sabredav", + "bin/naturalselection" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Sabre\\DAV\\": "lib/DAV/", + "Sabre\\DAVACL\\": "lib/DAVACL/", + "Sabre\\CalDAV\\": "lib/CalDAV/", + "Sabre\\CardDAV\\": "lib/CardDAV/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage": "http://evertpot.com/", + "role": "Developer" + } + ], + "description": "WebDAV Framework for PHP", + "homepage": "http://sabre.io/", + "keywords": [ + "CalDAV", + "CardDAV", + "WebDAV", + "framework", + "iCalendar" + ] + }, + { + "name": "bshaffer/oauth2-server-php", + "version": "v1.9.0", + "version_normalized": "1.9.0.0", + "source": { + "type": "git", + "url": "https://github.com/bshaffer/oauth2-server-php.git", + "reference": "8856aed1a98d6da596ae3f9b8095b5c7a1581697" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bshaffer/oauth2-server-php/zipball/8856aed1a98d6da596ae3f9b8095b5c7a1581697", + "reference": "8856aed1a98d6da596ae3f9b8095b5c7a1581697", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "aws/aws-sdk-php": "~2.8", + "firebase/php-jwt": "~2.2", + "mongodb/mongodb": "^1.1", + "predis/predis": "dev-master", + "thobbs/phpcassa": "dev-master" + }, + "suggest": { + "aws/aws-sdk-php": "~2.8 is required to use DynamoDB storage", + "firebase/php-jwt": "~1.1 is required to use MondoDB storage", + "predis/predis": "Required to use Redis storage", + "thobbs/phpcassa": "Required to use Cassandra storage" + }, "time": "2017-01-06T23:20:00+00:00", "type": "library", "installation-source": "dist", diff --git a/vendor/sabre/dav/.travis.yml b/vendor/sabre/dav/.travis.yml index a9189c981..85637048a 100644 --- a/vendor/sabre/dav/.travis.yml +++ b/vendor/sabre/dav/.travis.yml @@ -2,7 +2,9 @@ language: php php: - 5.5 - 5.6 - - 7 + - 7.0 + - 7.1 + env: matrix: @@ -19,7 +21,6 @@ before_script: - mysql -e 'create database sabredav_test' - psql -c "create database sabredav_test" -U postgres - psql -c "create user sabredav with PASSWORD 'sabredav';GRANT ALL PRIVILEGES ON DATABASE sabredav_test TO sabredav" -U postgres - - phpenv config-rm xdebug.ini; true # - composer self-update - composer update --prefer-dist $LOWEST_DEPS @@ -28,7 +29,7 @@ before_script: script: - ./bin/phpunit --configuration tests/phpunit.xml.dist $TEST_DEPS - - ./bin/sabre-cs-fixer fix lib/ --dry-run --diff + - ./bin/sabre-cs-fixer fix . --dry-run --diff cache: directories: diff --git a/vendor/sabre/dav/CHANGELOG.md b/vendor/sabre/dav/CHANGELOG.md index d8a3898c3..0bccc995c 100644 --- a/vendor/sabre/dav/CHANGELOG.md +++ b/vendor/sabre/dav/CHANGELOG.md @@ -1,6 +1,28 @@ ChangeLog ========= +3.2.2 (2017-02-14) +------------------ + +* #943: Fix CardDAV XML reporting bug, which was affecting several CardDAV + clients. Bug was introduced in 3.2.1. +* The zip release ships with [sabre/vobject 4.1.2][vobj], + [sabre/http 4.2.2][http], [sabre/event 3.0.0][evnt], + [sabre/uri 1.2.0][uri] and [sabre/xml 1.5.0][xml]. + + +3.2.1 (2017-01-28) +------------------ + +* #877: Fix for syncing large calendars when using the Sqlite PDO backend. + (@theseer). +* #889 Added support for filtering vCard properties in the addressbook-query + REPORT (@DeepDiver1975). +* The zip release ships with [sabre/vobject 4.1.2][vobj], + [sabre/http 4.2.2][http], [sabre/event 3.0.0][evnt], + [sabre/uri 1.2.0][uri] and [sabre/xml 1.5.0][xml]. + + 3.2.0 (2016-06-27) ------------------ @@ -88,6 +110,9 @@ ChangeLog ------------------ * Fixed: Creating a new calendar on some MySQL configurations caused an error. +* #889 Added support for filtering vCard properties in the addressbook-query + REPORT (@DeepDiver1975). + 3.1.4 (2016-05-28) @@ -200,6 +225,13 @@ ChangeLog [sabre/uri 1.0.1][uri] and [sabre/xml 1.1.0][xml]. +3.0.10 (2016-??-??) +------------------ + +* #889 Added support for filtering vCard properties in the addressbook-query + REPORT (@DeepDiver1975). + + 3.0.9 (2016-04-06) ------------------ @@ -463,11 +495,13 @@ ChangeLog * #193: Fix `Sabre\DAV\FSExt\Directory::getQuotaInfo()` on windows. -2.1.11 (2016-??-??) +2.1.11 (2016-10-06) ------------------- * #805: It wasn't possible to create calendars that hold events, journals and todos using MySQL, because the `components` column was 1 byte too small. +* The zip release ships with [sabre/vobject 3.5.3][vobj], + [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 2.1.10 (2016-03-10) @@ -475,6 +509,8 @@ ChangeLog * #784: Sync logs for address books were not correctly cleaned up after deleting them. +* The zip release ships with [sabre/vobject 3.5.0][vobj], + [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 2.1.9 (2016-01-25) @@ -627,7 +663,7 @@ ChangeLog * Added: Automatically converting between vCard 3, 4 and jCard using the `Accept:` header, in CardDAV reports, and automatically converting from jCard to vCard upon `PUT`. It's important to note that your backends _may_ - now recieve both vCard 3.0 and 4.0. + now receive both vCard 3.0 and 4.0. * Added: #444. Collections can now opt-in to support high-speed `MOVE`. * Changed: PropertyStorage backends now have a `move` method. * Added: `beforeMove`, and `afterMove` events. @@ -812,7 +848,7 @@ ChangeLog * Added: Support for the `{DAV:}supported-method-set` property server-wide. * Making it easier for implementors to override how the CardDAV addressbook home is located. -* Fixed: Issue #422 Preconditions were not being set on PUT on non-existant +* Fixed: Issue #422 Preconditions were not being set on PUT on non-existent files. Not really a chance for data-loss, but incorrect nevertheless. * Fixed: Issue #428: Etag check with `If:` fails if the target is a collection. * Fixed: Issues #430, #431, #433: Locks plugin didn't not properly release @@ -1024,7 +1060,7 @@ ChangeLog * Added: Sharee's can now also read out the list of invites for a shared calendar. * Added: The Proxy principal classes now both implement an interface, for - greater flexiblity. + greater flexibility. 1.7.13 (2014-07-28) @@ -1042,7 +1078,7 @@ ChangeLog Sabre_DAV_PartialUpdate_IFile interface is now deprecated and will be removed in a future version. * Fixed: Restoring old setting after changing libxml_disable_entity_loader. -* Fixed: Issue #422: Preconditions were not being set on PUT on non-existant +* Fixed: Issue #422: Preconditions were not being set on PUT on non-existent files. Not really a chance for data-loss, but incorrect nevertheless. * Fixed: Issue #427: Now checking preconditions on DELETE requests. * Fixed: Issue #428: Etag check with If: fails if the target is a collection. @@ -1121,7 +1157,7 @@ ChangeLog ------------------ * The zip release ships with sabre/vobject 2.0.5. -* Changed: To be compatibile with MS Office 2011 for Mac, a workaround was +* Changed: To be compatible with MS Office 2011 for Mac, a workaround was removed that was added to support old versions of Windows XP (pre-SP3). Indeed! We needed a crazy workaround to work with one MS product in the past, and we can't keep that workaround to be compatible with another MS product. @@ -1129,7 +1165,7 @@ ChangeLog * Fixed: Range requests now work for non-seekable streams. (Thanks Alfred Klomp). * Fixed: Changed serialization of {DAV:}getlastmodified and {DAV:}supportedlock - to improve compatiblity with MS Office 2011 for Mac. + to improve compatibility with MS Office 2011 for Mac. * Changed: reverted the automatic translation of 'DAV:' xml namespaces to 'urn:DAV' when parsing files. Issues were reported with libxml 2.6.32, on a relatively recent debian release, so we'll wait till 2015 to take this one out @@ -2006,7 +2042,7 @@ ChangeLog ------------------- * Fixed: Issue 34: Invalid Lock-Token header response. -* Added: Issue 35: Addign SabreDAV version to HTTP OPTIONS responses. +* Added: Issue 35: Adding SabreDAV version to HTTP OPTIONS responses. 1.0.9 (2010-03-19) @@ -2220,7 +2256,7 @@ ChangeLog * Added: Simple HTML directory plugin, for browser access. * Added: Server class now sends back standard pre-condition error xml bodies. This was new since RFC4918. -* Added: Sabre_DAV_Tree_Aggregrate, which can 'host' multiple Tree objects into +* Added: Sabre_DAV_Tree_Aggregate, which can 'host' multiple Tree objects into one. * Added: simple basis for HTTP REPORT method. This method is not used yet, but can be used by plugins to add reports. @@ -2237,7 +2273,7 @@ ChangeLog 8.2. * Fixed: TemporaryFileFilter now lets through GET's if they actually exist on the backend. (r274) -* FIxed: Some methods didn't get passed through in the FilterTree (r283). +* Fixed: Some methods didn't get passed through in the FilterTree (r283). * Fixed: LockManager is now slightly more complex, Tree classes slightly less. (r287) diff --git a/vendor/sabre/dav/README.md b/vendor/sabre/dav/README.md index 8edcd4073..86a0fe9a6 100644 --- a/vendor/sabre/dav/README.md +++ b/vendor/sabre/dav/README.md @@ -10,6 +10,7 @@ Full documentation can be found on the website: http://sabre.io/ + Build status ------------ @@ -30,6 +31,7 @@ Documentation * [Introduction](http://sabre.io/dav/). * [Installation](http://sabre.io/dav/install/). + Made at fruux ------------- diff --git a/vendor/sabre/dav/bin/build.php b/vendor/sabre/dav/bin/build.php index c4ba20941..c4ba20941 100644..100755 --- a/vendor/sabre/dav/bin/build.php +++ b/vendor/sabre/dav/bin/build.php diff --git a/vendor/sabre/dav/bin/googlecode_upload.py b/vendor/sabre/dav/bin/googlecode_upload.py index caafd5ded..caafd5ded 100644..100755 --- a/vendor/sabre/dav/bin/googlecode_upload.py +++ b/vendor/sabre/dav/bin/googlecode_upload.py diff --git a/vendor/sabre/dav/bin/migrateto20.php b/vendor/sabre/dav/bin/migrateto20.php index 77236804f..77236804f 100644..100755 --- a/vendor/sabre/dav/bin/migrateto20.php +++ b/vendor/sabre/dav/bin/migrateto20.php diff --git a/vendor/sabre/dav/bin/migrateto21.php b/vendor/sabre/dav/bin/migrateto21.php index c81ee5cca..c81ee5cca 100644..100755 --- a/vendor/sabre/dav/bin/migrateto21.php +++ b/vendor/sabre/dav/bin/migrateto21.php diff --git a/vendor/sabre/dav/bin/migrateto30.php b/vendor/sabre/dav/bin/migrateto30.php index 9ca77c13c..9ca77c13c 100644..100755 --- a/vendor/sabre/dav/bin/migrateto30.php +++ b/vendor/sabre/dav/bin/migrateto30.php diff --git a/vendor/sabre/dav/bin/migrateto32.php b/vendor/sabre/dav/bin/migrateto32.php index 7567aeb60..7567aeb60 100644..100755 --- a/vendor/sabre/dav/bin/migrateto32.php +++ b/vendor/sabre/dav/bin/migrateto32.php diff --git a/vendor/sabre/dav/bin/sabredav.php b/vendor/sabre/dav/bin/sabredav.php index 950075d1a..950075d1a 100644..100755 --- a/vendor/sabre/dav/bin/sabredav.php +++ b/vendor/sabre/dav/bin/sabredav.php diff --git a/vendor/sabre/dav/composer.json b/vendor/sabre/dav/composer.json index f85d9655e..fca0e07fb 100644 --- a/vendor/sabre/dav/composer.json +++ b/vendor/sabre/dav/composer.json @@ -32,9 +32,9 @@ "psr/log": "^1.0" }, "require-dev" : { - "phpunit/phpunit" : "> 4.8, <=6.0.0", + "phpunit/phpunit" : "> 4.8, <6.0.0", "evert/phpdoc-md" : "~0.1.0", - "sabre/cs" : "~0.0.5", + "sabre/cs" : "^1.0.0", "monolog/monolog": "^1.18" }, "suggest" : { diff --git a/vendor/sabre/dav/lib/CalDAV/Backend/AbstractBackend.php b/vendor/sabre/dav/lib/CalDAV/Backend/AbstractBackend.php index d58b4a46e..311b1c415 100644 --- a/vendor/sabre/dav/lib/CalDAV/Backend/AbstractBackend.php +++ b/vendor/sabre/dav/lib/CalDAV/Backend/AbstractBackend.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV\Backend; -use Sabre\VObject; use Sabre\CalDAV; +use Sabre\VObject; /** * Abstract Calendaring backend. Extend this class to create your own backends. @@ -26,9 +26,9 @@ abstract class AbstractBackend implements BackendInterface { * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * - * @param string $path + * @param mixed $calendarId * @param \Sabre\DAV\PropPatch $propPatch * @return void */ diff --git a/vendor/sabre/dav/lib/CalDAV/Backend/NotificationSupport.php b/vendor/sabre/dav/lib/CalDAV/Backend/NotificationSupport.php index 9c00a89ef..bf2ef27a0 100644 --- a/vendor/sabre/dav/lib/CalDAV/Backend/NotificationSupport.php +++ b/vendor/sabre/dav/lib/CalDAV/Backend/NotificationSupport.php @@ -49,8 +49,8 @@ interface NotificationSupport extends BackendInterface { * If the user chose to accept the share, this method should return the * newly created calendar url. * - * @param string href The sharee who is replying (often a mailto: address) - * @param int status One of the SharingPlugin::STATUS_* constants + * @param string $href The sharee who is replying (often a mailto: address) + * @param int $status One of the SharingPlugin::STATUS_* constants * @param string $calendarUri The url to the calendar thats being shared * @param string $inReplyTo The unique id this message is a response to * @param string $summary A description of the reply diff --git a/vendor/sabre/dav/lib/CalDAV/Backend/PDO.php b/vendor/sabre/dav/lib/CalDAV/Backend/PDO.php index 95f1d49a6..458440588 100644 --- a/vendor/sabre/dav/lib/CalDAV/Backend/PDO.php +++ b/vendor/sabre/dav/lib/CalDAV/Backend/PDO.php @@ -5,8 +5,8 @@ namespace Sabre\CalDAV\Backend; use Sabre\CalDAV; use Sabre\DAV; use Sabre\DAV\Exception\Forbidden; -use Sabre\VObject; use Sabre\DAV\Xml\Element\Sharee; +use Sabre\VObject; /** * PDO CalDAV backend @@ -296,7 +296,7 @@ SQL * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * * @param mixed $calendarId * @param \Sabre\DAV\PropPatch $propPatch @@ -481,13 +481,13 @@ SQL if (!$row) return null; return [ - 'id' => $row['id'], - 'uri' => $row['uri'], - 'lastmodified' => (int)$row['lastmodified'], - 'etag' => '"' . $row['etag'] . '"', - 'size' => (int)$row['size'], - 'calendardata' => $row['calendardata'], - 'component' => strtolower($row['componenttype']), + 'id' => $row['id'], + 'uri' => $row['uri'], + 'lastmodified' => (int)$row['lastmodified'], + 'etag' => '"' . $row['etag'] . '"', + 'size' => (int)$row['size'], + 'calendardata' => $row['calendardata'], + 'component' => strtolower($row['componenttype']), ]; } @@ -511,27 +511,29 @@ SQL } list($calendarId, $instanceId) = $calendarId; - $query = 'SELECT id, uri, lastmodified, etag, calendarid, size, calendardata, componenttype FROM ' . $this->calendarObjectTableName . ' WHERE calendarid = ? AND uri IN ('; - // Inserting a whole bunch of question marks - $query .= implode(',', array_fill(0, count($uris), '?')); - $query .= ')'; + $result = []; + foreach (array_chunk($uris, 900) as $chunk) { + $query = 'SELECT id, uri, lastmodified, etag, calendarid, size, calendardata, componenttype FROM ' . $this->calendarObjectTableName . ' WHERE calendarid = ? AND uri IN ('; + // Inserting a whole bunch of question marks + $query .= implode(',', array_fill(0, count($chunk), '?')); + $query .= ')'; - $stmt = $this->pdo->prepare($query); - $stmt->execute(array_merge([$calendarId], $uris)); + $stmt = $this->pdo->prepare($query); + $stmt->execute(array_merge([$calendarId], $chunk)); - $result = []; - while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { + while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { - $result[] = [ - 'id' => $row['id'], - 'uri' => $row['uri'], - 'lastmodified' => (int)$row['lastmodified'], - 'etag' => '"' . $row['etag'] . '"', - 'size' => (int)$row['size'], - 'calendardata' => $row['calendardata'], - 'component' => strtolower($row['componenttype']), - ]; + $result[] = [ + 'id' => $row['id'], + 'uri' => $row['uri'], + 'lastmodified' => (int)$row['lastmodified'], + 'etag' => '"' . $row['etag'] . '"', + 'size' => (int)$row['size'], + 'calendardata' => $row['calendardata'], + 'component' => strtolower($row['componenttype']), + ]; + } } return $result; @@ -686,7 +688,7 @@ SQL } } - + // Ensure Occurence values are positive if ($firstOccurence < 0) $firstOccurence = 0; if ($lastOccurence < 0) $lastOccurence = 0; @@ -769,7 +771,7 @@ SQL * Note that especially time-range-filters may be difficult to parse. A * time-range filter specified on a VEVENT must for instance also handle * recurrence rules correctly. - * A good example of how to interprete all these filters can also simply + * A good example of how to interpret all these filters can also simply * be found in \Sabre\CalDAV\CalendarQueryFilter. This class is as correct * as possible, so it gives you a good idea on what type of stuff you need * to think of. @@ -969,7 +971,7 @@ SQL; // Current synctoken $stmt = $this->pdo->prepare('SELECT synctoken FROM ' . $this->calendarTableName . ' WHERE id = ?'); - $stmt->execute([ $calendarId ]); + $stmt->execute([$calendarId]); $currentToken = $stmt->fetchColumn(0); if (is_null($currentToken)) return null; @@ -1181,7 +1183,7 @@ SQL; * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * * @param mixed $subscriptionId * @param \Sabre\DAV\PropPatch $propPatch @@ -1327,7 +1329,7 @@ SQL; function createSchedulingObject($principalUri, $objectUri, $objectData) { $stmt = $this->pdo->prepare('INSERT INTO ' . $this->schedulingObjectTableName . ' (principaluri, calendardata, uri, lastmodified, etag, size) VALUES (?, ?, ?, ?, ?, ?)'); - $stmt->execute([$principalUri, $objectData, $objectUri, time(), md5($objectData), strlen($objectData) ]); + $stmt->execute([$principalUri, $objectData, $objectUri, time(), md5($objectData), strlen($objectData)]); } @@ -1483,7 +1485,7 @@ SQL; 'inviteStatus' => (int)$row['share_invitestatus'], 'properties' => !empty($row['share_displayname']) - ? [ '{DAV:}displayname' => $row['share_displayname'] ] + ? ['{DAV:}displayname' => $row['share_displayname']] : [], 'principal' => $row['principaluri'], ]); @@ -1502,7 +1504,7 @@ SQL; */ function setPublishStatus($calendarId, $value) { - throw new \Sabre\DAV\Exception\NotImplemented('Not implemented'); + throw new DAV\Exception\NotImplemented('Not implemented'); } diff --git a/vendor/sabre/dav/lib/CalDAV/Backend/SharingSupport.php b/vendor/sabre/dav/lib/CalDAV/Backend/SharingSupport.php index 8b6e074e0..278ec2564 100644 --- a/vendor/sabre/dav/lib/CalDAV/Backend/SharingSupport.php +++ b/vendor/sabre/dav/lib/CalDAV/Backend/SharingSupport.php @@ -11,9 +11,9 @@ namespace Sabre\CalDAV\Backend; * 1. Return shared calendars for users. * 2. For every calendar, return calendar-resource-uri. This strings is a URI or * relative URI reference that must be unique for every calendar, but - * identical for every instance of the same shared calenar. - * 3. For every calenar, you must return a share-access element. This element - * should contain one of the Sabre\DAV\Sharing\Plugin:ACCESS_* contants and + * identical for every instance of the same shared calendar. + * 3. For every calendar, you must return a share-access element. This element + * should contain one of the Sabre\DAV\Sharing\Plugin:ACCESS_* constants and * indicates the access level the user has. * * @copyright Copyright (C) fruux GmbH (https://fruux.com/) diff --git a/vendor/sabre/dav/lib/CalDAV/Backend/SimplePDO.php b/vendor/sabre/dav/lib/CalDAV/Backend/SimplePDO.php index f8238ea9a..d21f7f916 100644 --- a/vendor/sabre/dav/lib/CalDAV/Backend/SimplePDO.php +++ b/vendor/sabre/dav/lib/CalDAV/Backend/SimplePDO.php @@ -8,7 +8,7 @@ use Sabre\DAV; /** * Simple PDO CalDAV backend. * - * This class is basically the most minmum example to get a caldav backend up + * This class is basically the most minimum example to get a caldav backend up * and running. This class uses the following schema (MySQL example): * * CREATE TABLE simple_calendars ( @@ -209,12 +209,12 @@ class SimplePDO extends AbstractBackend { if (!$row) return null; return [ - 'id' => $row['id'], - 'uri' => $row['uri'], - 'etag' => '"' . md5($row['calendardata']) . '"', - 'calendarid' => $calendarId, - 'size' => strlen($row['calendardata']), - 'calendardata' => $row['calendardata'], + 'id' => $row['id'], + 'uri' => $row['uri'], + 'etag' => '"' . md5($row['calendardata']) . '"', + 'calendarid' => $calendarId, + 'size' => strlen($row['calendardata']), + 'calendardata' => $row['calendardata'], ]; } diff --git a/vendor/sabre/dav/lib/CalDAV/Backend/SubscriptionSupport.php b/vendor/sabre/dav/lib/CalDAV/Backend/SubscriptionSupport.php index a39289f5e..d77a2fe0f 100644 --- a/vendor/sabre/dav/lib/CalDAV/Backend/SubscriptionSupport.php +++ b/vendor/sabre/dav/lib/CalDAV/Backend/SubscriptionSupport.php @@ -70,7 +70,7 @@ interface SubscriptionSupport extends BackendInterface { * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * * @param mixed $subscriptionId * @param \Sabre\DAV\PropPatch $propPatch diff --git a/vendor/sabre/dav/lib/CalDAV/Calendar.php b/vendor/sabre/dav/lib/CalDAV/Calendar.php index 90ace0d21..7467900cc 100644 --- a/vendor/sabre/dav/lib/CalDAV/Calendar.php +++ b/vendor/sabre/dav/lib/CalDAV/Calendar.php @@ -3,8 +3,8 @@ namespace Sabre\CalDAV; use Sabre\DAV; -use Sabre\DAVACL; use Sabre\DAV\PropPatch; +use Sabre\DAVACL; /** * This object represents a CalDAV calendar. diff --git a/vendor/sabre/dav/lib/CalDAV/CalendarHome.php b/vendor/sabre/dav/lib/CalDAV/CalendarHome.php index 0a4bfb68f..ffd7f72fb 100644 --- a/vendor/sabre/dav/lib/CalDAV/CalendarHome.php +++ b/vendor/sabre/dav/lib/CalDAV/CalendarHome.php @@ -27,7 +27,7 @@ class CalendarHome implements DAV\IExtendedCollection, DAVACL\IACL { /** * CalDAV backend * - * @var Sabre\CalDAV\Backend\BackendInterface + * @var Backend\BackendInterface */ protected $caldavBackend; @@ -42,7 +42,7 @@ class CalendarHome implements DAV\IExtendedCollection, DAVACL\IACL { * Constructor * * @param Backend\BackendInterface $caldavBackend - * @param mixed $userUri + * @param array $principalInfo */ function __construct(Backend\BackendInterface $caldavBackend, $principalInfo) { @@ -334,8 +334,8 @@ class CalendarHome implements DAV\IExtendedCollection, DAVACL\IACL { * This method should return the url of the newly created calendar if the * share was accepted. * - * @param string href The sharee who is replying (often a mailto: address) - * @param int status One of the SharingPlugin::STATUS_* constants + * @param string $href The sharee who is replying (often a mailto: address) + * @param int $status One of the SharingPlugin::STATUS_* constants * @param string $calendarUri The url to the calendar thats being shared * @param string $inReplyTo The unique id this message is a response to * @param string $summary A description of the reply diff --git a/vendor/sabre/dav/lib/CalDAV/CalendarObject.php b/vendor/sabre/dav/lib/CalDAV/CalendarObject.php index 001b35112..9d6532a35 100644 --- a/vendor/sabre/dav/lib/CalDAV/CalendarObject.php +++ b/vendor/sabre/dav/lib/CalDAV/CalendarObject.php @@ -16,7 +16,7 @@ class CalendarObject extends \Sabre\DAV\File implements ICalendarObject, \Sabre\ /** * Sabre\CalDAV\Backend\BackendInterface * - * @var Sabre\CalDAV\Backend\AbstractBackend + * @var Backend\AbstractBackend */ protected $caldavBackend; diff --git a/vendor/sabre/dav/lib/CalDAV/CalendarQueryValidator.php b/vendor/sabre/dav/lib/CalDAV/CalendarQueryValidator.php index f3c7524d2..df8008fe2 100644 --- a/vendor/sabre/dav/lib/CalDAV/CalendarQueryValidator.php +++ b/vendor/sabre/dav/lib/CalDAV/CalendarQueryValidator.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV; -use Sabre\VObject; use DateTime; +use Sabre\VObject; /** * CalendarQuery Validator @@ -25,7 +25,7 @@ class CalendarQueryValidator { * * The list of filters must be formatted as parsed by \Sabre\CalDAV\CalendarQueryParser * - * @param VObject\Component $vObject + * @param VObject\Component\VCalendar $vObject * @param array $filters * @return bool */ diff --git a/vendor/sabre/dav/lib/CalDAV/CalendarRoot.php b/vendor/sabre/dav/lib/CalDAV/CalendarRoot.php index 0ac50e41d..1d6b2ac9f 100644 --- a/vendor/sabre/dav/lib/CalDAV/CalendarRoot.php +++ b/vendor/sabre/dav/lib/CalDAV/CalendarRoot.php @@ -22,7 +22,7 @@ class CalendarRoot extends \Sabre\DAVACL\AbstractPrincipalCollection { /** * CalDAV backend * - * @var Sabre\CalDAV\Backend\BackendInterface + * @var Backend\BackendInterface */ protected $caldavBackend; diff --git a/vendor/sabre/dav/lib/CalDAV/Exception/InvalidComponentType.php b/vendor/sabre/dav/lib/CalDAV/Exception/InvalidComponentType.php index 5ce8a93f5..7aff2edab 100644 --- a/vendor/sabre/dav/lib/CalDAV/Exception/InvalidComponentType.php +++ b/vendor/sabre/dav/lib/CalDAV/Exception/InvalidComponentType.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV\Exception; -use Sabre\DAV; use Sabre\CalDAV; +use Sabre\DAV; /** * InvalidComponentType diff --git a/vendor/sabre/dav/lib/CalDAV/ICSExportPlugin.php b/vendor/sabre/dav/lib/CalDAV/ICSExportPlugin.php index a3a824c71..fc8b971f3 100644 --- a/vendor/sabre/dav/lib/CalDAV/ICSExportPlugin.php +++ b/vendor/sabre/dav/lib/CalDAV/ICSExportPlugin.php @@ -2,13 +2,13 @@ namespace Sabre\CalDAV; +use DateTime; use DateTimeZone; use Sabre\DAV; -use Sabre\VObject; +use Sabre\DAV\Exception\BadRequest; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; -use Sabre\DAV\Exception\BadRequest; -use DateTime; +use Sabre\VObject; /** * ICS Exporter diff --git a/vendor/sabre/dav/lib/CalDAV/Notifications/Collection.php b/vendor/sabre/dav/lib/CalDAV/Notifications/Collection.php index 5fda61dfa..557832a5a 100644 --- a/vendor/sabre/dav/lib/CalDAV/Notifications/Collection.php +++ b/vendor/sabre/dav/lib/CalDAV/Notifications/Collection.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV\Notifications; -use Sabre\DAV; use Sabre\CalDAV; +use Sabre\DAV; use Sabre\DAVACL; /** @@ -27,7 +27,7 @@ class Collection extends DAV\Collection implements ICollection, DAVACL\IACL { /** * The notification backend * - * @var Sabre\CalDAV\Backend\NotificationSupport + * @var CalDAV\Backend\NotificationSupport */ protected $caldavBackend; diff --git a/vendor/sabre/dav/lib/CalDAV/Notifications/INode.php b/vendor/sabre/dav/lib/CalDAV/Notifications/INode.php index f9986b714..783b92be9 100644 --- a/vendor/sabre/dav/lib/CalDAV/Notifications/INode.php +++ b/vendor/sabre/dav/lib/CalDAV/Notifications/INode.php @@ -2,6 +2,8 @@ namespace Sabre\CalDAV\Notifications; +use Sabre\CalDAV\Xml\Notification\NotificationInterface; + /** * This node represents a single notification. * @@ -20,16 +22,16 @@ interface INode { /** * This method must return an xml element, using the - * Sabre\CalDAV\Notifications\INotificationType classes. + * Sabre\CalDAV\Xml\Notification\NotificationInterface classes. * - * @return INotificationType + * @return NotificationInterface */ function getNotificationType(); /** * Returns the etag for the notification. * - * The etag must be surrounded by litteral double-quotes. + * The etag must be surrounded by literal double-quotes. * * @return string */ diff --git a/vendor/sabre/dav/lib/CalDAV/Notifications/Node.php b/vendor/sabre/dav/lib/CalDAV/Notifications/Node.php index 11df0c94b..ad7ddf8f5 100644 --- a/vendor/sabre/dav/lib/CalDAV/Notifications/Node.php +++ b/vendor/sabre/dav/lib/CalDAV/Notifications/Node.php @@ -2,9 +2,9 @@ namespace Sabre\CalDAV\Notifications; -use Sabre\DAV; use Sabre\CalDAV; use Sabre\CalDAV\Xml\Notification\NotificationInterface; +use Sabre\DAV; use Sabre\DAVACL; /** @@ -25,14 +25,14 @@ class Node extends DAV\File implements INode, DAVACL\IACL { /** * The notification backend * - * @var Sabre\CalDAV\Backend\NotificationSupport + * @var CalDAV\Backend\NotificationSupport */ protected $caldavBackend; /** * The actual notification * - * @var Sabre\CalDAV\Notifications\INotificationType + * @var NotificationInterface */ protected $notification; @@ -61,7 +61,7 @@ class Node extends DAV\File implements INode, DAVACL\IACL { /** * Returns the path name for this notification * - * @return id + * @return string */ function getName() { @@ -84,9 +84,9 @@ class Node extends DAV\File implements INode, DAVACL\IACL { /** * This method must return an xml element, using the - * Sabre\CalDAV\Notifications\INotificationType classes. + * Sabre\CalDAV\Xml\Notification\NotificationInterface classes. * - * @return INotificationType + * @return NotificationInterface */ function getNotificationType() { diff --git a/vendor/sabre/dav/lib/CalDAV/Notifications/Plugin.php b/vendor/sabre/dav/lib/CalDAV/Notifications/Plugin.php index 546bf927f..e742351f5 100644 --- a/vendor/sabre/dav/lib/CalDAV/Notifications/Plugin.php +++ b/vendor/sabre/dav/lib/CalDAV/Notifications/Plugin.php @@ -3,10 +3,10 @@ namespace Sabre\CalDAV\Notifications; use Sabre\DAV; -use Sabre\DAV\PropFind; use Sabre\DAV\INode as BaseINode; -use Sabre\DAV\ServerPlugin; +use Sabre\DAV\PropFind; use Sabre\DAV\Server; +use Sabre\DAV\ServerPlugin; use Sabre\DAVACL; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; diff --git a/vendor/sabre/dav/lib/CalDAV/Plugin.php b/vendor/sabre/dav/lib/CalDAV/Plugin.php index 71ba75206..def11d52d 100644 --- a/vendor/sabre/dav/lib/CalDAV/Plugin.php +++ b/vendor/sabre/dav/lib/CalDAV/Plugin.php @@ -9,11 +9,11 @@ use Sabre\DAV\INode; use Sabre\DAV\MkCol; use Sabre\DAV\Xml\Property\LocalHref; use Sabre\DAVACL; -use Sabre\VObject; use Sabre\HTTP; -use Sabre\Uri; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; +use Sabre\Uri; +use Sabre\VObject; /** * CalDAV plugin @@ -302,8 +302,8 @@ class Plugin extends DAV\ServerPlugin { $this->server->createCollection($path, new MkCol($resourceType, $properties)); - $this->server->httpResponse->setStatus(201); - $this->server->httpResponse->setHeader('Content-Length', 0); + $response->setStatus(201); + $response->setHeader('Content-Length', 0); // This breaks the method chain. return false; @@ -926,7 +926,7 @@ class Plugin extends DAV\ServerPlugin { ); } - // We use an extra variable to allow event handles to tell us wether + // We use an extra variable to allow event handles to tell us whether // the object was modified or not. // // This helps us determine if we need to re-serialize the object. diff --git a/vendor/sabre/dav/lib/CalDAV/Principal/ProxyRead.php b/vendor/sabre/dav/lib/CalDAV/Principal/ProxyRead.php index 93f0fe095..e3881831e 100644 --- a/vendor/sabre/dav/lib/CalDAV/Principal/ProxyRead.php +++ b/vendor/sabre/dav/lib/CalDAV/Principal/ProxyRead.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV\Principal; -use Sabre\DAVACL; use Sabre\DAV; +use Sabre\DAVACL; /** * ProxyRead principal @@ -84,8 +84,8 @@ class ProxyRead implements IProxyRead { /** * Renames the node * - * @throws DAV\Exception\Forbidden * @param string $name The new name + * @throws DAV\Exception\Forbidden * @return void */ function setName($name) { diff --git a/vendor/sabre/dav/lib/CalDAV/Principal/ProxyWrite.php b/vendor/sabre/dav/lib/CalDAV/Principal/ProxyWrite.php index 8124c05e0..43dd9bf07 100644 --- a/vendor/sabre/dav/lib/CalDAV/Principal/ProxyWrite.php +++ b/vendor/sabre/dav/lib/CalDAV/Principal/ProxyWrite.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV\Principal; -use Sabre\DAVACL; use Sabre\DAV; +use Sabre\DAVACL; /** * ProxyWrite principal @@ -84,8 +84,8 @@ class ProxyWrite implements IProxyWrite { /** * Renames the node * - * @throws DAV\Exception\Forbidden * @param string $name The new name + * @throws DAV\Exception\Forbidden * @return void */ function setName($name) { diff --git a/vendor/sabre/dav/lib/CalDAV/Schedule/IMipPlugin.php b/vendor/sabre/dav/lib/CalDAV/Schedule/IMipPlugin.php index ffb1fe45b..6f5acb29a 100644 --- a/vendor/sabre/dav/lib/CalDAV/Schedule/IMipPlugin.php +++ b/vendor/sabre/dav/lib/CalDAV/Schedule/IMipPlugin.php @@ -181,7 +181,7 @@ class IMipPlugin extends DAV\ServerPlugin { return [ 'name' => $this->getPluginName(), - 'description' => 'Email delivery (rfc6037) for CalDAV scheduling', + 'description' => 'Email delivery (rfc6047) for CalDAV scheduling', 'link' => 'http://sabre.io/dav/scheduling/', ]; diff --git a/vendor/sabre/dav/lib/CalDAV/Schedule/Inbox.php b/vendor/sabre/dav/lib/CalDAV/Schedule/Inbox.php index 6b374ea3f..81b017307 100644 --- a/vendor/sabre/dav/lib/CalDAV/Schedule/Inbox.php +++ b/vendor/sabre/dav/lib/CalDAV/Schedule/Inbox.php @@ -2,10 +2,10 @@ namespace Sabre\CalDAV\Schedule; -use Sabre\DAV; use Sabre\CalDAV; -use Sabre\DAVACL; use Sabre\CalDAV\Backend; +use Sabre\DAV; +use Sabre\DAVACL; use Sabre\VObject; /** @@ -83,7 +83,7 @@ class Inbox extends DAV\Collection implements IInbox { * Data will either be supplied as a stream resource, or in certain cases * as a string. Keep in mind that you may have to support either. * - * After succesful creation of the file, you may choose to return the ETag + * After successful creation of the file, you may choose to return the ETag * of the new file here. * * The returned ETag must be surrounded by double-quotes (The quotes should diff --git a/vendor/sabre/dav/lib/CalDAV/Schedule/Outbox.php b/vendor/sabre/dav/lib/CalDAV/Schedule/Outbox.php index 29eefa744..888ea3086 100644 --- a/vendor/sabre/dav/lib/CalDAV/Schedule/Outbox.php +++ b/vendor/sabre/dav/lib/CalDAV/Schedule/Outbox.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV\Schedule; -use Sabre\DAV; use Sabre\CalDAV; +use Sabre\DAV; use Sabre\DAVACL; /** diff --git a/vendor/sabre/dav/lib/CalDAV/Schedule/Plugin.php b/vendor/sabre/dav/lib/CalDAV/Schedule/Plugin.php index 47511140f..0b991e619 100644 --- a/vendor/sabre/dav/lib/CalDAV/Schedule/Plugin.php +++ b/vendor/sabre/dav/lib/CalDAV/Schedule/Plugin.php @@ -3,29 +3,28 @@ namespace Sabre\CalDAV\Schedule; use DateTimeZone; +use Sabre\CalDAV\ICalendar; +use Sabre\CalDAV\ICalendarObject; +use Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp; +use Sabre\DAV\Exception\BadRequest; +use Sabre\DAV\Exception\Forbidden; +use Sabre\DAV\Exception\NotFound; +use Sabre\DAV\Exception\NotImplemented; +use Sabre\DAV\INode; +use Sabre\DAV\PropFind; +use Sabre\DAV\PropPatch; use Sabre\DAV\Server; use Sabre\DAV\ServerPlugin; use Sabre\DAV\Sharing; -use Sabre\DAV\PropFind; -use Sabre\DAV\PropPatch; -use Sabre\DAV\INode; -use Sabre\DAV\Xml\Property\Href; use Sabre\DAV\Xml\Property\LocalHref; +use Sabre\DAVACL; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; use Sabre\VObject; -use Sabre\VObject\Reader; use Sabre\VObject\Component\VCalendar; use Sabre\VObject\ITip; use Sabre\VObject\ITip\Message; -use Sabre\DAVACL; -use Sabre\CalDAV\ICalendar; -use Sabre\CalDAV\ICalendarObject; -use Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp; -use Sabre\DAV\Exception\NotFound; -use Sabre\DAV\Exception\Forbidden; -use Sabre\DAV\Exception\BadRequest; -use Sabre\DAV\Exception\NotImplemented; +use Sabre\VObject\Reader; /** * CalDAV scheduling plugin. @@ -377,7 +376,7 @@ class Plugin extends ServerPlugin { /** * This method is responsible for delivering the ITip message. * - * @param ITip\Message $itipMessage + * @param ITip\Message $iTipMessage * @return void */ function deliver(ITip\Message $iTipMessage) { @@ -890,8 +889,8 @@ class Plugin extends ServerPlugin { * * 3.7;description * * @param string $email address - * @param DateTimeInterface $start - * @param DateTimeInterface $end + * @param \DateTimeInterface $start + * @param \DateTimeInterface $end * @param VObject\Component $request * @return array */ @@ -1059,7 +1058,7 @@ class Plugin extends ServerPlugin { return [ 'name' => $this->getPluginName(), - 'description' => 'Adds calendar-auto-schedule, as defined in rf6868', + 'description' => 'Adds calendar-auto-schedule, as defined in rfc6638', 'link' => 'http://sabre.io/dav/scheduling/', ]; diff --git a/vendor/sabre/dav/lib/CalDAV/Schedule/SchedulingObject.php b/vendor/sabre/dav/lib/CalDAV/Schedule/SchedulingObject.php index 6d9d3d5ec..0cd05a965 100644 --- a/vendor/sabre/dav/lib/CalDAV/Schedule/SchedulingObject.php +++ b/vendor/sabre/dav/lib/CalDAV/Schedule/SchedulingObject.php @@ -42,7 +42,7 @@ class SchedulingObject extends \Sabre\CalDAV\CalendarObject implements IScheduli * * lastmodified - (optional) format as a unix timestamp. * * acl - (optional) Use this to override the default ACL for the node. * - * @param Backend\BackendInterface $caldavBackend + * @param Backend\SchedulingSupport $caldavBackend * @param array $objectData */ function __construct(Backend\SchedulingSupport $caldavBackend, array $objectData) { diff --git a/vendor/sabre/dav/lib/CalDAV/SharingPlugin.php b/vendor/sabre/dav/lib/CalDAV/SharingPlugin.php index 6f7df02bc..5cce79678 100644 --- a/vendor/sabre/dav/lib/CalDAV/SharingPlugin.php +++ b/vendor/sabre/dav/lib/CalDAV/SharingPlugin.php @@ -3,7 +3,6 @@ namespace Sabre\CalDAV; use Sabre\DAV; -use Sabre\DAV\Xml\Property\Href; use Sabre\DAV\Xml\Property\LocalHref; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; @@ -29,7 +28,7 @@ class SharingPlugin extends DAV\ServerPlugin { /** * Reference to SabreDAV server object. * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; diff --git a/vendor/sabre/dav/lib/CalDAV/Subscriptions/Plugin.php b/vendor/sabre/dav/lib/CalDAV/Subscriptions/Plugin.php index 7abbfb1f9..877d96c6c 100644 --- a/vendor/sabre/dav/lib/CalDAV/Subscriptions/Plugin.php +++ b/vendor/sabre/dav/lib/CalDAV/Subscriptions/Plugin.php @@ -4,8 +4,8 @@ namespace Sabre\CalDAV\Subscriptions; use Sabre\DAV\INode; use Sabre\DAV\PropFind; -use Sabre\DAV\ServerPlugin; use Sabre\DAV\Server; +use Sabre\DAV\ServerPlugin; /** * This plugin adds calendar-subscription support to your CalDAV server. diff --git a/vendor/sabre/dav/lib/CalDAV/Subscriptions/Subscription.php b/vendor/sabre/dav/lib/CalDAV/Subscriptions/Subscription.php index 3bb3451f3..6a1851ed8 100644 --- a/vendor/sabre/dav/lib/CalDAV/Subscriptions/Subscription.php +++ b/vendor/sabre/dav/lib/CalDAV/Subscriptions/Subscription.php @@ -2,12 +2,12 @@ namespace Sabre\CalDAV\Subscriptions; +use Sabre\CalDAV\Backend\SubscriptionSupport; use Sabre\DAV\Collection; -use Sabre\DAV\Xml\Property\Href; use Sabre\DAV\PropPatch; -use Sabre\DAVACL\IACL; +use Sabre\DAV\Xml\Property\Href; use Sabre\DAVACL\ACLTrait; -use Sabre\CalDAV\Backend\SubscriptionSupport; +use Sabre\DAVACL\IACL; /** * Subscription Node @@ -25,7 +25,7 @@ class Subscription extends Collection implements ISubscription, IACL { /** * caldavBackend * - * @var SupportsSubscriptions + * @var SubscriptionSupport */ protected $caldavBackend; @@ -40,7 +40,7 @@ class Subscription extends Collection implements ISubscription, IACL { * Constructor * * @param SubscriptionSupport $caldavBackend - * @param array $calendarInfo + * @param array $subscriptionInfo */ function __construct(SubscriptionSupport $caldavBackend, array $subscriptionInfo) { @@ -104,7 +104,7 @@ class Subscription extends Collection implements ISubscription, IACL { /** * Returns an array with all the child nodes * - * @return DAV\INode[] + * @return \Sabre\DAV\INode[] */ function getChildren() { diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Filter/CalendarData.php b/vendor/sabre/dav/lib/CalDAV/Xml/Filter/CalendarData.php index 9babcf15c..9669be304 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Filter/CalendarData.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Filter/CalendarData.php @@ -2,11 +2,11 @@ namespace Sabre\CalDAV\Xml\Filter; -use Sabre\Xml\Reader; -use Sabre\Xml\XmlDeserializable; -use Sabre\DAV\Exception\BadRequest; use Sabre\CalDAV\Plugin; +use Sabre\DAV\Exception\BadRequest; use Sabre\VObject\DateTimeParser; +use Sabre\Xml\Reader; +use Sabre\Xml\XmlDeserializable; /** * CalendarData parser. @@ -30,7 +30,7 @@ class CalendarData implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Filter/CompFilter.php b/vendor/sabre/dav/lib/CalDAV/Xml/Filter/CompFilter.php index c9b27dbfd..c21ede66b 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Filter/CompFilter.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Filter/CompFilter.php @@ -2,11 +2,11 @@ namespace Sabre\CalDAV\Xml\Filter; -use Sabre\Xml\Reader; -use Sabre\Xml\XmlDeserializable; -use Sabre\DAV\Exception\BadRequest; use Sabre\CalDAV\Plugin; +use Sabre\DAV\Exception\BadRequest; use Sabre\VObject\DateTimeParser; +use Sabre\Xml\Reader; +use Sabre\Xml\XmlDeserializable; /** * CompFilter parser. @@ -27,7 +27,7 @@ class CompFilter implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Filter/ParamFilter.php b/vendor/sabre/dav/lib/CalDAV/Xml/Filter/ParamFilter.php index eb7f564df..bf422cf05 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Filter/ParamFilter.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Filter/ParamFilter.php @@ -2,9 +2,9 @@ namespace Sabre\CalDAV\Xml\Filter; +use Sabre\CalDAV\Plugin; use Sabre\Xml\Reader; use Sabre\Xml\XmlDeserializable; -use Sabre\CalDAV\Plugin; /** * PropFilter parser. @@ -25,7 +25,7 @@ class ParamFilter implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Filter/PropFilter.php b/vendor/sabre/dav/lib/CalDAV/Xml/Filter/PropFilter.php index 4c2e1b172..db9207295 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Filter/PropFilter.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Filter/PropFilter.php @@ -2,11 +2,11 @@ namespace Sabre\CalDAV\Xml\Filter; -use Sabre\Xml\Reader; -use Sabre\Xml\XmlDeserializable; -use Sabre\DAV\Exception\BadRequest; use Sabre\CalDAV\Plugin; +use Sabre\DAV\Exception\BadRequest; use Sabre\VObject\DateTimeParser; +use Sabre\Xml\Reader; +use Sabre\Xml\XmlDeserializable; /** * PropFilter parser. @@ -27,7 +27,7 @@ class PropFilter implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Notification/Invite.php b/vendor/sabre/dav/lib/CalDAV/Xml/Notification/Invite.php index 1ca64f3e8..92a9ac7b7 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Notification/Invite.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Notification/Invite.php @@ -2,10 +2,10 @@ namespace Sabre\CalDAV\Xml\Notification; -use Sabre\Xml\Writer; -use Sabre\CalDAV\SharingPlugin as SharingPlugin; use Sabre\CalDAV; +use Sabre\CalDAV\SharingPlugin as SharingPlugin; use Sabre\DAV; +use Sabre\Xml\Writer; /** * This class represents the cs:invite-notification notification element. @@ -107,7 +107,7 @@ class Invite implements NotificationInterface { /** * The list of supported components * - * @var Sabre\CalDAV\Property\SupportedCalendarComponentSet + * @var CalDAV\Xml\Property\SupportedCalendarComponentSet */ protected $supportedComponents; @@ -166,12 +166,12 @@ class Invite implements NotificationInterface { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Notification/InviteReply.php b/vendor/sabre/dav/lib/CalDAV/Xml/Notification/InviteReply.php index 51bfc178a..f4b10a396 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Notification/InviteReply.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Notification/InviteReply.php @@ -2,10 +2,10 @@ namespace Sabre\CalDAV\Xml\Notification; -use Sabre\Xml\Writer; use Sabre\CalDAV; use Sabre\CalDAV\SharingPlugin; use Sabre\DAV; +use Sabre\Xml\Writer; /** * This class represents the cs:invite-reply notification element. @@ -117,12 +117,12 @@ class InviteReply implements NotificationInterface { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Notification/NotificationInterface.php b/vendor/sabre/dav/lib/CalDAV/Xml/Notification/NotificationInterface.php index 1c08f12fd..b98f9c888 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Notification/NotificationInterface.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Notification/NotificationInterface.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV\Xml\Notification; -use Sabre\Xml\XmlSerializable; use Sabre\Xml\Writer; +use Sabre\Xml\XmlSerializable; /** * This interface reflects a single notification type. diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Notification/SystemStatus.php b/vendor/sabre/dav/lib/CalDAV/Xml/Notification/SystemStatus.php index d41702e07..8c945dd68 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Notification/SystemStatus.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Notification/SystemStatus.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV\Xml\Notification; -use Sabre\Xml\Writer; use Sabre\CalDAV\Plugin; +use Sabre\Xml\Writer; /** * SystemStatus notification diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Property/AllowedSharingModes.php b/vendor/sabre/dav/lib/CalDAV/Xml/Property/AllowedSharingModes.php index c2a2d565e..54e5a116a 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Property/AllowedSharingModes.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Property/AllowedSharingModes.php @@ -2,9 +2,9 @@ namespace Sabre\CalDAV\Xml\Property; -use Sabre\Xml\XmlSerializable; -use Sabre\Xml\Writer; use Sabre\CalDAV\Plugin; +use Sabre\Xml\Writer; +use Sabre\Xml\XmlSerializable; /** * AllowedSharingModes @@ -53,12 +53,12 @@ class AllowedSharingModes implements XmlSerializable { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Property/EmailAddressSet.php b/vendor/sabre/dav/lib/CalDAV/Xml/Property/EmailAddressSet.php index f577a9919..fc6f1d505 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Property/EmailAddressSet.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Property/EmailAddressSet.php @@ -49,12 +49,12 @@ class EmailAddressSet implements XmlSerializable { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Property/Invite.php b/vendor/sabre/dav/lib/CalDAV/Xml/Property/Invite.php index 40ff6b936..4f33c464c 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Property/Invite.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Property/Invite.php @@ -2,10 +2,11 @@ namespace Sabre\CalDAV\Xml\Property; -use Sabre\Xml\XmlSerializable; -use Sabre\Xml\Writer; use Sabre\CalDAV\Plugin; use Sabre\DAV; +use Sabre\DAV\Xml\Element\Sharee; +use Sabre\Xml\Writer; +use Sabre\Xml\XmlSerializable; /** * Invite property @@ -51,12 +52,12 @@ class Invite implements XmlSerializable { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -75,7 +76,7 @@ class Invite implements XmlSerializable { foreach ($this->sharees as $sharee) { - if ($sharee->access === \Sabre\DAV\Sharing\Plugin::ACCESS_SHAREDOWNER) { + if ($sharee->access === DAV\Sharing\Plugin::ACCESS_SHAREDOWNER) { $writer->startElement($cs . 'organizer'); } else { $writer->startElement($cs . 'user'); @@ -109,7 +110,7 @@ class Invite implements XmlSerializable { } - $href = new \Sabre\DAV\Xml\Property\Href($sharee->href); + $href = new DAV\Xml\Property\Href($sharee->href); $href->xmlSerialize($writer); if (isset($sharee->properties['{DAV:}displayname'])) { diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Property/ScheduleCalendarTransp.php b/vendor/sabre/dav/lib/CalDAV/Xml/Property/ScheduleCalendarTransp.php index a82b8eff7..10c20be55 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Property/ScheduleCalendarTransp.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Property/ScheduleCalendarTransp.php @@ -2,11 +2,11 @@ namespace Sabre\CalDAV\Xml\Property; +use Sabre\CalDAV\Plugin; +use Sabre\Xml\Deserializer; use Sabre\Xml\Element; use Sabre\Xml\Reader; -use Sabre\Xml\Deserializer; use Sabre\Xml\Writer; -use Sabre\CalDAV\Plugin; /** * schedule-calendar-transp property. @@ -62,12 +62,12 @@ class ScheduleCalendarTransp implements Element { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -96,7 +96,7 @@ class ScheduleCalendarTransp implements Element { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarComponentSet.php b/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarComponentSet.php index 7a26e767e..7fc25c5f0 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarComponentSet.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarComponentSet.php @@ -2,11 +2,11 @@ namespace Sabre\CalDAV\Xml\Property; +use Sabre\CalDAV\Plugin; use Sabre\Xml\Element; use Sabre\Xml\ParseException; use Sabre\Xml\Reader; use Sabre\Xml\Writer; -use Sabre\CalDAV\Plugin; /** * SupportedCalendarComponentSet property. @@ -55,12 +55,12 @@ class SupportedCalendarComponentSet implements Element { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -88,7 +88,7 @@ class SupportedCalendarComponentSet implements Element { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarData.php b/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarData.php index b0c407fd6..d123ba4c0 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarData.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarData.php @@ -2,9 +2,9 @@ namespace Sabre\CalDAV\Xml\Property; -use Sabre\Xml\XmlSerializable; -use Sabre\Xml\Writer; use Sabre\CalDAV\Plugin; +use Sabre\Xml\Writer; +use Sabre\Xml\XmlSerializable; /** * Supported-calendar-data property @@ -23,12 +23,12 @@ use Sabre\CalDAV\Plugin; class SupportedCalendarData implements XmlSerializable { /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCollationSet.php b/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCollationSet.php index 71de25a62..af10860d0 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCollationSet.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Property/SupportedCollationSet.php @@ -2,9 +2,9 @@ namespace Sabre\CalDAV\Xml\Property; +use Sabre\CalDAV\Plugin; use Sabre\Xml\Writer; use Sabre\Xml\XmlSerializable; -use Sabre\CalDAV\Plugin; /** * supported-collation-set property @@ -22,12 +22,12 @@ use Sabre\CalDAV\Plugin; class SupportedCollationSet implements XmlSerializable { /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Request/CalendarMultiGetReport.php b/vendor/sabre/dav/lib/CalDAV/Xml/Request/CalendarMultiGetReport.php index 79b3bb3ac..6d3c5d508 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Request/CalendarMultiGetReport.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Request/CalendarMultiGetReport.php @@ -2,10 +2,10 @@ namespace Sabre\CalDAV\Xml\Request; -use Sabre\Xml\XmlDeserializable; -use Sabre\Xml\Reader; use Sabre\CalDAV\Plugin; use Sabre\Uri; +use Sabre\Xml\Reader; +use Sabre\Xml\XmlDeserializable; /** * CalendarMultiGetReport request parser. @@ -64,7 +64,7 @@ class CalendarMultiGetReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Request/CalendarQueryReport.php b/vendor/sabre/dav/lib/CalDAV/Xml/Request/CalendarQueryReport.php index 848a4dc46..e0b1c7950 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Request/CalendarQueryReport.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Request/CalendarQueryReport.php @@ -2,10 +2,10 @@ namespace Sabre\CalDAV\Xml\Request; -use Sabre\Xml\XmlDeserializable; -use Sabre\Xml\Reader; -use Sabre\DAV\Exception\BadRequest; use Sabre\CalDAV\Plugin; +use Sabre\DAV\Exception\BadRequest; +use Sabre\Xml\Reader; +use Sabre\Xml\XmlDeserializable; /** * CalendarQueryReport request parser. @@ -64,7 +64,7 @@ class CalendarQueryReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Request/FreeBusyQueryReport.php b/vendor/sabre/dav/lib/CalDAV/Xml/Request/FreeBusyQueryReport.php index e3b27d08e..0f6c1e074 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Request/FreeBusyQueryReport.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Request/FreeBusyQueryReport.php @@ -38,7 +38,7 @@ class FreeBusyQueryReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Request/InviteReply.php b/vendor/sabre/dav/lib/CalDAV/Xml/Request/InviteReply.php index 2ecf6c2bb..db32cc6a5 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Request/InviteReply.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Request/InviteReply.php @@ -6,9 +6,9 @@ use Sabre\CalDAV\Plugin; use Sabre\CalDAV\SharingPlugin; use Sabre\DAV; use Sabre\DAV\Exception\BadRequest; +use Sabre\Xml\Element\KeyValue; use Sabre\Xml\Reader; use Sabre\Xml\XmlDeserializable; -use Sabre\Xml\Element\KeyValue; /** * Invite-reply POST request parser @@ -82,7 +82,7 @@ class InviteReply implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Request/MkCalendar.php b/vendor/sabre/dav/lib/CalDAV/Xml/Request/MkCalendar.php index 7b745db55..ce7fafde9 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Request/MkCalendar.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Request/MkCalendar.php @@ -39,7 +39,7 @@ class MkCalendar implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are @@ -62,8 +62,8 @@ class MkCalendar implements XmlDeserializable { $self = new self(); $elementMap = $reader->elementMap; - $elementMap['{DAV:}prop'] = 'Sabre\DAV\Xml\Element\Prop'; - $elementMap['{DAV:}set'] = 'Sabre\Xml\Element\KeyValue'; + $elementMap['{DAV:}prop'] = 'Sabre\DAV\Xml\Element\Prop'; + $elementMap['{DAV:}set'] = 'Sabre\Xml\Element\KeyValue'; $elems = $reader->parseInnerTree($elementMap); foreach ($elems as $elem) { diff --git a/vendor/sabre/dav/lib/CalDAV/Xml/Request/Share.php b/vendor/sabre/dav/lib/CalDAV/Xml/Request/Share.php index b5d9a133c..e0bd8e0af 100644 --- a/vendor/sabre/dav/lib/CalDAV/Xml/Request/Share.php +++ b/vendor/sabre/dav/lib/CalDAV/Xml/Request/Share.php @@ -41,7 +41,7 @@ class Share implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CardDAV/AddressBook.php b/vendor/sabre/dav/lib/CardDAV/AddressBook.php index 6dd098618..c9d28a091 100644 --- a/vendor/sabre/dav/lib/CardDAV/AddressBook.php +++ b/vendor/sabre/dav/lib/CardDAV/AddressBook.php @@ -60,7 +60,7 @@ class AddressBook extends DAV\Collection implements IAddressBook, DAV\IPropertie * Returns a card * * @param string $name - * @return \ICard + * @return Card */ function getChild($name) { diff --git a/vendor/sabre/dav/lib/CardDAV/AddressBookHome.php b/vendor/sabre/dav/lib/CardDAV/AddressBookHome.php index 888a44a40..d770c0ffe 100644 --- a/vendor/sabre/dav/lib/CardDAV/AddressBookHome.php +++ b/vendor/sabre/dav/lib/CardDAV/AddressBookHome.php @@ -127,7 +127,7 @@ class AddressBookHome extends DAV\Collection implements DAV\IExtendedCollection, * * @param string $name * @todo needs optimizing - * @return \AddressBook + * @return AddressBook */ function getChild($name) { diff --git a/vendor/sabre/dav/lib/CardDAV/AddressBookRoot.php b/vendor/sabre/dav/lib/CardDAV/AddressBookRoot.php index 4a33df4ec..a9f1183da 100644 --- a/vendor/sabre/dav/lib/CardDAV/AddressBookRoot.php +++ b/vendor/sabre/dav/lib/CardDAV/AddressBookRoot.php @@ -18,7 +18,7 @@ class AddressBookRoot extends DAVACL\AbstractPrincipalCollection { /** * Principal Backend * - * @var Sabre\DAVACL\PrincipalBackend\BackendInteface + * @var DAVACL\PrincipalBackend\BackendInterface */ protected $principalBackend; diff --git a/vendor/sabre/dav/lib/CardDAV/Backend/BackendInterface.php b/vendor/sabre/dav/lib/CardDAV/Backend/BackendInterface.php index 54e42b899..18c0c0a99 100644 --- a/vendor/sabre/dav/lib/CardDAV/Backend/BackendInterface.php +++ b/vendor/sabre/dav/lib/CardDAV/Backend/BackendInterface.php @@ -46,7 +46,7 @@ interface BackendInterface { * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * * @param string $addressBookId * @param \Sabre\DAV\PropPatch $propPatch diff --git a/vendor/sabre/dav/lib/CardDAV/Backend/PDO.php b/vendor/sabre/dav/lib/CardDAV/Backend/PDO.php index 7c3feff93..13487e9da 100644 --- a/vendor/sabre/dav/lib/CardDAV/Backend/PDO.php +++ b/vendor/sabre/dav/lib/CardDAV/Backend/PDO.php @@ -93,7 +93,7 @@ class PDO extends AbstractBackend implements SyncSupport { * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * * @param string $addressBookId * @param \Sabre\DAV\PropPatch $propPatch @@ -240,7 +240,7 @@ class PDO extends AbstractBackend implements SyncSupport { } /** - * Returns a specfic card. + * Returns a specific card. * * The same set of properties must be returned as with getCards. The only * exception is that 'carddata' is absolutely required. @@ -466,7 +466,7 @@ class PDO extends AbstractBackend implements SyncSupport { // Current synctoken $stmt = $this->pdo->prepare('SELECT synctoken FROM ' . $this->addressBooksTableName . ' WHERE id = ?'); - $stmt->execute([ $addressBookId ]); + $stmt->execute([$addressBookId]); $currentToken = $stmt->fetchColumn(0); if (is_null($currentToken)) return null; diff --git a/vendor/sabre/dav/lib/CardDAV/Card.php b/vendor/sabre/dav/lib/CardDAV/Card.php index 0a040be6b..42a2d7b6a 100644 --- a/vendor/sabre/dav/lib/CardDAV/Card.php +++ b/vendor/sabre/dav/lib/CardDAV/Card.php @@ -2,8 +2,8 @@ namespace Sabre\CardDAV; -use Sabre\DAVACL; use Sabre\DAV; +use Sabre\DAVACL; /** * The Card object represents a single Card from an addressbook diff --git a/vendor/sabre/dav/lib/CardDAV/Plugin.php b/vendor/sabre/dav/lib/CardDAV/Plugin.php index 0507df100..272ae71fa 100644 --- a/vendor/sabre/dav/lib/CardDAV/Plugin.php +++ b/vendor/sabre/dav/lib/CardDAV/Plugin.php @@ -43,7 +43,7 @@ class Plugin extends DAV\ServerPlugin { /** * Server class * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; @@ -490,7 +490,8 @@ class Plugin extends DAV\ServerPlugin { $props[200]['{' . self::NS_CARDDAV . '}address-data'] = $this->convertVCard( $props[200]['{' . self::NS_CARDDAV . '}address-data'], - $vcardType + $vcardType, + $report->addressDataProperties ); } @@ -845,14 +846,26 @@ class Plugin extends DAV\ServerPlugin { * * @param string|resource $data * @param string $target + * @param array $propertiesFilter * @return string */ - protected function convertVCard($data, $target) { + protected function convertVCard($data, $target, array $propertiesFilter = null) { if (is_resource($data)) { $data = stream_get_contents($data); } $input = VObject\Reader::read($data); + if (!empty($propertiesFilter)) { + $propertiesFilter = array_merge(['UID', 'VERSION', 'FN'], $propertiesFilter); + $keys = array_unique(array_map(function($child) { + return $child->name; + }, $input->children())); + $keys = array_diff($keys, $propertiesFilter); + foreach ($keys as $key) { + unset($input->$key); + } + $data = $input->serialize(); + } $output = null; try { diff --git a/vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php b/vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php index d015589ad..2d61db6ac 100644 --- a/vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php +++ b/vendor/sabre/dav/lib/CardDAV/VCFExportPlugin.php @@ -3,9 +3,9 @@ namespace Sabre\CardDAV; use Sabre\DAV; -use Sabre\VObject; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; +use Sabre\VObject; /** * VCF Exporter @@ -24,7 +24,7 @@ class VCFExportPlugin extends DAV\ServerPlugin { /** * Reference to Server class * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; diff --git a/vendor/sabre/dav/lib/CardDAV/Xml/Filter/AddressData.php b/vendor/sabre/dav/lib/CardDAV/Xml/Filter/AddressData.php index 34028db85..a130cd61d 100644 --- a/vendor/sabre/dav/lib/CardDAV/Xml/Filter/AddressData.php +++ b/vendor/sabre/dav/lib/CardDAV/Xml/Filter/AddressData.php @@ -26,7 +26,7 @@ class AddressData implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are @@ -51,7 +51,11 @@ class AddressData implements XmlDeserializable { 'version' => $reader->getAttribute('version') ?: '3.0', ]; - $reader->next(); + $elems = (array)$reader->parseInnerTree(); + $result['addressDataProperties'] = array_map(function($element) { + return $element['attributes']['name']; + }, $elems); + return $result; } diff --git a/vendor/sabre/dav/lib/CardDAV/Xml/Filter/ParamFilter.php b/vendor/sabre/dav/lib/CardDAV/Xml/Filter/ParamFilter.php index 9646ae3e6..936e26917 100644 --- a/vendor/sabre/dav/lib/CardDAV/Xml/Filter/ParamFilter.php +++ b/vendor/sabre/dav/lib/CardDAV/Xml/Filter/ParamFilter.php @@ -2,10 +2,10 @@ namespace Sabre\CardDAV\Xml\Filter; +use Sabre\CardDAV\Plugin; +use Sabre\DAV\Exception\BadRequest; use Sabre\Xml\Element; use Sabre\Xml\Reader; -use Sabre\DAV\Exception\BadRequest; -use Sabre\CardDAV\Plugin; /** * ParamFilter parser. @@ -26,7 +26,7 @@ abstract class ParamFilter implements Element { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CardDAV/Xml/Filter/PropFilter.php b/vendor/sabre/dav/lib/CardDAV/Xml/Filter/PropFilter.php index c162da160..d7799429d 100644 --- a/vendor/sabre/dav/lib/CardDAV/Xml/Filter/PropFilter.php +++ b/vendor/sabre/dav/lib/CardDAV/Xml/Filter/PropFilter.php @@ -2,10 +2,10 @@ namespace Sabre\CardDAV\Xml\Filter; +use Sabre\CardDAV\Plugin; +use Sabre\DAV\Exception\BadRequest; use Sabre\Xml\Reader; use Sabre\Xml\XmlDeserializable; -use Sabre\DAV\Exception\BadRequest; -use Sabre\CardDAV\Plugin; /** * PropFilter parser. @@ -26,7 +26,7 @@ class PropFilter implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CardDAV/Xml/Property/SupportedAddressData.php b/vendor/sabre/dav/lib/CardDAV/Xml/Property/SupportedAddressData.php index 6ff57b6e3..aecd8a09f 100644 --- a/vendor/sabre/dav/lib/CardDAV/Xml/Property/SupportedAddressData.php +++ b/vendor/sabre/dav/lib/CardDAV/Xml/Property/SupportedAddressData.php @@ -2,9 +2,9 @@ namespace Sabre\CardDAV\Xml\Property; +use Sabre\CardDAV\Plugin; use Sabre\Xml\Writer; use Sabre\Xml\XmlSerializable; -use Sabre\CardDAV\Plugin; /** * Supported-address-data property @@ -49,12 +49,12 @@ class SupportedAddressData implements XmlSerializable { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/CardDAV/Xml/Property/SupportedCollationSet.php b/vendor/sabre/dav/lib/CardDAV/Xml/Property/SupportedCollationSet.php index 1fc064900..778aa2b64 100644 --- a/vendor/sabre/dav/lib/CardDAV/Xml/Property/SupportedCollationSet.php +++ b/vendor/sabre/dav/lib/CardDAV/Xml/Property/SupportedCollationSet.php @@ -18,12 +18,12 @@ use Sabre\Xml\XmlSerializable; class SupportedCollationSet implements XmlSerializable { /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookMultiGetReport.php b/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookMultiGetReport.php index c97c5eb4f..0115a0107 100644 --- a/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookMultiGetReport.php +++ b/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookMultiGetReport.php @@ -54,7 +54,7 @@ class AddressBookMultiGetReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookQueryReport.php b/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookQueryReport.php index a68ac5800..09fad008a 100644 --- a/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookQueryReport.php +++ b/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookQueryReport.php @@ -2,10 +2,10 @@ namespace Sabre\CardDAV\Xml\Request; +use Sabre\CardDAV\Plugin; +use Sabre\DAV\Exception\BadRequest; use Sabre\Xml\Reader; use Sabre\Xml\XmlDeserializable; -use Sabre\DAV\Exception\BadRequest; -use Sabre\CardDAV\Plugin; /** * AddressBookQueryReport request parser. @@ -29,6 +29,13 @@ class AddressBookQueryReport implements XmlDeserializable { public $properties; /** + * An array with requested vcard properties. + * + * @var array + */ + public $addressDataProperties = []; + + /** * List of property/component filters. * * This is an array with filters. Every item is a property filter. Every @@ -92,7 +99,7 @@ class AddressBookQueryReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Auth/Backend/AbstractDigest.php b/vendor/sabre/dav/lib/DAV/Auth/Backend/AbstractDigest.php index 85c5f30d5..4b47f56c9 100644 --- a/vendor/sabre/dav/lib/DAV/Auth/Backend/AbstractDigest.php +++ b/vendor/sabre/dav/lib/DAV/Auth/Backend/AbstractDigest.php @@ -2,8 +2,8 @@ namespace Sabre\DAV\Auth\Backend; -use Sabre\HTTP; use Sabre\DAV; +use Sabre\HTTP; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; diff --git a/vendor/sabre/dav/lib/DAV/Auth/Backend/PDO.php b/vendor/sabre/dav/lib/DAV/Auth/Backend/PDO.php index 76ad89391..c2f6de974 100644 --- a/vendor/sabre/dav/lib/DAV/Auth/Backend/PDO.php +++ b/vendor/sabre/dav/lib/DAV/Auth/Backend/PDO.php @@ -31,7 +31,7 @@ class PDO extends AbstractDigest { * * If the filename argument is passed in, it will parse out the specified file fist. * - * @param PDO $pdo + * @param \PDO $pdo */ function __construct(\PDO $pdo) { diff --git a/vendor/sabre/dav/lib/DAV/Auth/Plugin.php b/vendor/sabre/dav/lib/DAV/Auth/Plugin.php index 4b5f35ac3..bbb5d180d 100644 --- a/vendor/sabre/dav/lib/DAV/Auth/Plugin.php +++ b/vendor/sabre/dav/lib/DAV/Auth/Plugin.php @@ -2,11 +2,11 @@ namespace Sabre\DAV\Auth; -use Sabre\HTTP\RequestInterface; -use Sabre\HTTP\ResponseInterface; use Sabre\DAV\Exception\NotAuthenticated; use Sabre\DAV\Server; use Sabre\DAV\ServerPlugin; +use Sabre\HTTP\RequestInterface; +use Sabre\HTTP\ResponseInterface; /** * This plugin provides Authentication for a WebDAV server. @@ -181,7 +181,7 @@ class Plugin extends ServerPlugin { * * If login was not successful, the second item in the array will contain a * an array with strings. The strings are a list of reasons why login was - * unsuccesful. For every auth backend there will be one reason, so usually + * unsuccessful. For every auth backend there will be one reason, so usually * there's just one. * * @param RequestInterface $request diff --git a/vendor/sabre/dav/lib/DAV/Browser/GuessContentType.php b/vendor/sabre/dav/lib/DAV/Browser/GuessContentType.php index 01cddc230..3ba2aee25 100644 --- a/vendor/sabre/dav/lib/DAV/Browser/GuessContentType.php +++ b/vendor/sabre/dav/lib/DAV/Browser/GuessContentType.php @@ -2,10 +2,10 @@ namespace Sabre\DAV\Browser; -use Sabre\HTTP\URLUtil; use Sabre\DAV; -use Sabre\DAV\PropFind; use Sabre\DAV\Inode; +use Sabre\DAV\PropFind; +use Sabre\HTTP\URLUtil; /** * GuessContentType plugin diff --git a/vendor/sabre/dav/lib/DAV/Browser/MapGetToPropFind.php b/vendor/sabre/dav/lib/DAV/Browser/MapGetToPropFind.php index 38ee63bcd..61327c49a 100644 --- a/vendor/sabre/dav/lib/DAV/Browser/MapGetToPropFind.php +++ b/vendor/sabre/dav/lib/DAV/Browser/MapGetToPropFind.php @@ -21,7 +21,7 @@ class MapGetToPropFind extends DAV\ServerPlugin { /** * reference to server class * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; diff --git a/vendor/sabre/dav/lib/DAV/Browser/Plugin.php b/vendor/sabre/dav/lib/DAV/Browser/Plugin.php index 49359a045..545ad5633 100644 --- a/vendor/sabre/dav/lib/DAV/Browser/Plugin.php +++ b/vendor/sabre/dav/lib/DAV/Browser/Plugin.php @@ -4,9 +4,9 @@ namespace Sabre\DAV\Browser; use Sabre\DAV; use Sabre\DAV\MkCol; -use Sabre\HTTP\URLUtil; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; +use Sabre\HTTP\URLUtil; /** * Browser Plugin @@ -26,7 +26,7 @@ class Plugin extends DAV\ServerPlugin { /** * reference to server class * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; @@ -112,7 +112,7 @@ class Plugin extends DAV\ServerPlugin { $getVars = $request->getQueryParameters(); // CSP headers - $this->server->httpResponse->setHeader('Content-Security-Policy', "default-src 'none'; img-src 'self'; style-src 'self'; font-src 'self';"); + $response->setHeader('Content-Security-Policy', "default-src 'none'; img-src 'self'; style-src 'self'; font-src 'self';"); $sabreAction = isset($getVars['sabreAction']) ? $getVars['sabreAction'] : null; @@ -317,7 +317,7 @@ class Plugin extends DAV\ServerPlugin { $buttonActions = ''; if ($subProps['subNode'] instanceof DAV\IFile) { - $buttonActions = '<a href="' . $this->escapeHTML($subProps['fullPath']) . '?sabreAction=info"><span class="oi" data-glyph="info"></span></a>'; + $buttonActions = '<a href="' . $this->escapeHTML($subProps['fullPath']) . '?sabreAction=info"><span class="oi" data-glyph="info"></span></a>'; } $this->server->emit('browserButtonActions', [$subProps['fullPath'], $subProps['subNode'], &$buttonActions]); @@ -414,11 +414,14 @@ class Plugin extends DAV\ServerPlugin { * * @param string $title * @param string $path - * @return void + * @return string */ function generateHeader($title, $path = null) { - $version = DAV\Version::VERSION; + $version = ''; + if (DAV\Server::$exposeVersion) { + $version = DAV\Version::VERSION; + } $vars = [ 'title' => $this->escapeHTML($title), @@ -475,7 +478,10 @@ HTML; */ function generateFooter() { - $version = DAV\Version::VERSION; + $version = ''; + if (DAV\Server::$exposeVersion) { + $version = DAV\Version::VERSION; + } return <<<HTML <footer>Generated by SabreDAV $version (c)2007-2016 <a href="http://sabre.io/">http://sabre.io/</a></footer> </body> @@ -506,23 +512,21 @@ HTML; if (get_class($node) === 'Sabre\\DAV\\SimpleCollection') return; - ob_start(); - echo '<form method="post" action=""> - <h3>Create new folder</h3> - <input type="hidden" name="sabreAction" value="mkcol" /> - <label>Name:</label> <input type="text" name="name" /><br /> - <input type="submit" value="create" /> - </form> - <form method="post" action="" enctype="multipart/form-data"> - <h3>Upload file</h3> - <input type="hidden" name="sabreAction" value="put" /> - <label>Name (optional):</label> <input type="text" name="name" /><br /> - <label>File:</label> <input type="file" name="file" /><br /> - <input type="submit" value="upload" /> - </form> - '; - - $output .= ob_get_clean(); + $output .= <<<HTML +<form method="post" action=""> +<h3>Create new folder</h3> +<input type="hidden" name="sabreAction" value="mkcol" /> +<label>Name:</label> <input type="text" name="name" /><br /> +<input type="submit" value="create" /> +</form> +<form method="post" action="" enctype="multipart/form-data"> +<h3>Upload file</h3> +<input type="hidden" name="sabreAction" value="put" /> +<label>Name (optional):</label> <input type="text" name="name" /><br /> +<label>File:</label> <input type="file" name="file" /><br /> +<input type="submit" value="upload" /> +</form> +HTML; } @@ -543,8 +547,8 @@ HTML; * This method returns a local pathname to an asset. * * @param string $assetName - * @return string * @throws DAV\Exception\NotFound + * @return string */ protected function getLocalAssetPath($assetName) { @@ -575,9 +579,9 @@ HTML; // Rudimentary mime type detection $mime = 'application/octet-stream'; $map = [ - 'ico' => 'image/vnd.microsoft.icon', - 'png' => 'image/png', - 'css' => 'text/css', + 'ico' => 'image/vnd.microsoft.icon', + 'png' => 'image/png', + 'css' => 'text/css', ]; $ext = substr($assetName, strrpos($assetName, '.') + 1); @@ -623,7 +627,7 @@ HTML; * Maps a resource type to a human-readable string and icon. * * @param array $resourceTypes - * @param INode $node + * @param DAV\INode $node * @return array */ private function mapResourceType(array $resourceTypes, $node) { diff --git a/vendor/sabre/dav/lib/DAV/Browser/PropFindAll.php b/vendor/sabre/dav/lib/DAV/Browser/PropFindAll.php index 1ac439672..c14b7f2f9 100644 --- a/vendor/sabre/dav/lib/DAV/Browser/PropFindAll.php +++ b/vendor/sabre/dav/lib/DAV/Browser/PropFindAll.php @@ -28,7 +28,7 @@ class PropFindAll extends PropFind { /** * Handles a specific property. * - * This method checks wether the specified property was requested in this + * This method checks whether the specified property was requested in this * PROPFIND request, and if so, it will call the callback and use the * return value for it's value. * diff --git a/vendor/sabre/dav/lib/DAV/Client.php b/vendor/sabre/dav/lib/DAV/Client.php index 08d5d4702..175ad1bc4 100644 --- a/vendor/sabre/dav/lib/DAV/Client.php +++ b/vendor/sabre/dav/lib/DAV/Client.php @@ -231,7 +231,7 @@ class Client extends HTTP\Client { $response = $this->send($request); if ((int)$response->getStatus() >= 400) { - throw new \Sabre\HTTP\ClientHttpException($response); + throw new HTTP\ClientHttpException($response); } $result = $this->parseMultiStatus($response->getBodyAsString()); @@ -281,7 +281,7 @@ class Client extends HTTP\Client { $response = $this->send($request); if ($response->getStatus() >= 400) { - throw new \Sabre\HTTP\ClientHttpException($response); + throw new HTTP\ClientHttpException($response); } if ($response->getStatus() === 207) { @@ -303,7 +303,7 @@ class Client extends HTTP\Client { } if ($errorProperties) { - throw new \Sabre\HTTP\ClientException('PROPPATCH failed. The following properties errored: ' . implode(', ', $errorProperties)); + throw new HTTP\ClientException('PROPPATCH failed. The following properties errored: ' . implode(', ', $errorProperties)); } } return true; diff --git a/vendor/sabre/dav/lib/DAV/Collection.php b/vendor/sabre/dav/lib/DAV/Collection.php index a46bcc342..35c90b5af 100644 --- a/vendor/sabre/dav/lib/DAV/Collection.php +++ b/vendor/sabre/dav/lib/DAV/Collection.php @@ -68,7 +68,7 @@ abstract class Collection extends Node implements ICollection { * Data will either be supplied as a stream resource, or in certain cases * as a string. Keep in mind that you may have to support either. * - * After succesful creation of the file, you may choose to return the ETag + * After successful creation of the file, you may choose to return the ETag * of the new file here. * * The returned ETag must be surrounded by double-quotes (The quotes should diff --git a/vendor/sabre/dav/lib/DAV/CorePlugin.php b/vendor/sabre/dav/lib/DAV/CorePlugin.php index a1b052915..676cdd04a 100644 --- a/vendor/sabre/dav/lib/DAV/CorePlugin.php +++ b/vendor/sabre/dav/lib/DAV/CorePlugin.php @@ -165,7 +165,7 @@ class CorePlugin extends ServerPlugin { } else { $start = $nodeSize - $range[1]; - $end = $nodeSize - 1; + $end = $nodeSize - 1; if ($start < 0) $start = 0; @@ -194,7 +194,7 @@ class CorePlugin extends ServerPlugin { $response->setBody($body); } - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -224,7 +224,7 @@ class CorePlugin extends ServerPlugin { $response->setHeader('Content-Length', '0'); $response->setStatus(200); - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -264,7 +264,7 @@ class CorePlugin extends ServerPlugin { $response->setHeader('X-Sabre-Real-Status', $e->getHTTPCode()); } - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -290,7 +290,7 @@ class CorePlugin extends ServerPlugin { $response->setStatus(204); $response->setHeader('Content-Length', '0'); - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -333,7 +333,7 @@ class CorePlugin extends ServerPlugin { // The only two options for the depth of a propfind is 0 or 1 - as long as depth infinity is not enabled if (!$this->server->enablePropfindDepthInfinity && $depth != 0) $depth = 1; - $newProperties = $this->server->getPropertiesForPath($path, $propFindXml->properties, $depth); + $newProperties = $this->server->getPropertiesIteratorForPath($path, $propFindXml->properties, $depth); // This is a multi-status response $response->setStatus(207); @@ -355,7 +355,7 @@ class CorePlugin extends ServerPlugin { $data = $this->server->generateMultiStatus($newProperties, $minimal); $response->setBody($data); - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -390,7 +390,7 @@ class CorePlugin extends ServerPlugin { if ($prefer['return'] === 'minimal') { // If return-minimal is specified, we only have to check if the - // request was succesful, and don't need to return the + // request was successful, and don't need to return the // multi-status. $ok = true; foreach ($result as $prop => $code) { @@ -427,7 +427,7 @@ class CorePlugin extends ServerPlugin { $this->server->generateMultiStatus([$multiStatus]) ); - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -533,7 +533,7 @@ class CorePlugin extends ServerPlugin { } - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -602,7 +602,7 @@ class CorePlugin extends ServerPlugin { $response->setStatus(201); } - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -653,7 +653,7 @@ class CorePlugin extends ServerPlugin { $response->setHeader('Content-Length', '0'); $response->setStatus($moveInfo['destinationExists'] ? 204 : 201); - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -688,7 +688,7 @@ class CorePlugin extends ServerPlugin { $response->setHeader('Content-Length', '0'); $response->setStatus($copyInfo['destinationExists'] ? 204 : 201); - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -722,7 +722,7 @@ class CorePlugin extends ServerPlugin { } - // Sending back false will interupt the event chain and tell the server + // Sending back false will interrupt the event chain and tell the server // we've handled this method. return false; @@ -740,7 +740,7 @@ class CorePlugin extends ServerPlugin { */ function propPatchProtectedPropertyCheck($path, PropPatch $propPatch) { - // Comparing the mutation list to the list of propetected properties. + // Comparing the mutation list to the list of protected properties. $mutations = $propPatch->getMutations(); $protected = array_intersect( diff --git a/vendor/sabre/dav/lib/DAV/Exception/InvalidResourceType.php b/vendor/sabre/dav/lib/DAV/Exception/InvalidResourceType.php index 505fe5c10..6324d9f3a 100644 --- a/vendor/sabre/dav/lib/DAV/Exception/InvalidResourceType.php +++ b/vendor/sabre/dav/lib/DAV/Exception/InvalidResourceType.php @@ -19,7 +19,7 @@ class InvalidResourceType extends Forbidden { /** * This method allows the exception to include additional information into the WebDAV error response * - * @param DAV\Server $server + * @param \Sabre\DAV\Server $server * @param \DOMElement $errorNode * @return void */ diff --git a/vendor/sabre/dav/lib/DAV/FS/Node.php b/vendor/sabre/dav/lib/DAV/FS/Node.php index 831c11911..424718f96 100644 --- a/vendor/sabre/dav/lib/DAV/FS/Node.php +++ b/vendor/sabre/dav/lib/DAV/FS/Node.php @@ -43,7 +43,7 @@ abstract class Node implements DAV\INode { */ function getName() { - list(, $name) = URLUtil::splitPath($this->path); + list(, $name) = URLUtil::splitPath($this->path); return $name; } diff --git a/vendor/sabre/dav/lib/DAV/File.php b/vendor/sabre/dav/lib/DAV/File.php index 675956b22..5161fbd51 100644 --- a/vendor/sabre/dav/lib/DAV/File.php +++ b/vendor/sabre/dav/lib/DAV/File.php @@ -19,7 +19,7 @@ abstract class File extends Node implements IFile { * * The data argument is a readable stream resource. * - * After a succesful put operation, you may choose to return an ETag. The + * After a successful put operation, you may choose to return an ETag. The * etag must always be surrounded by double-quotes. These quotes must * appear in the actual string you're returning. * diff --git a/vendor/sabre/dav/lib/DAV/IFile.php b/vendor/sabre/dav/lib/DAV/IFile.php index 37e7cd33c..19d8d8637 100644 --- a/vendor/sabre/dav/lib/DAV/IFile.php +++ b/vendor/sabre/dav/lib/DAV/IFile.php @@ -20,7 +20,7 @@ interface IFile extends INode { * * The data argument is a readable stream resource. * - * After a succesful put operation, you may choose to return an ETag. The + * After a successful put operation, you may choose to return an ETag. The * etag must always be surrounded by double-quotes. These quotes must * appear in the actual string you're returning. * @@ -32,7 +32,7 @@ interface IFile extends INode { * different object on a subsequent GET you are strongly recommended to not * return an ETag, and just return null. * - * @param resource|data $data + * @param resource|string $data * @return string|null */ function put($data); diff --git a/vendor/sabre/dav/lib/DAV/IMoveTarget.php b/vendor/sabre/dav/lib/DAV/IMoveTarget.php index f0f67bc26..92fde1d5c 100644 --- a/vendor/sabre/dav/lib/DAV/IMoveTarget.php +++ b/vendor/sabre/dav/lib/DAV/IMoveTarget.php @@ -7,7 +7,7 @@ namespace Sabre\DAV; * nodes may be moved into this collection". * * The benefit of this, is that sabre/dav will by default perform a move, by - * tranfersing an entire directory tree, copying every collection, and deleting + * transferring an entire directory tree, copying every collection, and deleting * every item. * * If a backend supports a better optimized move operation, this can trigger diff --git a/vendor/sabre/dav/lib/DAV/Locks/Backend/PDO.php b/vendor/sabre/dav/lib/DAV/Locks/Backend/PDO.php index a01d9bae4..510f266f7 100644 --- a/vendor/sabre/dav/lib/DAV/Locks/Backend/PDO.php +++ b/vendor/sabre/dav/lib/DAV/Locks/Backend/PDO.php @@ -33,7 +33,7 @@ class PDO extends AbstractBackend { /** * Constructor * - * @param PDO $pdo + * @param \PDO $pdo */ function __construct(\PDO $pdo) { @@ -102,7 +102,7 @@ class PDO extends AbstractBackend { $lockInfo->created = $row['created']; $lockInfo->scope = $row['scope']; $lockInfo->depth = $row['depth']; - $lockInfo->uri = $row['uri']; + $lockInfo->uri = $row['uri']; $lockList[] = $lockInfo; } diff --git a/vendor/sabre/dav/lib/DAV/Locks/Plugin.php b/vendor/sabre/dav/lib/DAV/Locks/Plugin.php index 4855b7076..41a3bf3fa 100644 --- a/vendor/sabre/dav/lib/DAV/Locks/Plugin.php +++ b/vendor/sabre/dav/lib/DAV/Locks/Plugin.php @@ -25,14 +25,14 @@ class Plugin extends DAV\ServerPlugin { /** * locksBackend * - * @var Backend\Backend\Interface + * @var Backend\BackendInterface */ protected $locksBackend; /** * server * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; @@ -256,7 +256,7 @@ class Plugin extends DAV\ServerPlugin { $response->setStatus($newFile ? 201 : 200); $response->setBody($this->generateLockResponse($lockInfo)); - // Returning false will interupt the event chain and mark this method + // Returning false will interrupt the event chain and mark this method // as 'handled'. return false; diff --git a/vendor/sabre/dav/lib/DAV/MkCol.php b/vendor/sabre/dav/lib/DAV/MkCol.php index c79055418..042e14bca 100644 --- a/vendor/sabre/dav/lib/DAV/MkCol.php +++ b/vendor/sabre/dav/lib/DAV/MkCol.php @@ -61,6 +61,7 @@ class MkCol extends PropPatch { * checked. * * @param string|string[] $resourceType + * @return bool */ function hasResourceType($resourceType) { diff --git a/vendor/sabre/dav/lib/DAV/Mount/Plugin.php b/vendor/sabre/dav/lib/DAV/Mount/Plugin.php index 8e06acb9f..dc923ad85 100644 --- a/vendor/sabre/dav/lib/DAV/Mount/Plugin.php +++ b/vendor/sabre/dav/lib/DAV/Mount/Plugin.php @@ -20,7 +20,7 @@ class Plugin extends DAV\ServerPlugin { /** * Reference to Server class * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; diff --git a/vendor/sabre/dav/lib/DAV/Node.php b/vendor/sabre/dav/lib/DAV/Node.php index ba270e8f9..ef6eea18e 100644 --- a/vendor/sabre/dav/lib/DAV/Node.php +++ b/vendor/sabre/dav/lib/DAV/Node.php @@ -29,7 +29,7 @@ abstract class Node implements INode { /** * Deletes the current node * - * @throws Sabre\DAV\Exception\Forbidden + * @throws Exception\Forbidden * @return void */ function delete() { @@ -41,8 +41,8 @@ abstract class Node implements INode { /** * Renames the node * - * @throws Sabre\DAV\Exception\Forbidden * @param string $name The new name + * @throws Exception\Forbidden * @return void */ function setName($name) { diff --git a/vendor/sabre/dav/lib/DAV/PartialUpdate/Plugin.php b/vendor/sabre/dav/lib/DAV/PartialUpdate/Plugin.php index 24ba970b1..9c129d705 100644 --- a/vendor/sabre/dav/lib/DAV/PartialUpdate/Plugin.php +++ b/vendor/sabre/dav/lib/DAV/PartialUpdate/Plugin.php @@ -29,7 +29,7 @@ class Plugin extends DAV\ServerPlugin { /** * Reference to server * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; diff --git a/vendor/sabre/dav/lib/DAV/PropFind.php b/vendor/sabre/dav/lib/DAV/PropFind.php index 8ae6b6cfd..0940a1ce2 100644 --- a/vendor/sabre/dav/lib/DAV/PropFind.php +++ b/vendor/sabre/dav/lib/DAV/PropFind.php @@ -72,7 +72,7 @@ class PropFind { /** * Handles a specific property. * - * This method checks wether the specified property was requested in this + * This method checks whether the specified property was requested in this * PROPFIND request, and if so, it will call the callback and use the * return value for it's value. * diff --git a/vendor/sabre/dav/lib/DAV/PropertyStorage/Backend/BackendInterface.php b/vendor/sabre/dav/lib/DAV/PropertyStorage/Backend/BackendInterface.php index 31ecafdb2..b15d7fef9 100644 --- a/vendor/sabre/dav/lib/DAV/PropertyStorage/Backend/BackendInterface.php +++ b/vendor/sabre/dav/lib/DAV/PropertyStorage/Backend/BackendInterface.php @@ -23,7 +23,7 @@ interface BackendInterface { * This method received a PropFind object, which contains all the * information about the properties that need to be fetched. * - * Ususually you would just want to call 'get404Properties' on this object, + * Usually you would just want to call 'get404Properties' on this object, * as this will give you the _exact_ list of properties that need to be * fetched, and haven't yet. * diff --git a/vendor/sabre/dav/lib/DAV/PropertyStorage/Backend/PDO.php b/vendor/sabre/dav/lib/DAV/PropertyStorage/Backend/PDO.php index 2fe843884..6f3f1feaf 100644 --- a/vendor/sabre/dav/lib/DAV/PropertyStorage/Backend/PDO.php +++ b/vendor/sabre/dav/lib/DAV/PropertyStorage/Backend/PDO.php @@ -66,7 +66,7 @@ class PDO implements BackendInterface { * This method received a PropFind object, which contains all the * information about the properties that need to be fetched. * - * Ususually you would just want to call 'get404Properties' on this object, + * Usually you would just want to call 'get404Properties' on this object, * as this will give you the _exact_ list of properties that need to be * fetched, and haven't yet. * diff --git a/vendor/sabre/dav/lib/DAV/PropertyStorage/Plugin.php b/vendor/sabre/dav/lib/DAV/PropertyStorage/Plugin.php index 0c28b7882..a66a14113 100644 --- a/vendor/sabre/dav/lib/DAV/PropertyStorage/Plugin.php +++ b/vendor/sabre/dav/lib/DAV/PropertyStorage/Plugin.php @@ -2,11 +2,11 @@ namespace Sabre\DAV\PropertyStorage; +use Sabre\DAV\INode; +use Sabre\DAV\PropFind; +use Sabre\DAV\PropPatch; use Sabre\DAV\Server; use Sabre\DAV\ServerPlugin; -use Sabre\DAV\PropPatch; -use Sabre\DAV\PropFind; -use Sabre\DAV\INode; /** * PropertyStorage Plugin. @@ -30,7 +30,7 @@ class Plugin extends ServerPlugin { * paths, you can use a pathFilter to do this. * * The pathFilter should be a callable. The callable retrieves a path as - * its argument, and should return true or false wether it allows + * its argument, and should return true or false whether it allows * properties to be stored. * * @var callable @@ -38,6 +38,11 @@ class Plugin extends ServerPlugin { public $pathFilter; /** + * @var Backend\BackendInterface + */ + public $backend; + + /** * Creates the plugin * * @param Backend\BackendInterface $backend diff --git a/vendor/sabre/dav/lib/DAV/Server.php b/vendor/sabre/dav/lib/DAV/Server.php index 024b7a557..6805ec0b0 100644 --- a/vendor/sabre/dav/lib/DAV/Server.php +++ b/vendor/sabre/dav/lib/DAV/Server.php @@ -2,16 +2,16 @@ namespace Sabre\DAV; +use Psr\Log\LoggerAwareInterface; +use Psr\Log\LoggerAwareTrait; +use Psr\Log\LoggerInterface; +use Psr\Log\NullLogger; use Sabre\Event\EventEmitter; use Sabre\HTTP; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; use Sabre\HTTP\URLUtil; use Sabre\Uri; -use Psr\Log\LoggerAwareInterface; -use Psr\Log\LoggerAwareTrait; -use Psr\Log\LoggerInterface; -use Psr\Log\NullLogger; /** * Main DAV server class @@ -37,7 +37,7 @@ class Server extends EventEmitter implements LoggerAwareInterface { /** * The tree object * - * @var Sabre\DAV\Tree + * @var Tree */ public $tree; @@ -51,21 +51,21 @@ class Server extends EventEmitter implements LoggerAwareInterface { /** * httpResponse * - * @var Sabre\HTTP\Response + * @var HTTP\Response */ public $httpResponse; /** * httpRequest * - * @var Sabre\HTTP\Request + * @var HTTP\Request */ public $httpRequest; /** * PHP HTTP Sapi * - * @var Sabre\HTTP\Sapi + * @var HTTP\Sapi */ public $sapi; @@ -437,7 +437,7 @@ class Server extends EventEmitter implements LoggerAwareInterface { } /** - * Returns the PSR-3 logger objcet. + * Returns the PSR-3 logger object. * * @return LoggerInterface */ @@ -455,7 +455,7 @@ class Server extends EventEmitter implements LoggerAwareInterface { * * @param RequestInterface $request * @param ResponseInterface $response - * @param $sendResponse Whether to send the HTTP response to the DAV client. + * @param bool $sendResponse Whether to send the HTTP response to the DAV client. * @return void */ function invokeMethod(RequestInterface $request, ResponseInterface $response, $sendResponse = true) { @@ -681,18 +681,18 @@ class Server extends EventEmitter implements LoggerAwareInterface { // can be true or false 'respond-async' => false, // Could be set to 'representation' or 'minimal'. - 'return' => null, + 'return' => null, // Used as a timeout, is usually a number. - 'wait' => null, + 'wait' => null, // can be 'strict' or 'lenient'. - 'handling' => false, + 'handling' => false, ]; if ($prefer = $this->httpRequest->getHeader('Prefer')) { $result = array_merge( $result, - \Sabre\HTTP\parsePrefer($prefer) + HTTP\parsePrefer($prefer) ); } elseif ($this->httpRequest->getHeader('Brief') == 't') { @@ -794,6 +794,7 @@ class Server extends EventEmitter implements LoggerAwareInterface { * * @param string $path * @param array $propertyNames + * @return array */ function getProperties($path, $propertyNames) { @@ -877,12 +878,14 @@ class Server extends EventEmitter implements LoggerAwareInterface { /** * Small helper to support PROPFIND with DEPTH_INFINITY. * - * @param array[] $propFindRequests * @param PropFind $propFind - * @return void + * @param array $yieldFirst + * @return \Iterator */ - private function addPathNodesRecursively(&$propFindRequests, PropFind $propFind) { - + private function generatePathNodes(PropFind $propFind, array $yieldFirst = null) { + if ($yieldFirst !== null) { + yield $yieldFirst; + } $newDepth = $propFind->getDepth(); $path = $propFind->getPath(); @@ -900,13 +903,15 @@ class Server extends EventEmitter implements LoggerAwareInterface { } $subPropFind->setPath($subPath); - $propFindRequests[] = [ + yield [ $subPropFind, $childNode ]; if (($newDepth === self::DEPTH_INFINITY || $newDepth >= 1) && $childNode instanceof ICollection) { - $this->addPathNodesRecursively($propFindRequests, $subPropFind); + foreach ($this->generatePathNodes($subPropFind) as $subItem) { + yield $subItem; + } } } @@ -925,9 +930,31 @@ class Server extends EventEmitter implements LoggerAwareInterface { * @param array $propertyNames * @param int $depth * @return array + * + * @deprecated Use getPropertiesIteratorForPath() instead (as it's more memory efficient) + * @see getPropertiesIteratorForPath() */ function getPropertiesForPath($path, $propertyNames = [], $depth = 0) { + return iterator_to_array($this->getPropertiesIteratorForPath($path, $propertyNames, $depth)); + + } + /** + * Returns a list of properties for a given path + * + * The path that should be supplied should have the baseUrl stripped out + * The list of properties should be supplied in Clark notation. If the list is empty + * 'allprops' is assumed. + * + * If a depth of 1 is requested child elements will also be returned. + * + * @param string $path + * @param array $propertyNames + * @param int $depth + * @return \Iterator + */ + function getPropertiesIteratorForPath($path, $propertyNames = [], $depth = 0) { + // The only two options for the depth of a propfind is 0 or 1 - as long as depth infinity is not enabled if (!$this->enablePropfindDepthInfinity && $depth != 0) $depth = 1; @@ -944,11 +971,9 @@ class Server extends EventEmitter implements LoggerAwareInterface { ]]; if (($depth > 0 || $depth === self::DEPTH_INFINITY) && $parentNode instanceof ICollection) { - $this->addPathNodesRecursively($propFindRequests, $propFind); + $propFindRequests = $this->generatePathNodes(clone $propFind, current($propFindRequests)); } - $returnPropertyList = []; - foreach ($propFindRequests as $propFindRequest) { list($propFind, $node) = $propFindRequest; @@ -965,13 +990,11 @@ class Server extends EventEmitter implements LoggerAwareInterface { if (in_array('{DAV:}collection', $resourceType) || in_array('{DAV:}principal', $resourceType)) { $result['href'] .= '/'; } - $returnPropertyList[] = $result; + yield $result; } } - return $returnPropertyList; - } /** @@ -1430,7 +1453,7 @@ class Server extends EventEmitter implements LoggerAwareInterface { // Plugins are responsible for validating all the tokens. // If a plugin deemed a token 'valid', it will set 'validToken' to // true. - $this->emit('validateTokens', [ $request, &$ifConditions ]); + $this->emit('validateTokens', [$request, &$ifConditions]); // Now we're going to analyze the result. @@ -1450,7 +1473,7 @@ class Server extends EventEmitter implements LoggerAwareInterface { if (!$token['etag']) { $etagValid = true; } - // Checking the ETag, only if the token was already deamed + // Checking the ETag, only if the token was already deemed // valid and there is one. if ($token['etag'] && $tokenValid) { @@ -1626,13 +1649,18 @@ class Server extends EventEmitter implements LoggerAwareInterface { * * If 'strip404s' is set to true, all 404 responses will be removed. * - * @param array $fileProperties The list with nodes - * @param bool strip404s + * @param array|\Traversable $fileProperties The list with nodes + * @param bool $strip404s * @return string */ - function generateMultiStatus(array $fileProperties, $strip404s = false) { + function generateMultiStatus($fileProperties, $strip404s = false) { - $xml = []; + $w = $this->xml->getWriter(); + $w->openMemory(); + $w->contextUri = $this->baseUri; + $w->startDocument(); + + $w->startElement('{DAV:}multistatus'); foreach ($fileProperties as $entry) { @@ -1645,13 +1673,14 @@ class Server extends EventEmitter implements LoggerAwareInterface { ltrim($href, '/'), $entry ); - $xml[] = [ + $w->write([ 'name' => '{DAV:}response', 'value' => $response - ]; - + ]); } - return $this->xml->write('{DAV:}multistatus', $xml, $this->baseUri); + $w->endElement(); + + return $w->outputMemory(); } diff --git a/vendor/sabre/dav/lib/DAV/Sharing/Plugin.php b/vendor/sabre/dav/lib/DAV/Sharing/Plugin.php index 354d06a56..ef5702c57 100644 --- a/vendor/sabre/dav/lib/DAV/Sharing/Plugin.php +++ b/vendor/sabre/dav/lib/DAV/Sharing/Plugin.php @@ -8,8 +8,8 @@ use Sabre\DAV\INode; use Sabre\DAV\PropFind; use Sabre\DAV\Server; use Sabre\DAV\ServerPlugin; -use Sabre\DAV\Xml\Property; use Sabre\DAV\Xml\Element\Sharee; +use Sabre\DAV\Xml\Property; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; @@ -40,7 +40,7 @@ class Plugin extends ServerPlugin { /** * Reference to SabreDAV server object. * - * @var Sabre\DAV\Server + * @var Server */ protected $server; diff --git a/vendor/sabre/dav/lib/DAV/Sync/Plugin.php b/vendor/sabre/dav/lib/DAV/Sync/Plugin.php index 4a141c72b..8e4b1aa64 100644 --- a/vendor/sabre/dav/lib/DAV/Sync/Plugin.php +++ b/vendor/sabre/dav/lib/DAV/Sync/Plugin.php @@ -3,8 +3,8 @@ namespace Sabre\DAV\Sync; use Sabre\DAV; -use Sabre\HTTP\RequestInterface; use Sabre\DAV\Xml\Request\SyncCollectionReport; +use Sabre\HTTP\RequestInterface; /** * This plugin all WebDAV-sync capabilities to the Server. diff --git a/vendor/sabre/dav/lib/DAV/TemporaryFileFilterPlugin.php b/vendor/sabre/dav/lib/DAV/TemporaryFileFilterPlugin.php index c5b8aa1ca..7b453d105 100644 --- a/vendor/sabre/dav/lib/DAV/TemporaryFileFilterPlugin.php +++ b/vendor/sabre/dav/lib/DAV/TemporaryFileFilterPlugin.php @@ -14,7 +14,7 @@ use Sabre\HTTP\URLUtil; * a WebDAV share as a disk. * * It will intercept these files and place them in a separate directory. - * these files are not deleted automatically, so it is adviceable to + * these files are not deleted automatically, so it is advisable to * delete these after they are not accessed for 24 hours. * * Currently it supports: @@ -51,7 +51,7 @@ class TemporaryFileFilterPlugin extends ServerPlugin { /** * A reference to the main Server class * - * @var Sabre\DAV\Server + * @var \Sabre\DAV\Server */ protected $server; @@ -134,12 +134,12 @@ class TemporaryFileFilterPlugin extends ServerPlugin { * * @param string $uri * @param resource $data - * @param DAV\ICollection $parentNode + * @param ICollection $parent * @param bool $modified Should be set to true, if this event handler * changed &$data. * @return bool */ - function beforeCreateFile($uri, $data, $parent, $modified) { + function beforeCreateFile($uri, $data, ICollection $parent, $modified) { if ($tempPath = $this->isTempFile($uri)) { diff --git a/vendor/sabre/dav/lib/DAV/Version.php b/vendor/sabre/dav/lib/DAV/Version.php index 2fda85db8..89918e5bc 100644 --- a/vendor/sabre/dav/lib/DAV/Version.php +++ b/vendor/sabre/dav/lib/DAV/Version.php @@ -14,6 +14,6 @@ class Version { /** * Full version number */ - const VERSION = '3.2.0'; + const VERSION = '3.2.2'; } diff --git a/vendor/sabre/dav/lib/DAV/Xml/Element/Prop.php b/vendor/sabre/dav/lib/DAV/Xml/Element/Prop.php index db5332c50..71ef03e3f 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Element/Prop.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Element/Prop.php @@ -3,8 +3,8 @@ namespace Sabre\DAV\Xml\Element; use Sabre\DAV\Xml\Property\Complex; -use Sabre\Xml\XmlDeserializable; use Sabre\Xml\Reader; +use Sabre\Xml\XmlDeserializable; /** * This class is responsible for decoding the {DAV:}prop element as it appears @@ -22,7 +22,7 @@ class Prop implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are @@ -90,7 +90,7 @@ class Prop implements XmlDeserializable { if (array_key_exists($name, $reader->elementMap)) { $deserializer = $reader->elementMap[$name]; if (is_subclass_of($deserializer, 'Sabre\\Xml\\XmlDeserializable')) { - $value = call_user_func([ $deserializer, 'xmlDeserialize' ], $reader); + $value = call_user_func([$deserializer, 'xmlDeserialize'], $reader); } elseif (is_callable($deserializer)) { $value = call_user_func($deserializer, $reader); } else { diff --git a/vendor/sabre/dav/lib/DAV/Xml/Element/Response.php b/vendor/sabre/dav/lib/DAV/Xml/Element/Response.php index 97a2bb59f..ce97ae943 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Element/Response.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Element/Response.php @@ -160,7 +160,7 @@ class Response implements Element { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Element/Sharee.php b/vendor/sabre/dav/lib/DAV/Xml/Element/Sharee.php index dcfd7bd2e..e187bf11c 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Element/Sharee.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Element/Sharee.php @@ -105,7 +105,7 @@ class Sharee implements Element { * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -146,7 +146,7 @@ class Sharee implements Element { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/Complex.php b/vendor/sabre/dav/lib/DAV/Xml/Property/Complex.php index 1d9202082..258806e4a 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/Complex.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/Complex.php @@ -20,7 +20,7 @@ class Complex extends XmlFragment { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/GetLastModified.php b/vendor/sabre/dav/lib/DAV/Xml/Property/GetLastModified.php index 2db47269f..101a0f0c9 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/GetLastModified.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/GetLastModified.php @@ -2,12 +2,12 @@ namespace Sabre\DAV\Xml\Property; +use DateTime; +use DateTimeZone; +use Sabre\HTTP; use Sabre\Xml\Element; use Sabre\Xml\Reader; use Sabre\Xml\Writer; -use Sabre\HTTP; -use DateTime; -use DateTimeZone; /** * This property represents the {DAV:}getlastmodified property. @@ -83,7 +83,7 @@ class GetLastModified implements Element { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/Href.php b/vendor/sabre/dav/lib/DAV/Xml/Property/Href.php index 0027f72e1..6c4f11b87 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/Href.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/Href.php @@ -4,10 +4,10 @@ namespace Sabre\DAV\Xml\Property; use Sabre\DAV\Browser\HtmlOutput; use Sabre\DAV\Browser\HtmlOutputHelper; +use Sabre\Uri; use Sabre\Xml\Element; use Sabre\Xml\Reader; use Sabre\Xml\Writer; -use Sabre\Uri; /** * Href property @@ -40,7 +40,7 @@ class Href implements Element, HtmlOutput { * If auto-prefix is set to false, the hrefs will be treated as absolute * and not relative to the servers base uri. * - * @param string|string[] $href + * @param string|string[] $hrefs */ function __construct($hrefs) { @@ -74,12 +74,12 @@ class Href implements Element, HtmlOutput { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -128,7 +128,7 @@ class Href implements Element, HtmlOutput { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/Invite.php b/vendor/sabre/dav/lib/DAV/Xml/Property/Invite.php index 0616ff113..6adad3650 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/Invite.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/Invite.php @@ -2,9 +2,9 @@ namespace Sabre\DAV\Xml\Property; -use Sabre\DAV\Sharing\Sharee; -use Sabre\Xml\XmlSerializable; +use Sabre\DAV\Xml\Element\Sharee; use Sabre\Xml\Writer; +use Sabre\Xml\XmlSerializable; /** * This class represents the {DAV:}invite property. @@ -46,7 +46,7 @@ class Invite implements XmlSerializable { * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/LocalHref.php b/vendor/sabre/dav/lib/DAV/Xml/Property/LocalHref.php index 76a27b95d..00d2fa708 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/LocalHref.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/LocalHref.php @@ -8,7 +8,7 @@ use Sabre\HTTP; * LocalHref property * * Like the Href property, this element represents {DAV:}href. The difference - * is that this is used stricly for paths on the server. The LocalHref property + * is that this is used strictly for paths on the server. The LocalHref property * will prepare the path so it's a valid URI. * * These two objects behave identically: @@ -32,7 +32,7 @@ class LocalHref extends Href { * If auto-prefix is set to false, the hrefs will be treated as absolute * and not relative to the servers base uri. * - * @param string|string[] $href + * @param string|string[] $hrefs */ function __construct($hrefs) { diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/ResourceType.php b/vendor/sabre/dav/lib/DAV/Xml/Property/ResourceType.php index 302888321..ce640ff32 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/ResourceType.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/ResourceType.php @@ -28,7 +28,7 @@ class ResourceType extends Element\Elements implements HtmlOutput { * * The resourcetype must be specified in clark-notation * - * @param array|string|null $resourceType + * @param array|string|null $resourceTypes */ function __construct($resourceTypes = null) { @@ -77,7 +77,7 @@ class ResourceType extends Element\Elements implements HtmlOutput { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/ShareAccess.php b/vendor/sabre/dav/lib/DAV/Xml/Property/ShareAccess.php index a3fc6b0e1..939062f76 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/ShareAccess.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/ShareAccess.php @@ -2,8 +2,8 @@ namespace Sabre\DAV\Xml\Property; -use Sabre\DAV\Sharing\Plugin as SharingPlugin; use Sabre\DAV\Exception\BadRequest; +use Sabre\DAV\Sharing\Plugin as SharingPlugin; use Sabre\Xml\Element; use Sabre\Xml\Reader; use Sabre\Xml\Writer; @@ -62,7 +62,7 @@ class ShareAccess implements Element { * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -102,7 +102,7 @@ class ShareAccess implements Element { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedLock.php b/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedLock.php index f6d01aa37..677fdde4b 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedLock.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedLock.php @@ -21,12 +21,12 @@ use Sabre\Xml\XmlSerializable; class SupportedLock implements XmlSerializable { /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -43,11 +43,11 @@ class SupportedLock implements XmlSerializable { $writer->writeElement('{DAV:}lockentry', [ '{DAV:}lockscope' => ['{DAV:}exclusive' => null], - '{DAV:}locktype' => ['{DAV:}write' => null], + '{DAV:}locktype' => ['{DAV:}write' => null], ]); $writer->writeElement('{DAV:}lockentry', [ '{DAV:}lockscope' => ['{DAV:}shared' => null], - '{DAV:}locktype' => ['{DAV:}write' => null], + '{DAV:}locktype' => ['{DAV:}write' => null], ]); } diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedMethodSet.php b/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedMethodSet.php index 7641f3739..1a3878ef7 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedMethodSet.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedMethodSet.php @@ -67,12 +67,12 @@ class SupportedMethodSet implements XmlSerializable, HtmlOutput { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedReportSet.php b/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedReportSet.php index ebf27300d..96383ec96 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedReportSet.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Property/SupportedReportSet.php @@ -98,12 +98,12 @@ class SupportedReportSet implements XmlSerializable, HtmlOutput { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/DAV/Xml/Request/Lock.php b/vendor/sabre/dav/lib/DAV/Xml/Request/Lock.php index 76df98d13..c315a9a45 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Request/Lock.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Request/Lock.php @@ -38,7 +38,7 @@ class Lock implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Request/MkCol.php b/vendor/sabre/dav/lib/DAV/Xml/Request/MkCol.php index 5db239061..9490bf58c 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Request/MkCol.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Request/MkCol.php @@ -40,7 +40,7 @@ class MkCol implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are @@ -63,8 +63,8 @@ class MkCol implements XmlDeserializable { $self = new self(); $elementMap = $reader->elementMap; - $elementMap['{DAV:}prop'] = 'Sabre\DAV\Xml\Element\Prop'; - $elementMap['{DAV:}set'] = 'Sabre\Xml\Element\KeyValue'; + $elementMap['{DAV:}prop'] = 'Sabre\DAV\Xml\Element\Prop'; + $elementMap['{DAV:}set'] = 'Sabre\Xml\Element\KeyValue'; $elementMap['{DAV:}remove'] = 'Sabre\Xml\Element\KeyValue'; $elems = $reader->parseInnerTree($elementMap); diff --git a/vendor/sabre/dav/lib/DAV/Xml/Request/PropFind.php b/vendor/sabre/dav/lib/DAV/Xml/Request/PropFind.php index ad3ad7c43..f1b5b6fdc 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Request/PropFind.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Request/PropFind.php @@ -36,7 +36,7 @@ class PropFind implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Request/PropPatch.php b/vendor/sabre/dav/lib/DAV/Xml/Request/PropPatch.php index 07a05f887..821b9e047 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Request/PropPatch.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Request/PropPatch.php @@ -29,12 +29,12 @@ class PropPatch implements Element { public $properties = []; /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -68,7 +68,7 @@ class PropPatch implements Element { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are @@ -91,8 +91,8 @@ class PropPatch implements Element { $self = new self(); $elementMap = $reader->elementMap; - $elementMap['{DAV:}prop'] = 'Sabre\DAV\Xml\Element\Prop'; - $elementMap['{DAV:}set'] = 'Sabre\Xml\Element\KeyValue'; + $elementMap['{DAV:}prop'] = 'Sabre\DAV\Xml\Element\Prop'; + $elementMap['{DAV:}set'] = 'Sabre\Xml\Element\KeyValue'; $elementMap['{DAV:}remove'] = 'Sabre\Xml\Element\KeyValue'; $elems = $reader->parseInnerTree($elementMap); diff --git a/vendor/sabre/dav/lib/DAV/Xml/Request/ShareResource.php b/vendor/sabre/dav/lib/DAV/Xml/Request/ShareResource.php index 965e5857c..526a4eb6f 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Request/ShareResource.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Request/ShareResource.php @@ -2,9 +2,9 @@ namespace Sabre\DAV\Xml\Request; +use Sabre\DAV\Xml\Element\Sharee; use Sabre\Xml\Reader; use Sabre\Xml\XmlDeserializable; -use Sabre\DAV\Xml\Element\Sharee; /** * ShareResource request parser. @@ -40,7 +40,7 @@ class ShareResource implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAV/Xml/Request/SyncCollectionReport.php b/vendor/sabre/dav/lib/DAV/Xml/Request/SyncCollectionReport.php index 3092ada47..830293a01 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Request/SyncCollectionReport.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Request/SyncCollectionReport.php @@ -2,10 +2,10 @@ namespace Sabre\DAV\Xml\Request; +use Sabre\DAV\Exception\BadRequest; +use Sabre\Xml\Element\KeyValue; use Sabre\Xml\Reader; use Sabre\Xml\XmlDeserializable; -use Sabre\Xml\Element\KeyValue; -use Sabre\DAV\Exception\BadRequest; /** * SyncCollection request parser. @@ -51,7 +51,7 @@ class SyncCollectionReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are @@ -75,7 +75,7 @@ class SyncCollectionReport implements XmlDeserializable { $reader->pushContext(); - $reader->elementMap['{DAV:}prop'] = 'Sabre\Xml\Element\Elements'; + $reader->elementMap['{DAV:}prop'] = 'Sabre\Xml\Element\Elements'; $elems = KeyValue::xmlDeserialize($reader); $reader->popContext(); diff --git a/vendor/sabre/dav/lib/DAV/Xml/Response/MultiStatus.php b/vendor/sabre/dav/lib/DAV/Xml/Response/MultiStatus.php index 16a3d4a68..cf5a0453b 100644 --- a/vendor/sabre/dav/lib/DAV/Xml/Response/MultiStatus.php +++ b/vendor/sabre/dav/lib/DAV/Xml/Response/MultiStatus.php @@ -99,7 +99,7 @@ class MultiStatus implements Element { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAVACL/Exception/NotRecognizedPrincipal.php b/vendor/sabre/dav/lib/DAVACL/Exception/NotRecognizedPrincipal.php index 4349bf101..d7ae188ae 100644 --- a/vendor/sabre/dav/lib/DAVACL/Exception/NotRecognizedPrincipal.php +++ b/vendor/sabre/dav/lib/DAVACL/Exception/NotRecognizedPrincipal.php @@ -5,7 +5,7 @@ namespace Sabre\DAVACL\Exception; use Sabre\DAV; /** - * If a client tried to set a privilege assigned to a non-existant principal, + * If a client tried to set a privilege assigned to a non-existent principal, * this exception will be thrown. * * @copyright Copyright (C) fruux GmbH (https://fruux.com/) diff --git a/vendor/sabre/dav/lib/DAVACL/FS/Collection.php b/vendor/sabre/dav/lib/DAVACL/FS/Collection.php index 1c08b43b1..b4fe7a1b0 100644 --- a/vendor/sabre/dav/lib/DAVACL/FS/Collection.php +++ b/vendor/sabre/dav/lib/DAVACL/FS/Collection.php @@ -2,11 +2,11 @@ namespace Sabre\DAVACL\FS; +use Sabre\DAV\Exception\Forbidden; +use Sabre\DAV\Exception\NotFound; use Sabre\DAV\FSExt\Directory as BaseCollection; use Sabre\DAVACL\ACLTrait; use Sabre\DAVACL\IACL; -use Sabre\DAV\Exception\Forbidden; -use Sabre\DAV\Exception\NotFound; /** * This is an ACL-enabled collection. diff --git a/vendor/sabre/dav/lib/DAVACL/FS/File.php b/vendor/sabre/dav/lib/DAVACL/FS/File.php index 387597bf7..aaf2ae148 100644 --- a/vendor/sabre/dav/lib/DAVACL/FS/File.php +++ b/vendor/sabre/dav/lib/DAVACL/FS/File.php @@ -3,8 +3,8 @@ namespace Sabre\DAVACL\FS; use Sabre\DAV\FSExt\File as BaseFile; -use Sabre\DAVACL\IACL; use Sabre\DAVACL\ACLTrait; +use Sabre\DAVACL\IACL; /** * This is an ACL-enabled file node. diff --git a/vendor/sabre/dav/lib/DAVACL/FS/HomeCollection.php b/vendor/sabre/dav/lib/DAVACL/FS/HomeCollection.php index 9e21353ea..201235e5a 100644 --- a/vendor/sabre/dav/lib/DAVACL/FS/HomeCollection.php +++ b/vendor/sabre/dav/lib/DAVACL/FS/HomeCollection.php @@ -72,7 +72,7 @@ class HomeCollection extends AbstractPrincipalCollection implements IACL { * supplied by the authentication backend. * * @param array $principalInfo - * @return \Sabre\DAVACL\INode + * @return \Sabre\DAV\INode */ function getChildForPrincipal(array $principalInfo) { diff --git a/vendor/sabre/dav/lib/DAVACL/Plugin.php b/vendor/sabre/dav/lib/DAVACL/Plugin.php index 8e912309e..a2aa118d7 100644 --- a/vendor/sabre/dav/lib/DAVACL/Plugin.php +++ b/vendor/sabre/dav/lib/DAVACL/Plugin.php @@ -3,11 +3,12 @@ namespace Sabre\DAVACL; use Sabre\DAV; -use Sabre\DAV\INode; -use Sabre\DAV\Xml\Property\Href; use Sabre\DAV\Exception\BadRequest; -use Sabre\DAV\Exception\NotFound; +use Sabre\DAV\Exception\Forbidden; use Sabre\DAV\Exception\NotAuthenticated; +use Sabre\DAV\Exception\NotFound; +use Sabre\DAV\INode; +use Sabre\DAV\Xml\Property\Href; use Sabre\DAVACL\Exception\NeedPrivileges; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; @@ -53,7 +54,7 @@ class Plugin extends DAV\ServerPlugin { /** * Reference to server object. * - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; @@ -228,14 +229,14 @@ class Plugin extends DAV\ServerPlugin { /** * Returns the standard users' principal. * - * This is one authorative principal url for the current user. + * This is one authoritative principal url for the current user. * This method will return null if the user wasn't logged in. * * @return string|null */ function getCurrentUserPrincipal() { - /** @var $authPlugin Sabre\DAV\Auth\Plugin */ + /** @var $authPlugin \Sabre\DAV\Auth\Plugin */ $authPlugin = $this->server->getPlugin('auth'); if (!$authPlugin) { return null; @@ -283,8 +284,7 @@ class Plugin extends DAV\ServerPlugin { * * These rules are used for all nodes that don't implement the IACL interface. * - * @param array $acl - * @return void + * @return array */ function getDefaultAcl() { @@ -299,7 +299,7 @@ class Plugin extends DAV\ServerPlugin { * set of rules allow anyone to do anything, as long as they are * authenticated. * - * var array + * @var array */ protected $defaultAcl = [ [ @@ -321,7 +321,7 @@ class Plugin extends DAV\ServerPlugin { /** * Returns all the principal groups the specified principal is a member of. * - * @param string $principal + * @param string $mainPrincipal * @return array */ function getPrincipalMembership($mainPrincipal) { @@ -365,7 +365,7 @@ class Plugin extends DAV\ServerPlugin { /** * Find out of a principal equals another principal. * - * This is a quick way to find out wether a principal URI is part of a + * This is a quick way to find out whether a principal URI is part of a * group, or any subgroups. * * The first argument is the principal URI you want to check against. For @@ -373,10 +373,10 @@ class Plugin extends DAV\ServerPlugin { * which you want to find out of it is the same as the first principal, or * in a member of the first principal's group or subgroups. * - * So the arguments are not interchangable. If principal A is in group B, + * So the arguments are not interchangeable. If principal A is in group B, * passing 'B', 'A' will yield true, but 'A', 'B' is false. * - * If the sceond argument is not passed, we will use the current user + * If the second argument is not passed, we will use the current user * principal. * * @param string $checkPrincipal @@ -412,8 +412,8 @@ class Plugin extends DAV\ServerPlugin { * ] * ] * - * Privileges can be nested using "aggregrates". Doing so means that - * if you assign someone the aggregrating privilege, all the + * Privileges can be nested using "aggregates". Doing so means that + * if you assign someone the aggregating privilege, all the * sub-privileges will automatically be granted. * * Marking a privilege as abstract means that the privilege cannot be @@ -484,7 +484,7 @@ class Plugin extends DAV\ServerPlugin { ], ], ]; - if ($node instanceof \Sabre\DAV\ICollection) { + if ($node instanceof DAV\ICollection) { $supportedPrivileges['{DAV:}write']['aggregates']['{DAV:}bind'] = [ 'abstract' => false, 'aggregates' => [], @@ -494,7 +494,7 @@ class Plugin extends DAV\ServerPlugin { 'aggregates' => [], ]; } - if ($node instanceof \Sabre\DAVACL\IACL) { + if ($node instanceof IACL) { $supportedPrivileges['{DAV:}write']['aggregates']['{DAV:}write-acl'] = [ 'abstract' => false, 'aggregates' => [], @@ -980,8 +980,6 @@ class Plugin extends DAV\ServerPlugin { * * @param DAV\PropFind $propFind * @param DAV\INode $node - * @param array $requestedProperties - * @param array $returnedProperties * @TODO really should be broken into multiple methods, or even a class. * @return bool */ @@ -1423,7 +1421,7 @@ class Plugin extends DAV\ServerPlugin { ]; } - // Replacing the property with its expannded form. + // Replacing the property with its expanded form. $node[200][$propertyName] = $childProps; } diff --git a/vendor/sabre/dav/lib/DAVACL/Principal.php b/vendor/sabre/dav/lib/DAVACL/Principal.php index 6ebb30907..d7db94999 100644 --- a/vendor/sabre/dav/lib/DAVACL/Principal.php +++ b/vendor/sabre/dav/lib/DAVACL/Principal.php @@ -41,7 +41,7 @@ class Principal extends DAV\Node implements IPrincipal, DAV\IProperties, IACL { /** * Creates the principal object * - * @param IPrincipalBackend $principalBackend + * @param PrincipalBackend\BackendInterface $principalBackend * @param array $principalProperties */ function __construct(PrincipalBackend\BackendInterface $principalBackend, array $principalProperties = []) { diff --git a/vendor/sabre/dav/lib/DAVACL/PrincipalBackend/BackendInterface.php b/vendor/sabre/dav/lib/DAVACL/PrincipalBackend/BackendInterface.php index 2cb83071a..40b6e33ea 100644 --- a/vendor/sabre/dav/lib/DAVACL/PrincipalBackend/BackendInterface.php +++ b/vendor/sabre/dav/lib/DAVACL/PrincipalBackend/BackendInterface.php @@ -53,7 +53,7 @@ interface BackendInterface { * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * * @param string $path * @param \Sabre\DAV\PropPatch $propPatch diff --git a/vendor/sabre/dav/lib/DAVACL/PrincipalBackend/PDO.php b/vendor/sabre/dav/lib/DAVACL/PrincipalBackend/PDO.php index a491dc88f..eb0df888b 100644 --- a/vendor/sabre/dav/lib/DAVACL/PrincipalBackend/PDO.php +++ b/vendor/sabre/dav/lib/DAVACL/PrincipalBackend/PDO.php @@ -11,7 +11,7 @@ use Sabre\HTTP\URLUtil; * * * This backend assumes all principals are in a single collection. The default collection - * is 'principals/', but this can be overriden. + * is 'principals/', but this can be overridden. * * @copyright Copyright (C) fruux GmbH (https://fruux.com/) * @author Evert Pot (http://evertpot.com/) @@ -65,7 +65,7 @@ class PDO extends AbstractBackend implements CreatePrincipalSupport { /** * Sets up the backend. * - * @param PDO $pdo + * @param \PDO $pdo */ function __construct(\PDO $pdo) { @@ -171,7 +171,7 @@ class PDO extends AbstractBackend implements CreatePrincipalSupport { * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * * @param string $path * @param DAV\PropPatch $propPatch @@ -307,7 +307,7 @@ class PDO extends AbstractBackend implements CreatePrincipalSupport { case "mailto": $query = 'SELECT uri FROM ' . $this->tableName . ' WHERE lower(email)=lower(?)'; $stmt = $this->pdo->prepare($query); - $stmt->execute([ $value ]); + $stmt->execute([$value]); while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { // Checking if the principal is in the prefix diff --git a/vendor/sabre/dav/lib/DAVACL/PrincipalCollection.php b/vendor/sabre/dav/lib/DAVACL/PrincipalCollection.php index d8a90153a..ee5b88a90 100644 --- a/vendor/sabre/dav/lib/DAVACL/PrincipalCollection.php +++ b/vendor/sabre/dav/lib/DAVACL/PrincipalCollection.php @@ -57,7 +57,7 @@ class PrincipalCollection extends AbstractPrincipalCollection implements IExtend * * @param string $name * @param MkCol $mkCol - * @throws Exception\InvalidResourceType + * @throws InvalidResourceType * @return void */ function createExtendedCollection($name, MkCol $mkCol) { diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Property/Acl.php b/vendor/sabre/dav/lib/DAVACL/Xml/Property/Acl.php index 9f5e40df1..0e1c30ccf 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Property/Acl.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Property/Acl.php @@ -78,12 +78,12 @@ class Acl implements Element, HtmlOutput { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -149,7 +149,7 @@ class Acl implements Element, HtmlOutput { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Property/AclRestrictions.php b/vendor/sabre/dav/lib/DAVACL/Xml/Property/AclRestrictions.php index f669cc5e1..8d5854c23 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Property/AclRestrictions.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Property/AclRestrictions.php @@ -2,8 +2,8 @@ namespace Sabre\DAVACL\Xml\Property; -use Sabre\Xml\XmlSerializable; use Sabre\Xml\Writer; +use Sabre\Xml\XmlSerializable; /** * AclRestrictions property @@ -17,12 +17,12 @@ use Sabre\Xml\Writer; class AclRestrictions implements XmlSerializable { /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Property/CurrentUserPrivilegeSet.php b/vendor/sabre/dav/lib/DAVACL/Xml/Property/CurrentUserPrivilegeSet.php index 0a95eb2b7..74c09cee1 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Property/CurrentUserPrivilegeSet.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Property/CurrentUserPrivilegeSet.php @@ -41,12 +41,12 @@ class CurrentUserPrivilegeSet implements Element, HtmlOutput { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -99,7 +99,7 @@ class CurrentUserPrivilegeSet implements Element, HtmlOutput { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Property/Principal.php b/vendor/sabre/dav/lib/DAVACL/Xml/Property/Principal.php index d32249d8b..04d22165d 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Property/Principal.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Property/Principal.php @@ -85,12 +85,12 @@ class Principal extends DAV\Xml\Property\Href { /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Property/SupportedPrivilegeSet.php b/vendor/sabre/dav/lib/DAVACL/Xml/Property/SupportedPrivilegeSet.php index 55e7783ae..b963cc8c3 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Property/SupportedPrivilegeSet.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Property/SupportedPrivilegeSet.php @@ -4,8 +4,8 @@ namespace Sabre\DAVACL\Xml\Property; use Sabre\DAV\Browser\HtmlOutput; use Sabre\DAV\Browser\HtmlOutputHelper; -use Sabre\Xml\XmlSerializable; use Sabre\Xml\Writer; +use Sabre\Xml\XmlSerializable; /** * SupportedPrivilegeSet property @@ -53,12 +53,12 @@ class SupportedPrivilegeSet implements XmlSerializable, HtmlOutput { } /** - * The xmlSerialize metod is called during xml writing. + * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element - * implementing XmlSerializble should only ever write what's considered + * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a @@ -73,7 +73,7 @@ class SupportedPrivilegeSet implements XmlSerializable, HtmlOutput { */ function xmlSerialize(Writer $writer) { - $this->serializePriv($writer, '{DAV:}all', [ 'aggregates' => $this->privileges]); + $this->serializePriv($writer, '{DAV:}all', ['aggregates' => $this->privileges]); } @@ -114,7 +114,7 @@ class SupportedPrivilegeSet implements XmlSerializable, HtmlOutput { ob_start(); echo "<ul class=\"tree\">"; - $traverse('{DAV:}all', [ 'aggregates' => $this->getValue() ]); + $traverse('{DAV:}all', ['aggregates' => $this->getValue()]); echo "</ul>\n"; return ob_get_clean(); @@ -129,6 +129,7 @@ class SupportedPrivilegeSet implements XmlSerializable, HtmlOutput { * This is a recursive function. * * @param Writer $writer + * @param string $privName * @param array $privilege * @return void */ diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Request/AclPrincipalPropSetReport.php b/vendor/sabre/dav/lib/DAVACL/Xml/Request/AclPrincipalPropSetReport.php index f01c1e6ab..0aa2f29a5 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Request/AclPrincipalPropSetReport.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Request/AclPrincipalPropSetReport.php @@ -2,9 +2,9 @@ namespace Sabre\DAVACL\Xml\Request; -use Sabre\Xml\XmlDeserializable; -use Sabre\Xml\Reader; use Sabre\Xml\Deserializer; +use Sabre\Xml\Reader; +use Sabre\Xml\XmlDeserializable; /** * AclPrincipalPropSet request parser. @@ -24,7 +24,7 @@ class AclPrincipalPropSetReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Request/ExpandPropertyReport.php b/vendor/sabre/dav/lib/DAVACL/Xml/Request/ExpandPropertyReport.php index 3f535e301..a9938ba5b 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Request/ExpandPropertyReport.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Request/ExpandPropertyReport.php @@ -35,7 +35,7 @@ class ExpandPropertyReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalMatchReport.php b/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalMatchReport.php index 5c4e88189..1be15ab2d 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalMatchReport.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalMatchReport.php @@ -2,9 +2,9 @@ namespace Sabre\DAVACL\Xml\Request; -use Sabre\Xml\XmlDeserializable; -use Sabre\Xml\Reader; use Sabre\Xml\Deserializer; +use Sabre\Xml\Reader; +use Sabre\Xml\XmlDeserializable; /** * PrincipalMatchReport request parser. @@ -55,7 +55,7 @@ class PrincipalMatchReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalPropertySearchReport.php b/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalPropertySearchReport.php index 1e7aa4481..b0cf0e408 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalPropertySearchReport.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalPropertySearchReport.php @@ -2,9 +2,9 @@ namespace Sabre\DAVACL\Xml\Request; +use Sabre\DAV\Exception\BadRequest; use Sabre\Xml\Reader; use Sabre\Xml\XmlDeserializable; -use Sabre\DAV\Exception\BadRequest; /** * PrincipalSearchPropertySetReport request parser. @@ -56,7 +56,7 @@ class PrincipalPropertySearchReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalSearchPropertySetReport.php b/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalSearchPropertySetReport.php index ade157b19..64d1f7f86 100644 --- a/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalSearchPropertySetReport.php +++ b/vendor/sabre/dav/lib/DAVACL/Xml/Request/PrincipalSearchPropertySetReport.php @@ -2,9 +2,9 @@ namespace Sabre\DAVACL\Xml\Request; +use Sabre\DAV\Exception\BadRequest; use Sabre\Xml\Reader; use Sabre\Xml\XmlDeserializable; -use Sabre\DAV\Exception\BadRequest; /** * PrincipalSearchPropertySetReport request parser. @@ -23,7 +23,7 @@ class PrincipalSearchPropertySetReport implements XmlDeserializable { /** * The deserialize method is called during xml parsing. * - * This method is called statictly, this is because in theory this method + * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/AbstractPDOTest.php b/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/AbstractPDOTest.php index 2a00f7925..406dbe0e8 100644 --- a/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/AbstractPDOTest.php +++ b/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/AbstractPDOTest.php @@ -280,7 +280,7 @@ abstract class AbstractPDOTest extends \PHPUnit_Framework_TestCase { ], ]; - $result = $backend->getMultipleCalendarObjects($returnedId, [ 'id-1', 'id-2' ]); + $result = $backend->getMultipleCalendarObjects($returnedId, ['id-1', 'id-2']); foreach ($check as $index => $props) { @@ -441,7 +441,7 @@ abstract class AbstractPDOTest extends \PHPUnit_Framework_TestCase { /** * @depends testCreateCalendarObject */ - function testCreateCalendarObjectInfiniteReccurence() { + function testCreateCalendarObjectInfiniteRecurrence() { $backend = new PDO($this->pdo); $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []); @@ -470,7 +470,7 @@ abstract class AbstractPDOTest extends \PHPUnit_Framework_TestCase { /** * @depends testCreateCalendarObject */ - function testCreateCalendarObjectEndingReccurence() { + function testCreateCalendarObjectEndingRecurrence() { $backend = new PDO($this->pdo); $returnedId = $backend->createCalendar('principals/user2', 'somerandomid', []); @@ -1246,8 +1246,8 @@ abstract class AbstractPDOTest extends \PHPUnit_Framework_TestCase { $calendar['id'], [ new Sharee([ - 'href' => 'mailto:user@example.org', - 'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_NOACCESS, + 'href' => 'mailto:user@example.org', + 'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_NOACCESS, ]) ] ); @@ -1263,8 +1263,8 @@ abstract class AbstractPDOTest extends \PHPUnit_Framework_TestCase { $calendar['id'], [ new Sharee([ - 'href' => 'principals/user2', - 'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_NOACCESS, + 'href' => 'principals/user2', + 'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_NOACCESS, ]) ] ); diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php b/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php index d4dcc07dc..cc665cd8f 100644 --- a/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php +++ b/vendor/sabre/dav/tests/Sabre/CalDAV/Backend/Mock.php @@ -2,8 +2,8 @@ namespace Sabre\CalDAV\Backend; -use Sabre\DAV; use Sabre\CalDAV; +use Sabre\DAV; class Mock extends AbstractBackend { diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/CalendarObjectTest.php b/vendor/sabre/dav/tests/Sabre/CalDAV/CalendarObjectTest.php index 0d98922ff..c92cde661 100644 --- a/vendor/sabre/dav/tests/Sabre/CalDAV/CalendarObjectTest.php +++ b/vendor/sabre/dav/tests/Sabre/CalDAV/CalendarObjectTest.php @@ -114,7 +114,7 @@ class CalendarObjectTest extends \PHPUnit_Framework_TestCase { $obj = $children[0]; $obj->delete(); - $children2 = $this->calendar->getChildren(); + $children2 = $this->calendar->getChildren(); $this->assertEquals(count($children) - 1, count($children2)); } diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/CalendarQueryValidatorTest.php b/vendor/sabre/dav/tests/Sabre/CalDAV/CalendarQueryValidatorTest.php index 4c2558a9b..f3305163b 100644 --- a/vendor/sabre/dav/tests/Sabre/CalDAV/CalendarQueryValidatorTest.php +++ b/vendor/sabre/dav/tests/Sabre/CalDAV/CalendarQueryValidatorTest.php @@ -21,6 +21,9 @@ ICS; } /** + * @param string $icalObject + * @param array $filters + * @param int $outcome * @dataProvider provider */ function testValid($icalObject, $filters, $outcome) { diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/FreeBusyReportTest.php b/vendor/sabre/dav/tests/Sabre/CalDAV/FreeBusyReportTest.php index 7a756774f..7604c7f4c 100644 --- a/vendor/sabre/dav/tests/Sabre/CalDAV/FreeBusyReportTest.php +++ b/vendor/sabre/dav/tests/Sabre/CalDAV/FreeBusyReportTest.php @@ -11,11 +11,11 @@ require_once 'Sabre/HTTP/ResponseMock.php'; class FreeBusyReportTest extends \PHPUnit_Framework_TestCase { /** - * @var Sabre\CalDAV\Plugin + * @var Plugin */ protected $plugin; /** - * @var Sabre\DAV\Server + * @var DAV\Server */ protected $server; diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/ICSExportPluginTest.php b/vendor/sabre/dav/tests/Sabre/CalDAV/ICSExportPluginTest.php index 9719529fb..75412577e 100644 --- a/vendor/sabre/dav/tests/Sabre/CalDAV/ICSExportPluginTest.php +++ b/vendor/sabre/dav/tests/Sabre/CalDAV/ICSExportPluginTest.php @@ -3,9 +3,9 @@ namespace Sabre\CalDAV; use Sabre\DAV; +use Sabre\DAVACL; use Sabre\HTTP; use Sabre\VObject; -use Sabre\DAVACL; class ICSExportPluginTest extends \Sabre\DAVServerTest { diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/PluginTest.php b/vendor/sabre/dav/tests/Sabre/CalDAV/PluginTest.php index 8d538dee5..859f6aa0c 100644 --- a/vendor/sabre/dav/tests/Sabre/CalDAV/PluginTest.php +++ b/vendor/sabre/dav/tests/Sabre/CalDAV/PluginTest.php @@ -2,11 +2,11 @@ namespace Sabre\CalDAV; -use Sabre\DAVACL; -use Sabre\DAV; -use Sabre\HTTP; use DateTime; use DateTimeZone; +use Sabre\DAV; +use Sabre\DAVACL; +use Sabre\HTTP; class PluginTest extends \PHPUnit_Framework_TestCase { diff --git a/vendor/sabre/dav/tests/Sabre/CalDAV/SharingPluginTest.php b/vendor/sabre/dav/tests/Sabre/CalDAV/SharingPluginTest.php index 6e9e88419..9589176a3 100644 --- a/vendor/sabre/dav/tests/Sabre/CalDAV/SharingPluginTest.php +++ b/vendor/sabre/dav/tests/Sabre/CalDAV/SharingPluginTest.php @@ -194,8 +194,8 @@ RRR; $this->assertEquals( [ new Sharee([ - 'href' => 'mailto:joe@example.org', - 'properties' => [ + 'href' => 'mailto:joe@example.org', + 'properties' => [ '{DAV:}displayname' => 'Joe Shmoe', ], 'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_READWRITE, diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/AddressBookQueryTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/AddressBookQueryTest.php index 2c3171bf3..f8da38a16 100644 --- a/vendor/sabre/dav/tests/Sabre/CardDAV/AddressBookQueryTest.php +++ b/vendor/sabre/dav/tests/Sabre/CardDAV/AddressBookQueryTest.php @@ -2,8 +2,8 @@ namespace Sabre\CardDAV; -use Sabre\HTTP; use Sabre\DAV; +use Sabre\HTTP; require_once 'Sabre/CardDAV/AbstractPluginTest.php'; require_once 'Sabre/HTTP/ResponseMock.php'; @@ -288,14 +288,14 @@ class AddressBookQueryTest extends AbstractPluginTest { ); $request->setBody( -'<?xml version="1.0"?> + '<?xml version="1.0"?> <c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav"> <d:prop> <c:address-data content-type="application/vcard+json" /> <d:getetag /> </d:prop> </c:addressbook-query>' - ); + ); $response = new HTTP\ResponseMock(); @@ -305,6 +305,51 @@ class AddressBookQueryTest extends AbstractPluginTest { $this->server->exec(); $this->assertEquals(415, $response->status, 'Incorrect status code. Full response body:' . $response->body); + } + + function testAddressBookProperties() { + + $request = new HTTP\Request( + 'REPORT', + '/addressbooks/user1/book3', + ['Depth' => '1'] + ); + + $request->setBody( + '<?xml version="1.0"?> +<c:addressbook-query xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:carddav"> + <d:prop> + <c:address-data> + <c:prop name="FN"/> + <c:prop name="BDAY"/> + </c:address-data> + <d:getetag /> + </d:prop> +</c:addressbook-query>' + ); + + $response = new HTTP\ResponseMock(); + + $this->server->httpRequest = $request; + $this->server->httpResponse = $response; + + $this->server->exec(); + + $this->assertEquals(207, $response->status, 'Incorrect status code. Full response body:' . $response->body); + + // using the client for parsing + $client = new DAV\Client(['baseUri' => '/']); + + $result = $client->parseMultiStatus($response->body); + + $this->assertEquals([ + '/addressbooks/user1/book3/card3' => [ + 200 => [ + '{DAV:}getetag' => '"' . md5("BEGIN:VCARD\nVERSION:3.0\nUID:12345\nFN:Test-Card\nEMAIL;TYPE=home:bar@example.org\nEND:VCARD") . '"', + '{urn:ietf:params:xml:ns:carddav}address-data' => "BEGIN:VCARD\r\nVERSION:3.0\r\nUID:12345\r\nFN:Test-Card\r\nEND:VCARD\r\n", + ], + ], + ], $result); } } diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/AddressBookTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/AddressBookTest.php index 1a36fd10c..1f0064dd3 100644 --- a/vendor/sabre/dav/tests/Sabre/CardDAV/AddressBookTest.php +++ b/vendor/sabre/dav/tests/Sabre/CardDAV/AddressBookTest.php @@ -85,7 +85,7 @@ class AddressBookTest extends \PHPUnit_Framework_TestCase { function testDelete() { $this->ab->delete(); - $this->assertEquals([], $this->backend->addressBooks); + $this->assertEquals(1, count($this->backend->addressBooks)); } @@ -175,7 +175,7 @@ class AddressBookTest extends \PHPUnit_Framework_TestCase { $backend = new Backend\PDO( $this->getPDO() ); - $ab = new AddressBook($backend, [ 'id' => 1, '{DAV:}sync-token' => 2]); + $ab = new AddressBook($backend, ['id' => 1, '{DAV:}sync-token' => 2]); $this->assertEquals(2, $ab->getSyncToken()); } @@ -187,7 +187,7 @@ class AddressBookTest extends \PHPUnit_Framework_TestCase { $backend = new Backend\PDO( $this->getPDO() ); - $ab = new AddressBook($backend, [ 'id' => 1, '{http://sabredav.org/ns}sync-token' => 2]); + $ab = new AddressBook($backend, ['id' => 1, '{http://sabredav.org/ns}sync-token' => 2]); $this->assertEquals(2, $ab->getSyncToken()); } diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/Mock.php b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/Mock.php index 840b898e8..8638dc74a 100644 --- a/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/Mock.php +++ b/vendor/sabre/dav/tests/Sabre/CardDAV/Backend/Mock.php @@ -20,6 +20,12 @@ class Mock extends AbstractBackend { 'principaluri' => 'principals/user1', '{DAV:}displayname' => 'd-name', ], + [ + 'id' => 'bar', + 'uri' => 'book3', + 'principaluri' => 'principals/user1', + '{DAV:}displayname' => 'd-name', + ], ]; $card2 = fopen('php://memory', 'r+'); @@ -30,6 +36,9 @@ class Mock extends AbstractBackend { 'card1' => "BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD", 'card2' => $card2, ], + 'bar' => [ + 'card3' => "BEGIN:VCARD\nVERSION:3.0\nUID:12345\nFN:Test-Card\nEMAIL;TYPE=home:bar@example.org\nEND:VCARD", + ], ]; } @@ -58,7 +67,7 @@ class Mock extends AbstractBackend { * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * * @param string $addressBookId * @param \Sabre\DAV\PropPatch $propPatch @@ -117,7 +126,7 @@ class Mock extends AbstractBackend { * calculating them. If they are specified, you can also ommit carddata. * This may speed up certain requests, especially with large cards. * - * @param mixed $addressbookId + * @param mixed $addressBookId * @return array */ function getCards($addressBookId) { diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/MultiGetTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/MultiGetTest.php index d79239d0f..2d57c6ae7 100644 --- a/vendor/sabre/dav/tests/Sabre/CardDAV/MultiGetTest.php +++ b/vendor/sabre/dav/tests/Sabre/CardDAV/MultiGetTest.php @@ -2,8 +2,8 @@ namespace Sabre\CardDAV; -use Sabre\HTTP; use Sabre\DAV; +use Sabre\HTTP; require_once 'Sabre/HTTP/ResponseMock.php'; diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/SogoStripContentTypeTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/SogoStripContentTypeTest.php index 0ba4fd669..d4bc48098 100644 --- a/vendor/sabre/dav/tests/Sabre/CardDAV/SogoStripContentTypeTest.php +++ b/vendor/sabre/dav/tests/Sabre/CardDAV/SogoStripContentTypeTest.php @@ -2,8 +2,8 @@ namespace Sabre\CardDAV; -use Sabre\HTTP; use Sabre\DAV\PropFind; +use Sabre\HTTP; class SogoStripContentTypeTest extends \Sabre\DAVServerTest { diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/ValidateFilterTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/ValidateFilterTest.php index 57ac21b4a..03c468f86 100644 --- a/vendor/sabre/dav/tests/Sabre/CardDAV/ValidateFilterTest.php +++ b/vendor/sabre/dav/tests/Sabre/CardDAV/ValidateFilterTest.php @@ -7,6 +7,11 @@ require_once 'Sabre/CardDAV/AbstractPluginTest.php'; class ValidateFilterTest extends AbstractPluginTest { /** + * @param string $input + * @param array $filters + * @param string $test + * @param bool $result + * @param string|null $message * @dataProvider data */ function testFilter($input, $filters, $test, $result, $message = null) { diff --git a/vendor/sabre/dav/tests/Sabre/CardDAV/ValidateVCardTest.php b/vendor/sabre/dav/tests/Sabre/CardDAV/ValidateVCardTest.php index dda8a0c37..acba2cfc8 100644 --- a/vendor/sabre/dav/tests/Sabre/CardDAV/ValidateVCardTest.php +++ b/vendor/sabre/dav/tests/Sabre/CardDAV/ValidateVCardTest.php @@ -3,8 +3,8 @@ namespace Sabre\CardDAV; use Sabre\DAV; -use Sabre\HTTP; use Sabre\DAVACL; +use Sabre\HTTP; require_once 'Sabre/HTTP/ResponseMock.php'; @@ -293,10 +293,10 @@ VCF; $response = $this->request($request, 204); $expected = [ - 'uri' => 'blabla.vcf', - 'carddata' => $body, - 'size' => strlen($body), - 'etag' => '"' . md5($body) . '"', + 'uri' => 'blabla.vcf', + 'carddata' => $body, + 'size' => strlen($body), + 'etag' => '"' . md5($body) . '"', ]; $this->assertEquals($expected, $this->cardBackend->getCard('addressbook1', 'blabla.vcf')); diff --git a/vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php b/vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php index b30b3f143..369bc249e 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/Auth/Backend/Mock.php @@ -76,6 +76,8 @@ class Mock implements BackendInterface { * append your own WWW-Authenticate header instead of overwriting the * existing one. * + * @param RequestInterface $request + * @param ResponseInterface $response * @return void */ function challenge(RequestInterface $request, ResponseInterface $response) { diff --git a/vendor/sabre/dav/tests/Sabre/DAV/Auth/PluginTest.php b/vendor/sabre/dav/tests/Sabre/DAV/Auth/PluginTest.php index b566dd757..743446127 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/Auth/PluginTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/Auth/PluginTest.php @@ -2,8 +2,8 @@ namespace Sabre\DAV\Auth; -use Sabre\HTTP; use Sabre\DAV; +use Sabre\HTTP; class PluginTest extends \PHPUnit_Framework_TestCase { diff --git a/vendor/sabre/dav/tests/Sabre/DAV/ClientTest.php b/vendor/sabre/dav/tests/Sabre/DAV/ClientTest.php index 4cf27dfaa..687f61e2f 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/ClientTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/ClientTest.php @@ -224,7 +224,7 @@ XML; XML; $client->response = new Response(207, [], $responseBody); - $result = $client->propPatch('foo', ['{DAV:}displayname' => 'hi', '{urn:zim}gir' => null], 1); + $result = $client->propPatch('foo', ['{DAV:}displayname' => 'hi', '{urn:zim}gir' => null]); $this->assertTrue($result); $request = $client->request; $this->assertEquals('PROPPATCH', $request->getMethod()); @@ -246,7 +246,7 @@ XML; ]); $client->response = new Response(403, [], ''); - $client->propPatch('foo', ['{DAV:}displayname' => 'hi', '{urn:zim}gir' => null], 1); + $client->propPatch('foo', ['{DAV:}displayname' => 'hi', '{urn:zim}gir' => null]); } @@ -276,7 +276,7 @@ XML; XML; $client->response = new Response(207, [], $responseBody); - $client->propPatch('foo', ['{DAV:}displayname' => 'hi', '{urn:zim}gir' => null], 1); + $client->propPatch('foo', ['{DAV:}displayname' => 'hi', '{urn:zim}gir' => null]); } diff --git a/vendor/sabre/dav/tests/Sabre/DAV/Exception/LockedTest.php b/vendor/sabre/dav/tests/Sabre/DAV/Exception/LockedTest.php index 8788475cb..174a561b5 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/Exception/LockedTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/Exception/LockedTest.php @@ -2,8 +2,8 @@ namespace Sabre\DAV\Exception; -use Sabre\DAV; use DOMDocument; +use Sabre\DAV; class LockedTest extends \PHPUnit_Framework_TestCase { diff --git a/vendor/sabre/dav/tests/Sabre/DAV/Issue33Test.php b/vendor/sabre/dav/tests/Sabre/DAV/Issue33Test.php index edd09e634..ba2cf3dc1 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/Issue33Test.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/Issue33Test.php @@ -99,7 +99,7 @@ class Issue33Test extends \PHPUnit_Framework_TestCase { $server->sapi = new HTTP\SapiMock(); $server->exec(); - $this->assertTrue(file_exists(SABRE_TEMPDIR . '/issue33/' . urldecode('%C3%A0fo%C3%B3'))); + $this->assertTrue(file_exists(SABRE_TEMPDIR . '/issue33/' . urldecode('%C3%A0fo%C3%B3'))); } diff --git a/vendor/sabre/dav/tests/Sabre/DAV/Locks/MSWordTest.php b/vendor/sabre/dav/tests/Sabre/DAV/Locks/MSWordTest.php index f08f19da5..1111db5b5 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/Locks/MSWordTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/Locks/MSWordTest.php @@ -2,8 +2,8 @@ namespace Sabre\DAV\Locks; -use Sabre\HTTP; use Sabre\DAV; +use Sabre\HTTP; require_once 'Sabre/HTTP/ResponseMock.php'; require_once 'Sabre/TestUtil.php'; @@ -112,9 +112,9 @@ class MSWordTest extends \PHPUnit_Framework_TestCase { function getPutRequest($lockToken) { $request = HTTP\Sapi::createFromServerArray([ - 'REQUEST_METHOD' => 'PUT', - 'REQUEST_URI' => '/Nouveau%20Microsoft%20Office%20Excel%20Worksheet.xlsx', - 'HTTP_IF' => 'If: (' . $lockToken . ')', + 'REQUEST_METHOD' => 'PUT', + 'REQUEST_URI' => '/Nouveau%20Microsoft%20Office%20Excel%20Worksheet.xlsx', + 'HTTP_IF' => 'If: (' . $lockToken . ')', ]); $request->setBody('FAKE BODY'); return $request; diff --git a/vendor/sabre/dav/tests/Sabre/DAV/Locks/PluginTest.php b/vendor/sabre/dav/tests/Sabre/DAV/Locks/PluginTest.php index 6511d4e7d..dbbf6757a 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/Locks/PluginTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/Locks/PluginTest.php @@ -2,8 +2,8 @@ namespace Sabre\DAV\Locks; -use Sabre\HTTP; use Sabre\DAV; +use Sabre\HTTP; require_once 'Sabre/DAV/AbstractServer.php'; @@ -168,7 +168,7 @@ class PluginTest extends DAV\AbstractServer { $this->response = new HTTP\ResponseMock(); $this->server->httpResponse = $this->response; - $request = new HTTP\Request('LOCK', '/test.txt', ['If' => '(' . $lockToken . ')' ]); + $request = new HTTP\Request('LOCK', '/test.txt', ['If' => '(' . $lockToken . ')']); $request->setBody(''); $this->server->httpRequest = $request; @@ -203,7 +203,7 @@ class PluginTest extends DAV\AbstractServer { $this->response = new HTTP\ResponseMock(); $this->server->httpResponse = $this->response; - $request = new HTTP\Request('LOCK', '/test.txt', ['If' => '(' . $lockToken . 'foobar) (<opaquelocktoken:anotherbadtoken>)' ]); + $request = new HTTP\Request('LOCK', '/test.txt', ['If' => '(' . $lockToken . 'foobar) (<opaquelocktoken:anotherbadtoken>)']); $request->setBody(''); $this->server->httpRequest = $request; diff --git a/vendor/sabre/dav/tests/Sabre/DAV/Mock/Collection.php b/vendor/sabre/dav/tests/Sabre/DAV/Mock/Collection.php index 6ccab4f66..fded5e474 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/Mock/Collection.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/Mock/Collection.php @@ -30,6 +30,7 @@ class Collection extends DAV\Collection { * * @param string $name * @param array $children + * @param Collection $parent * @return void */ function __construct($name, array $children = [], Collection $parent = null) { @@ -122,6 +123,8 @@ class Collection extends DAV\Collection { /** * Adds an already existing node to this collection. + * + * @param \Sabre\DAV\INode $node */ function addNode(\Sabre\DAV\INode $node) { diff --git a/vendor/sabre/dav/tests/Sabre/DAV/Mock/File.php b/vendor/sabre/dav/tests/Sabre/DAV/Mock/File.php index 23855e3c5..a624b6b6b 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/Mock/File.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/Mock/File.php @@ -24,7 +24,9 @@ class File extends DAV\File { * Creates the object * * @param string $name - * @param array $children + * @param resource $contents + * @param Collection $parent + * @param int $lastModified * @return void */ function __construct($name, $contents, Collection $parent = null, $lastModified = -1) { @@ -57,6 +59,7 @@ class File extends DAV\File { /** * Changes the name of the node. * + * @param string $name * @return void */ function setName($name) { @@ -70,7 +73,7 @@ class File extends DAV\File { * * The data argument is a readable stream resource. * - * After a succesful put operation, you may choose to return an ETag. The + * After a successful put operation, you may choose to return an ETag. The * etag must always be surrounded by double-quotes. These quotes must * appear in the actual string you're returning. * diff --git a/vendor/sabre/dav/tests/Sabre/DAV/PartialUpdate/SpecificationTest.php b/vendor/sabre/dav/tests/Sabre/DAV/PartialUpdate/SpecificationTest.php index ca8ca3f6e..2c6274173 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/PartialUpdate/SpecificationTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/PartialUpdate/SpecificationTest.php @@ -38,6 +38,11 @@ class SpecificationTest extends \PHPUnit_Framework_TestCase { } /** + * @param string $headerValue + * @param string $httpStatus + * @param string $endResult + * @param int $contentLength + * * @dataProvider data */ function testUpdateRange($headerValue, $httpStatus, $endResult, $contentLength = 4) { diff --git a/vendor/sabre/dav/tests/Sabre/DAV/ServerEventsTest.php b/vendor/sabre/dav/tests/Sabre/DAV/ServerEventsTest.php index 4c576f108..42759647a 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/ServerEventsTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/ServerEventsTest.php @@ -39,8 +39,8 @@ class ServerEventsTest extends AbstractServer { $this->server->on('afterResponse', [$mock, 'afterResponseCallback']); $this->server->httpRequest = HTTP\Sapi::createFromServerArray([ - 'REQUEST_METHOD' => 'GET', - 'REQUEST_URI' => '/test.txt', + 'REQUEST_METHOD' => 'GET', + 'REQUEST_URI' => '/test.txt', ]); $this->server->exec(); @@ -118,8 +118,8 @@ class ServerEventsTest extends AbstractServer { ); } catch (Exception $e) {} - $this->assertEquals(2, $k); - + // Fun fact, PHP 7.1 changes the order when sorting-by-callback. + $this->assertTrue($k >= 2 && $k <= 3); } diff --git a/vendor/sabre/dav/tests/Sabre/DAV/ServerRangeTest.php b/vendor/sabre/dav/tests/Sabre/DAV/ServerRangeTest.php index bafbef6e4..81224d687 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/ServerRangeTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/ServerRangeTest.php @@ -144,7 +144,7 @@ class ServerRangeTest extends \Sabre\DAVServerTest { 'Content-Length' => [4], 'Content-Range' => ['bytes 2-5/12'], // 'ETag' => ['"' . md5('Test contents') . '"'], - 'Last-Modified' => [$this->lastModified], + 'Last-Modified' => [$this->lastModified], ], $response->getHeaders() ); diff --git a/vendor/sabre/dav/tests/Sabre/DAV/StringUtilTest.php b/vendor/sabre/dav/tests/Sabre/DAV/StringUtilTest.php index 8888f0276..e98fe9048 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/StringUtilTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/StringUtilTest.php @@ -5,6 +5,13 @@ namespace Sabre\DAV; class StringUtilTest extends \PHPUnit_Framework_TestCase { /** + * @param string $haystack + * @param string $needle + * @param string $collation + * @param string $matchType + * @param string $result + * @throws Exception\BadRequest + * * @dataProvider dataset */ function testTextMatch($haystack, $needle, $collation, $matchType, $result) { diff --git a/vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php b/vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php index ad33200c8..e719e38d5 100644 --- a/vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php +++ b/vendor/sabre/dav/tests/Sabre/DAV/TreeTest.php @@ -200,8 +200,8 @@ class TreeFileTester extends File implements IProperties { * To update specific properties, call the 'handle' method on this object. * Read the PropPatch documentation for more information. * - * @param array $mutations - * @return bool|array + * @param PropPatch $propPatch + * @return void */ function propPatch(PropPatch $propPatch) { @@ -220,6 +220,7 @@ class TreeMultiGetTester extends TreeDirectoryTester implements IMultiGet { * * If any children are not found, you do not have to return them. * + * @param array $paths * @return array */ function getMultipleChildren(array $paths) { diff --git a/vendor/sabre/dav/tests/Sabre/DAVACL/PrincipalBackend/Mock.php b/vendor/sabre/dav/tests/Sabre/DAVACL/PrincipalBackend/Mock.php index afb094a39..1464f4c26 100644 --- a/vendor/sabre/dav/tests/Sabre/DAVACL/PrincipalBackend/Mock.php +++ b/vendor/sabre/dav/tests/Sabre/DAVACL/PrincipalBackend/Mock.php @@ -128,7 +128,7 @@ class Mock extends AbstractBackend { * Calling the handle method is like telling the PropPatch object "I * promise I can handle updating this property". * - * Read the PropPatch documenation for more info and examples. + * Read the PropPatch documentation for more info and examples. * * @param string $path * @param \Sabre\DAV\PropPatch $propPatch diff --git a/vendor/sabre/http/.travis.yml b/vendor/sabre/http/.travis.yml index 490e42e1e..8ae84d90f 100644 --- a/vendor/sabre/http/.travis.yml +++ b/vendor/sabre/http/.travis.yml @@ -4,6 +4,7 @@ php: - 5.5 - 5.6 - 7 + - 7.1 - hhvm matrix: @@ -16,7 +17,8 @@ env: before_script: - - composer self-update + - rm -f ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini +# - composer self-update - composer update --prefer-source $PREFER_LOWEST script: diff --git a/vendor/sabre/http/CHANGELOG.md b/vendor/sabre/http/CHANGELOG.md index 9a751d8fb..63d85afe3 100644 --- a/vendor/sabre/http/CHANGELOG.md +++ b/vendor/sabre/http/CHANGELOG.md @@ -1,19 +1,25 @@ ChangeLog ========= +4.2.2 (2017-01-02) +------------------ + +* #72: Handling clients that send invalid `Content-Length` headers. + + 4.2.1 (2016-01-06) ------------------ * #56: `getBodyAsString` now returns at most as many bytes as the contents of the `Content-Length` header. This allows users to pass much larger strings without having to copy and truncate them. +* The client now sets a default `User-Agent` header identifying this library. 4.2.0 (2016-01-04) ------------------ * This package now supports sabre/event 3.0. -* The client now sets a default `User-Agent` header identifying this library. 4.1.0 (2015-09-04) diff --git a/vendor/sabre/http/LICENSE b/vendor/sabre/http/LICENSE index 19812ad7a..864041b22 100644 --- a/vendor/sabre/http/LICENSE +++ b/vendor/sabre/http/LICENSE @@ -1,4 +1,4 @@ -Copyright (C) 2009-2016 fruux GmbH (https://fruux.com/) +Copyright (C) 2009-2017 fruux GmbH (https://fruux.com/) All rights reserved. diff --git a/vendor/sabre/http/composer.json b/vendor/sabre/http/composer.json index b061194cf..507d5d28d 100644 --- a/vendor/sabre/http/composer.json +++ b/vendor/sabre/http/composer.json @@ -7,6 +7,7 @@ "require" : { "php" : ">=5.4", "ext-mbstring" : "*", + "ext-ctype" : "*", "sabre/event" : ">=1.0.0,<4.0.0", "sabre/uri" : "~1.0" }, diff --git a/vendor/sabre/http/lib/Message.php b/vendor/sabre/http/lib/Message.php index 5c6887d8a..45bd18398 100644 --- a/vendor/sabre/http/lib/Message.php +++ b/vendor/sabre/http/lib/Message.php @@ -75,12 +75,11 @@ abstract class Message implements MessageInterface { return ''; } $contentLength = $this->getHeader('Content-Length'); - if (null === $contentLength) { - return stream_get_contents($body); - } else { + if (is_int($contentLength) || ctype_digit($contentLength)) { return stream_get_contents($body, $contentLength); + } else { + return stream_get_contents($body); } - } /** @@ -189,7 +188,7 @@ abstract class Message implements MessageInterface { /** * Updates a HTTP header. * - * The case-sensitity of the name value must be retained as-is. + * The case-sensitivity of the name value must be retained as-is. * * If the header already existed, it will be overwritten. * @@ -270,10 +269,11 @@ abstract class Message implements MessageInterface { /** * Removes a HTTP header. * - * The specified header name must be treated as case-insenstive. + * The specified header name must be treated as case-insensitive. * This method should return true if the header was successfully deleted, * and false if the header did not exist. * + * @param string $name * @return bool */ function removeHeader($name) { diff --git a/vendor/sabre/http/lib/MessageDecoratorTrait.php b/vendor/sabre/http/lib/MessageDecoratorTrait.php index f104af38d..1cb32da22 100644 --- a/vendor/sabre/http/lib/MessageDecoratorTrait.php +++ b/vendor/sabre/http/lib/MessageDecoratorTrait.php @@ -144,7 +144,7 @@ trait MessageDecoratorTrait { /** * Updates a HTTP header. * - * The case-sensitity of the name value must be retained as-is. + * The case-sensitivity of the name value must be retained as-is. * * If the header already existed, it will be overwritten. * @@ -210,15 +210,16 @@ trait MessageDecoratorTrait { /** * Removes a HTTP header. * - * The specified header name must be treated as case-insenstive. + * The specified header name must be treated as case-insensitive. * This method should return true if the header was successfully deleted, * and false if the header did not exist. * + * @param string $name * @return bool */ function removeHeader($name) { - $this->inner->removeHeader($name); + return $this->inner->removeHeader($name); } diff --git a/vendor/sabre/http/lib/MessageInterface.php b/vendor/sabre/http/lib/MessageInterface.php index 55d8485c1..df55beb2f 100644 --- a/vendor/sabre/http/lib/MessageInterface.php +++ b/vendor/sabre/http/lib/MessageInterface.php @@ -44,7 +44,7 @@ interface MessageInterface { /** * Updates the body resource with a new stream. * - * @param resource $body + * @param resource|string $body * @return void */ function setBody($body); @@ -153,6 +153,7 @@ interface MessageInterface { * This method should return true if the header was successfully deleted, * and false if the header did not exist. * + * @param string $name * @return bool */ function removeHeader($name); diff --git a/vendor/sabre/http/lib/Request.php b/vendor/sabre/http/lib/Request.php index 8bcaf32a6..dfa3d5b48 100644 --- a/vendor/sabre/http/lib/Request.php +++ b/vendor/sabre/http/lib/Request.php @@ -301,7 +301,7 @@ class Request extends Message implements RequestInterface { foreach ($value as $v) { if ($key === 'Authorization') { list($v) = explode(' ', $v, 2); - $v .= ' REDACTED'; + $v .= ' REDACTED'; } $out .= $key . ": " . $v . "\r\n"; } diff --git a/vendor/sabre/http/lib/Response.php b/vendor/sabre/http/lib/Response.php index d2ba6d40d..01920d8d9 100644 --- a/vendor/sabre/http/lib/Response.php +++ b/vendor/sabre/http/lib/Response.php @@ -100,7 +100,6 @@ class Response extends Message implements ResponseInterface { * @param string|int $status * @param array $headers * @param resource $body - * @return void */ function __construct($status = null, array $headers = null, $body = null) { @@ -145,7 +144,7 @@ class Response extends Message implements ResponseInterface { * added. * * @param string|int $status - * @throws \InvalidArgumentExeption + * @throws \InvalidArgumentException * @return void */ function setStatus($status) { diff --git a/vendor/sabre/http/lib/ResponseInterface.php b/vendor/sabre/http/lib/ResponseInterface.php index c0ecc35ae..411cdc06c 100644 --- a/vendor/sabre/http/lib/ResponseInterface.php +++ b/vendor/sabre/http/lib/ResponseInterface.php @@ -37,7 +37,7 @@ interface ResponseInterface extends MessageInterface { * added. * * @param string|int $status - * @throws \InvalidArgumentExeption + * @throws \InvalidArgumentException * @return void */ function setStatus($status); diff --git a/vendor/sabre/http/lib/URLUtil.php b/vendor/sabre/http/lib/URLUtil.php index 474856348..85c0e1150 100644 --- a/vendor/sabre/http/lib/URLUtil.php +++ b/vendor/sabre/http/lib/URLUtil.php @@ -10,7 +10,7 @@ use Sabre\URI; * Note: this class is deprecated. All its functionality moved to functions.php * or sabre\uri. * - * @deprectated + * @deprecated * @copyright Copyright (C) fruux GmbH (https://fruux.com/) * @author Evert Pot (http://evertpot.com/) * @license http://sabre.io/license/ Modified BSD License diff --git a/vendor/sabre/http/lib/Util.php b/vendor/sabre/http/lib/Util.php index 83bde50a4..e3f13a645 100644 --- a/vendor/sabre/http/lib/Util.php +++ b/vendor/sabre/http/lib/Util.php @@ -31,7 +31,7 @@ class Util { * Deprecated! Use negotiateContentType. * * @deprecated Use \Sabre\HTTP\NegotiateContentType - * @param string|null $acceptHeader + * @param string|null $acceptHeaderValue * @param array $availableOptions * @return string|null */ diff --git a/vendor/sabre/http/lib/Version.php b/vendor/sabre/http/lib/Version.php index 789ee4543..a5a427405 100644 --- a/vendor/sabre/http/lib/Version.php +++ b/vendor/sabre/http/lib/Version.php @@ -14,6 +14,6 @@ class Version { /** * Full version number */ - const VERSION = '4.2.1'; + const VERSION = '4.2.2'; } diff --git a/vendor/sabre/http/lib/functions.php b/vendor/sabre/http/lib/functions.php index 1ec123f2e..d94119623 100644 --- a/vendor/sabre/http/lib/functions.php +++ b/vendor/sabre/http/lib/functions.php @@ -79,7 +79,7 @@ function toDate(DateTime $dateTime) { // We need to clone it, as we don't want to affect the existing // DateTime. $dateTime = clone $dateTime; - $dateTime->setTimeZone(new \DateTimeZone('GMT')); + $dateTime->setTimezone(new \DateTimeZone('GMT')); return $dateTime->format('D, d M Y H:i:s \G\M\T'); } @@ -216,7 +216,7 @@ function negotiateContentType($acceptHeaderValue, array $availableOptions) { * Parameters are currently discarded. There's no known prefer value that * uses them. * - * @param string|string[] $header + * @param string|string[] $input * @return array */ function parsePrefer($input) { diff --git a/vendor/sabre/uri/.travis.yml b/vendor/sabre/uri/.travis.yml index f7d1a0657..75c8270df 100644 --- a/vendor/sabre/uri/.travis.yml +++ b/vendor/sabre/uri/.travis.yml @@ -3,8 +3,8 @@ php: - 5.4 - 5.5 - 5.6 - - hhvm - 7 + - 7.1 script: - ./bin/phpunit --configuration tests/phpunit.xml.dist diff --git a/vendor/sabre/uri/CHANGELOG.md b/vendor/sabre/uri/CHANGELOG.md index 9fa510dc2..92aaa7507 100644 --- a/vendor/sabre/uri/CHANGELOG.md +++ b/vendor/sabre/uri/CHANGELOG.md @@ -1,6 +1,29 @@ ChangeLog ========= +1.2.1 (2017-02-20) +------------------ + +* #16: Correctly parse urls that are only a fragment `#`. + + +1.2.0 (2016-12-06) +------------------ + +* Now throwing `InvalidUriException` if a uri passed to the `parse` function + is invalid or could not be parsed. +* #11: Fix support for URIs that start with a triple slash. PHP's `parse_uri()` + doesn't support them, so we now have a pure-php fallback in case it fails. +* #9: Fix support for relative URI's that have a non-uri encoded colon `:` in + them. + + +1.1.1 (2016-10-27) +------------------ + +* #10: Correctly support file:// URIs in the build() method. (@yuloh) + + 1.1.0 (2016-03-07) ------------------ diff --git a/vendor/sabre/uri/LICENSE b/vendor/sabre/uri/LICENSE index 9a3a91946..087996be7 100644 --- a/vendor/sabre/uri/LICENSE +++ b/vendor/sabre/uri/LICENSE @@ -1,4 +1,4 @@ -Copyright (C) 2014-2016 fruux GmbH (https://fruux.com/) +Copyright (C) 2014-2017 fruux GmbH (https://fruux.com/) All rights reserved. diff --git a/vendor/sabre/uri/README.md b/vendor/sabre/uri/README.md index 76f55d8e4..aa21bfe06 100644 --- a/vendor/sabre/uri/README.md +++ b/vendor/sabre/uri/README.md @@ -25,14 +25,6 @@ Further reading * [Usage][8] -Build status ------------- - -| branch | status | -| ------ | ------ | -| master | [![Build Status](https://travis-ci.org/fruux/sabre-uri.svg?branch=master)](https://travis-ci.org/fruux/sabre-uri) | - - Questions? ---------- diff --git a/vendor/sabre/uri/composer.json b/vendor/sabre/uri/composer.json index 7b48acb71..49d69e723 100644 --- a/vendor/sabre/uri/composer.json +++ b/vendor/sabre/uri/composer.json @@ -32,8 +32,8 @@ } }, "require-dev": { - "sabre/cs": "~0.0.1", - "phpunit/phpunit" : "*" + "sabre/cs": "~1.0.0", + "phpunit/phpunit" : ">=4.0,<6.0" }, "config" : { "bin-dir" : "bin/" diff --git a/vendor/sabre/uri/lib/InvalidUriException.php b/vendor/sabre/uri/lib/InvalidUriException.php new file mode 100644 index 000000000..0385fd462 --- /dev/null +++ b/vendor/sabre/uri/lib/InvalidUriException.php @@ -0,0 +1,17 @@ +<?php + +namespace Sabre\Uri; + +/** + * Invalid Uri + * + * This is thrown when an attempt was made to use Sabre\Uri parse a uri that + * it could not. + * + * @copyright Copyright (C) fruux GmbH (https://fruux.com/) + * @author Evert Pot (https://evertpot.com/) + * @license http://sabre.io/license/ + */ +class InvalidUriException extends \Exception { + +} diff --git a/vendor/sabre/uri/lib/Version.php b/vendor/sabre/uri/lib/Version.php index 88678d4d5..fa544538b 100644 --- a/vendor/sabre/uri/lib/Version.php +++ b/vendor/sabre/uri/lib/Version.php @@ -14,6 +14,6 @@ class Version { /** * Full version number */ - const VERSION = '1.1.0'; + const VERSION = '1.2.1'; } diff --git a/vendor/sabre/uri/lib/functions.php b/vendor/sabre/uri/lib/functions.php index 06181aef0..39b4a6f08 100644 --- a/vendor/sabre/uri/lib/functions.php +++ b/vendor/sabre/uri/lib/functions.php @@ -45,8 +45,8 @@ function resolve($basePath, $newPath) { $newParts = []; $newParts['scheme'] = $pick('scheme'); - $newParts['host'] = $pick('host'); - $newParts['port'] = $pick('port'); + $newParts['host'] = $pick('host'); + $newParts['port'] = $pick('port'); $path = ''; if ($delta['path']) { @@ -193,8 +193,13 @@ function parse($uri) { $uri ); + $result = parse_url($uri); + if (!$result) { + $result = _parse_fallback($uri); + } + return - parse_url($uri) + [ + $result + [ 'scheme' => null, 'host' => null, 'path' => null, @@ -233,7 +238,7 @@ function build(array $parts) { $uri = $parts['scheme'] . ':'; } - if ($authority) { + if ($authority || (!empty($parts['scheme']) && $parts['scheme'] === 'file')) { // No scheme, but there is a host. $uri .= '//' . $authority; @@ -280,3 +285,89 @@ function split($path) { return [null,null]; } + +/** + * This function is another implementation of parse_url, except this one is + * fully written in PHP. + * + * The reason is that the PHP bug team is not willing to admit that there are + * bugs in the parse_url implementation. + * + * This function is only called if the main parse method fails. It's pretty + * crude and probably slow, so the original parse_url is usually preferred. + * + * @param string $uri + * @return array + */ +function _parse_fallback($uri) { + + // Normally a URI must be ASCII, however. However, often it's not and + // parse_url might corrupt these strings. + // + // For that reason we take any non-ascii characters from the uri and + // uriencode them first. + $uri = preg_replace_callback( + '/[^[:ascii:]]/u', + function($matches) { + return rawurlencode($matches[0]); + }, + $uri + ); + + $result = [ + 'scheme' => null, + 'host' => null, + 'port' => null, + 'user' => null, + 'path' => null, + 'fragment' => null, + 'query' => null, + ]; + + if (preg_match('% ^([A-Za-z][A-Za-z0-9+-\.]+): %x', $uri, $matches)) { + + $result['scheme'] = $matches[1]; + // Take what's left. + $uri = substr($uri, strlen($result['scheme']) + 1); + + } + + // Taking off a fragment part + if (strpos($uri, '#') !== false) { + list($uri, $result['fragment']) = explode('#', $uri, 2); + } + // Taking off the query part + if (strpos($uri, '?') !== false) { + list($uri, $result['query']) = explode('?', $uri, 2); + } + + if (substr($uri, 0, 3) === '///') { + // The triple slash uris are a bit unusual, but we have special handling + // for them. + $result['path'] = substr($uri, 2); + $result['host'] = ''; + } elseif (substr($uri, 0, 2) === '//') { + // Uris that have an authority part. + $regex = ' + %^ + // + (?: (?<user> [^:@]+) (: (?<pass> [^@]+)) @)? + (?<host> ( [^:/]* | \[ [^\]]+ \] )) + (?: : (?<port> [0-9]+))? + (?<path> / .*)? + $%x + '; + if (!preg_match($regex, $uri, $matches)) { + throw new InvalidUriException('Invalid, or could not parse URI'); + } + if ($matches['host']) $result['host'] = $matches['host']; + if ($matches['port']) $result['port'] = (int)$matches['port']; + if (isset($matches['path'])) $result['path'] = $matches['path']; + if ($matches['user']) $result['user'] = $matches['user']; + if ($matches['pass']) $result['pass'] = $matches['pass']; + } else { + $result['path'] = $uri; + } + + return $result; +} diff --git a/vendor/sabre/vobject/.travis.yml b/vendor/sabre/vobject/.travis.yml index b7266a878..3c5b32157 100644 --- a/vendor/sabre/vobject/.travis.yml +++ b/vendor/sabre/vobject/.travis.yml @@ -2,7 +2,8 @@ language: php php: - 5.5 - 5.6 - - 7 + - 7.0 + - 7.1 sudo: false diff --git a/vendor/sabre/vobject/CHANGELOG.md b/vendor/sabre/vobject/CHANGELOG.md index 4c72680f8..c8f4cb4be 100644 --- a/vendor/sabre/vobject/CHANGELOG.md +++ b/vendor/sabre/vobject/CHANGELOG.md @@ -1,6 +1,22 @@ ChangeLog ========= +4.1.2 (2016-12-15) +------------------ + +* #340: Support for `BYYEARDAY` recurrence when `FREQ=YEARLY`. (@PHPGangsta) +* #341: Support for `BYWEEKNO` recurrence when `FREQ=YEARLY`. (@PHPGangsta) +* Updated to the latest windows timezone data mappings. +* #344: Auto-detecting more Outlook 365-generated timezone identifiers. + (@jpirkey) +* #348: `FreeBusyGenerator` can now accept streams. +* Support sabre/xml 1.5 and 2.0. +* #355: Support `DateTimeInterface` in more places where only `DateTime` was + supported. (@gharlan). +* #351: Fixing an inclusive/exclusive problem with `isInTimeRange` and + `fastForward` with all-day events. (@strokyl, thanks you are brilliant). + + 4.1.1 (2016-07-15) ------------------ @@ -143,7 +159,7 @@ ChangeLog and `IntegerValue` to allow PHP 7 compatibility. -3.5.3 (????-??-??) +3.5.3 (2016-10-06) ------------------ * #331: Fix dealing with multiple overridden instances falling on the same diff --git a/vendor/sabre/vobject/bin/fetch_windows_zones.php b/vendor/sabre/vobject/bin/fetch_windows_zones.php index 1b1fdc37c..3f2a00f7a 100755 --- a/vendor/sabre/vobject/bin/fetch_windows_zones.php +++ b/vendor/sabre/vobject/bin/fetch_windows_zones.php @@ -36,7 +36,7 @@ fwrite($f, " *\n"); fwrite($f, " * Last update: " . date(DATE_W3C) . "\n"); fwrite($f, " * Source: " . $windowsZonesUrl . "\n"); fwrite($f, " *\n"); -fwrite($f, " * @copyright Copyright (C) 2011-2015 fruux GmbH (https://fruux.com/).\n"); +fwrite($f, " * @copyright Copyright (C) fruux GmbH (https://fruux.com/).\n"); fwrite($f, " * @license http://sabre.io/license/ Modified BSD License\n"); fwrite($f, " */\n"); fwrite($f, "\n"); diff --git a/vendor/sabre/vobject/composer.json b/vendor/sabre/vobject/composer.json index bd6348a82..cfa4a712d 100644 --- a/vendor/sabre/vobject/composer.json +++ b/vendor/sabre/vobject/composer.json @@ -34,11 +34,11 @@ "require" : { "php" : ">=5.5", "ext-mbstring" : "*", - "sabre/xml" : "~1.1" + "sabre/xml" : ">=1.5 <3.0" }, "require-dev" : { "phpunit/phpunit" : "*", - "sabre/cs" : "~0.0.3" + "sabre/cs" : "^1.0.0" }, "suggest" : { diff --git a/vendor/sabre/vobject/lib/BirthdayCalendarGenerator.php b/vendor/sabre/vobject/lib/BirthdayCalendarGenerator.php index afa41ab1c..553912249 100644 --- a/vendor/sabre/vobject/lib/BirthdayCalendarGenerator.php +++ b/vendor/sabre/vobject/lib/BirthdayCalendarGenerator.php @@ -159,10 +159,10 @@ class BirthdayCalendarGenerator { // Create event. $event = $calendar->add('VEVENT', [ - 'SUMMARY' => sprintf($this->format, $object->FN->getValue()), - 'DTSTART' => new \DateTime($object->BDAY->getValue()), - 'RRULE' => 'FREQ=YEARLY', - 'TRANSP' => 'TRANSPARENT', + 'SUMMARY' => sprintf($this->format, $object->FN->getValue()), + 'DTSTART' => new \DateTime($object->BDAY->getValue()), + 'RRULE' => 'FREQ=YEARLY', + 'TRANSP' => 'TRANSPARENT', ]); // add VALUE=date diff --git a/vendor/sabre/vobject/lib/Component/VAlarm.php b/vendor/sabre/vobject/lib/Component/VAlarm.php index 8cbd572e6..faa8a5e74 100644 --- a/vendor/sabre/vobject/lib/Component/VAlarm.php +++ b/vendor/sabre/vobject/lib/Component/VAlarm.php @@ -2,10 +2,10 @@ namespace Sabre\VObject\Component; +use DateTimeImmutable; +use DateTimeInterface; use Sabre\VObject; use Sabre\VObject\InvalidDataException; -use DateTimeInterface; -use DateTimeImmutable; /** * VAlarm component. diff --git a/vendor/sabre/vobject/lib/Component/VCalendar.php b/vendor/sabre/vobject/lib/Component/VCalendar.php index 988db9dc2..1b3137d38 100644 --- a/vendor/sabre/vobject/lib/Component/VCalendar.php +++ b/vendor/sabre/vobject/lib/Component/VCalendar.php @@ -6,10 +6,10 @@ use DateTimeInterface; use DateTimeZone; use Sabre\VObject; use Sabre\VObject\Component; +use Sabre\VObject\InvalidDataException; use Sabre\VObject\Property; use Sabre\VObject\Recur\EventIterator; use Sabre\VObject\Recur\NoInstancesException; -use Sabre\VObject\InvalidDataException; /** * The VCalendar component. @@ -54,21 +54,21 @@ class VCalendar extends VObject\Document { * @var array */ static $valueMap = [ - 'BINARY' => 'Sabre\\VObject\\Property\\Binary', - 'BOOLEAN' => 'Sabre\\VObject\\Property\\Boolean', - 'CAL-ADDRESS' => 'Sabre\\VObject\\Property\\ICalendar\\CalAddress', - 'DATE' => 'Sabre\\VObject\\Property\\ICalendar\\Date', - 'DATE-TIME' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', - 'DURATION' => 'Sabre\\VObject\\Property\\ICalendar\\Duration', - 'FLOAT' => 'Sabre\\VObject\\Property\\FloatValue', - 'INTEGER' => 'Sabre\\VObject\\Property\\IntegerValue', - 'PERIOD' => 'Sabre\\VObject\\Property\\ICalendar\\Period', - 'RECUR' => 'Sabre\\VObject\\Property\\ICalendar\\Recur', - 'TEXT' => 'Sabre\\VObject\\Property\\Text', - 'TIME' => 'Sabre\\VObject\\Property\\Time', - 'UNKNOWN' => 'Sabre\\VObject\\Property\\Unknown', // jCard / jCal-only. - 'URI' => 'Sabre\\VObject\\Property\\Uri', - 'UTC-OFFSET' => 'Sabre\\VObject\\Property\\UtcOffset', + 'BINARY' => 'Sabre\\VObject\\Property\\Binary', + 'BOOLEAN' => 'Sabre\\VObject\\Property\\Boolean', + 'CAL-ADDRESS' => 'Sabre\\VObject\\Property\\ICalendar\\CalAddress', + 'DATE' => 'Sabre\\VObject\\Property\\ICalendar\\Date', + 'DATE-TIME' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', + 'DURATION' => 'Sabre\\VObject\\Property\\ICalendar\\Duration', + 'FLOAT' => 'Sabre\\VObject\\Property\\FloatValue', + 'INTEGER' => 'Sabre\\VObject\\Property\\IntegerValue', + 'PERIOD' => 'Sabre\\VObject\\Property\\ICalendar\\Period', + 'RECUR' => 'Sabre\\VObject\\Property\\ICalendar\\Recur', + 'TEXT' => 'Sabre\\VObject\\Property\\Text', + 'TIME' => 'Sabre\\VObject\\Property\\Time', + 'UNKNOWN' => 'Sabre\\VObject\\Property\\Unknown', // jCard / jCal-only. + 'URI' => 'Sabre\\VObject\\Property\\Uri', + 'UTC-OFFSET' => 'Sabre\\VObject\\Property\\UtcOffset', ]; /** @@ -78,40 +78,40 @@ class VCalendar extends VObject\Document { */ static $propertyMap = [ // Calendar properties - 'CALSCALE' => 'Sabre\\VObject\\Property\\FlatText', - 'METHOD' => 'Sabre\\VObject\\Property\\FlatText', - 'PRODID' => 'Sabre\\VObject\\Property\\FlatText', - 'VERSION' => 'Sabre\\VObject\\Property\\FlatText', + 'CALSCALE' => 'Sabre\\VObject\\Property\\FlatText', + 'METHOD' => 'Sabre\\VObject\\Property\\FlatText', + 'PRODID' => 'Sabre\\VObject\\Property\\FlatText', + 'VERSION' => 'Sabre\\VObject\\Property\\FlatText', // Component properties - 'ATTACH' => 'Sabre\\VObject\\Property\\Uri', - 'CATEGORIES' => 'Sabre\\VObject\\Property\\Text', - 'CLASS' => 'Sabre\\VObject\\Property\\FlatText', - 'COMMENT' => 'Sabre\\VObject\\Property\\FlatText', - 'DESCRIPTION' => 'Sabre\\VObject\\Property\\FlatText', - 'GEO' => 'Sabre\\VObject\\Property\\FloatValue', - 'LOCATION' => 'Sabre\\VObject\\Property\\FlatText', - 'PERCENT-COMPLETE' => 'Sabre\\VObject\\Property\\IntegerValue', - 'PRIORITY' => 'Sabre\\VObject\\Property\\IntegerValue', - 'RESOURCES' => 'Sabre\\VObject\\Property\\Text', - 'STATUS' => 'Sabre\\VObject\\Property\\FlatText', - 'SUMMARY' => 'Sabre\\VObject\\Property\\FlatText', + 'ATTACH' => 'Sabre\\VObject\\Property\\Uri', + 'CATEGORIES' => 'Sabre\\VObject\\Property\\Text', + 'CLASS' => 'Sabre\\VObject\\Property\\FlatText', + 'COMMENT' => 'Sabre\\VObject\\Property\\FlatText', + 'DESCRIPTION' => 'Sabre\\VObject\\Property\\FlatText', + 'GEO' => 'Sabre\\VObject\\Property\\FloatValue', + 'LOCATION' => 'Sabre\\VObject\\Property\\FlatText', + 'PERCENT-COMPLETE' => 'Sabre\\VObject\\Property\\IntegerValue', + 'PRIORITY' => 'Sabre\\VObject\\Property\\IntegerValue', + 'RESOURCES' => 'Sabre\\VObject\\Property\\Text', + 'STATUS' => 'Sabre\\VObject\\Property\\FlatText', + 'SUMMARY' => 'Sabre\\VObject\\Property\\FlatText', // Date and Time Component Properties - 'COMPLETED' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', - 'DTEND' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', - 'DUE' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', - 'DTSTART' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', - 'DURATION' => 'Sabre\\VObject\\Property\\ICalendar\\Duration', - 'FREEBUSY' => 'Sabre\\VObject\\Property\\ICalendar\\Period', - 'TRANSP' => 'Sabre\\VObject\\Property\\FlatText', + 'COMPLETED' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', + 'DTEND' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', + 'DUE' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', + 'DTSTART' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', + 'DURATION' => 'Sabre\\VObject\\Property\\ICalendar\\Duration', + 'FREEBUSY' => 'Sabre\\VObject\\Property\\ICalendar\\Period', + 'TRANSP' => 'Sabre\\VObject\\Property\\FlatText', // Time Zone Component Properties - 'TZID' => 'Sabre\\VObject\\Property\\FlatText', - 'TZNAME' => 'Sabre\\VObject\\Property\\FlatText', - 'TZOFFSETFROM' => 'Sabre\\VObject\\Property\\UtcOffset', - 'TZOFFSETTO' => 'Sabre\\VObject\\Property\\UtcOffset', - 'TZURL' => 'Sabre\\VObject\\Property\\Uri', + 'TZID' => 'Sabre\\VObject\\Property\\FlatText', + 'TZNAME' => 'Sabre\\VObject\\Property\\FlatText', + 'TZOFFSETFROM' => 'Sabre\\VObject\\Property\\UtcOffset', + 'TZOFFSETTO' => 'Sabre\\VObject\\Property\\UtcOffset', + 'TZURL' => 'Sabre\\VObject\\Property\\Uri', // Relationship Component Properties 'ATTENDEE' => 'Sabre\\VObject\\Property\\ICalendar\\CalAddress', @@ -123,15 +123,15 @@ class VCalendar extends VObject\Document { 'UID' => 'Sabre\\VObject\\Property\\FlatText', // Recurrence Component Properties - 'EXDATE' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', - 'RDATE' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', - 'RRULE' => 'Sabre\\VObject\\Property\\ICalendar\\Recur', - 'EXRULE' => 'Sabre\\VObject\\Property\\ICalendar\\Recur', // Deprecated since rfc5545 + 'EXDATE' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', + 'RDATE' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', + 'RRULE' => 'Sabre\\VObject\\Property\\ICalendar\\Recur', + 'EXRULE' => 'Sabre\\VObject\\Property\\ICalendar\\Recur', // Deprecated since rfc5545 // Alarm Component Properties - 'ACTION' => 'Sabre\\VObject\\Property\\FlatText', - 'REPEAT' => 'Sabre\\VObject\\Property\\IntegerValue', - 'TRIGGER' => 'Sabre\\VObject\\Property\\ICalendar\\Duration', + 'ACTION' => 'Sabre\\VObject\\Property\\FlatText', + 'REPEAT' => 'Sabre\\VObject\\Property\\IntegerValue', + 'TRIGGER' => 'Sabre\\VObject\\Property\\ICalendar\\Duration', // Change Management Component Properties 'CREATED' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', @@ -143,13 +143,13 @@ class VCalendar extends VObject\Document { 'REQUEST-STATUS' => 'Sabre\\VObject\\Property\\Text', // Additions from draft-daboo-valarm-extensions-04 - 'ALARM-AGENT' => 'Sabre\\VObject\\Property\\Text', - 'ACKNOWLEDGED' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', - 'PROXIMITY' => 'Sabre\\VObject\\Property\\Text', - 'DEFAULT-ALARM' => 'Sabre\\VObject\\Property\\Boolean', + 'ALARM-AGENT' => 'Sabre\\VObject\\Property\\Text', + 'ACKNOWLEDGED' => 'Sabre\\VObject\\Property\\ICalendar\\DateTime', + 'PROXIMITY' => 'Sabre\\VObject\\Property\\Text', + 'DEFAULT-ALARM' => 'Sabre\\VObject\\Property\\Boolean', // Additions from draft-daboo-calendar-availability-05 - 'BUSYTYPE' => 'Sabre\\VObject\\Property\\Text', + 'BUSYTYPE' => 'Sabre\\VObject\\Property\\Text', ]; diff --git a/vendor/sabre/vobject/lib/Component/VCard.php b/vendor/sabre/vobject/lib/Component/VCard.php index 3c05191a9..4f620de10 100644 --- a/vendor/sabre/vobject/lib/Component/VCard.php +++ b/vendor/sabre/vobject/lib/Component/VCard.php @@ -74,19 +74,19 @@ class VCard extends VObject\Document { static $propertyMap = [ // vCard 2.1 properties and up - 'N' => 'Sabre\\VObject\\Property\\Text', - 'FN' => 'Sabre\\VObject\\Property\\FlatText', - 'PHOTO' => 'Sabre\\VObject\\Property\\Binary', - 'BDAY' => 'Sabre\\VObject\\Property\\VCard\\DateAndOrTime', - 'ADR' => 'Sabre\\VObject\\Property\\Text', - 'LABEL' => 'Sabre\\VObject\\Property\\FlatText', // Removed in vCard 4.0 - 'TEL' => 'Sabre\\VObject\\Property\\FlatText', - 'EMAIL' => 'Sabre\\VObject\\Property\\FlatText', - 'MAILER' => 'Sabre\\VObject\\Property\\FlatText', // Removed in vCard 4.0 - 'GEO' => 'Sabre\\VObject\\Property\\FlatText', - 'TITLE' => 'Sabre\\VObject\\Property\\FlatText', - 'ROLE' => 'Sabre\\VObject\\Property\\FlatText', - 'LOGO' => 'Sabre\\VObject\\Property\\Binary', + 'N' => 'Sabre\\VObject\\Property\\Text', + 'FN' => 'Sabre\\VObject\\Property\\FlatText', + 'PHOTO' => 'Sabre\\VObject\\Property\\Binary', + 'BDAY' => 'Sabre\\VObject\\Property\\VCard\\DateAndOrTime', + 'ADR' => 'Sabre\\VObject\\Property\\Text', + 'LABEL' => 'Sabre\\VObject\\Property\\FlatText', // Removed in vCard 4.0 + 'TEL' => 'Sabre\\VObject\\Property\\FlatText', + 'EMAIL' => 'Sabre\\VObject\\Property\\FlatText', + 'MAILER' => 'Sabre\\VObject\\Property\\FlatText', // Removed in vCard 4.0 + 'GEO' => 'Sabre\\VObject\\Property\\FlatText', + 'TITLE' => 'Sabre\\VObject\\Property\\FlatText', + 'ROLE' => 'Sabre\\VObject\\Property\\FlatText', + 'LOGO' => 'Sabre\\VObject\\Property\\Binary', // 'AGENT' => 'Sabre\\VObject\\Property\\', // Todo: is an embedded vCard. Probably rare, so // not supported at the moment 'ORG' => 'Sabre\\VObject\\Property\\Text', @@ -107,13 +107,13 @@ class VCard extends VObject\Document { 'CLASS' => 'Sabre\\VObject\\Property\\FlatText', // Removed in vCard 4.0 // rfc2739 properties - 'FBURL' => 'Sabre\\VObject\\Property\\Uri', - 'CAPURI' => 'Sabre\\VObject\\Property\\Uri', - 'CALURI' => 'Sabre\\VObject\\Property\\Uri', - 'CALADRURI' => 'Sabre\\VObject\\Property\\Uri', + 'FBURL' => 'Sabre\\VObject\\Property\\Uri', + 'CAPURI' => 'Sabre\\VObject\\Property\\Uri', + 'CALURI' => 'Sabre\\VObject\\Property\\Uri', + 'CALADRURI' => 'Sabre\\VObject\\Property\\Uri', // rfc4770 properties - 'IMPP' => 'Sabre\\VObject\\Property\\Uri', + 'IMPP' => 'Sabre\\VObject\\Property\\Uri', // vCard 4.0 properties 'SOURCE' => 'Sabre\\VObject\\Property\\Uri', @@ -127,9 +127,9 @@ class VCard extends VObject\Document { 'RELATED' => 'Sabre\\VObject\\Property\\Uri', // rfc6474 properties - 'BIRTHPLACE' => 'Sabre\\VObject\\Property\\FlatText', - 'DEATHPLACE' => 'Sabre\\VObject\\Property\\FlatText', - 'DEATHDATE' => 'Sabre\\VObject\\Property\\VCard\\DateAndOrTime', + 'BIRTHPLACE' => 'Sabre\\VObject\\Property\\FlatText', + 'DEATHPLACE' => 'Sabre\\VObject\\Property\\FlatText', + 'DEATHDATE' => 'Sabre\\VObject\\Property\\VCard\\DateAndOrTime', // rfc6715 properties 'EXPERTISE' => 'Sabre\\VObject\\Property\\FlatText', @@ -368,7 +368,7 @@ class VCard extends VObject\Document { // FN is commented out, because it's already handled by the // validate function, which may also try to repair it. // 'FN' => '+', - 'UID' => '?', + 'UID' => '?', ]; } diff --git a/vendor/sabre/vobject/lib/DateTimeParser.php b/vendor/sabre/vobject/lib/DateTimeParser.php index 443bbb660..f9a802d25 100644 --- a/vendor/sabre/vobject/lib/DateTimeParser.php +++ b/vendor/sabre/vobject/lib/DateTimeParser.php @@ -2,9 +2,9 @@ namespace Sabre\VObject; +use DateInterval; use DateTimeImmutable; use DateTimeZone; -use DateInterval; /** * DateTimeParser. @@ -509,7 +509,7 @@ class DateTimeParser { static function parseVCardDateAndOrTime($date) { // \d{8}|\d{4}-\d\d|--\d\d(\d\d)?|---\d\d - $valueDate = '/^(?J)(?:' . + $valueDate = '/^(?J)(?:' . '(?<year>\d{4})(?<month>\d\d)(?<date>\d\d)' . '|(?<year>\d{4})-(?<month>\d\d)' . '|--(?<month>\d\d)(?<date>\d\d)?' . @@ -517,7 +517,7 @@ class DateTimeParser { ')$/'; // (\d\d(\d\d(\d\d)?)?|-\d\d(\d\d)?|--\d\d)(Z|[+\-]\d\d(\d\d)?)? - $valueTime = '/^(?J)(?:' . + $valueTime = '/^(?J)(?:' . '((?<hour>\d\d)((?<minute>\d\d)(?<second>\d\d)?)?' . '|-(?<minute>\d\d)(?<second>\d\d)?' . '|--(?<second>\d\d))' . @@ -554,12 +554,12 @@ class DateTimeParser { ]; // The $valueDateTime expression has a bug with (?J) so we simulate it. - $parts['date0'] = &$parts['date']; - $parts['date1'] = &$parts['date']; - $parts['date2'] = &$parts['date']; + $parts['date0'] = &$parts['date']; + $parts['date1'] = &$parts['date']; + $parts['date2'] = &$parts['date']; $parts['month0'] = &$parts['month']; $parts['month1'] = &$parts['month']; - $parts['year0'] = &$parts['year']; + $parts['year0'] = &$parts['year']; foreach ($parts as $part => &$value) { if (!empty($matches[$part])) { diff --git a/vendor/sabre/vobject/lib/FreeBusyGenerator.php b/vendor/sabre/vobject/lib/FreeBusyGenerator.php index e33621090..e30b136c4 100644 --- a/vendor/sabre/vobject/lib/FreeBusyGenerator.php +++ b/vendor/sabre/vobject/lib/FreeBusyGenerator.php @@ -2,8 +2,8 @@ namespace Sabre\VObject; -use DateTimeInterface; use DateTimeImmutable; +use DateTimeInterface; use DateTimeZone; use Sabre\VObject\Component\VCalendar; use Sabre\VObject\Recur\EventIterator; @@ -152,7 +152,7 @@ class FreeBusyGenerator { $this->objects = []; foreach ($objects as $object) { - if (is_string($object)) { + if (is_string($object) || is_resource($object)) { $this->objects[] = Reader::read($object); } elseif ($object instanceof Component) { $this->objects[] = $object; @@ -292,7 +292,7 @@ class FreeBusyGenerator { list($higherStart, $higherEnd) = $higherVavail->getEffectiveStartEnd(); if ( (is_null($higherStart) || $higherStart < $compStart) && - (is_null($higherEnd) || $higherEnd > $compEnd) + (is_null($higherEnd) || $higherEnd > $compEnd) ) { // Component is fully covered by a higher priority diff --git a/vendor/sabre/vobject/lib/Parameter.php b/vendor/sabre/vobject/lib/Parameter.php index 270643eab..a99a33eec 100644 --- a/vendor/sabre/vobject/lib/Parameter.php +++ b/vendor/sabre/vobject/lib/Parameter.php @@ -2,8 +2,8 @@ namespace Sabre\VObject; -use Sabre\Xml; use ArrayIterator; +use Sabre\Xml; /** * VObject Parameter. diff --git a/vendor/sabre/vobject/lib/Parser/Json.php b/vendor/sabre/vobject/lib/Parser/Json.php index 370c981a8..a77258a2e 100644 --- a/vendor/sabre/vobject/lib/Parser/Json.php +++ b/vendor/sabre/vobject/lib/Parser/Json.php @@ -4,8 +4,8 @@ namespace Sabre\VObject\Parser; use Sabre\VObject\Component\VCalendar; use Sabre\VObject\Component\VCard; -use Sabre\VObject\ParseException; use Sabre\VObject\EofException; +use Sabre\VObject\ParseException; /** * Json Parser. diff --git a/vendor/sabre/vobject/lib/Parser/MimeDir.php b/vendor/sabre/vobject/lib/Parser/MimeDir.php index 6a7f9317b..fa75a1a3b 100644 --- a/vendor/sabre/vobject/lib/Parser/MimeDir.php +++ b/vendor/sabre/vobject/lib/Parser/MimeDir.php @@ -2,12 +2,12 @@ namespace Sabre\VObject\Parser; -use Sabre\VObject\ParseException; -use Sabre\VObject\EofException; use Sabre\VObject\Component; use Sabre\VObject\Component\VCalendar; use Sabre\VObject\Component\VCard; use Sabre\VObject\Document; +use Sabre\VObject\EofException; +use Sabre\VObject\ParseException; /** * MimeDir parser. diff --git a/vendor/sabre/vobject/lib/Parser/XML.php b/vendor/sabre/vobject/lib/Parser/XML.php index 060a7fe2e..5ac423984 100644 --- a/vendor/sabre/vobject/lib/Parser/XML.php +++ b/vendor/sabre/vobject/lib/Parser/XML.php @@ -20,7 +20,7 @@ use Sabre\Xml as SabreXml; */ class XML extends Parser { - const XCAL_NAMESPACE = 'urn:ietf:params:xml:ns:icalendar-2.0'; + const XCAL_NAMESPACE = 'urn:ietf:params:xml:ns:icalendar-2.0'; const XCARD_NAMESPACE = 'urn:ietf:params:xml:ns:vcard-4.0'; /** @@ -100,7 +100,7 @@ class XML extends Parser { foreach ($this->input['value'] as &$vCard) { $this->root = new VCard(['version' => '4.0'], false); - $this->pointer = &$vCard; + $this->pointer = &$vCard; $this->parseVCardComponents($this->root); // We just parse the first <vcard /> element. @@ -172,10 +172,10 @@ class XML extends Parser { list($namespace, $tagName) = SabreXml\Service::parseClarkNotation($xmlProperty['name']); - $propertyName = $tagName; - $propertyValue = []; + $propertyName = $tagName; + $propertyValue = []; $propertyParameters = []; - $propertyType = 'text'; + $propertyType = 'text'; // A property which is not part of the standard. if ($namespace !== self::XCAL_NAMESPACE @@ -253,8 +253,8 @@ class XML extends Parser { switch ($propertyNameExtended) { case 'xcal:geo': - $propertyType = 'float'; - $propertyValue['latitude'] = 0; + $propertyType = 'float'; + $propertyValue['latitude'] = 0; $propertyValue['longitude'] = 0; foreach ($xmlProperty['value'] as $xmlRequestChild) { @@ -296,7 +296,7 @@ class XML extends Parser { if ('period' === $tagName) { $propertyParameters['value'] = 'PERIOD'; - $propertyValue[] = implode('/', $specialChild['value']); + $propertyValue[] = implode('/', $specialChild['value']); } else { @@ -306,7 +306,7 @@ class XML extends Parser { break; default: - $propertyType = static::getTagName($xmlProperty['value'][0]['name']); + $propertyType = static::getTagName($xmlProperty['value'][0]['name']); foreach ($xmlProperty['value'] as $value) { $propertyValue[] = $value['value']; @@ -343,7 +343,7 @@ class XML extends Parser { foreach ($components as $component) { - $componentName = static::getTagName($component['name']); + $componentName = static::getTagName($component['name']); $currentComponent = $this->root->createComponent( $componentName, null, @@ -404,7 +404,7 @@ class XML extends Parser { $reader->elementMap['{' . self::XCAL_NAMESPACE . '}recur'] = 'Sabre\VObject\Parser\XML\Element\KeyValue'; $reader->xml($input); - $input = $reader->parse(); + $input = $reader->parse(); } diff --git a/vendor/sabre/vobject/lib/Property/ICalendar/Duration.php b/vendor/sabre/vobject/lib/Property/ICalendar/Duration.php index 66d366960..7b7e1ce8e 100644 --- a/vendor/sabre/vobject/lib/Property/ICalendar/Duration.php +++ b/vendor/sabre/vobject/lib/Property/ICalendar/Duration.php @@ -2,8 +2,8 @@ namespace Sabre\VObject\Property\ICalendar; -use Sabre\VObject\Property; use Sabre\VObject\DateTimeParser; +use Sabre\VObject\Property; /** * Duration property. diff --git a/vendor/sabre/vobject/lib/Property/ICalendar/Period.php b/vendor/sabre/vobject/lib/Property/ICalendar/Period.php index a4561d929..d35b425aa 100644 --- a/vendor/sabre/vobject/lib/Property/ICalendar/Period.php +++ b/vendor/sabre/vobject/lib/Property/ICalendar/Period.php @@ -2,8 +2,8 @@ namespace Sabre\VObject\Property\ICalendar; -use Sabre\VObject\Property; use Sabre\VObject\DateTimeParser; +use Sabre\VObject\Property; use Sabre\Xml; /** diff --git a/vendor/sabre/vobject/lib/Property/ICalendar/Recur.php b/vendor/sabre/vobject/lib/Property/ICalendar/Recur.php index 8392a5cc1..434b77088 100644 --- a/vendor/sabre/vobject/lib/Property/ICalendar/Recur.php +++ b/vendor/sabre/vobject/lib/Property/ICalendar/Recur.php @@ -287,6 +287,54 @@ class Recur extends Property { } } } + // if there is no valid entry left, remove the whole value + if (is_array($value) && empty($values[$key])) { + unset($values[$key]); + } + } elseif ($key == 'BYWEEKNO') { + $byWeekNo = (array)$value; + foreach ($byWeekNo as $i => $v) { + if (!is_numeric($v) || (int)$v < -53 || (int)$v == 0 || (int)$v > 53) { + $warnings[] = [ + 'level' => $repair ? 1 : 3, + 'message' => 'BYWEEKNO in RRULE must have value(s) from -53 to -1, or 1 to 53!', + 'node' => $this + ]; + if ($repair) { + if (is_array($value)) { + unset($values[$key][$i]); + } else { + unset($values[$key]); + } + } + } + } + // if there is no valid entry left, remove the whole value + if (is_array($value) && empty($values[$key])) { + unset($values[$key]); + } + } elseif ($key == 'BYYEARDAY') { + $byYearDay = (array)$value; + foreach ($byYearDay as $i => $v) { + if (!is_numeric($v) || (int)$v < -366 || (int)$v == 0 || (int)$v > 366) { + $warnings[] = [ + 'level' => $repair ? 1 : 3, + 'message' => 'BYYEARDAY in RRULE must have value(s) from -366 to -1, or 1 to 366!', + 'node' => $this + ]; + if ($repair) { + if (is_array($value)) { + unset($values[$key][$i]); + } else { + unset($values[$key]); + } + } + } + } + // if there is no valid entry left, remove the whole value + if (is_array($value) && empty($values[$key])) { + unset($values[$key]); + } } } diff --git a/vendor/sabre/vobject/lib/Property/Text.php b/vendor/sabre/vobject/lib/Property/Text.php index abc17563f..476dcde4d 100644 --- a/vendor/sabre/vobject/lib/Property/Text.php +++ b/vendor/sabre/vobject/lib/Property/Text.php @@ -2,10 +2,10 @@ namespace Sabre\VObject\Property; -use Sabre\VObject\Property; use Sabre\VObject\Component; -use Sabre\VObject\Parser\MimeDir; use Sabre\VObject\Document; +use Sabre\VObject\Parser\MimeDir; +use Sabre\VObject\Property; use Sabre\Xml; /** diff --git a/vendor/sabre/vobject/lib/Property/Uri.php b/vendor/sabre/vobject/lib/Property/Uri.php index 58e676e60..88fcfaab8 100644 --- a/vendor/sabre/vobject/lib/Property/Uri.php +++ b/vendor/sabre/vobject/lib/Property/Uri.php @@ -2,8 +2,8 @@ namespace Sabre\VObject\Property; -use Sabre\VObject\Property; use Sabre\VObject\Parameter; +use Sabre\VObject\Property; /** * URI property. diff --git a/vendor/sabre/vobject/lib/Property/VCard/DateAndOrTime.php b/vendor/sabre/vobject/lib/Property/VCard/DateAndOrTime.php index 650e19cbf..3b4ae3bb5 100644 --- a/vendor/sabre/vobject/lib/Property/VCard/DateAndOrTime.php +++ b/vendor/sabre/vobject/lib/Property/VCard/DateAndOrTime.php @@ -2,9 +2,9 @@ namespace Sabre\VObject\Property\VCard; -use DateTimeInterface; -use DateTimeImmutable; use DateTime; +use DateTimeImmutable; +use DateTimeInterface; use Sabre\VObject\DateTimeParser; use Sabre\VObject\InvalidDataException; use Sabre\VObject\Property; @@ -45,7 +45,7 @@ class DateAndOrTime extends Property { /** * Sets a multi-valued property. * - * You may also specify DateTime objects here. + * You may also specify DateTimeInterface objects here. * * @param array $parts * @@ -56,7 +56,7 @@ class DateAndOrTime extends Property { if (count($parts) > 1) { throw new \InvalidArgumentException('Only one value allowed'); } - if (isset($parts[0]) && $parts[0] instanceof \DateTime) { + if (isset($parts[0]) && $parts[0] instanceof DateTimeInterface) { $this->setDateTime($parts[0]); } else { parent::setParts($parts); @@ -69,15 +69,15 @@ class DateAndOrTime extends Property { * * This may be either a single, or multiple strings in an array. * - * Instead of strings, you may also use DateTime here. + * Instead of strings, you may also use DateTimeInterface here. * - * @param string|array|\DateTime $value + * @param string|array|DateTimeInterface $value * * @return void */ function setValue($value) { - if ($value instanceof \DateTime) { + if ($value instanceof DateTimeInterface) { $this->setDateTime($value); } else { parent::setValue($value); @@ -261,8 +261,8 @@ class DateAndOrTime extends Property { protected function xmlSerializeValue(Xml\Writer $writer) { $valueType = strtolower($this->getValueType()); - $parts = DateTimeParser::parseVCardDateAndOrTime($this->getValue()); - $value = ''; + $parts = DateTimeParser::parseVCardDateAndOrTime($this->getValue()); + $value = ''; // $d = defined $d = function($part) use ($parts) { @@ -280,7 +280,7 @@ class DateAndOrTime extends Property { // value-date = element date { // xsd:string { pattern = "\d{8}|\d{4}-\d\d|--\d\d(\d\d)?|---\d\d" } // } - if (($d('year') || $d('month') || $d('date')) + if (($d('year') || $d('month') || $d('date')) && (!$d('hour') && !$d('minute') && !$d('second') && !$d('timezone'))) { if ($d('year') && $d('month') && $d('date')) { @@ -298,8 +298,8 @@ class DateAndOrTime extends Property { // xsd:string { pattern = "(\d\d(\d\d(\d\d)?)?|-\d\d(\d\d?)|--\d\d)" // ~ "(Z|[+\-]\d\d(\d\d)?)?" } // } - } elseif ((!$d('year') && !$d('month') && !$d('date')) - && ($d('hour') || $d('minute') || $d('second'))) { + } elseif ((!$d('year') && !$d('month') && !$d('date')) + && ($d('hour') || $d('minute') || $d('second'))) { if ($d('hour')) { $value .= $r('hour') . $r('minute') . $r('second'); diff --git a/vendor/sabre/vobject/lib/Recur/EventIterator.php b/vendor/sabre/vobject/lib/Recur/EventIterator.php index f91c336bc..d313305a0 100644 --- a/vendor/sabre/vobject/lib/Recur/EventIterator.php +++ b/vendor/sabre/vobject/lib/Recur/EventIterator.php @@ -2,9 +2,9 @@ namespace Sabre\VObject\Recur; -use DateTimeZone; use DateTimeImmutable; use DateTimeInterface; +use DateTimeZone; use InvalidArgumentException; use Sabre\VObject\Component; use Sabre\VObject\Component\VEvent; @@ -43,6 +43,8 @@ use Sabre\VObject\Settings; * * BYSETPOS * * FREQ=YEARLY * * BYMONTH + * * BYYEARDAY + * * BYWEEKNO * * BYMONTHDAY (only if BYMONTH is also set) * * BYDAY (only if BYMONTH is also set) * @@ -407,7 +409,7 @@ class EventIterator implements \Iterator { */ function fastForward(DateTimeInterface $dateTime) { - while ($this->valid() && $this->getDtEnd() < $dateTime) { + while ($this->valid() && $this->getDtEnd() <= $dateTime) { $this->next(); } diff --git a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php index 4c89f3ce4..20f34ef42 100644 --- a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php +++ b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php @@ -2,8 +2,8 @@ namespace Sabre\VObject\Recur; -use DateTimeInterface; use DateTimeImmutable; +use DateTimeInterface; use Iterator; use Sabre\VObject\DateTimeParser; use Sabre\VObject\InvalidDataException; @@ -374,8 +374,8 @@ class RRuleIterator implements Iterator { $currentHour = $this->currentDate->format('G'); } while ( - ($this->byDay && !in_array($currentDay, $recurrenceDays)) || - ($this->byHour && !in_array($currentHour, $recurrenceHours)) || + ($this->byDay && !in_array($currentDay, $recurrenceDays)) || + ($this->byHour && !in_array($currentHour, $recurrenceHours)) || ($this->byMonth && !in_array($currentMonth, $recurrenceMonths)) ); @@ -537,6 +537,83 @@ class RRuleIterator implements Iterator { } + if ($this->byWeekNo !== null) { // byWeekNo is an array with values from -53 to -1, or 1 to 53 + $dayOffsets = []; + if ($this->byDay) { + foreach ($this->byDay as $byDay) { + $dayOffsets[] = $this->dayMap[$byDay]; + } + } else { // default is Monday + $dayOffsets[] = 1; + } + + $currentYear = $this->currentDate->format('Y'); + + while (true) { + $checkDates = []; + + // loop through all WeekNo and Days to check all the combinations + foreach ($this->byWeekNo as $byWeekNo) { + foreach ($dayOffsets as $dayOffset) { + $date = clone $this->currentDate; + $date->setISODate($currentYear, $byWeekNo, $dayOffset); + + if ($date > $this->currentDate) { + $checkDates[] = $date; + } + } + } + + if (count($checkDates) > 0) { + $this->currentDate = min($checkDates); + return; + } + + // if there is no date found, check the next year + $currentYear += $this->interval; + } + } + + if ($this->byYearDay !== null) { // byYearDay is an array with values from -366 to -1, or 1 to 366 + $dayOffsets = []; + if ($this->byDay) { + foreach ($this->byDay as $byDay) { + $dayOffsets[] = $this->dayMap[$byDay]; + } + } else { // default is Monday-Sunday + $dayOffsets = [1,2,3,4,5,6,7]; + } + + $currentYear = $this->currentDate->format('Y'); + + while (true) { + $checkDates = []; + + // loop through all YearDay and Days to check all the combinations + foreach ($this->byYearDay as $byYearDay) { + $date = clone $this->currentDate; + $date->setDate($currentYear, 1, 1); + if ($byYearDay > 0) { + $date->add(new \DateInterval('P' . $byYearDay . 'D')); + } else { + $date->sub(new \DateInterval('P' . abs($byYearDay) . 'D')); + } + + if ($date > $this->currentDate && in_array($date->format('N'), $dayOffsets)) { + $checkDates[] = $date; + } + } + + if (count($checkDates) > 0) { + $this->currentDate = min($checkDates); + return; + } + + // if there is no date found, check the next year + $currentYear += $this->interval; + } + } + // The easiest form $this->currentDate = $this->currentDate->modify('+' . $this->interval . ' years'); return; @@ -710,10 +787,20 @@ class RRuleIterator implements Iterator { case 'BYYEARDAY' : $this->byYearDay = (array)$value; + foreach ($this->byYearDay as $byYearDay) { + if (!is_numeric($byYearDay) || (int)$byYearDay < -366 || (int)$byYearDay == 0 || (int)$byYearDay > 366) { + throw new InvalidDataException('BYYEARDAY in RRULE must have value(s) from 1 to 366, or -366 to -1!'); + } + } break; case 'BYWEEKNO' : $this->byWeekNo = (array)$value; + foreach ($this->byWeekNo as $byWeekNo) { + if (!is_numeric($byWeekNo) || (int)$byWeekNo < -53 || (int)$byWeekNo == 0 || (int)$byWeekNo > 53) { + throw new InvalidDataException('BYWEEKNO in RRULE must have value(s) from 1 to 53, or -53 to -1!'); + } + } break; case 'BYMONTH' : diff --git a/vendor/sabre/vobject/lib/TimeZoneUtil.php b/vendor/sabre/vobject/lib/TimeZoneUtil.php index 2a95ae898..925183e8d 100644 --- a/vendor/sabre/vobject/lib/TimeZoneUtil.php +++ b/vendor/sabre/vobject/lib/TimeZoneUtil.php @@ -165,6 +165,16 @@ class TimeZoneUtil { return new \DateTimeZone(self::$map[$tzid]); } + // Some Microsoft products prefix the offset first, so let's strip that off + // and see if it is our tzid map. We don't want to check for this first just + // in case there are overrides in our tzid map. + if (preg_match('/^\((UTC|GMT)(\+|\-)[\d]{2}\:[\d]{2}\) (.*)/', $tzid, $matches)) { + $tzidAlternate = $matches[3]; + if (isset(self::$map[$tzidAlternate])) { + return new \DateTimeZone(self::$map[$tzidAlternate]); + } + } + // Maybe the author was hyper-lazy and just included an offset. We // support it, but we aren't happy about it. if (preg_match('/^GMT(\+|-)([0-9]{4})$/', $tzid, $matches)) { diff --git a/vendor/sabre/vobject/lib/Version.php b/vendor/sabre/vobject/lib/Version.php index ca9f21960..346e2044d 100644 --- a/vendor/sabre/vobject/lib/Version.php +++ b/vendor/sabre/vobject/lib/Version.php @@ -14,6 +14,6 @@ class Version { /** * Full version number. */ - const VERSION = '4.1.1'; + const VERSION = '4.1.2'; } diff --git a/vendor/sabre/vobject/lib/timezonedata/lotuszones.php b/vendor/sabre/vobject/lib/timezonedata/lotuszones.php index 7d0785f04..79d555a92 100644 --- a/vendor/sabre/vobject/lib/timezonedata/lotuszones.php +++ b/vendor/sabre/vobject/lib/timezonedata/lotuszones.php @@ -17,85 +17,85 @@ return [ 'Mexico Standard Time 2' => 'America/Chihuahua', 'Mountain' => 'America/Denver', // 'Mountain Standard Time' => 'America/Chihuahua', // conflict with windows timezones. - 'US Mountain' => 'America/Phoenix', - 'Canada Central' => 'America/Edmonton', - 'Central America' => 'America/Guatemala', - 'Central' => 'America/Chicago', + 'US Mountain' => 'America/Phoenix', + 'Canada Central' => 'America/Edmonton', + 'Central America' => 'America/Guatemala', + 'Central' => 'America/Chicago', // 'Central Standard Time' => 'America/Mexico_City', // conflict with windows timezones. - 'Mexico' => 'America/Mexico_City', - 'Eastern' => 'America/New_York', - 'SA Pacific' => 'America/Bogota', - 'US Eastern' => 'America/Indiana/Indianapolis', - 'Venezuela' => 'America/Caracas', - 'Atlantic' => 'America/Halifax', - 'Central Brazilian' => 'America/Manaus', - 'Pacific SA' => 'America/Santiago', - 'SA Western' => 'America/La_Paz', - 'Newfoundland' => 'America/St_Johns', - 'Argentina' => 'America/Argentina/Buenos_Aires', - 'E. South America' => 'America/Belem', - 'Greenland' => 'America/Godthab', - 'Montevideo' => 'America/Montevideo', - 'SA Eastern' => 'America/Belem', + 'Mexico' => 'America/Mexico_City', + 'Eastern' => 'America/New_York', + 'SA Pacific' => 'America/Bogota', + 'US Eastern' => 'America/Indiana/Indianapolis', + 'Venezuela' => 'America/Caracas', + 'Atlantic' => 'America/Halifax', + 'Central Brazilian' => 'America/Manaus', + 'Pacific SA' => 'America/Santiago', + 'SA Western' => 'America/La_Paz', + 'Newfoundland' => 'America/St_Johns', + 'Argentina' => 'America/Argentina/Buenos_Aires', + 'E. South America' => 'America/Belem', + 'Greenland' => 'America/Godthab', + 'Montevideo' => 'America/Montevideo', + 'SA Eastern' => 'America/Belem', // 'Mid-Atlantic' => 'Etc/GMT-2', // conflict with windows timezones. - 'Azores' => 'Atlantic/Azores', - 'Cape Verde' => 'Atlantic/Cape_Verde', - 'Greenwich' => 'Atlantic/Reykjavik', // No I'm serious.. Greenwich is not GMT. - 'Morocco' => 'Africa/Casablanca', - 'Central Europe' => 'Europe/Prague', - 'Central European' => 'Europe/Sarajevo', - 'Romance' => 'Europe/Paris', - 'W. Central Africa' => 'Africa/Lagos', // Best guess - 'W. Europe' => 'Europe/Amsterdam', - 'E. Europe' => 'Europe/Minsk', - 'Egypt' => 'Africa/Cairo', - 'FLE' => 'Europe/Helsinki', - 'GTB' => 'Europe/Athens', - 'Israel' => 'Asia/Jerusalem', - 'Jordan' => 'Asia/Amman', - 'Middle East' => 'Asia/Beirut', - 'Namibia' => 'Africa/Windhoek', - 'South Africa' => 'Africa/Harare', - 'Arab' => 'Asia/Kuwait', - 'Arabic' => 'Asia/Baghdad', - 'E. Africa' => 'Africa/Nairobi', - 'Georgian' => 'Asia/Tbilisi', - 'Russian' => 'Europe/Moscow', - 'Iran' => 'Asia/Tehran', - 'Arabian' => 'Asia/Muscat', - 'Armenian' => 'Asia/Yerevan', - 'Azerbijan' => 'Asia/Baku', - 'Caucasus' => 'Asia/Yerevan', - 'Mauritius' => 'Indian/Mauritius', - 'Afghanistan' => 'Asia/Kabul', - 'Ekaterinburg' => 'Asia/Yekaterinburg', - 'Pakistan' => 'Asia/Karachi', - 'West Asia' => 'Asia/Tashkent', - 'India' => 'Asia/Calcutta', - 'Sri Lanka' => 'Asia/Colombo', - 'Nepal' => 'Asia/Kathmandu', - 'Central Asia' => 'Asia/Dhaka', - 'N. Central Asia' => 'Asia/Almaty', - 'Myanmar' => 'Asia/Rangoon', - 'North Asia' => 'Asia/Krasnoyarsk', - 'SE Asia' => 'Asia/Bangkok', - 'China' => 'Asia/Shanghai', - 'North Asia East' => 'Asia/Irkutsk', - 'Singapore' => 'Asia/Singapore', - 'Taipei' => 'Asia/Taipei', - 'W. Australia' => 'Australia/Perth', - 'Korea' => 'Asia/Seoul', - 'Tokyo' => 'Asia/Tokyo', - 'Yakutsk' => 'Asia/Yakutsk', - 'AUS Central' => 'Australia/Darwin', - 'Cen. Australia' => 'Australia/Adelaide', - 'AUS Eastern' => 'Australia/Sydney', - 'E. Australia' => 'Australia/Brisbane', - 'Tasmania' => 'Australia/Hobart', - 'Vladivostok' => 'Asia/Vladivostok', - 'West Pacific' => 'Pacific/Guam', - 'Central Pacific' => 'Asia/Magadan', - 'Fiji' => 'Pacific/Fiji', - 'New Zealand' => 'Pacific/Auckland', - 'Tonga' => 'Pacific/Tongatapu', + 'Azores' => 'Atlantic/Azores', + 'Cape Verde' => 'Atlantic/Cape_Verde', + 'Greenwich' => 'Atlantic/Reykjavik', // No I'm serious.. Greenwich is not GMT. + 'Morocco' => 'Africa/Casablanca', + 'Central Europe' => 'Europe/Prague', + 'Central European' => 'Europe/Sarajevo', + 'Romance' => 'Europe/Paris', + 'W. Central Africa' => 'Africa/Lagos', // Best guess + 'W. Europe' => 'Europe/Amsterdam', + 'E. Europe' => 'Europe/Minsk', + 'Egypt' => 'Africa/Cairo', + 'FLE' => 'Europe/Helsinki', + 'GTB' => 'Europe/Athens', + 'Israel' => 'Asia/Jerusalem', + 'Jordan' => 'Asia/Amman', + 'Middle East' => 'Asia/Beirut', + 'Namibia' => 'Africa/Windhoek', + 'South Africa' => 'Africa/Harare', + 'Arab' => 'Asia/Kuwait', + 'Arabic' => 'Asia/Baghdad', + 'E. Africa' => 'Africa/Nairobi', + 'Georgian' => 'Asia/Tbilisi', + 'Russian' => 'Europe/Moscow', + 'Iran' => 'Asia/Tehran', + 'Arabian' => 'Asia/Muscat', + 'Armenian' => 'Asia/Yerevan', + 'Azerbijan' => 'Asia/Baku', + 'Caucasus' => 'Asia/Yerevan', + 'Mauritius' => 'Indian/Mauritius', + 'Afghanistan' => 'Asia/Kabul', + 'Ekaterinburg' => 'Asia/Yekaterinburg', + 'Pakistan' => 'Asia/Karachi', + 'West Asia' => 'Asia/Tashkent', + 'India' => 'Asia/Calcutta', + 'Sri Lanka' => 'Asia/Colombo', + 'Nepal' => 'Asia/Kathmandu', + 'Central Asia' => 'Asia/Dhaka', + 'N. Central Asia' => 'Asia/Almaty', + 'Myanmar' => 'Asia/Rangoon', + 'North Asia' => 'Asia/Krasnoyarsk', + 'SE Asia' => 'Asia/Bangkok', + 'China' => 'Asia/Shanghai', + 'North Asia East' => 'Asia/Irkutsk', + 'Singapore' => 'Asia/Singapore', + 'Taipei' => 'Asia/Taipei', + 'W. Australia' => 'Australia/Perth', + 'Korea' => 'Asia/Seoul', + 'Tokyo' => 'Asia/Tokyo', + 'Yakutsk' => 'Asia/Yakutsk', + 'AUS Central' => 'Australia/Darwin', + 'Cen. Australia' => 'Australia/Adelaide', + 'AUS Eastern' => 'Australia/Sydney', + 'E. Australia' => 'Australia/Brisbane', + 'Tasmania' => 'Australia/Hobart', + 'Vladivostok' => 'Asia/Vladivostok', + 'West Pacific' => 'Pacific/Guam', + 'Central Pacific' => 'Asia/Magadan', + 'Fiji' => 'Pacific/Fiji', + 'New Zealand' => 'Pacific/Auckland', + 'Tonga' => 'Pacific/Tongatapu', ]; diff --git a/vendor/sabre/vobject/lib/timezonedata/windowszones.php b/vendor/sabre/vobject/lib/timezonedata/windowszones.php index ac69847cc..29f3a6cb8 100644 --- a/vendor/sabre/vobject/lib/timezonedata/windowszones.php +++ b/vendor/sabre/vobject/lib/timezonedata/windowszones.php @@ -3,28 +3,33 @@ /** * Automatically generated timezone file * - * Last update: 2015-07-27T16:56:36-04:00 + * Last update: 2016-08-24T17:35:38-04:00 * Source: http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml * - * @copyright Copyright (C) fruux GmbH (https://fruux.com/) + * @copyright Copyright (C) 2011-2015 fruux GmbH (https://fruux.com/). * @license http://sabre.io/license/ Modified BSD License */ -return [ +return [ 'AUS Central Standard Time' => 'Australia/Darwin', 'AUS Eastern Standard Time' => 'Australia/Sydney', 'Afghanistan Standard Time' => 'Asia/Kabul', 'Alaskan Standard Time' => 'America/Anchorage', + 'Aleutian Standard Time' => 'America/Adak', + 'Altai Standard Time' => 'Asia/Barnaul', 'Arab Standard Time' => 'Asia/Riyadh', 'Arabian Standard Time' => 'Asia/Dubai', 'Arabic Standard Time' => 'Asia/Baghdad', 'Argentina Standard Time' => 'America/Buenos_Aires', + 'Astrakhan Standard Time' => 'Europe/Astrakhan', 'Atlantic Standard Time' => 'America/Halifax', + 'Aus Central W. Standard Time' => 'Australia/Eucla', 'Azerbaijan Standard Time' => 'Asia/Baku', 'Azores Standard Time' => 'Atlantic/Azores', 'Bahia Standard Time' => 'America/Bahia', 'Bangladesh Standard Time' => 'Asia/Dhaka', 'Belarus Standard Time' => 'Europe/Minsk', + 'Bougainville Standard Time' => 'Pacific/Bougainville', 'Canada Central Standard Time' => 'America/Regina', 'Cape Verde Standard Time' => 'Atlantic/Cape_Verde', 'Caucasus Standard Time' => 'Asia/Yerevan', @@ -37,11 +42,15 @@ return [ 'Central Pacific Standard Time' => 'Pacific/Guadalcanal', 'Central Standard Time' => 'America/Chicago', 'Central Standard Time (Mexico)' => 'America/Mexico_City', + 'Chatham Islands Standard Time' => 'Pacific/Chatham', 'China Standard Time' => 'Asia/Shanghai', + 'Cuba Standard Time' => 'America/Havana', 'Dateline Standard Time' => 'Etc/GMT+12', 'E. Africa Standard Time' => 'Africa/Nairobi', 'E. Australia Standard Time' => 'Australia/Brisbane', + 'E. Europe Standard Time' => 'Europe/Chisinau', 'E. South America Standard Time' => 'America/Sao_Paulo', + 'Easter Island Standard Time' => 'Pacific/Easter', 'Eastern Standard Time' => 'America/New_York', 'Eastern Standard Time (Mexico)' => 'America/Cancun', 'Egypt Standard Time' => 'Africa/Cairo', @@ -53,6 +62,7 @@ return [ 'Georgian Standard Time' => 'Asia/Tbilisi', 'Greenland Standard Time' => 'America/Godthab', 'Greenwich Standard Time' => 'Atlantic/Reykjavik', + 'Haiti Standard Time' => 'America/Port-au-Prince', 'Hawaiian Standard Time' => 'Pacific/Honolulu', 'India Standard Time' => 'Asia/Calcutta', 'Iran Standard Time' => 'Asia/Tehran', @@ -62,7 +72,9 @@ return [ 'Korea Standard Time' => 'Asia/Seoul', 'Libya Standard Time' => 'Africa/Tripoli', 'Line Islands Standard Time' => 'Pacific/Kiritimati', + 'Lord Howe Standard Time' => 'Australia/Lord_Howe', 'Magadan Standard Time' => 'Asia/Magadan', + 'Marquesas Standard Time' => 'Pacific/Marquesas', 'Mauritius Standard Time' => 'Indian/Mauritius', 'Middle East Standard Time' => 'Asia/Beirut', 'Montevideo Standard Time' => 'America/Montevideo', @@ -75,11 +87,13 @@ return [ 'Nepal Standard Time' => 'Asia/Katmandu', 'New Zealand Standard Time' => 'Pacific/Auckland', 'Newfoundland Standard Time' => 'America/St_Johns', + 'Norfolk Standard Time' => 'Pacific/Norfolk', 'North Asia East Standard Time' => 'Asia/Irkutsk', 'North Asia Standard Time' => 'Asia/Krasnoyarsk', + 'North Korea Standard Time' => 'Asia/Pyongyang', 'Pacific SA Standard Time' => 'America/Santiago', 'Pacific Standard Time' => 'America/Los_Angeles', - 'Pacific Standard Time (Mexico)' => 'America/Santa_Isabel', + 'Pacific Standard Time (Mexico)' => 'America/Tijuana', 'Pakistan Standard Time' => 'Asia/Karachi', 'Paraguay Standard Time' => 'America/Asuncion', 'Romance Standard Time' => 'Europe/Paris', @@ -91,6 +105,8 @@ return [ 'SA Pacific Standard Time' => 'America/Bogota', 'SA Western Standard Time' => 'America/La_Paz', 'SE Asia Standard Time' => 'Asia/Bangkok', + 'Saint Pierre Standard Time' => 'America/Miquelon', + 'Sakhalin Standard Time' => 'Asia/Sakhalin', 'Samoa Standard Time' => 'Pacific/Apia', 'Singapore Standard Time' => 'Asia/Singapore', 'South Africa Standard Time' => 'Africa/Johannesburg', @@ -98,14 +114,20 @@ return [ 'Syria Standard Time' => 'Asia/Damascus', 'Taipei Standard Time' => 'Asia/Taipei', 'Tasmania Standard Time' => 'Australia/Hobart', + 'Tocantins Standard Time' => 'America/Araguaina', 'Tokyo Standard Time' => 'Asia/Tokyo', + 'Tomsk Standard Time' => 'Asia/Tomsk', 'Tonga Standard Time' => 'Pacific/Tongatapu', + 'Transbaikal Standard Time' => 'Asia/Chita', 'Turkey Standard Time' => 'Europe/Istanbul', + 'Turks And Caicos Standard Time' => 'America/Grand_Turk', 'US Eastern Standard Time' => 'America/Indianapolis', 'US Mountain Standard Time' => 'America/Phoenix', 'UTC' => 'Etc/GMT', 'UTC+12' => 'Etc/GMT-12', 'UTC-02' => 'Etc/GMT+2', + 'UTC-08' => 'Etc/GMT+8', + 'UTC-09' => 'Etc/GMT+9', 'UTC-11' => 'Etc/GMT+11', 'Ulaanbaatar Standard Time' => 'Asia/Ulaanbaatar', 'Venezuela Standard Time' => 'America/Caracas', @@ -113,7 +135,9 @@ return [ 'W. Australia Standard Time' => 'Australia/Perth', 'W. Central Africa Standard Time' => 'Africa/Lagos', 'W. Europe Standard Time' => 'Europe/Berlin', + 'W. Mongolia Standard Time' => 'Asia/Hovd', 'West Asia Standard Time' => 'Asia/Tashkent', + 'West Bank Standard Time' => 'Asia/Hebron', 'West Pacific Standard Time' => 'Pacific/Port_Moresby', 'Yakutsk Standard Time' => 'Asia/Yakutsk', ]; |