From 0f84283b4e92f3b5dc4bec6c78b5bfe11ba30601 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20=C3=96zg=C3=BCn=20Turan?= Date: Sun, 9 Dec 2018 12:05:45 +0100 Subject: [PATCH] remove vendor, add gitignore, update jms-serializer --- .gitignore | 2 + composer.json | 2 +- composer.lock | 2475 ++++++++++++++ vendor/autoload.php | 7 - vendor/bin/phpunit | 1 - vendor/composer/ClassLoader.php | 445 --- vendor/composer/LICENSE | 56 - vendor/composer/autoload_classmap.php | 528 --- vendor/composer/autoload_files.php | 10 - vendor/composer/autoload_namespaces.php | 16 - vendor/composer/autoload_psr4.php | 16 - vendor/composer/autoload_real.php | 70 - vendor/composer/autoload_static.php | 640 ---- vendor/composer/installed.json | 1916 ----------- vendor/doctrine/annotations/CHANGELOG.md | 130 - vendor/doctrine/annotations/LICENSE | 19 - vendor/doctrine/annotations/README.md | 17 - vendor/doctrine/annotations/composer.json | 34 - .../Common/Annotations/Annotation.php | 79 - .../Annotations/Annotation/Attribute.php | 47 - .../Annotations/Annotation/Attributes.php | 37 - .../Common/Annotations/Annotation/Enum.php | 84 - .../Annotation/IgnoreAnnotation.php | 54 - .../Annotations/Annotation/Required.php | 33 - .../Common/Annotations/Annotation/Target.php | 107 - .../Annotations/AnnotationException.php | 197 -- .../Common/Annotations/AnnotationReader.php | 425 --- .../Common/Annotations/AnnotationRegistry.php | 174 - .../Common/Annotations/CachedReader.php | 262 -- .../Doctrine/Common/Annotations/DocLexer.php | 134 - .../Doctrine/Common/Annotations/DocParser.php | 1190 ------- .../Common/Annotations/FileCacheReader.php | 290 -- .../Common/Annotations/IndexedReader.php | 119 - .../Doctrine/Common/Annotations/PhpParser.php | 91 - .../Doctrine/Common/Annotations/Reader.php | 89 - .../Annotations/SimpleAnnotationReader.php | 127 - .../Common/Annotations/TokenParser.php | 194 -- vendor/doctrine/annotations/phpstan.neon | 17 - vendor/doctrine/instantiator/CONTRIBUTING.md | 35 - vendor/doctrine/instantiator/LICENSE | 19 - vendor/doctrine/instantiator/README.md | 40 - vendor/doctrine/instantiator/composer.json | 45 - .../Exception/ExceptionInterface.php | 29 - .../Exception/InvalidArgumentException.php | 52 - .../Exception/UnexpectedValueException.php | 66 - .../Doctrine/Instantiator/Instantiator.php | 216 -- .../Instantiator/InstantiatorInterface.php | 37 - vendor/doctrine/lexer/LICENSE | 19 - vendor/doctrine/lexer/README.md | 5 - vendor/doctrine/lexer/composer.json | 24 - .../Doctrine/Common/Lexer/AbstractLexer.php | 327 -- vendor/jms/metadata/.gitignore | 1 - vendor/jms/metadata/.travis.yml | 22 - vendor/jms/metadata/CHANGELOG.md | 36 - vendor/jms/metadata/LICENSE | 201 -- vendor/jms/metadata/README.rst | 37 - vendor/jms/metadata/composer.json | 28 - vendor/jms/metadata/composer.lock | 250 -- vendor/jms/metadata/phpunit.xml.dist | 25 - .../AdvancedMetadataFactoryInterface.php | 36 - .../src/Metadata/Cache/CacheInterface.php | 35 - .../Metadata/Cache/DoctrineCacheAdapter.php | 57 - .../metadata/src/Metadata/Cache/FileCache.php | 83 - .../src/Metadata/Cache/PsrCacheAdapter.php | 51 - .../src/Metadata/ClassHierarchyMetadata.php | 55 - .../metadata/src/Metadata/ClassMetadata.php | 98 - .../Metadata/Driver/AbstractFileDriver.php | 59 - .../Driver/AdvancedDriverInterface.php | 34 - .../Driver/AdvancedFileLocatorInterface.php | 36 - .../src/Metadata/Driver/DriverChain.php | 70 - .../src/Metadata/Driver/DriverInterface.php | 29 - .../src/Metadata/Driver/FileLocator.php | 66 - .../Metadata/Driver/FileLocatorInterface.php | 14 - .../src/Metadata/Driver/LazyLoadingDriver.php | 25 - .../src/Metadata/MergeableClassMetadata.php | 23 - .../src/Metadata/MergeableInterface.php | 13 - .../metadata/src/Metadata/MetadataFactory.php | 208 -- .../src/Metadata/MetadataFactoryInterface.php | 42 - .../metadata/src/Metadata/MethodMetadata.php | 67 - .../metadata/src/Metadata/NullMetadata.php | 13 - .../src/Metadata/PropertyMetadata.php | 78 - vendor/jms/metadata/src/Metadata/Version.php | 24 - .../Tests/Cache/DoctrineCacheAdapterTest.php | 33 - .../Metadata/Tests/Cache/FileCacheTest.php | 22 - .../Tests/Cache/PsrCacheAdapterTest.php | 33 - .../Metadata/Tests/ClassMetadataTest.php | 39 - .../Tests/Driver/AbstractFileDriverTest.php | 85 - .../Metadata/Tests/Driver/DriverChainTest.php | 65 - .../Metadata/Tests/Driver/FileLocatorTest.php | 69 - .../Metadata/Tests/Driver/Fixture/A/A.php | 5 - .../Metadata/Tests/Driver/Fixture/A/A.xml | 0 .../Metadata/Tests/Driver/Fixture/B/B.php | 5 - .../Metadata/Tests/Driver/Fixture/B/B.yml | 0 .../Tests/Driver/Fixture/C/SubDir.C.yml | 0 .../Tests/Driver/Fixture/C/SubDir/C.php | 5 - .../Metadata/Tests/Driver/Fixture/D/D.php | 3 - .../Metadata/Tests/Driver/Fixture/D/D.yml | 0 .../Metadata/Tests/Driver/Fixture/T/T.php | 5 - .../Metadata/Tests/Driver/Fixture/T/T.xml | 0 .../Fixtures/ComplexHierarchy/BaseClass.php | 8 - .../Fixtures/ComplexHierarchy/InterfaceA.php | 7 - .../Fixtures/ComplexHierarchy/InterfaceB.php | 7 - .../Fixtures/ComplexHierarchy/SubClassA.php | 8 - .../Fixtures/ComplexHierarchy/SubClassB.php | 8 - .../Metadata/Tests/Fixtures/TestObject.php | 18 - .../Metadata/Tests/Fixtures/TestParent.php | 7 - .../Tests/MergeableClassMetadataTest.php | 32 - .../Metadata/Tests/MetadataFactoryTest.php | 279 -- .../Metadata/Tests/MethodMetadataTest.php | 37 - .../Metadata/Tests/PropertyMetadataTest.php | 37 - vendor/jms/metadata/tests/bootstrap.php | 36 - vendor/jms/parser-lib/.gitignore | 3 - vendor/jms/parser-lib/.jms.yml | 19 - vendor/jms/parser-lib/.travis.yml | 15 - vendor/jms/parser-lib/LICENSE | 201 -- vendor/jms/parser-lib/README.md | 4 - vendor/jms/parser-lib/composer.json | 18 - vendor/jms/parser-lib/composer.lock | 62 - vendor/jms/parser-lib/doc/LICENSE | 55 - vendor/jms/parser-lib/doc/index.rst | 108 - vendor/jms/parser-lib/phpunit.xml.dist | 25 - .../src/JMS/Parser/AbstractLexer.php | 163 - .../src/JMS/Parser/AbstractParser.php | 128 - .../parser-lib/src/JMS/Parser/SimpleLexer.php | 57 - .../src/JMS/Parser/SyntaxErrorException.php | 45 - .../JMS/Parser/Tests/AbstractLexerTest.php | 121 - .../JMS/Parser/Tests/AbstractParserTest.php | 87 - vendor/jms/parser-lib/tests/bootstrap.php | 8 - vendor/jms/serializer/.github/CONDUCT.md | 32 - vendor/jms/serializer/.github/CONTRIBUTING.md | 71 - .../jms/serializer/.github/ISSUE_TEMPLATE.md | 27 - .../.github/PULL_REQUEST_TEMPLATE.md | 11 - vendor/jms/serializer/.gitignore | 4 - vendor/jms/serializer/.scrutinizer.yml | 3 - vendor/jms/serializer/.travis.yml | 38 - vendor/jms/serializer/CHANGELOG.md | 791 ----- vendor/jms/serializer/LICENSE | 201 -- vendor/jms/serializer/META.md | 7 - vendor/jms/serializer/README.md | 4 - vendor/jms/serializer/UPGRADING.md | 26 - vendor/jms/serializer/composer.json | 67 - vendor/jms/serializer/doc/LICENSE | 55 - vendor/jms/serializer/doc/configuration.rst | 100 - vendor/jms/serializer/doc/cookbook.rst | 7 - vendor/jms/serializer/doc/cookbook/arrays.rst | 47 - .../doc/cookbook/exclusion_strategies.rst | 330 -- .../jms/serializer/doc/cookbook/stdclass.rst | 16 - vendor/jms/serializer/doc/event_system.rst | 85 - vendor/jms/serializer/doc/handlers.rst | 63 - vendor/jms/serializer/doc/index.rst | 72 - vendor/jms/serializer/doc/reference.rst | 8 - .../serializer/doc/reference/annotations.rst | 760 ----- .../doc/reference/xml_reference.rst | 107 - .../doc/reference/yml_reference.rst | 82 - vendor/jms/serializer/doc/usage.rst | 38 - vendor/jms/serializer/phpunit.xml.dist | 31 - .../src/JMS/Serializer/AbstractVisitor.php | 64 - .../Accessor/AccessorStrategyInterface.php | 42 - .../Accessor/DefaultAccessorStrategy.php | 38 - .../Accessor/ExpressionAccessorStrategy.php | 57 - .../JMS/Serializer/Annotation/AccessType.php | 34 - .../JMS/Serializer/Annotation/Accessor.php | 38 - .../Serializer/Annotation/AccessorOrder.php | 40 - .../Serializer/Annotation/Discriminator.php | 38 - .../src/JMS/Serializer/Annotation/Exclude.php | 28 - .../Serializer/Annotation/ExclusionPolicy.php | 46 - .../src/JMS/Serializer/Annotation/Expose.php | 28 - .../src/JMS/Serializer/Annotation/Groups.php | 29 - .../Serializer/Annotation/HandlerCallback.php | 40 - .../src/JMS/Serializer/Annotation/Inline.php | 27 - .../JMS/Serializer/Annotation/MaxDepth.php | 32 - .../Serializer/Annotation/PostDeserialize.php | 33 - .../Serializer/Annotation/PostSerialize.php | 27 - .../Serializer/Annotation/PreSerialize.php | 34 - .../JMS/Serializer/Annotation/ReadOnly.php | 31 - .../Serializer/Annotation/SerializedName.php | 39 - .../src/JMS/Serializer/Annotation/Since.php | 27 - .../Serializer/Annotation/SkipWhenEmpty.php | 27 - .../src/JMS/Serializer/Annotation/Type.php | 32 - .../src/JMS/Serializer/Annotation/Until.php | 27 - .../src/JMS/Serializer/Annotation/Version.php | 28 - .../Serializer/Annotation/VirtualProperty.php | 48 - .../Serializer/Annotation/XmlAttribute.php | 31 - .../Serializer/Annotation/XmlAttributeMap.php | 27 - .../Serializer/Annotation/XmlCollection.php | 42 - .../Annotation/XmlDiscriminator.php | 42 - .../JMS/Serializer/Annotation/XmlElement.php | 36 - .../Annotation/XmlKeyValuePairs.php | 27 - .../src/JMS/Serializer/Annotation/XmlList.php | 27 - .../src/JMS/Serializer/Annotation/XmlMap.php | 31 - .../Serializer/Annotation/XmlNamespace.php | 37 - .../src/JMS/Serializer/Annotation/XmlRoot.php | 37 - .../JMS/Serializer/Annotation/XmlValue.php | 31 - .../Serializer/ArrayTransformerInterface.php | 50 - .../Builder/CallbackDriverFactory.php | 29 - .../Builder/DefaultDriverFactory.php | 28 - .../Builder/DriverFactoryInterface.php | 17 - .../DoctrineObjectConstructor.php | 117 - .../ObjectConstructorInterface.php | 47 - .../UnserializeObjectConstructor.php | 47 - .../serializer/src/JMS/Serializer/Context.php | 280 -- .../ContextFactory/CallableContextFactory.php | 48 - .../CallableDeserializationContextFactory.php | 34 - .../CallableSerializationContextFactory.php | 34 - .../DefaultDeserializationContextFactory.php | 35 - .../DefaultSerializationContextFactory.php | 35 - ...DeserializationContextFactoryInterface.php | 32 - .../SerializationContextFactoryInterface.php | 32 - .../JMS/Serializer/DeserializationContext.php | 53 - .../JMS/Serializer/EventDispatcher/Event.php | 77 - .../EventDispatcher/EventDispatcher.php | 131 - .../EventDispatcherInterface.php | 66 - .../EventSubscriberInterface.php | 38 - .../JMS/Serializer/EventDispatcher/Events.php | 31 - .../EventDispatcher/LazyEventDispatcher.php | 58 - .../EventDispatcher/ObjectEvent.php | 38 - .../EventDispatcher/PreDeserializeEvent.php | 48 - .../EventDispatcher/PreSerializeEvent.php | 31 - .../Subscriber/DoctrineProxySubscriber.php | 123 - .../Subscriber/SymfonyValidatorSubscriber.php | 61 - .../SymfonyValidatorValidatorSubscriber.php | 73 - .../JMS/Serializer/Exception/Exception.php | 28 - .../ExpressionLanguageRequiredException.php | 26 - .../Exception/InvalidArgumentException.php | 28 - .../Serializer/Exception/LogicException.php | 28 - .../Exception/ObjectConstructionException.php | 28 - .../Serializer/Exception/RuntimeException.php | 28 - .../Exception/UnsupportedFormatException.php | 23 - .../Exception/ValidationFailedException.php | 44 - .../Exception/XmlErrorException.php | 53 - .../Exclusion/DepthExclusionStrategy.php | 67 - .../Exclusion/DisjunctExclusionStrategy.php | 93 - .../Exclusion/ExclusionStrategyInterface.php | 49 - .../ExpressionLanguageExclusionStrategy.php | 67 - .../Exclusion/GroupsExclusionStrategy.php | 92 - .../Exclusion/VersionExclusionStrategy.php | 57 - .../Expression/ExpressionEvaluator.php | 79 - .../ExpressionEvaluatorInterface.php | 32 - .../GenericDeserializationVisitor.php | 223 -- .../GenericSerializationVisitor.php | 227 -- .../src/JMS/Serializer/GraphNavigator.php | 360 --- .../Handler/ArrayCollectionHandler.php | 94 - .../Handler/ConstraintViolationHandler.php | 111 - .../JMS/Serializer/Handler/DateHandler.php | 276 -- .../Serializer/Handler/FormErrorHandler.php | 167 - .../Serializer/Handler/HandlerRegistry.php | 88 - .../Handler/HandlerRegistryInterface.php | 55 - .../Handler/LazyHandlerRegistry.php | 62 - .../Handler/PhpCollectionHandler.php | 88 - .../Handler/PropelCollectionHandler.php | 79 - .../Serializer/Handler/StdClassHandler.php | 60 - .../Handler/SubscribingHandlerInterface.php | 40 - .../Serializer/JsonDeserializationVisitor.php | 52 - .../Serializer/JsonSerializationVisitor.php | 261 -- .../JMS/Serializer/Metadata/ClassMetadata.php | 347 -- .../Driver/AbstractDoctrineTypeDriver.php | 174 - .../Metadata/Driver/AnnotationDriver.php | 251 -- .../Driver/DoctrinePHPCRTypeDriver.php | 69 - .../Metadata/Driver/DoctrineTypeDriver.php | 69 - .../Serializer/Metadata/Driver/NullDriver.php | 33 - .../Serializer/Metadata/Driver/PhpDriver.php | 45 - .../Serializer/Metadata/Driver/XmlDriver.php | 361 --- .../Serializer/Metadata/Driver/YamlDriver.php | 341 -- .../Metadata/ExpressionPropertyMetadata.php | 127 - .../Serializer/Metadata/PropertyMetadata.php | 188 -- .../Metadata/StaticPropertyMetadata.php | 101 - .../Metadata/VirtualPropertyMetadata.php | 107 - .../AdvancedNamingStrategyInterface.php | 43 - .../Serializer/Naming/CacheNamingStrategy.php | 42 - .../Naming/CamelCaseNamingStrategy.php | 52 - .../IdenticalPropertyNamingStrategy.php | 29 - .../PropertyNamingStrategyInterface.php | 41 - .../SerializedNameAnnotationStrategy.php | 48 - .../Serializer/NullAwareVisitorInterface.php | 32 - .../JMS/Serializer/SerializationContext.php | 143 - .../src/JMS/Serializer/Serializer.php | 251 -- .../src/JMS/Serializer/SerializerBuilder.php | 502 --- .../JMS/Serializer/SerializerInterface.php | 50 - .../Serializer/Twig/SerializerExtension.php | 66 - .../Twig/SerializerRuntimeExtension.php | 45 - .../Twig/SerializerRuntimeHelper.php | 46 - .../src/JMS/Serializer/TypeParser.php | 105 - .../src/JMS/Serializer/Util/Writer.php | 138 - .../src/JMS/Serializer/VisitorInterface.php | 141 - .../Serializer/XmlDeserializationVisitor.php | 450 --- .../Serializer/XmlSerializationVisitor.php | 533 --- .../Serializer/YamlSerializationVisitor.php | 223 -- .../DisjunctExclusionStrategyTest.php | 161 - ...xpressionLanguageExclusionStrategyTest.php | 75 - .../Exclusion/GroupsExclusionStrategyTest.php | 68 - .../tests/Fixtures/AccessorOrderChild.php | 27 - .../tests/Fixtures/AccessorOrderMethod.php | 38 - .../tests/Fixtures/AccessorOrderParent.php | 27 - .../tests/Fixtures/AccessorSetter.php | 108 - .../tests/Fixtures/AllExcludedObject.php | 37 - .../jms/serializer/tests/Fixtures/Article.php | 70 - .../jms/serializer/tests/Fixtures/Author.php | 41 - .../tests/Fixtures/AuthorExpressionAccess.php | 59 - .../serializer/tests/Fixtures/AuthorList.php | 94 - .../tests/Fixtures/AuthorReadOnly.php | 58 - .../tests/Fixtures/AuthorReadOnlyPerClass.php | 62 - .../serializer/tests/Fixtures/BlogPost.php | 159 - .../tests/Fixtures/CircularReferenceChild.php | 51 - .../Fixtures/CircularReferenceParent.php | 61 - .../jms/serializer/tests/Fixtures/Comment.php | 45 - .../Fixtures/ContextualNamingStrategy.php | 40 - .../tests/Fixtures/CurrencyAwareOrder.php | 34 - .../tests/Fixtures/CurrencyAwarePrice.php | 43 - .../Fixtures/CustomDeserializationObject.php | 34 - .../tests/Fixtures/DateTimeArraysObject.php | 60 - .../tests/Fixtures/Discriminator/Car.php | 23 - .../tests/Fixtures/Discriminator/Moped.php | 23 - ...jectWithXmlAttributeDiscriminatorChild.php | 23 - ...ectWithXmlAttributeDiscriminatorParent.php | 32 - ...jectWithXmlNamespaceDiscriminatorChild.php | 23 - ...ectWithXmlNamespaceDiscriminatorParent.php | 33 - ...bjectWithXmlNotCDataDiscriminatorChild.php | 23 - ...jectWithXmlNotCDataDiscriminatorParent.php | 32 - .../tests/Fixtures/Discriminator/Vehicle.php | 38 - .../Discriminator/VehicleInterface.php | 31 - .../tests/Fixtures/DiscriminatorGroup/Car.php | 23 - .../Fixtures/DiscriminatorGroup/Vehicle.php | 40 - .../tests/Fixtures/Doctrine/Author.php | 48 - .../tests/Fixtures/Doctrine/BlogPost.php | 117 - .../tests/Fixtures/Doctrine/Comment.php | 56 - .../SingleTableInheritance/AbstractModel.php | 10 - .../Doctrine/SingleTableInheritance/Clazz.php | 42 - .../SingleTableInheritance/Organization.php | 19 - .../SingleTableInheritance/Person.php | 20 - .../SingleTableInheritance/School.php | 12 - .../SingleTableInheritance/Student.php | 12 - .../SingleTableInheritance/Teacher.php | 12 - .../tests/Fixtures/DoctrinePHPCR/Author.php | 47 - .../tests/Fixtures/DoctrinePHPCR/BlogPost.php | 102 - .../tests/Fixtures/DoctrinePHPCR/Comment.php | 56 - .../tests/Fixtures/ExcludePublicAccessor.php | 50 - .../AlwaysExcludeExclusionStrategy.php | 21 - .../jms/serializer/tests/Fixtures/Garage.php | 34 - .../tests/Fixtures/GetSetObject.php | 65 - .../tests/Fixtures/GroupsObject.php | 57 - .../serializer/tests/Fixtures/GroupsTrim.php | 51 - .../serializer/tests/Fixtures/GroupsUser.php | 48 - .../Fixtures/IndexedCommentsBlogPost.php | 73 - .../InitializedBlogPostConstructor.php | 36 - .../Fixtures/InitializedObjectConstructor.php | 56 - .../serializer/tests/Fixtures/InlineChild.php | 34 - .../tests/Fixtures/InlineChildEmpty.php | 24 - .../tests/Fixtures/InlineChildWithGroups.php | 37 - .../tests/Fixtures/InlineParent.php | 46 - .../jms/serializer/tests/Fixtures/Input.php | 41 - .../tests/Fixtures/InvalidGroupsObject.php | 31 - .../tests/Fixtures/InvalidUsageOfXmlValue.php | 30 - vendor/jms/serializer/tests/Fixtures/Log.php | 55 - .../tests/Fixtures/MaxDepth/Gh236Bar.php | 19 - .../tests/Fixtures/MaxDepth/Gh236Foo.php | 19 - .../tests/Fixtures/MultilineGroupsFormat.php | 51 - .../Fixtures/NamedDateTimeArraysObject.php | 45 - .../NamedDateTimeImmutableArraysObject.php | 44 - vendor/jms/serializer/tests/Fixtures/Node.php | 36 - .../Fixtures/ObjectWithAbsentXmlListNode.php | 47 - .../Fixtures/ObjectWithEmptyArrayAndHash.php | 45 - .../tests/Fixtures/ObjectWithEmptyHash.php | 30 - .../ObjectWithEmptyNullableAndEmptyArrays.php | 80 - ...pressionVirtualPropertiesAndExcludeAll.php | 38 - .../Fixtures/ObjectWithHandlerCallbacks.php | 46 - .../Fixtures/ObjectWithIntListAndIntMap.php | 20 - .../Fixtures/ObjectWithLifecycleCallbacks.php | 74 - .../Fixtures/ObjectWithNamespacesAndList.php | 104 - .../ObjectWithNamespacesAndNestedList.php | 43 - .../tests/Fixtures/ObjectWithNullProperty.php | 38 - .../Fixtures/ObjectWithObjectProperty.php | 53 - .../tests/Fixtures/ObjectWithToString.php | 34 - .../ObjectWithVersionedVirtualProperties.php | 53 - .../Fixtures/ObjectWithVirtualProperties.php | 63 - ...jectWithVirtualPropertiesAndExcludeAll.php | 36 - .../ObjectWithVirtualXmlProperties.php | 108 - .../Fixtures/ObjectWithXmlKeyValuePairs.php | 46 - ...jectWithXmlKeyValuePairsWithObjectType.php | 47 - .../ObjectWithXmlKeyValuePairsWithType.php | 68 - .../Fixtures/ObjectWithXmlNamespaces.php | 73 - ...jectWithXmlNamespacesAndObjectProperty.php | 49 - ...thXmlNamespacesAndObjectPropertyAuthor.php | 53 - ...hXmlNamespacesAndObjectPropertyVirtual.php | 49 - .../Fixtures/ObjectWithXmlRootNamespace.php | 66 - .../jms/serializer/tests/Fixtures/Order.php | 34 - .../ParentDoNotSkipWithEmptyChild.php | 36 - .../Fixtures/ParentSkipWithEmptyChild.php | 39 - .../jms/serializer/tests/Fixtures/Person.php | 42 - .../tests/Fixtures/PersonCollection.php | 46 - .../tests/Fixtures/PersonLocation.php | 38 - .../tests/Fixtures/PersonSecret.php | 45 - .../tests/Fixtures/PersonSecretMore.php | 40 - .../Fixtures/PersonSecretMoreVirtual.php | 46 - .../tests/Fixtures/PersonSecretVirtual.php | 54 - .../Fixtures/PersonSecretWithVariables.php | 45 - .../jms/serializer/tests/Fixtures/Price.php | 40 - .../serializer/tests/Fixtures/Publisher.php | 49 - .../tests/Fixtures/SimpleClassObject.php | 51 - .../tests/Fixtures/SimpleObject.php | 53 - .../tests/Fixtures/SimpleObjectProxy.php | 41 - .../tests/Fixtures/SimpleSubClassObject.php | 51 - vendor/jms/serializer/tests/Fixtures/Tag.php | 43 - .../serializer/tests/Fixtures/Timestamp.php | 39 - vendor/jms/serializer/tests/Fixtures/Tree.php | 34 - .../tests/Fixtures/VehicleInterfaceGarage.php | 34 - .../tests/Fixtures/VersionedObject.php | 43 - .../Handler/ArrayCollectionHandlerTest.php | 52 - .../tests/Handler/DateHandlerTest.php | 137 - .../tests/Handler/FormErrorHandlerTest.php | 254 -- .../tests/Handler/HandlerRegistryTest.php | 64 - .../tests/Handler/LazyHandlerRegistryTest.php | 74 - ...yHandlerRegistryWithPsr11ContainerTest.php | 54 - ...andlerRegistryWithSymfonyContainerTest.php | 34 - .../Handler/PropelCollectionHandlerTest.php | 43 - .../Tests/Fixtures/ObjectWithInlineArray.php | 22 - .../tests/Metadata/ClassMetadataTest.php | 168 - .../Metadata/Driver/AnnotationDriverTest.php | 30 - .../tests/Metadata/Driver/BaseDriverTest.php | 496 --- .../Metadata/Driver/DoctrineDriverTest.php | 162 - .../Driver/DoctrinePHPCRDriverTest.php | 127 - .../tests/Metadata/Driver/NullDriverTest.php | 35 - .../tests/Metadata/Driver/PhpDriverTest.php | 32 - .../tests/Metadata/Driver/XmlDriverTest.php | 112 - .../tests/Metadata/Driver/YamlDriverTest.php | 97 - .../Driver/php/AuthorExpressionAccess.php | 19 - .../Metadata/Driver/php/AuthorReadOnly.php | 7 - .../Driver/php/AuthorReadOnlyPerClass.php | 7 - .../tests/Metadata/Driver/php/BlogPost.php | 61 - .../Metadata/Driver/php/Discriminator.Car.php | 7 - .../Driver/php/Discriminator.Moped.php | 7 - ...ectWithXmlAttributeDiscriminatorParent.php | 11 - ...ectWithXmlNamespaceDiscriminatorParent.php | 11 - .../Driver/php/Discriminator.Vehicle.php | 16 - .../Driver/php/DiscriminatorGroup.Vehicle.php | 15 - .../tests/Metadata/Driver/php/Node.php | 12 - .../php/ObjectWithAbsentXmlListNode.php | 22 - ...pressionVirtualPropertiesAndExcludeAll.php | 13 - .../Driver/php/ObjectWithHandlerCallbacks.php | 16 - .../php/ObjectWithVirtualProperties.php | 28 - ...jectWithVirtualPropertiesAndExcludeAll.php | 14 - .../Driver/php/ObjectWithXmlKeyValuePairs.php | 13 - .../Driver/php/ObjectWithXmlNamespaces.php | 41 - .../Driver/php/ParentSkipWithEmptyChild.php | 19 - .../tests/Metadata/Driver/php/Person.php | 20 - .../Metadata/Driver/php/PersonSecret.php | 22 - .../tests/Metadata/Driver/php/Price.php | 13 - .../Metadata/Driver/php/SimpleClassObject.php | 28 - .../Driver/php/SimpleSubClassObject.php | 26 - .../Driver/xml/AuthorExpressionAccess.xml | 8 - .../Metadata/Driver/xml/AuthorReadOnly.xml | 7 - .../Driver/xml/AuthorReadOnlyPerClass.xml | 7 - .../tests/Metadata/Driver/xml/BlogPost.xml | 27 - .../Metadata/Driver/xml/Discriminator.Car.xml | 5 - .../Driver/xml/Discriminator.Moped.xml | 5 - ...ectWithXmlAttributeDiscriminatorParent.xml | 9 - ...ectWithXmlNamespaceDiscriminatorParent.xml | 9 - .../Driver/xml/Discriminator.Vehicle.xml | 8 - .../Driver/xml/DiscriminatorGroup.Vehicle.xml | 10 - .../Driver/xml/ExcludePublicAccessor.xml | 6 - .../Metadata/Driver/xml/GetSetObject.xml | 7 - .../tests/Metadata/Driver/xml/GroupsTrim.xml | 17 - .../Driver/xml/MultilineGroupsFormat.xml | 19 - .../tests/Metadata/Driver/xml/Node.xml | 6 - .../xml/ObjectWithAbsentXmlListNode.xml | 16 - ...pressionVirtualPropertiesAndExcludeAll.xml | 6 - .../Driver/xml/ObjectWithHandlerCallbacks.xml | 8 - .../xml/ObjectWithVirtualProperties.xml | 9 - ...jectWithVirtualPropertiesAndExcludeAll.xml | 6 - .../Driver/xml/ObjectWithXmlKeyValuePairs.xml | 6 - .../Driver/xml/ObjectWithXmlNamespaces.xml | 21 - .../Driver/xml/ParentSkipWithEmptyChild.xml | 8 - .../tests/Metadata/Driver/xml/Person.xml | 9 - .../Metadata/Driver/xml/PersonSecret.xml | 8 - .../tests/Metadata/Driver/xml/Price.xml | 6 - .../Metadata/Driver/xml/SimpleClassObject.xml | 17 - .../Driver/xml/SimpleSubClassObject.xml | 16 - .../Metadata/Driver/xml/case/BlogPost.xml | 6 - .../Driver/xml/exclude_all/BlogPost.xml | 6 - .../Driver/xml/exclude_none/BlogPost.xml | 6 - .../tests/Metadata/Driver/xml/invalid.xml | 1 - .../Driver/yml/AuthorExpressionAccess.yml | 11 - .../Metadata/Driver/yml/AuthorReadOnly.yml | 10 - .../Driver/yml/AuthorReadOnlyPerClass.yml | 11 - .../tests/Metadata/Driver/yml/BlogPost.yml | 43 - .../Metadata/Driver/yml/Discriminator.Car.yml | 1 - .../Driver/yml/Discriminator.Moped.yml | 1 - ...ectWithXmlAttributeDiscriminatorParent.yml | 8 - ...ectWithXmlNamespaceDiscriminatorParent.yml | 7 - .../Driver/yml/Discriminator.Vehicle.yml | 10 - .../Driver/yml/DiscriminatorGroup.Vehicle.yml | 10 - .../Driver/yml/ExcludePublicAccessor.yml | 6 - .../tests/Metadata/Driver/yml/Node.yml | 4 - .../yml/ObjectWithAbsentXmlListNode.yml | 14 - ...pressionVirtualPropertiesAndExcludeAll.yml | 5 - .../Driver/yml/ObjectWithHandlerCallbacks.yml | 8 - .../yml/ObjectWithVirtualProperties.yml | 10 - ...jectWithVirtualPropertiesAndExcludeAll.yml | 4 - .../Driver/yml/ObjectWithXmlKeyValuePairs.yml | 5 - .../Driver/yml/ObjectWithXmlNamespaces.yml | 29 - .../Driver/yml/ParentSkipWithEmptyChild.yml | 8 - .../tests/Metadata/Driver/yml/Person.yml | 11 - .../Metadata/Driver/yml/PersonSecret.yml | 10 - .../tests/Metadata/Driver/yml/Price.yml | 5 - .../Metadata/Driver/yml/SimpleClassObject.yml | 19 - .../Driver/yml/SimpleSubClassObject.yml | 17 - .../Metadata/Driver/yml/accessor/BlogPost.yml | 7 - .../Driver/yml/accessor_inferred/Person.yml | 6 - .../Metadata/Driver/yml/case/BlogPost.yml | 7 - .../Driver/yml/exclude_all/BlogPost.yml | 7 - .../Driver/yml/exclude_none/BlogPost.yml | 7 - .../Driver/yml/short_expose/Person.yml | 4 - .../serializer/tests/Serializer/ArrayTest.php | 123 - .../Serializer/BaseSerializationTest.php | 1456 --------- .../tests/Serializer/ContextTest.php | 201 -- .../Serializer/DateIntervalFormatTest.php | 47 - .../Serializer/Doctrine/IntegrationTest.php | 203 -- .../Doctrine/ObjectConstructorTest.php | 313 -- .../EventDispatcher/EventDispatcherTest.php | 212 -- .../LazyEventDispatcherTest.php | 78 - ...yEventDispatcherWithPsr11ContainerTest.php | 54 - ...ventDispatcherWithSymfonyContainerTest.php | 34 - .../DoctrineProxySubscriberTest.php | 157 - .../SymfonyValidatorSubscriberTest.php | 108 - ...ymfonyValidatorValidatorSubscriberTest.php | 109 - .../tests/Serializer/GraphNavigatorTest.php | 177 - .../Serializer/JsonSerializationTest.php | 437 --- .../IdenticalPropertyNamingStrategyTest.php | 45 - .../SerializationContextFactoryTest.php | 123 - .../tests/Serializer/TypeParserTest.php | 99 - .../tests/Serializer/XmlSerializationTest.php | 581 ---- .../Serializer/YamlSerializationTest.php | 124 - .../Serializer/xml/accessor_order_child.xml | 7 - .../Serializer/xml/accessor_order_methods.xml | 6 - .../Serializer/xml/accessor_order_parent.xml | 5 - .../tests/Serializer/xml/array_booleans.xml | 5 - .../Serializer/xml/array_datetimes_object.xml | 11 - .../tests/Serializer/xml/array_floats.xml | 6 - .../tests/Serializer/xml/array_integers.xml | 6 - .../tests/Serializer/xml/array_key_values.xml | 20 - .../xml/array_key_values_with_nested_type.xml | 22 - .../xml/array_key_values_with_type_1.xml | 8 - .../xml/array_key_values_with_type_2.xml | 11 - .../xml/array_list_and_map_difference.xml | 13 - .../tests/Serializer/xml/array_mixed.xml | 16 - .../array_named_datetimeimmutables_object.xml | 7 - .../xml/array_named_datetimes_object.xml | 7 - .../tests/Serializer/xml/array_objects.xml | 13 - .../tests/Serializer/xml/array_strings.xml | 5 - .../tests/Serializer/xml/article.xml | 2 - .../Serializer/xml/author_expression.xml | 6 - .../tests/Serializer/xml/blog_post.xml | 32 - .../Serializer/xml/blog_post_unauthored.xml | 5 - .../tests/Serializer/xml/boolean_false.xml | 2 - .../tests/Serializer/xml/boolean_true.xml | 2 - .../serializer/tests/Serializer/xml/car.xml | 5 - .../tests/Serializer/xml/car_without_type.xml | 4 - .../Serializer/xml/circular_reference.xml | 19 - .../Serializer/xml/constraint_violation.xml | 4 - .../xml/constraint_violation_list.xml | 9 - .../Serializer/xml/currency_aware_price.xml | 2 - .../tests/Serializer/xml/custom_accessor.xml | 17 - .../tests/Serializer/xml/date_interval.xml | 2 - .../tests/Serializer/xml/date_time.xml | 2 - .../Serializer/xml/date_time_immutable.xml | 2 - .../xml/date_time_immutable_no_cdata.xml | 2 - .../Serializer/xml/date_time_no_cdata.xml | 2 - .../tests/Serializer/xml/empty_child.xml | 6 - .../tests/Serializer/xml/empty_child_skip.xml | 5 - .../serializer/tests/Serializer/xml/float.xml | 2 - .../Serializer/xml/float_trailing_zero.xml | 2 - .../tests/Serializer/xml/form_errors.xml | 5 - .../tests/Serializer/xml/garage.xml | 13 - .../tests/Serializer/xml/groups_advanced.xml | 27 - .../tests/Serializer/xml/groups_all.xml | 7 - .../tests/Serializer/xml/groups_default.xml | 5 - .../tests/Serializer/xml/groups_foo.xml | 5 - .../tests/Serializer/xml/groups_foobar.xml | 6 - .../tests/Serializer/xml/hash_empty.xml | 4 - .../tests/Serializer/xml/inline.xml | 7 - .../Serializer/xml/inline_child_empty.xml | 5 - .../serializer/tests/Serializer/xml/input.xml | 2 - .../tests/Serializer/xml/integer.xml | 2 - .../Serializer/xml/lifecycle_callbacks.xml | 4 - .../serializer/tests/Serializer/xml/log.xml | 29 - .../xml/maxdepth_skippabe_object.xml | 6 - .../Serializer/xml/mixed_access_types.xml | 6 - .../Serializer/xml/nested_form_errors.xml | 11 - .../serializer/tests/Serializer/xml/null.xml | 2 - .../tests/Serializer/xml/nullable.xml | 6 - .../tests/Serializer/xml/nullable_arrays.xml | 11 - .../tests/Serializer/xml/nullable_skip.xml | 4 - .../tests/Serializer/xml/object_when_null.xml | 4 - .../xml/object_when_null_and_serialized.xml | 5 - .../xml/object_with_namespaces_and_list.xml | 29 - ...object_with_namespaces_and_nested_list.xml | 7 - .../object_with_only_namespaces_and_list.xml | 7 - .../xml/object_with_xml_namespaces.xml | 5 - ...ith_xml_namespaces_and_object_property.xml | 9 - ...namespaces_and_object_property_virtual.xml | 11 - .../xml/object_with_xml_namespacesalias.xml | 5 - .../xml/object_with_xml_root_namespace.xml | 5 - .../serializer/tests/Serializer/xml/order.xml | 4 - .../xml/order_with_currency_aware_price.xml | 4 - .../tests/Serializer/xml/orm_proxy.xml | 6 - .../Serializer/xml/person_collection.xml | 5 - .../tests/Serializer/xml/person_location.xml | 5 - .../Serializer/xml/person_secret_hide.xml | 4 - .../Serializer/xml/person_secret_show.xml | 5 - .../serializer/tests/Serializer/xml/price.xml | 2 - .../tests/Serializer/xml/readonly.xml | 5 - .../Serializer/xml/simple_class_object.xml | 5 - .../xml/simple_class_object_minified.xml | 2 - .../tests/Serializer/xml/simple_object.xml | 6 - .../Serializer/xml/simple_object_nullable.xml | 7 - .../Serializer/xml/simple_subclass_object.xml | 7 - .../tests/Serializer/xml/string.xml | 2 - .../tests/Serializer/xml/timestamp.xml | 4 - .../tests/Serializer/xml/timestamp_prev.xml | 4 - .../serializer/tests/Serializer/xml/tree.xml | 19 - .../Serializer/xml/virtual_attributes.xml | 2 - .../Serializer/xml/virtual_properties.xml | 7 - .../Serializer/xml/virtual_properties_all.xml | 5 - .../xml/virtual_properties_high.xml | 4 - .../xml/virtual_properties_list.xml | 5 - .../Serializer/xml/virtual_properties_low.xml | 4 - .../Serializer/xml/virtual_properties_map.xml | 7 - .../tests/Serializer/xml/virtual_values.xml | 2 - .../xml/xml_discriminator_attribute.xml | 2 - .../xml/xml_discriminator_namespace.xml | 4 - .../xml/xml_discriminator_not_cdata.xml | 4 - .../Serializer/yml/accessor_order_child.yml | 4 - .../Serializer/yml/accessor_order_methods.yml | 3 - .../Serializer/yml/accessor_order_parent.yml | 2 - .../tests/Serializer/yml/array_booleans.yml | 2 - .../Serializer/yml/array_datetimes_object.yml | 6 - .../tests/Serializer/yml/array_empty.yml | 1 - .../tests/Serializer/yml/array_floats.yml | 3 - .../tests/Serializer/yml/array_integers.yml | 3 - .../yml/array_list_and_map_difference.yml | 8 - .../tests/Serializer/yml/array_mixed.yml | 11 - .../array_named_datetimeimmutables_object.yml | 3 - .../yml/array_named_datetimes_object.yml | 3 - .../tests/Serializer/yml/array_objects.yml | 8 - .../tests/Serializer/yml/array_strings.yml | 2 - .../tests/Serializer/yml/article.yml | 1 - .../Serializer/yml/author_expression.yml | 3 - .../tests/Serializer/yml/blog_post.yml | 27 - .../Serializer/yml/blog_post_unauthored.yml | 13 - .../tests/Serializer/yml/boolean_false.yml | 1 - .../tests/Serializer/yml/boolean_true.yml | 1 - .../serializer/tests/Serializer/yml/car.yml | 2 - .../tests/Serializer/yml/car_without_type.yml | 1 - .../Serializer/yml/circular_reference.yml | 10 - .../Serializer/yml/currency_aware_price.yml | 2 - .../tests/Serializer/yml/custom_accessor.yml | 12 - .../tests/Serializer/yml/date_interval.yml | 1 - .../tests/Serializer/yml/date_time.yml | 1 - .../Serializer/yml/date_time_immutable.yml | 1 - .../serializer/tests/Serializer/yml/float.yml | 1 - .../Serializer/yml/float_trailing_zero.yml | 1 - .../tests/Serializer/yml/garage.yml | 7 - .../tests/Serializer/yml/groups_advanced.yml | 15 - .../tests/Serializer/yml/groups_all.yml | 4 - .../tests/Serializer/yml/groups_default.yml | 2 - .../tests/Serializer/yml/groups_foo.yml | 2 - .../tests/Serializer/yml/groups_foobar.yml | 3 - .../tests/Serializer/yml/hash_empty.yml | 1 - .../tests/Serializer/yml/inline.yml | 4 - .../Serializer/yml/inline_child_empty.yml | 2 - .../serializer/tests/Serializer/yml/input.yml | 4 - .../tests/Serializer/yml/integer.yml | 1 - .../Serializer/yml/lifecycle_callbacks.yml | 1 - .../serializer/tests/Serializer/yml/log.yml | 18 - .../yml/maxdepth_skippabe_object.yml | 2 - .../Serializer/yml/mixed_access_types.yml | 3 - .../serializer/tests/Serializer/yml/null.yml | 1 - .../tests/Serializer/yml/nullable.yml | 3 - .../tests/Serializer/yml/nullable_arrays.yml | 9 - .../tests/Serializer/yml/nullable_skip.yml | 1 - .../tests/Serializer/yml/object_when_null.yml | 1 - .../yml/object_when_null_and_serialized.yml | 2 - .../serializer/tests/Serializer/yml/order.yml | 2 - .../yml/order_with_currency_aware_price.yml | 3 - .../tests/Serializer/yml/orm_proxy.yml | 3 - .../Serializer/yml/person_secret_hide.yml | 1 - .../Serializer/yml/person_secret_show.yml | 2 - .../serializer/tests/Serializer/yml/price.yml | 1 - .../tests/Serializer/yml/readonly.yml | 2 - .../tests/Serializer/yml/simple_object.yml | 3 - .../Serializer/yml/simple_object_nullable.yml | 4 - .../tests/Serializer/yml/string.yml | 1 - .../tests/Serializer/yml/timestamp.yml | 1 - .../tests/Serializer/yml/timestamp_prev.yml | 1 - .../serializer/tests/Serializer/yml/tree.yml | 10 - .../Serializer/yml/virtual_properties.yml | 4 - .../Serializer/yml/virtual_properties_all.yml | 2 - .../yml/virtual_properties_high.yml | 1 - .../Serializer/yml/virtual_properties_low.yml | 1 - .../tests/SerializerBuilderTest.php | 299 -- .../tests/Twig/SerializerExtensionTest.php | 78 - vendor/jms/serializer/tests/benchmark.php | 63 - vendor/jms/serializer/tests/bootstrap.php | 30 - vendor/myclabs/deep-copy/.gitattributes | 7 - vendor/myclabs/deep-copy/.gitignore | 3 - vendor/myclabs/deep-copy/.travis.yml | 40 - vendor/myclabs/deep-copy/LICENSE | 20 - vendor/myclabs/deep-copy/README.md | 372 --- vendor/myclabs/deep-copy/composer.json | 35 - vendor/myclabs/deep-copy/doc/clone.png | Bin 12380 -> 0 bytes vendor/myclabs/deep-copy/doc/deep-clone.png | Bin 14009 -> 0 bytes vendor/myclabs/deep-copy/doc/deep-copy.png | Bin 10895 -> 0 bytes vendor/myclabs/deep-copy/doc/graph.png | Bin 6436 -> 0 bytes vendor/myclabs/deep-copy/fixtures/f001/A.php | 20 - vendor/myclabs/deep-copy/fixtures/f001/B.php | 20 - vendor/myclabs/deep-copy/fixtures/f002/A.php | 33 - .../myclabs/deep-copy/fixtures/f003/Foo.php | 26 - .../fixtures/f004/UnclonableItem.php | 13 - .../myclabs/deep-copy/fixtures/f005/Foo.php | 13 - vendor/myclabs/deep-copy/fixtures/f006/A.php | 26 - vendor/myclabs/deep-copy/fixtures/f006/B.php | 26 - .../fixtures/f007/FooDateInterval.php | 15 - .../fixtures/f007/FooDateTimeZone.php | 15 - vendor/myclabs/deep-copy/fixtures/f008/A.php | 18 - vendor/myclabs/deep-copy/fixtures/f008/B.php | 7 - .../deep-copy/src/DeepCopy/DeepCopy.php | 281 -- .../src/DeepCopy/Exception/CloneException.php | 9 - .../DeepCopy/Exception/PropertyException.php | 9 - .../Doctrine/DoctrineCollectionFilter.php | 33 - .../DoctrineEmptyCollectionFilter.php | 28 - .../Filter/Doctrine/DoctrineProxyFilter.php | 22 - .../deep-copy/src/DeepCopy/Filter/Filter.php | 18 - .../src/DeepCopy/Filter/KeepFilter.php | 16 - .../src/DeepCopy/Filter/ReplaceFilter.php | 39 - .../src/DeepCopy/Filter/SetNullFilter.php | 24 - .../Matcher/Doctrine/DoctrineProxyMatcher.php | 22 - .../src/DeepCopy/Matcher/Matcher.php | 14 - .../src/DeepCopy/Matcher/PropertyMatcher.php | 39 - .../DeepCopy/Matcher/PropertyNameMatcher.php | 32 - .../DeepCopy/Matcher/PropertyTypeMatcher.php | 46 - .../DeepCopy/Reflection/ReflectionHelper.php | 78 - .../TypeFilter/Date/DateIntervalFilter.php | 33 - .../src/DeepCopy/TypeFilter/ReplaceFilter.php | 30 - .../DeepCopy/TypeFilter/ShallowCopyFilter.php | 17 - .../TypeFilter/Spl/SplDoublyLinkedList.php | 10 - .../Spl/SplDoublyLinkedListFilter.php | 51 - .../src/DeepCopy/TypeFilter/TypeFilter.php | 13 - .../src/DeepCopy/TypeMatcher/TypeMatcher.php | 29 - .../deep-copy/src/DeepCopy/deep_copy.php | 16 - vendor/phar-io/manifest/.gitignore | 8 - vendor/phar-io/manifest/.php_cs | 67 - vendor/phar-io/manifest/.travis.yml | 33 - vendor/phar-io/manifest/LICENSE | 31 - vendor/phar-io/manifest/README.md | 30 - vendor/phar-io/manifest/build.xml | 50 - vendor/phar-io/manifest/composer.json | 42 - .../phar-io/manifest/examples/example-01.php | 23 - vendor/phar-io/manifest/phive.xml | 4 - vendor/phar-io/manifest/phpunit.xml | 20 - .../manifest/src/ManifestDocumentMapper.php | 193 -- .../phar-io/manifest/src/ManifestLoader.php | 66 - .../manifest/src/ManifestSerializer.php | 163 - .../manifest/src/exceptions/Exception.php | 14 - .../InvalidApplicationNameException.php | 16 - .../src/exceptions/InvalidEmailException.php | 14 - .../src/exceptions/InvalidUrlException.php | 14 - .../exceptions/ManifestDocumentException.php | 6 - .../ManifestDocumentMapperException.php | 6 - .../exceptions/ManifestElementException.php | 6 - .../exceptions/ManifestLoaderException.php | 6 - .../manifest/src/values/Application.php | 20 - .../manifest/src/values/ApplicationName.php | 65 - vendor/phar-io/manifest/src/values/Author.php | 57 - .../manifest/src/values/AuthorCollection.php | 43 - .../src/values/AuthorCollectionIterator.php | 56 - .../manifest/src/values/BundledComponent.php | 48 - .../src/values/BundledComponentCollection.php | 43 - .../BundledComponentCollectionIterator.php | 56 - .../src/values/CopyrightInformation.php | 42 - vendor/phar-io/manifest/src/values/Email.php | 47 - .../phar-io/manifest/src/values/Extension.php | 75 - .../phar-io/manifest/src/values/Library.php | 20 - .../phar-io/manifest/src/values/License.php | 42 - .../phar-io/manifest/src/values/Manifest.php | 138 - .../src/values/PhpExtensionRequirement.php | 32 - .../src/values/PhpVersionRequirement.php | 31 - .../manifest/src/values/Requirement.php | 14 - .../src/values/RequirementCollection.php | 43 - .../values/RequirementCollectionIterator.php | 56 - vendor/phar-io/manifest/src/values/Type.php | 60 - vendor/phar-io/manifest/src/values/Url.php | 47 - .../manifest/src/xml/AuthorElement.php | 21 - .../src/xml/AuthorElementCollection.php | 19 - .../manifest/src/xml/BundlesElement.php | 19 - .../manifest/src/xml/ComponentElement.php | 21 - .../src/xml/ComponentElementCollection.php | 19 - .../manifest/src/xml/ContainsElement.php | 31 - .../manifest/src/xml/CopyrightElement.php | 25 - .../manifest/src/xml/ElementCollection.php | 58 - .../phar-io/manifest/src/xml/ExtElement.php | 17 - .../manifest/src/xml/ExtElementCollection.php | 20 - .../manifest/src/xml/ExtensionElement.php | 21 - .../manifest/src/xml/LicenseElement.php | 21 - .../manifest/src/xml/ManifestDocument.php | 118 - .../xml/ManifestDocumentLoadingException.php | 48 - .../manifest/src/xml/ManifestElement.php | 100 - .../phar-io/manifest/src/xml/PhpElement.php | 27 - .../manifest/src/xml/RequiresElement.php | 19 - .../tests/ManifestDocumentMapperTest.php | 110 - .../manifest/tests/ManifestLoaderTest.php | 83 - .../manifest/tests/ManifestSerializerTest.php | 114 - .../manifest/tests/_fixture/custom.xml | 10 - .../_fixture/extension-invalidcompatible.xml | 13 - .../manifest/tests/_fixture/extension.xml | 13 - .../tests/_fixture/invalidversion.xml | 11 - .../_fixture/invalidversionconstraint.xml | 11 - .../manifest/tests/_fixture/library.xml | 11 - .../manifest/tests/_fixture/manifest.xml | 11 - .../manifest/tests/_fixture/phpunit-5.6.5.xml | 46 - .../phar-io/manifest/tests/_fixture/test.phar | Bin 7165 -> 0 bytes .../ManifestDocumentLoadingExceptionTest.php | 19 - .../tests/values/ApplicationNameTest.php | 48 - .../manifest/tests/values/ApplicationTest.php | 44 - .../tests/values/AuthorCollectionTest.php | 62 - .../manifest/tests/values/AuthorTest.php | 45 - .../values/BundledComponentCollectionTest.php | 63 - .../tests/values/BundledComponentTest.php | 42 - .../tests/values/CopyrightInformationTest.php | 62 - .../manifest/tests/values/EmailTest.php | 35 - .../manifest/tests/values/ExtensionTest.php | 109 - .../manifest/tests/values/LibraryTest.php | 44 - .../manifest/tests/values/LicenseTest.php | 41 - .../manifest/tests/values/ManifestTest.php | 187 -- .../values/PhpExtensionRequirementTest.php | 26 - .../values/PhpVersionRequirementTest.php | 38 - .../values/RequirementCollectionTest.php | 63 - .../phar-io/manifest/tests/values/UrlTest.php | 35 - .../tests/xml/AuthorElementCollectionTest.php | 18 - .../manifest/tests/xml/AuthorElementTest.php | 25 - .../manifest/tests/xml/BundlesElementTest.php | 41 - .../xml/ComponentElementCollectionTest.php | 18 - .../tests/xml/ComponentElementTest.php | 25 - .../tests/xml/ContainsElementTest.php | 63 - .../tests/xml/CopyrightElementTest.php | 52 - .../tests/xml/ExtElementCollectionTest.php | 19 - .../manifest/tests/xml/ExtElementTest.php | 21 - .../tests/xml/ExtensionElementTest.php | 25 - .../manifest/tests/xml/LicenseElementTest.php | 25 - .../tests/xml/ManifestDocumentTest.php | 110 - .../manifest/tests/xml/PhpElementTest.php | 48 - .../tests/xml/RequiresElementTest.php | 37 - vendor/phar-io/version/.gitignore | 7 - vendor/phar-io/version/.php_cs | 67 - vendor/phar-io/version/.travis.yml | 33 - vendor/phar-io/version/LICENSE | 31 - vendor/phar-io/version/README.md | 16 - vendor/phar-io/version/build.xml | 41 - vendor/phar-io/version/composer.json | 34 - vendor/phar-io/version/phive.xml | 5 - vendor/phar-io/version/phpunit.xml | 19 - .../version/src/AbstractVersionConstraint.php | 32 - .../version/src/AndVersionConstraintGroup.php | 43 - .../version/src/AnyVersionConstraint.php | 29 - .../version/src/ExactVersionConstraint.php | 22 - vendor/phar-io/version/src/Exception.php | 14 - .../GreaterThanOrEqualToVersionConstraint.php | 38 - .../version/src/InvalidVersionException.php | 5 - .../version/src/OrVersionConstraintGroup.php | 43 - .../phar-io/version/src/PreReleaseSuffix.php | 41 - ...SpecificMajorAndMinorVersionConstraint.php | 48 - .../src/SpecificMajorVersionConstraint.php | 37 - .../UnsupportedVersionConstraintException.php | 14 - vendor/phar-io/version/src/Version.php | 162 - .../phar-io/version/src/VersionConstraint.php | 26 - .../version/src/VersionConstraintParser.php | 122 - .../version/src/VersionConstraintValue.php | 123 - vendor/phar-io/version/src/VersionNumber.php | 41 - .../VersionConstraintParserTest.php | 125 - .../Unit/AbstractVersionConstraintTest.php | 25 - .../Unit/AndVersionConstraintGroupTest.php | 52 - .../tests/Unit/AnyVersionConstraintTest.php | 41 - .../tests/Unit/ExactVersionConstraintTest.php | 58 - ...aterThanOrEqualToVersionConstraintTest.php | 47 - .../Unit/OrVersionConstraintGroupTest.php | 65 - ...ificMajorAndMinorVersionConstraintTest.php | 45 - .../SpecificMajorVersionConstraintTest.php | 44 - .../version/tests/Unit/VersionTest.php | 104 - vendor/phpcollection/phpcollection/.gitignore | 3 - .../phpcollection/phpcollection/.travis.yml | 20 - vendor/phpcollection/phpcollection/LICENSE | 201 -- vendor/phpcollection/phpcollection/README.md | 4 - .../phpcollection/phpcollection/composer.json | 22 - .../phpcollection/phpcollection/composer.lock | 74 - .../phpcollection/phpcollection/doc/LICENSE | 55 - .../phpcollection/phpcollection/doc/index.rst | 152 - .../phpcollection/phpunit.xml.dist | 25 - .../src/PhpCollection/AbstractCollection.php | 52 - .../src/PhpCollection/AbstractMap.php | 304 -- .../src/PhpCollection/AbstractSequence.php | 365 --- .../src/PhpCollection/CollectionInterface.php | 84 - .../src/PhpCollection/EntityLikeObject.php | 23 - .../phpcollection/src/PhpCollection/Map.php | 27 - .../src/PhpCollection/MapInterface.php | 173 - .../src/PhpCollection/ObjectBasics.php | 40 - .../src/PhpCollection/ObjectBasicsHandler.php | 24 - .../ObjectBasicsHandler/DateTimeHandler.php | 29 - .../ObjectBasicsHandler/IdentityHandler.php | 18 - .../ObjectBasicsHandlerRegistry.php | 82 - .../src/PhpCollection/Sequence.php | 38 - .../src/PhpCollection/SequenceInterface.php | 227 -- .../phpcollection/src/PhpCollection/Set.php | 449 --- .../src/PhpCollection/SetInterface.php | 132 - .../src/PhpCollection/SortableInterface.php | 29 - .../src/PhpCollection/SortedSequence.php | 93 - .../tests/PhpCollection/Tests/MapTest.php | 229 -- .../PhpCollection/Tests/SequenceTest.php | 344 -- .../tests/PhpCollection/Tests/SetTest.php | 184 -- .../Tests/SortedSequenceTest.php | 62 - .../phpcollection/tests/bootstrap.php | 8 - .../reflection-common/.travis.yml | 35 - .../phpdocumentor/reflection-common/LICENSE | 22 - .../phpdocumentor/reflection-common/README.md | 2 - .../reflection-common/composer.json | 29 - .../reflection-common/src/Element.php | 32 - .../reflection-common/src/File.php | 40 - .../reflection-common/src/Fqsen.php | 82 - .../reflection-common/src/Location.php | 57 - .../reflection-common/src/Project.php | 25 - .../reflection-common/src/ProjectFactory.php | 27 - .../reflection-docblock/.coveralls.yml | 3 - .../phpdocumentor/reflection-docblock/LICENSE | 21 - .../reflection-docblock/README.md | 67 - .../reflection-docblock/composer.json | 34 - .../easy-coding-standard.neon | 31 - .../reflection-docblock/src/DocBlock.php | 236 -- .../src/DocBlock/Description.php | 114 - .../src/DocBlock/DescriptionFactory.php | 191 -- .../src/DocBlock/ExampleFinder.php | 170 - .../src/DocBlock/Serializer.php | 155 - .../src/DocBlock/StandardTagFactory.php | 319 -- .../reflection-docblock/src/DocBlock/Tag.php | 26 - .../src/DocBlock/TagFactory.php | 93 - .../src/DocBlock/Tags/Author.php | 100 - .../src/DocBlock/Tags/BaseTag.php | 52 - .../src/DocBlock/Tags/Covers.php | 83 - .../src/DocBlock/Tags/Deprecated.php | 97 - .../src/DocBlock/Tags/Example.php | 176 - .../DocBlock/Tags/Factory/StaticMethod.php | 18 - .../src/DocBlock/Tags/Factory/Strategy.php | 18 - .../src/DocBlock/Tags/Formatter.php | 27 - .../Tags/Formatter/AlignFormatter.php | 47 - .../Tags/Formatter/PassthroughFormatter.php | 31 - .../src/DocBlock/Tags/Generic.php | 91 - .../src/DocBlock/Tags/Link.php | 77 - .../src/DocBlock/Tags/Method.php | 242 -- .../src/DocBlock/Tags/Param.php | 141 - .../src/DocBlock/Tags/Property.php | 118 - .../src/DocBlock/Tags/PropertyRead.php | 118 - .../src/DocBlock/Tags/PropertyWrite.php | 118 - .../src/DocBlock/Tags/Reference/Fqsen.php | 42 - .../src/DocBlock/Tags/Reference/Reference.php | 21 - .../src/DocBlock/Tags/Reference/Url.php | 40 - .../src/DocBlock/Tags/Return_.php | 72 - .../src/DocBlock/Tags/See.php | 88 - .../src/DocBlock/Tags/Since.php | 94 - .../src/DocBlock/Tags/Source.php | 97 - .../src/DocBlock/Tags/Throws.php | 72 - .../src/DocBlock/Tags/Uses.php | 83 - .../src/DocBlock/Tags/Var_.php | 118 - .../src/DocBlock/Tags/Version.php | 94 - .../src/DocBlockFactory.php | 277 -- .../src/DocBlockFactoryInterface.php | 23 - vendor/phpdocumentor/type-resolver/LICENSE | 21 - vendor/phpdocumentor/type-resolver/README.md | 182 -- .../phpdocumentor/type-resolver/composer.json | 27 - .../type-resolver/src/FqsenResolver.php | 77 - .../phpdocumentor/type-resolver/src/Type.php | 18 - .../type-resolver/src/TypeResolver.php | 298 -- .../type-resolver/src/Types/Array_.php | 86 - .../type-resolver/src/Types/Boolean.php | 31 - .../type-resolver/src/Types/Callable_.php | 31 - .../type-resolver/src/Types/Compound.php | 93 - .../type-resolver/src/Types/Context.php | 84 - .../src/Types/ContextFactory.php | 210 -- .../type-resolver/src/Types/Float_.php | 31 - .../type-resolver/src/Types/Integer.php | 28 - .../type-resolver/src/Types/Iterable_.php | 31 - .../type-resolver/src/Types/Mixed_.php | 31 - .../type-resolver/src/Types/Null_.php | 31 - .../type-resolver/src/Types/Nullable.php | 56 - .../type-resolver/src/Types/Object_.php | 71 - .../type-resolver/src/Types/Parent_.php | 33 - .../type-resolver/src/Types/Resource_.php | 31 - .../type-resolver/src/Types/Scalar.php | 31 - .../type-resolver/src/Types/Self_.php | 33 - .../type-resolver/src/Types/Static_.php | 38 - .../type-resolver/src/Types/String_.php | 31 - .../type-resolver/src/Types/This.php | 34 - .../type-resolver/src/Types/Void_.php | 34 - vendor/phpoption/phpoption/.gitignore | 3 - vendor/phpoption/phpoption/.travis.yml | 17 - vendor/phpoption/phpoption/LICENSE | 201 -- vendor/phpoption/phpoption/README.md | 178 - vendor/phpoption/phpoption/composer.json | 27 - vendor/phpoption/phpoption/phpunit.xml.dist | 25 - .../phpoption/src/PhpOption/LazyOption.php | 169 - .../phpoption/src/PhpOption/None.php | 130 - .../phpoption/src/PhpOption/Option.php | 360 --- .../phpoption/src/PhpOption/Some.php | 152 - .../tests/PhpOption/Tests/EnsureTest.php | 63 - .../tests/PhpOption/Tests/LazyOptionTest.php | 190 -- .../tests/PhpOption/Tests/NoneTest.php | 127 - .../tests/PhpOption/Tests/OptionTest.php | 81 - .../tests/PhpOption/Tests/PerformanceTest.php | 82 - .../tests/PhpOption/Tests/SomeTest.php | 180 -- .../phpoption/phpoption/tests/bootstrap.php | 8 - vendor/phpspec/prophecy/CHANGES.md | 178 - vendor/phpspec/prophecy/LICENSE | 23 - vendor/phpspec/prophecy/README.md | 391 --- vendor/phpspec/prophecy/composer.json | 50 - .../prophecy/src/Prophecy/Argument.php | 212 -- .../Prophecy/Argument/ArgumentsWildcard.php | 101 - .../Prophecy/Argument/Token/AnyValueToken.php | 52 - .../Argument/Token/AnyValuesToken.php | 52 - .../Argument/Token/ApproximateValueToken.php | 55 - .../Argument/Token/ArrayCountToken.php | 86 - .../Argument/Token/ArrayEntryToken.php | 143 - .../Argument/Token/ArrayEveryEntryToken.php | 82 - .../Prophecy/Argument/Token/CallbackToken.php | 75 - .../Argument/Token/ExactValueToken.php | 116 - .../Argument/Token/IdenticalValueToken.php | 74 - .../Argument/Token/LogicalAndToken.php | 80 - .../Argument/Token/LogicalNotToken.php | 73 - .../Argument/Token/ObjectStateToken.php | 104 - .../Argument/Token/StringContainsToken.php | 67 - .../Argument/Token/TokenInterface.php | 43 - .../src/Prophecy/Argument/Token/TypeToken.php | 76 - .../prophecy/src/Prophecy/Call/Call.php | 127 - .../prophecy/src/Prophecy/Call/CallCenter.php | 171 - .../Prophecy/Comparator/ClosureComparator.php | 42 - .../src/Prophecy/Comparator/Factory.php | 47 - .../Comparator/ProphecyComparator.php | 28 - .../src/Prophecy/Doubler/CachedDoubler.php | 68 - .../ClassPatch/ClassPatchInterface.php | 48 - .../ClassPatch/DisableConstructorPatch.php | 72 - .../Doubler/ClassPatch/HhvmExceptionPatch.php | 63 - .../Doubler/ClassPatch/KeywordPatch.php | 140 - .../Doubler/ClassPatch/MagicCallPatch.php | 89 - .../ClassPatch/ProphecySubjectPatch.php | 104 - .../ReflectionClassNewInstancePatch.php | 57 - .../Doubler/ClassPatch/SplFileInfoPatch.php | 123 - .../Doubler/ClassPatch/TraversablePatch.php | 83 - .../src/Prophecy/Doubler/DoubleInterface.php | 22 - .../prophecy/src/Prophecy/Doubler/Doubler.php | 146 - .../Doubler/Generator/ClassCodeGenerator.php | 129 - .../Doubler/Generator/ClassCreator.php | 67 - .../Doubler/Generator/ClassMirror.php | 258 -- .../Doubler/Generator/Node/ArgumentNode.php | 102 - .../Doubler/Generator/Node/ClassNode.php | 166 - .../Doubler/Generator/Node/MethodNode.php | 198 -- .../Doubler/Generator/ReflectionInterface.php | 22 - .../Doubler/Generator/TypeHintReference.php | 46 - .../src/Prophecy/Doubler/LazyDouble.php | 127 - .../src/Prophecy/Doubler/NameGenerator.php | 52 - .../Call/UnexpectedCallException.php | 40 - .../Doubler/ClassCreatorException.php | 31 - .../Doubler/ClassMirrorException.php | 31 - .../Doubler/ClassNotFoundException.php | 33 - .../Exception/Doubler/DoubleException.php | 18 - .../Exception/Doubler/DoublerException.php | 18 - .../Doubler/InterfaceNotFoundException.php | 20 - .../Doubler/MethodNotExtendableException.php | 41 - .../Doubler/MethodNotFoundException.php | 60 - .../Doubler/ReturnByReferenceException.php | 41 - .../src/Prophecy/Exception/Exception.php | 26 - .../Exception/InvalidArgumentException.php | 16 - .../Prediction/AggregateException.php | 50 - .../Prediction/FailedPredictionException.php | 24 - .../Exception/Prediction/NoCallsException.php | 18 - .../Prediction/PredictionException.php | 18 - .../UnexpectedCallsCountException.php | 31 - .../Prediction/UnexpectedCallsException.php | 32 - .../Prophecy/MethodProphecyException.php | 34 - .../Prophecy/ObjectProphecyException.php | 34 - .../Exception/Prophecy/ProphecyException.php | 18 - .../ClassAndInterfaceTagRetriever.php | 69 - .../PhpDocumentor/ClassTagRetriever.php | 52 - .../PhpDocumentor/LegacyClassTagRetriever.php | 35 - .../MethodTagRetrieverInterface.php | 30 - .../Prophecy/Prediction/CallPrediction.php | 86 - .../Prediction/CallTimesPrediction.php | 107 - .../Prediction/CallbackPrediction.php | 65 - .../Prophecy/Prediction/NoCallsPrediction.php | 68 - .../Prediction/PredictionInterface.php | 37 - .../src/Prophecy/Promise/CallbackPromise.php | 66 - .../src/Prophecy/Promise/PromiseInterface.php | 35 - .../Promise/ReturnArgumentPromise.php | 61 - .../src/Prophecy/Promise/ReturnPromise.php | 55 - .../src/Prophecy/Promise/ThrowPromise.php | 99 - .../src/Prophecy/Prophecy/MethodProphecy.php | 464 --- .../src/Prophecy/Prophecy/ObjectProphecy.php | 281 -- .../Prophecy/Prophecy/ProphecyInterface.php | 27 - .../Prophecy/ProphecySubjectInterface.php | 34 - .../src/Prophecy/Prophecy/Revealer.php | 44 - .../Prophecy/Prophecy/RevealerInterface.php | 29 - .../phpspec/prophecy/src/Prophecy/Prophet.php | 134 - .../prophecy/src/Prophecy/Util/ExportUtil.php | 212 -- .../prophecy/src/Prophecy/Util/StringUtil.php | 89 - .../phpunit/php-code-coverage/.gitattributes | 1 - .../php-code-coverage/.github/CONTRIBUTING.md | 1 - .../.github/ISSUE_TEMPLATE.md | 18 - vendor/phpunit/php-code-coverage/.gitignore | 6 - vendor/phpunit/php-code-coverage/.php_cs | 145 - vendor/phpunit/php-code-coverage/.travis.yml | 39 - .../php-code-coverage/ChangeLog-2.2.md | 56 - .../php-code-coverage/ChangeLog-3.0.md | 31 - .../php-code-coverage/ChangeLog-3.1.md | 30 - .../php-code-coverage/ChangeLog-3.2.md | 23 - .../php-code-coverage/ChangeLog-3.3.md | 33 - .../php-code-coverage/ChangeLog-4.0.md | 67 - .../php-code-coverage/ChangeLog-5.0.md | 45 - .../php-code-coverage/ChangeLog-5.1.md | 19 - .../php-code-coverage/ChangeLog-5.2.md | 44 - .../php-code-coverage/ChangeLog-5.3.md | 23 - .../php-code-coverage/ChangeLog-6.0.md | 27 - vendor/phpunit/php-code-coverage/LICENSE | 33 - vendor/phpunit/php-code-coverage/README.md | 40 - vendor/phpunit/php-code-coverage/build.xml | 19 - .../phpunit/php-code-coverage/composer.json | 55 - vendor/phpunit/php-code-coverage/phpunit.xml | 21 - .../php-code-coverage/src/CodeCoverage.php | 981 ------ .../php-code-coverage/src/Driver/Driver.php | 48 - .../php-code-coverage/src/Driver/PHPDBG.php | 97 - .../php-code-coverage/src/Driver/Xdebug.php | 99 - .../CoveredCodeNotExecutedException.php | 18 - .../src/Exception/Exception.php | 18 - .../Exception/InvalidArgumentException.php | 37 - .../MissingCoversAnnotationException.php | 18 - .../src/Exception/RuntimeException.php | 15 - .../UnintentionallyCoveredCodeException.php | 54 - .../phpunit/php-code-coverage/src/Filter.php | 149 - .../src/Node/AbstractNode.php | 329 -- .../php-code-coverage/src/Node/Builder.php | 226 -- .../php-code-coverage/src/Node/Directory.php | 428 --- .../php-code-coverage/src/Node/File.php | 659 ---- .../php-code-coverage/src/Node/Iterator.php | 92 - .../php-code-coverage/src/Report/Clover.php | 246 -- .../php-code-coverage/src/Report/Crap4j.php | 157 - .../src/Report/Html/Facade.php | 175 - .../src/Report/Html/Renderer.php | 270 -- .../src/Report/Html/Renderer/Dashboard.php | 282 -- .../src/Report/Html/Renderer/Directory.php | 95 - .../src/Report/Html/Renderer/File.php | 522 --- .../Renderer/Template/coverage_bar.html.dist | 5 - .../Renderer/Template/css/bootstrap.min.css | 6 - .../Html/Renderer/Template/css/nv.d3.min.css | 1 - .../Html/Renderer/Template/css/style.css | 122 - .../Renderer/Template/dashboard.html.dist | 284 -- .../Renderer/Template/directory.html.dist | 61 - .../Template/directory_item.html.dist | 13 - .../Html/Renderer/Template/file.html.dist | 68 - .../Renderer/Template/file_item.html.dist | 14 - .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 -- .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes .../Renderer/Template/js/bootstrap.min.js | 7 - .../Html/Renderer/Template/js/d3.min.js | 5 - .../Report/Html/Renderer/Template/js/file.js | 61 - .../Html/Renderer/Template/js/holder.min.js | 12 - .../Renderer/Template/js/html5shiv.min.js | 326 -- .../Html/Renderer/Template/js/jquery.min.js | 4 - .../Html/Renderer/Template/js/nv.d3.min.js | 8 - .../Html/Renderer/Template/js/respond.min.js | 5 - .../Renderer/Template/method_item.html.dist | 11 - .../php-code-coverage/src/Report/PHP.php | 45 - .../php-code-coverage/src/Report/Text.php | 285 -- .../src/Report/Xml/BuildInformation.php | 77 - .../src/Report/Xml/Coverage.php | 70 - .../src/Report/Xml/Directory.php | 15 - .../src/Report/Xml/Facade.php | 283 -- .../php-code-coverage/src/Report/Xml/File.php | 82 - .../src/Report/Xml/Method.php | 57 - .../php-code-coverage/src/Report/Xml/Node.php | 88 - .../src/Report/Xml/Project.php | 86 - .../src/Report/Xml/Report.php | 93 - .../src/Report/Xml/Source.php | 42 - .../src/Report/Xml/Tests.php | 46 - .../src/Report/Xml/Totals.php | 141 - .../php-code-coverage/src/Report/Xml/Unit.php | 96 - vendor/phpunit/php-code-coverage/src/Util.php | 41 - .../phpunit/php-code-coverage/src/Version.php | 31 - .../php-code-coverage/tests/TestCase.php | 371 --- .../tests/_files/BankAccount-clover.xml | 26 - .../tests/_files/BankAccount-crap4j.xml | 59 - .../tests/_files/BankAccount-text.txt | 12 - .../tests/_files/BankAccount.php | 33 - .../tests/_files/BankAccountTest.php | 68 - .../_files/CoverageClassExtendedTest.php | 14 - .../tests/_files/CoverageClassTest.php | 14 - .../CoverageFunctionParenthesesTest.php | 13 - ...erageFunctionParenthesesWhitespaceTest.php | 13 - .../tests/_files/CoverageFunctionTest.php | 13 - .../CoverageMethodOneLineAnnotationTest.php | 12 - .../_files/CoverageMethodParenthesesTest.php | 14 - ...overageMethodParenthesesWhitespaceTest.php | 14 - .../tests/_files/CoverageMethodTest.php | 14 - .../tests/_files/CoverageNoneTest.php | 11 - .../tests/_files/CoverageNotPrivateTest.php | 14 - .../tests/_files/CoverageNotProtectedTest.php | 14 - .../tests/_files/CoverageNotPublicTest.php | 14 - .../tests/_files/CoverageNothingTest.php | 15 - .../tests/_files/CoveragePrivateTest.php | 14 - .../tests/_files/CoverageProtectedTest.php | 14 - .../tests/_files/CoveragePublicTest.php | 14 - .../CoverageTwoDefaultClassAnnotations.php | 17 - .../tests/_files/CoveredClass.php | 36 - .../tests/_files/CoveredFunction.php | 4 - .../NamespaceCoverageClassExtendedTest.php | 14 - .../_files/NamespaceCoverageClassTest.php | 14 - ...NamespaceCoverageCoversClassPublicTest.php | 17 - .../NamespaceCoverageCoversClassTest.php | 22 - .../_files/NamespaceCoverageMethodTest.php | 14 - .../NamespaceCoverageNotPrivateTest.php | 14 - .../NamespaceCoverageNotProtectedTest.php | 14 - .../_files/NamespaceCoverageNotPublicTest.php | 14 - .../_files/NamespaceCoveragePrivateTest.php | 14 - .../_files/NamespaceCoverageProtectedTest.php | 14 - .../_files/NamespaceCoveragePublicTest.php | 14 - .../tests/_files/NamespaceCoveredClass.php | 38 - .../_files/NotExistingCoveredElementTest.php | 26 - .../BankAccount.php.html | 245 -- .../CoverageForBankAccount/dashboard.html | 290 -- .../HTML/CoverageForBankAccount/index.html | 119 - .../dashboard.html | 288 -- .../index.html | 119 - ...with_class_and_anonymous_function.php.html | 189 -- .../dashboard.html | 286 -- .../index.html | 109 - .../source_with_ignore.php.html | 192 -- .../BankAccount.php.xml | 262 -- .../XML/CoverageForBankAccount/index.xml | 33 - .../index.xml | 30 - ..._with_class_and_anonymous_function.php.xml | 162 - .../CoverageForFileWithIgnoredLines/index.xml | 30 - .../source_with_ignore.php.xml | 187 -- .../class-with-anonymous-function-clover.xml | 22 - .../class-with-anonymous-function-crap4j.xml | 37 - .../class-with-anonymous-function-text.txt | 12 - .../tests/_files/ignored-lines-clover.xml | 17 - .../tests/_files/ignored-lines-crap4j.xml | 37 - .../tests/_files/ignored-lines-text.txt | 10 - ...urce_with_class_and_anonymous_function.php | 19 - .../tests/_files/source_with_ignore.php | 37 - .../tests/_files/source_with_namespace.php | 20 - .../source_with_oneline_annotations.php | 36 - .../tests/_files/source_without_ignore.php | 4 - .../tests/_files/source_without_namespace.php | 18 - .../php-code-coverage/tests/bootstrap.php | 5 - .../tests/tests/BuilderTest.php | 212 -- .../tests/tests/CloverTest.php | 49 - .../tests/tests/CodeCoverageTest.php | 485 --- .../tests/tests/Crap4jTest.php | 49 - .../tests/tests/FilterTest.php | 196 -- .../tests/tests/HTMLTest.php | 103 - .../tests/tests/TextTest.php | 49 - .../tests/tests/UtilTest.php | 29 - .../php-code-coverage/tests/tests/XmlTest.php | 98 - .../phpunit/php-file-iterator/.gitattributes | 1 - vendor/phpunit/php-file-iterator/.gitignore | 7 - vendor/phpunit/php-file-iterator/ChangeLog.md | 41 - vendor/phpunit/php-file-iterator/LICENSE | 33 - vendor/phpunit/php-file-iterator/README.md | 12 - .../phpunit/php-file-iterator/composer.json | 36 - .../phpunit/php-file-iterator/src/Facade.php | 123 - .../phpunit/php-file-iterator/src/Factory.php | 91 - .../php-file-iterator/src/Iterator.php | 158 - .../phpunit/php-text-template/.gitattributes | 1 - vendor/phpunit/php-text-template/.gitignore | 5 - vendor/phpunit/php-text-template/LICENSE | 33 - vendor/phpunit/php-text-template/README.md | 14 - .../phpunit/php-text-template/composer.json | 29 - .../php-text-template/src/Template.php | 135 - vendor/phpunit/php-timer/.gitattributes | 1 - vendor/phpunit/php-timer/.gitignore | 5 - vendor/phpunit/php-timer/.php_cs.dist | 148 - vendor/phpunit/php-timer/.travis.yml | 24 - vendor/phpunit/php-timer/ChangeLog.md | 15 - vendor/phpunit/php-timer/LICENSE | 33 - vendor/phpunit/php-timer/README.md | 49 - vendor/phpunit/php-timer/build.xml | 20 - vendor/phpunit/php-timer/composer.json | 42 - vendor/phpunit/php-timer/phpunit.xml | 19 - vendor/phpunit/php-timer/src/Exception.php | 15 - .../php-timer/src/RuntimeException.php | 15 - vendor/phpunit/php-timer/src/Timer.php | 81 - vendor/phpunit/php-timer/tests/TimerTest.php | 121 - .../phpunit/php-token-stream/.gitattributes | 1 - vendor/phpunit/php-token-stream/.gitignore | 3 - vendor/phpunit/php-token-stream/.travis.yml | 25 - vendor/phpunit/php-token-stream/ChangeLog.md | 27 - vendor/phpunit/php-token-stream/LICENSE | 33 - vendor/phpunit/php-token-stream/README.md | 14 - vendor/phpunit/php-token-stream/build.xml | 21 - vendor/phpunit/php-token-stream/composer.json | 39 - vendor/phpunit/php-token-stream/phpunit.xml | 17 - vendor/phpunit/php-token-stream/src/Token.php | 1351 -------- .../php-token-stream/src/Token/Stream.php | 607 ---- .../src/Token/Stream/CachingFactory.php | 46 - .../tests/Token/ClassTest.php | 169 - .../tests/Token/ClosureTest.php | 78 - .../tests/Token/FunctionTest.php | 139 - .../tests/Token/IncludeTest.php | 65 - .../tests/Token/InterfaceTest.php | 195 -- .../tests/Token/NamespaceTest.php | 69 - .../_fixture/classExtendsNamespacedClass.php | 10 - .../tests/_fixture/classInNamespace.php | 6 - .../tests/_fixture/classInScopedNamespace.php | 9 - .../_fixture/classUsesNamespacedFunction.php | 8 - .../class_with_method_named_empty.php | 7 - ...h_method_that_declares_anonymous_class.php | 15 - ..._method_that_declares_anonymous_class2.php | 16 - ...ltiple_anonymous_classes_and_functions.php | 26 - .../tests/_fixture/closure.php | 7 - .../tests/_fixture/issue19.php | 3 - .../tests/_fixture/issue30.php | 8 - ...tipleNamespacesWithOneClassUsingBraces.php | 12 - ...espacesWithOneClassUsingNonBraceSyntax.php | 14 - .../_fixture/php-code-coverage-issue-424.php | 13 - .../tests/_fixture/source.php | 36 - .../tests/_fixture/source2.php | 6 - .../tests/_fixture/source3.php | 14 - .../tests/_fixture/source4.php | 30 - .../tests/_fixture/source5.php | 5 - .../php-token-stream/tests/bootstrap.php | 15 - .../phpunit-mock-objects/.gitattributes | 1 - .../.github/ISSUE_TEMPLATE.md | 15 - .../phpunit/phpunit-mock-objects/.gitignore | 4 - vendor/phpunit/phpunit-mock-objects/.php_cs | 145 - .../phpunit/phpunit-mock-objects/.travis.yml | 33 - .../phpunit-mock-objects/CONTRIBUTING.md | 1 - .../phpunit/phpunit-mock-objects/ChangeLog.md | 14 - vendor/phpunit/phpunit-mock-objects/LICENSE | 33 - vendor/phpunit/phpunit-mock-objects/README.md | 7 - vendor/phpunit/phpunit-mock-objects/build.xml | 19 - .../phpunit-mock-objects/composer.json | 54 - .../phpunit/phpunit-mock-objects/phpunit.xml | 28 - .../src/Builder/Identity.php | 30 - .../src/Builder/InvocationMocker.php | 299 -- .../src/Builder/Match.php | 26 - .../src/Builder/MethodNameMatch.php | 26 - .../src/Builder/NamespaceMatch.php | 37 - .../src/Builder/ParametersMatch.php | 50 - .../phpunit-mock-objects/src/Builder/Stub.php | 28 - .../src/Exception/BadMethodCallException.php | 14 - .../src/Exception/Exception.php | 17 - .../src/Exception/RuntimeException.php | 14 - .../src/ForwardCompatibility/MockObject.php | 17 - .../phpunit-mock-objects/src/Generator.php | 1195 ------- .../src/Generator/deprecation.tpl.dist | 2 - .../src/Generator/mocked_class.tpl.dist | 40 - .../Generator/mocked_class_method.tpl.dist | 8 - .../src/Generator/mocked_clone.tpl.dist | 4 - .../src/Generator/mocked_method.tpl.dist | 22 - .../src/Generator/mocked_method_void.tpl.dist | 20 - .../Generator/mocked_static_method.tpl.dist | 5 - .../src/Generator/proxied_method.tpl.dist | 22 - .../Generator/proxied_method_void.tpl.dist | 22 - .../src/Generator/trait_class.tpl.dist | 4 - .../src/Generator/unmocked_clone.tpl.dist | 5 - .../src/Generator/wsdl_class.tpl.dist | 7 - .../src/Generator/wsdl_method.tpl.dist | 4 - .../src/Invocation/Invocation.php | 31 - .../src/Invocation/ObjectInvocation.php | 41 - .../src/Invocation/StaticInvocation.php | 255 -- .../src/InvocationMocker.php | 185 -- .../phpunit-mock-objects/src/Invokable.php | 38 - .../phpunit-mock-objects/src/Matcher.php | 321 -- .../src/Matcher/AnyInvokedCount.php | 29 - .../src/Matcher/AnyParameters.php | 36 - .../src/Matcher/ConsecutiveParameters.php | 134 - .../src/Matcher/Invocation.php | 49 - .../src/Matcher/InvokedAtIndex.php | 89 - .../src/Matcher/InvokedAtLeastCount.php | 58 - .../src/Matcher/InvokedAtLeastOnce.php | 46 - .../src/Matcher/InvokedAtMostCount.php | 58 - .../src/Matcher/InvokedCount.php | 111 - .../src/Matcher/InvokedRecorder.php | 68 - .../src/Matcher/MethodName.php | 74 - .../src/Matcher/Parameters.php | 165 - .../src/Matcher/StatelessInvocation.php | 54 - .../phpunit-mock-objects/src/MockBuilder.php | 389 --- .../phpunit-mock-objects/src/MockObject.php | 57 - .../phpunit/phpunit-mock-objects/src/Stub.php | 31 - .../src/Stub/ConsecutiveCalls.php | 56 - .../src/Stub/Exception.php | 42 - .../src/Stub/MatcherCollection.php | 26 - .../src/Stub/ReturnArgument.php | 43 - .../src/Stub/ReturnCallback.php | 52 - .../src/Stub/ReturnReference.php | 45 - .../src/Stub/ReturnSelf.php | 38 - .../src/Stub/ReturnStub.php | 45 - .../src/Stub/ReturnValueMap.php | 53 - .../phpunit-mock-objects/src/Verifiable.php | 26 - .../tests/Builder/InvocationMockerTest.php | 74 - .../tests/Generator/232.phpt | 129 - .../tests/Generator/397.phpt | 99 - .../tests/Generator/abstract_class.phpt | 148 - .../tests/Generator/class.phpt | 126 - .../Generator/class_call_parent_clone.phpt | 78 - .../class_call_parent_constructor.phpt | 77 - .../class_dont_call_parent_clone.phpt | 77 - .../class_dont_call_parent_constructor.phpt | 77 - ...ing_interface_call_parent_constructor.phpt | 82 - ...nterface_dont_call_parent_constructor.phpt | 82 - .../tests/Generator/class_partial.phpt | 104 - .../class_with_deprecated_method.phpt | 106 - .../class_with_method_named_method.phpt | 92 - ...ullable_typehinted_variadic_arguments.phpt | 100 - ...od_with_typehinted_variadic_arguments.phpt | 100 - ...s_with_method_with_variadic_arguments.phpt | 100 - .../tests/Generator/interface.phpt | 98 - .../invocation_object_clone_object.phpt | 127 - .../tests/Generator/namespaced_class.phpt | 128 - .../namespaced_class_call_parent_clone.phpt | 80 - ...espaced_class_call_parent_constructor.phpt | 79 - ...mespaced_class_dont_call_parent_clone.phpt | 79 - ...ed_class_dont_call_parent_constructor.phpt | 79 - ...ing_interface_call_parent_constructor.phpt | 84 - ...nterface_dont_call_parent_constructor.phpt | 84 - .../Generator/namespaced_class_partial.phpt | 106 - .../tests/Generator/namespaced_interface.phpt | 100 - .../tests/Generator/nonexistent_class.phpt | 75 - .../nonexistent_class_with_namespace.phpt | 83 - ...ith_namespace_starting_with_separator.phpt | 83 - .../tests/Generator/nullable_types.phpt | 100 - .../tests/Generator/proxy.phpt | 122 - .../return_type_declarations_closure.phpt | 98 - .../return_type_declarations_final.phpt | 105 - .../return_type_declarations_generator.phpt | 98 - .../return_type_declarations_nullable.phpt | 98 - ...eturn_type_declarations_object_method.phpt | 101 - .../return_type_declarations_parent.phpt | 104 - .../return_type_declarations_self.phpt | 98 - ...eturn_type_declarations_static_method.phpt | 84 - .../return_type_declarations_void.phpt | 96 - .../Generator/scalar_type_declarations.phpt | 100 - .../tests/Generator/wsdl_class.phpt | 37 - .../tests/Generator/wsdl_class_namespace.phpt | 35 - .../tests/Generator/wsdl_class_partial.phpt | 30 - .../tests/GeneratorTest.php | 210 -- .../tests/Invocation/ObjectInvocationTest.php | 120 - .../tests/Invocation/StaticInvocationTest.php | 99 - .../Matcher/ConsecutiveParametersTest.php | 68 - .../tests/MockBuilderTest.php | 129 - .../tests/MockObjectTest.php | 1076 ------- .../tests/ProxyObjectTest.php | 41 - .../tests/_fixture/AbstractMockTestClass.php | 10 - .../tests/_fixture/AbstractTrait.php | 15 - .../tests/_fixture/AnInterface.php | 6 - .../_fixture/AnInterfaceWithReturnType.php | 5 - .../tests/_fixture/AnotherInterface.php | 5 - .../tests/_fixture/Bar.php | 8 - .../ClassThatImplementsSerializable.php | 15 - .../ClassWithAllPossibleReturnTypes.php | 56 - .../tests/_fixture/ClassWithSelfTypeHint.php | 7 - .../tests/_fixture/ClassWithStaticMethod.php | 7 - .../tests/_fixture/Foo.php | 8 - .../tests/_fixture/FunctionCallback.php | 9 - .../tests/_fixture/GoogleSearch.wsdl | 198 -- .../InterfaceWithSemiReservedMethodName.php | 5 - .../_fixture/InterfaceWithStaticMethod.php | 5 - .../tests/_fixture/MethodCallback.php | 21 - .../_fixture/MethodCallbackByReference.php | 13 - .../tests/_fixture/MockTestInterface.php | 6 - .../tests/_fixture/Mockable.php | 28 - .../tests/_fixture/PartialMockTestClass.php | 18 - .../tests/_fixture/SingletonClass.php | 28 - .../tests/_fixture/SomeClass.php | 13 - .../tests/_fixture/StaticMockTestClass.php | 12 - .../tests/_fixture/StringableClass.php | 8 - .../_fixture/TraversableMockTestInterface.php | 5 - .../phpunit-mock-objects/tests/bootstrap.php | 3 - vendor/phpunit/phpunit/.editorconfig | 8 - vendor/phpunit/phpunit/.gitattributes | 4 - .../phpunit/.github/CODE_OF_CONDUCT.md | 28 - .../phpunit/phpunit/.github/CONTRIBUTING.md | 71 - .../phpunit/phpunit/.github/ISSUE_TEMPLATE.md | 15 - vendor/phpunit/phpunit/.gitignore | 20 - vendor/phpunit/phpunit/.php_cs.dist | 151 - vendor/phpunit/phpunit/.travis.yml | 51 - vendor/phpunit/phpunit/ChangeLog-5.7.md | 242 -- vendor/phpunit/phpunit/ChangeLog-6.5.md | 67 - vendor/phpunit/phpunit/ChangeLog-7.0.md | 51 - vendor/phpunit/phpunit/LICENSE | 33 - vendor/phpunit/phpunit/README.md | 46 - vendor/phpunit/phpunit/appveyor.yml | 59 - vendor/phpunit/phpunit/build.xml | 422 --- vendor/phpunit/phpunit/composer.json | 86 - vendor/phpunit/phpunit/phpunit | 53 - vendor/phpunit/phpunit/phpunit.xml | 32 - vendor/phpunit/phpunit/phpunit.xsd | 270 -- vendor/phpunit/phpunit/src/Exception.php | 18 - .../phpunit/phpunit/src/Framework/Assert.php | 2818 ---------------- .../src/Framework/Assert/Functions.php | 2099 ------------ .../src/Framework/AssertionFailedError.php | 27 - .../src/Framework/CodeCoverageException.php | 15 - .../src/Framework/Constraint/ArrayHasKey.php | 87 - .../src/Framework/Constraint/ArraySubset.php | 146 - .../src/Framework/Constraint/Attribute.php | 89 - .../src/Framework/Constraint/Callback.php | 47 - .../Constraint/ClassHasAttribute.php | 86 - .../Constraint/ClassHasStaticAttribute.php | 55 - .../src/Framework/Constraint/Composite.php | 77 - .../src/Framework/Constraint/Constraint.php | 159 - .../src/Framework/Constraint/Count.php | 126 - .../Framework/Constraint/DirectoryExists.php | 59 - .../src/Framework/Constraint/Exception.php | 90 - .../Framework/Constraint/ExceptionCode.php | 70 - .../Framework/Constraint/ExceptionMessage.php | 83 - .../ExceptionMessageRegularExpression.php | 81 - .../src/Framework/Constraint/FileExists.php | 59 - .../src/Framework/Constraint/GreaterThan.php | 57 - .../src/Framework/Constraint/IsAnything.php | 61 - .../src/Framework/Constraint/IsEmpty.php | 67 - .../src/Framework/Constraint/IsEqual.php | 165 - .../src/Framework/Constraint/IsFalse.php | 39 - .../src/Framework/Constraint/IsFinite.php | 39 - .../src/Framework/Constraint/IsIdentical.php | 153 - .../src/Framework/Constraint/IsInfinite.php | 39 - .../src/Framework/Constraint/IsInstanceOf.php | 99 - .../src/Framework/Constraint/IsJson.php | 78 - .../src/Framework/Constraint/IsNan.php | 39 - .../src/Framework/Constraint/IsNull.php | 39 - .../src/Framework/Constraint/IsReadable.php | 59 - .../src/Framework/Constraint/IsTrue.php | 39 - .../src/Framework/Constraint/IsType.php | 142 - .../src/Framework/Constraint/IsWritable.php | 59 - .../src/Framework/Constraint/JsonMatches.php | 120 - .../JsonMatchesErrorMessageProvider.php | 72 - .../src/Framework/Constraint/LessThan.php | 57 - .../src/Framework/Constraint/LogicalAnd.php | 129 - .../src/Framework/Constraint/LogicalNot.php | 184 -- .../src/Framework/Constraint/LogicalOr.php | 126 - .../src/Framework/Constraint/LogicalXor.php | 131 - .../Constraint/ObjectHasAttribute.php | 36 - .../Constraint/RegularExpression.php | 63 - .../src/Framework/Constraint/SameSize.php | 21 - .../Framework/Constraint/StringContains.php | 84 - .../Framework/Constraint/StringEndsWith.php | 54 - .../StringMatchesFormatDescription.php | 103 - .../Framework/Constraint/StringStartsWith.php | 55 - .../Constraint/TraversableContains.php | 126 - .../Constraint/TraversableContainsOnly.php | 97 - .../CoveredCodeNotExecutedException.php | 15 - .../src/Framework/DataProviderTestSuite.php | 25 - .../src/Framework/Error/Deprecated.php | 15 - .../phpunit/src/Framework/Error/Error.php | 36 - .../phpunit/src/Framework/Error/Notice.php | 15 - .../phpunit/src/Framework/Error/Warning.php | 15 - .../phpunit/src/Framework/Exception.php | 82 - .../src/Framework/ExceptionWrapper.php | 95 - .../Framework/ExpectationFailedException.php | 44 - .../phpunit/src/Framework/IncompleteTest.php | 19 - .../src/Framework/IncompleteTestCase.php | 85 - .../src/Framework/IncompleteTestError.php | 14 - .../InvalidCoversTargetException.php | 14 - .../MissingCoversAnnotationException.php | 15 - .../phpunit/src/Framework/OutputError.php | 14 - .../phpunit/src/Framework/RiskyTest.php | 15 - .../phpunit/src/Framework/RiskyTestError.php | 14 - .../phpunit/src/Framework/SelfDescribing.php | 24 - .../phpunit/src/Framework/SkippedTest.php | 15 - .../phpunit/src/Framework/SkippedTestCase.php | 85 - .../src/Framework/SkippedTestError.php | 15 - .../src/Framework/SkippedTestSuiteError.php | 15 - .../phpunit/src/Framework/SyntheticError.php | 80 - vendor/phpunit/phpunit/src/Framework/Test.php | 24 - .../phpunit/src/Framework/TestCase.php | 2150 ------------- .../phpunit/src/Framework/TestFailure.php | 172 - .../phpunit/src/Framework/TestListener.php | 99 - .../TestListenerDefaultImplementation.php | 53 - .../phpunit/src/Framework/TestResult.php | 1181 ------- .../phpunit/src/Framework/TestSuite.php | 990 ------ .../src/Framework/TestSuiteIterator.php | 104 - .../UnintentionallyCoveredCodeError.php | 18 - .../phpunit/phpunit/src/Framework/Warning.php | 26 - .../phpunit/src/Framework/WarningTestCase.php | 76 - .../phpunit/src/Runner/BaseTestRunner.php | 149 - .../phpunit/phpunit/src/Runner/Exception.php | 14 - .../Filter/ExcludeGroupFilterIterator.php | 23 - .../phpunit/src/Runner/Filter/Factory.php | 57 - .../src/Runner/Filter/GroupFilterIterator.php | 61 - .../Filter/IncludeGroupFilterIterator.php | 23 - .../src/Runner/Filter/NameFilterIterator.php | 129 - .../phpunit/src/Runner/PhptTestCase.php | 619 ---- .../src/Runner/StandardTestSuiteLoader.php | 121 - .../phpunit/src/Runner/TestSuiteLoader.php | 34 - vendor/phpunit/phpunit/src/Runner/Version.php | 75 - vendor/phpunit/phpunit/src/TextUI/Command.php | 1290 -------- .../phpunit/src/TextUI/ResultPrinter.php | 694 ---- .../phpunit/phpunit/src/TextUI/TestRunner.php | 1126 ------- vendor/phpunit/phpunit/src/Util/Blacklist.php | 128 - .../phpunit/src/Util/Configuration.php | 1225 ------- .../src/Util/ConfigurationGenerator.php | 59 - .../phpunit/phpunit/src/Util/ErrorHandler.php | 111 - .../phpunit/phpunit/src/Util/FileLoader.php | 74 - .../phpunit/phpunit/src/Util/Filesystem.php | 35 - vendor/phpunit/phpunit/src/Util/Filter.php | 82 - vendor/phpunit/phpunit/src/Util/Getopt.php | 200 -- .../phpunit/phpunit/src/Util/GlobalState.php | 179 -- .../src/Util/InvalidArgumentHelper.php | 42 - vendor/phpunit/phpunit/src/Util/Json.php | 88 - vendor/phpunit/phpunit/src/Util/Log/JUnit.php | 464 --- .../phpunit/phpunit/src/Util/Log/TeamCity.php | 440 --- .../src/Util/PHP/AbstractPhpProcess.php | 418 --- .../src/Util/PHP/DefaultPhpProcess.php | 232 -- .../Util/PHP/Template/PhptTestCase.tpl.dist | 46 - .../Util/PHP/Template/TestCaseClass.tpl.dist | 107 - .../Util/PHP/Template/TestCaseMethod.tpl.dist | 109 - .../src/Util/PHP/WindowsPhpProcess.php | 46 - .../phpunit/src/Util/PHP/eval-stdin.php | 10 - vendor/phpunit/phpunit/src/Util/Printer.php | 142 - .../phpunit/src/Util/RegularExpression.php | 33 - vendor/phpunit/phpunit/src/Util/Test.php | 1227 ------- .../src/Util/TestDox/CliTestDoxPrinter.php | 209 -- .../src/Util/TestDox/HtmlResultPrinter.php | 138 - .../src/Util/TestDox/NamePrettifier.php | 110 - .../src/Util/TestDox/ResultPrinter.php | 398 --- .../phpunit/src/Util/TestDox/TestResult.php | 155 - .../src/Util/TestDox/TextResultPrinter.php | 54 - .../src/Util/TestDox/XmlResultPrinter.php | 238 -- .../phpunit/src/Util/TextTestListRenderer.php | 44 - vendor/phpunit/phpunit/src/Util/Type.php | 36 - vendor/phpunit/phpunit/src/Util/Xml.php | 300 -- .../phpunit/src/Util/XmlTestListRenderer.php | 82 - vendor/phpunit/phpunit/tests/Fail/fail.phpt | 5 - .../phpunit/tests/Framework/AssertTest.php | 2856 ----------------- .../Framework/Constraint/ArrayHasKeyTest.php | 65 - .../Framework/Constraint/ArraySubsetTest.php | 87 - .../Framework/Constraint/AttributeTest.php | 81 - .../Framework/Constraint/CallbackTest.php | 66 - .../Constraint/ClassHasAttributeTest.php | 71 - .../ClassHasStaticAttributeTest.php | 67 - .../Constraint/ConstraintTestCase.php | 57 - .../tests/Framework/Constraint/CountTest.php | 146 - .../Constraint/DirectoryExistsTest.php | 67 - .../Constraint/ExceptionMessageRegExpTest.php | 56 - .../Constraint/ExceptionMessageTest.php | 52 - .../Framework/Constraint/FileExistsTest.php | 66 - .../Framework/Constraint/GreaterThanTest.php | 67 - .../Framework/Constraint/IsEmptyTest.php | 68 - .../Framework/Constraint/IsEqualTest.php | 326 -- .../Framework/Constraint/IsIdenticalTest.php | 198 -- .../tests/Framework/Constraint/IsJsonTest.php | 38 - .../tests/Framework/Constraint/IsNullTest.php | 67 - .../Framework/Constraint/IsReadableTest.php | 43 - .../tests/Framework/Constraint/IsTypeTest.php | 105 - .../Framework/Constraint/IsWritableTest.php | 43 - .../JsonMatchesErrorMessageProviderTest.php | 95 - .../Framework/Constraint/JsonMatchesTest.php | 102 - .../Framework/Constraint/LessThanTest.php | 67 - .../Framework/Constraint/LogicalAndTest.php | 238 -- .../Framework/Constraint/LogicalOrTest.php | 233 -- .../Framework/Constraint/LogicalXorTest.php | 44 - .../Constraint/ObjectHasAttributeTest.php | 67 - .../Constraint/RegularExpressionTest.php | 67 - .../Framework/Constraint/SameSizeTest.php | 63 - .../Constraint/StringContainsTest.php | 97 - .../Constraint/StringEndsWithTest.php | 88 - .../StringMatchesFormatDescriptionTest.php | 74 - .../Constraint/StringStartsWithTest.php | 89 - .../Constraint/TraversableContainsTest.php | 171 - .../tests/Framework/ConstraintTest.php | 1493 --------- .../phpunit/tests/Framework/TestCaseTest.php | 739 ----- .../tests/Framework/TestFailureTest.php | 41 - .../tests/Framework/TestImplementorTest.php | 26 - .../tests/Framework/TestListenerTest.php | 112 - .../phpunit/tests/Framework/TestSuiteTest.php | 241 -- .../phpunit/tests/Regression/GitHub/1149.phpt | 20 - .../Regression/GitHub/1149/Issue1149Test.php | 20 - .../phpunit/tests/Regression/GitHub/1216.phpt | 25 - .../Regression/GitHub/1216/Issue1216Test.php | 10 - .../Regression/GitHub/1216/bootstrap1216.php | 2 - .../Regression/GitHub/1216/phpunit1216.xml | 8 - .../phpunit/tests/Regression/GitHub/1265.phpt | 21 - .../Regression/GitHub/1265/Issue1265Test.php | 10 - .../Regression/GitHub/1265/phpunit1265.xml | 2 - .../phpunit/tests/Regression/GitHub/1330.phpt | 24 - .../Regression/GitHub/1330/Issue1330Test.php | 10 - .../Regression/GitHub/1330/phpunit1330.xml | 5 - .../phpunit/tests/Regression/GitHub/1335.phpt | 19 - .../Regression/GitHub/1335/Issue1335Test.php | 69 - .../Regression/GitHub/1335/bootstrap1335.php | 13 - .../phpunit/tests/Regression/GitHub/1337.phpt | 19 - .../Regression/GitHub/1337/Issue1337Test.php | 21 - .../phpunit/tests/Regression/GitHub/1348.phpt | 33 - .../Regression/GitHub/1348/Issue1348Test.php | 16 - .../phpunit/tests/Regression/GitHub/1351.phpt | 46 - .../GitHub/1351/ChildProcessClass1351.php | 4 - .../Regression/GitHub/1351/Issue1351Test.php | 50 - .../phpunit/tests/Regression/GitHub/1374.phpt | 19 - .../Regression/GitHub/1374/Issue1374Test.php | 23 - .../phpunit/tests/Regression/GitHub/1437.phpt | 26 - .../Regression/GitHub/1437/Issue1437Test.php | 11 - .../phpunit/tests/Regression/GitHub/1468.phpt | 20 - .../Regression/GitHub/1468/Issue1468Test.php | 13 - .../phpunit/tests/Regression/GitHub/1471.phpt | 26 - .../Regression/GitHub/1471/Issue1471Test.php | 14 - .../phpunit/tests/Regression/GitHub/1472.phpt | 18 - .../Regression/GitHub/1472/Issue1472Test.php | 23 - .../phpunit/tests/Regression/GitHub/1570.phpt | 25 - .../Regression/GitHub/1570/Issue1570Test.php | 10 - .../tests/Regression/GitHub/2137-filter.phpt | 28 - .../Regression/GitHub/2137-no_filter.phpt | 30 - .../Regression/GitHub/2137/Issue2137Test.php | 43 - .../phpunit/tests/Regression/GitHub/2145.phpt | 27 - .../Regression/GitHub/2145/Issue2145Test.php | 16 - .../phpunit/tests/Regression/GitHub/2158.phpt | 19 - .../Regression/GitHub/2158/Issue2158Test.php | 25 - .../tests/Regression/GitHub/2158/constant.inc | 5 - .../phpunit/tests/Regression/GitHub/2366.phpt | 19 - .../Regression/GitHub/2366/Issue2366Test.php | 32 - .../phpunit/tests/Regression/GitHub/2380.phpt | 19 - .../Regression/GitHub/2380/Issue2380Test.php | 21 - .../phpunit/tests/Regression/GitHub/2382.phpt | 19 - .../Regression/GitHub/2382/Issue2382Test.php | 22 - .../phpunit/tests/Regression/GitHub/2435.phpt | 20 - .../Regression/GitHub/2435/Issue2435Test.php | 11 - .../phpunit/tests/Regression/GitHub/244.phpt | 32 - .../Regression/GitHub/244/Issue244Test.php | 57 - .../Regression/GitHub/2448-existing-test.phpt | 20 - .../GitHub/2448-not-existing-test.phpt | 12 - .../tests/Regression/GitHub/2448/Test.php | 8 - ...-separate-class-preserve-no-bootstrap.phpt | 30 - .../GitHub/2591-separate-class-preserve.phpt | 21 - ...nction-no-preserve-no-bootstrap-php73.phpt | 47 - ...ction-no-preserve-no-bootstrap-xdebug.phpt | 39 - ...ate-function-no-preserve-no-bootstrap.phpt | 37 - .../2591-separate-function-no-preserve.phpt | 20 - .../2591-separate-function-preserve.phpt | 20 - .../GitHub/2591/SeparateClassPreserveTest.php | 26 - .../2591/SeparateFunctionNoPreserveTest.php | 21 - .../2591/SeparateFunctionPreserveTest.php | 21 - .../GitHub/2591/bootstrapNoBootstrap.php | 7 - .../GitHub/2591/bootstrapWithBootstrap.php | 4 - .../2591/bootstrapWithBootstrapNoGlobal.php | 4 - .../2725-separate-class-before-after-pid.phpt | 19 - .../GitHub/2725/BeforeAfterClassPidTest.php | 37 - .../phpunit/tests/Regression/GitHub/2731.phpt | 26 - .../Regression/GitHub/2731/Issue2731Test.php | 11 - .../phpunit/tests/Regression/GitHub/2811.phpt | 20 - .../Regression/GitHub/2811/Issue2811Test.php | 10 - .../phpunit/tests/Regression/GitHub/2972.phpt | 18 - .../GitHub/2972/issue-2972-test.phpt | 10 - .../2972/unconventiallyNamedIssue2972Test.php | 13 - .../phpunit/tests/Regression/GitHub/322.phpt | 27 - .../Regression/GitHub/322/Issue322Test.php | 21 - .../Regression/GitHub/322/phpunit322.xml | 11 - .../phpunit/tests/Regression/GitHub/433.phpt | 31 - .../Regression/GitHub/433/Issue433Test.php | 23 - .../phpunit/tests/Regression/GitHub/445.phpt | 32 - .../Regression/GitHub/445/Issue445Test.php | 23 - .../phpunit/tests/Regression/GitHub/498.phpt | 29 - .../Regression/GitHub/498/Issue498Test.php | 46 - .../phpunit/tests/Regression/GitHub/503.phpt | 35 - .../Regression/GitHub/503/Issue503Test.php | 13 - .../phpunit/tests/Regression/GitHub/581.phpt | 40 - .../Regression/GitHub/581/Issue581Test.php | 13 - .../phpunit/tests/Regression/GitHub/74.phpt | 28 - .../Regression/GitHub/74/Issue74Test.php | 11 - .../Regression/GitHub/74/NewException.php | 4 - .../phpunit/tests/Regression/GitHub/765.phpt | 26 - .../Regression/GitHub/765/Issue765Test.php | 24 - .../phpunit/tests/Regression/GitHub/797.phpt | 22 - .../Regression/GitHub/797/Issue797Test.php | 12 - .../Regression/GitHub/797/bootstrap797.php | 6 - .../phpunit/tests/Regression/GitHub/863.phpt | 24 - .../phpunit/tests/Regression/GitHub/873.phpt | 22 - .../Regression/GitHub/873/Issue873Test.php | 9 - .../phpunit/tests/Regression/Trac/1021.phpt | 19 - .../Regression/Trac/1021/Issue1021Test.php | 26 - .../phpunit/tests/Regression/Trac/523.phpt | 19 - .../Regression/Trac/523/Issue523Test.php | 15 - .../phpunit/tests/Regression/Trac/578.phpt | 37 - .../Regression/Trac/578/Issue578Test.php | 22 - .../phpunit/tests/Regression/Trac/684.phpt | 25 - .../Regression/Trac/684/Issue684Test.php | 6 - .../phpunit/tests/Regression/Trac/783.phpt | 21 - .../tests/Regression/Trac/783/ChildSuite.php | 17 - .../tests/Regression/Trac/783/OneTest.php | 13 - .../tests/Regression/Trac/783/ParentSuite.php | 15 - .../tests/Regression/Trac/783/TwoTest.php | 13 - .../phpunit/tests/Runner/PhptTestCaseTest.php | 321 -- .../tests/TextUI/_files/expect_external.txt | 1 - .../tests/TextUI/_files/phpt-env.expected.txt | 1 - .../tests/TextUI/_files/phpt_external.php | 10 - .../tests/TextUI/abstract-test-class.phpt | 24 - .../phpunit/tests/TextUI/assertion.phpt | 38 - .../tests/TextUI/code-coverage-ignore.phpt | 36 - .../tests/TextUI/code-coverage-phpt.phpt | 43 - .../phpunit/tests/TextUI/colors-always.phpt | 18 - .../tests/TextUI/concrete-test-class.phpt | 18 - .../tests/TextUI/custom-printer-debug.phpt | 26 - .../tests/TextUI/custom-printer-verbose.phpt | 31 - .../tests/TextUI/dataprovider-debug.phpt | 33 - .../tests/TextUI/dataprovider-issue-2833.phpt | 17 - .../tests/TextUI/dataprovider-issue-2859.phpt | 17 - .../tests/TextUI/dataprovider-issue-2922.phpt | 18 - .../dataprovider-log-xml-isolation.phpt | 46 - .../tests/TextUI/dataprovider-log-xml.phpt | 45 - .../tests/TextUI/dataprovider-testdox.phpt | 23 - .../phpunit/phpunit/tests/TextUI/debug.phpt | 25 - .../tests/TextUI/default-isolation.phpt | 19 - .../phpunit/phpunit/tests/TextUI/default.phpt | 18 - .../defaulttestsuite-using-testsuite.phpt | 21 - .../tests/TextUI/defaulttestsuite.phpt | 19 - .../tests/TextUI/dependencies-clone.phpt | 22 - .../tests/TextUI/dependencies-isolation.phpt | 42 - .../phpunit/tests/TextUI/dependencies.phpt | 41 - .../tests/TextUI/dependencies2-isolation.phpt | 19 - .../phpunit/tests/TextUI/dependencies2.phpt | 18 - .../tests/TextUI/dependencies3-isolation.phpt | 19 - .../phpunit/tests/TextUI/dependencies3.phpt | 19 - .../TextUI/disable-code-coverage-ignore.phpt | 40 - .../phpunit/tests/TextUI/empty-testcase.phpt | 25 - .../phpunit/tests/TextUI/exception-stack.phpt | 64 - .../tests/TextUI/exclude-group-isolation.phpt | 21 - .../phpunit/tests/TextUI/exclude-group.phpt | 20 - .../tests/TextUI/failure-isolation.phpt | 140 - .../tests/TextUI/failure-reverse-list.phpt | 140 - .../phpunit/phpunit/tests/TextUI/failure.phpt | 139 - .../phpunit/tests/TextUI/fatal-isolation.phpt | 25 - .../tests/TextUI/filter-class-isolation.phpt | 21 - .../phpunit/tests/TextUI/filter-class.phpt | 20 - ...ider-by-classname-and-range-isolation.phpt | 21 - ...r-dataprovider-by-classname-and-range.phpt | 20 - ...lter-dataprovider-by-number-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-number.phpt | 20 - ...-dataprovider-by-only-range-isolation.phpt | 21 - .../filter-dataprovider-by-only-range.phpt | 20 - ...dataprovider-by-only-regexp-isolation.phpt | 21 - .../filter-dataprovider-by-only-regexp.phpt | 20 - ...dataprovider-by-only-string-isolation.phpt | 21 - .../filter-dataprovider-by-only-string.phpt | 20 - ...ilter-dataprovider-by-range-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-range.phpt | 20 - ...lter-dataprovider-by-regexp-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-regexp.phpt | 20 - ...lter-dataprovider-by-string-isolation.phpt | 21 - .../TextUI/filter-dataprovider-by-string.phpt | 20 - .../filter-method-case-insensitive.phpt | 20 - ...ilter-method-case-sensitive-no-result.phpt | 20 - .../tests/TextUI/filter-method-isolation.phpt | 21 - .../phpunit/tests/TextUI/filter-method.phpt | 20 - .../tests/TextUI/filter-no-results.phpt | 20 - .../tests/TextUI/forward-compatibility.phpt | 18 - .../phpunit/tests/TextUI/group-isolation.phpt | 21 - .../phpunit/phpunit/tests/TextUI/group.phpt | 20 - vendor/phpunit/phpunit/tests/TextUI/help.phpt | 103 - .../phpunit/phpunit/tests/TextUI/help2.phpt | 104 - .../phpunit/tests/TextUI/ini-isolation.phpt | 21 - .../phpunit/tests/TextUI/list-groups.phpt | 18 - .../phpunit/tests/TextUI/list-suites.phpt | 16 - .../tests/TextUI/list-tests-dataprovider.phpt | 19 - .../TextUI/list-tests-xml-dataprovider.phpt | 31 - .../phpunit/tests/TextUI/log-junit.phpt | 89 - .../phpunit/tests/TextUI/log-teamcity.phpt | 38 - .../phpunit/tests/TextUI/mycommand.phpt | 23 - .../tests/TextUI/options-after-arguments.phpt | 18 - .../tests/TextUI/output-isolation.phpt | 20 - .../TextUI/phar-extension-suppressed.phpt | 12 - .../phpunit/tests/TextUI/phar-extension.phpt | 21 - .../phpunit/tests/TextUI/phpt-args.phpt | 12 - .../phpunit/tests/TextUI/phpt-env.phpt | 12 - .../phpunit/tests/TextUI/phpt-external.phpt | 6 - .../phpunit/tests/TextUI/phpt-stderr.phpt | 8 - .../phpunit/tests/TextUI/phpt-stdin.phpt | 11 - .../phpunit/tests/TextUI/phpt-xfail.phpt | 18 - .../phpunit/phpunit/tests/TextUI/repeat.phpt | 20 - .../report-useless-tests-incomplete.phpt | 19 - .../report-useless-tests-isolation.phpt | 25 - .../tests/TextUI/report-useless-tests.phpt | 24 - .../tests/TextUI/stop-on-warning-via-cli.phpt | 25 - .../TextUI/stop-on-warning-via-config.phpt | 26 - .../TextUI/teamcity-inner-exceptions.phpt | 39 - .../phpunit/tests/TextUI/teamcity.phpt | 37 - .../tests/TextUI/test-suffix-multiple.phpt | 19 - .../tests/TextUI/test-suffix-single.phpt | 19 - .../tests/TextUI/testdox-exclude-group.phpt | 25 - .../phpunit/tests/TextUI/testdox-group.phpt | 25 - .../phpunit/tests/TextUI/testdox-html.phpt | 57 - .../phpunit/tests/TextUI/testdox-text.phpt | 25 - .../phpunit/tests/TextUI/testdox-verbose.phpt | 25 - .../phpunit/tests/TextUI/testdox-xml.phpt | 62 - .../phpunit/phpunit/tests/TextUI/testdox.phpt | 22 - .../tests/Util/ConfigurationGeneratorTest.php | 50 - .../phpunit/tests/Util/ConfigurationTest.php | 485 --- .../phpunit/phpunit/tests/Util/GetoptTest.php | 215 -- .../phpunit/tests/Util/GlobalStateTest.php | 36 - .../phpunit/phpunit/tests/Util/JsonTest.php | 95 - .../tests/Util/PHP/AbstractPhpProcessTest.php | 121 - .../tests/Util/RegularExpressionTest.php | 64 - .../Util/TestDox/CliTestDoxPrinterTest.php | 209 -- .../tests/Util/TestDox/NamePrettifierTest.php | 59 - .../phpunit/phpunit/tests/Util/TestTest.php | 1039 ------ vendor/phpunit/phpunit/tests/Util/XmlTest.php | 122 - .../phpunit/tests/_files/AbstractTest.php | 10 - .../phpunit/tests/_files/ArrayAccessible.php | 40 - .../phpunit/tests/_files/AssertionExample.php | 8 - .../tests/_files/AssertionExampleTest.php | 12 - .../phpunit/phpunit/tests/_files/Author.php | 25 - .../phpunit/tests/_files/BankAccount.php | 80 - .../phpunit/tests/_files/BankAccountTest.php | 93 - .../tests/_files/BankAccountTest.test.php | 86 - .../phpunit/tests/_files/BankAccountTest2.php | 56 - .../tests/_files/BeforeAndAfterTest.php | 37 - .../_files/BeforeClassAndAfterClassTest.php | 37 - .../BeforeClassWithOnlyDataProviderTest.php | 39 - vendor/phpunit/phpunit/tests/_files/Book.php | 18 - .../phpunit/tests/_files/Calculator.php | 14 - .../ChangeCurrentWorkingDirectoryTest.php | 11 - .../_files/ClassWithNonPublicAttributes.php | 29 - .../ClassWithScalarTypeDeclarations.php | 7 - .../tests/_files/ClassWithToString.php | 20 - .../tests/_files/ClonedDependencyTest.php | 59 - .../phpunit/tests/_files/ConcreteTest.my.php | 8 - .../phpunit/tests/_files/ConcreteTest.php | 8 - .../phpunit/tests/_files/CountConstraint.php | 37 - .../_files/CoverageClassExtendedTest.php | 14 - .../tests/_files/CoverageClassTest.php | 14 - .../CoverageFunctionParenthesesTest.php | 13 - ...erageFunctionParenthesesWhitespaceTest.php | 13 - .../tests/_files/CoverageFunctionTest.php | 13 - .../CoverageMethodOneLineAnnotationTest.php | 13 - .../_files/CoverageMethodParenthesesTest.php | 14 - ...overageMethodParenthesesWhitespaceTest.php | 14 - .../tests/_files/CoverageMethodTest.php | 14 - .../_files/CoverageNamespacedFunctionTest.php | 13 - .../phpunit/tests/_files/CoverageNoneTest.php | 11 - .../tests/_files/CoverageNotPrivateTest.php | 14 - .../tests/_files/CoverageNotProtectedTest.php | 14 - .../tests/_files/CoverageNotPublicTest.php | 14 - .../tests/_files/CoverageNothingTest.php | 15 - .../tests/_files/CoveragePrivateTest.php | 14 - .../tests/_files/CoverageProtectedTest.php | 14 - .../tests/_files/CoveragePublicTest.php | 14 - .../CoverageTwoDefaultClassAnnotations.php | 17 - .../phpunit/tests/_files/CoveredClass.php | 36 - .../phpunit/tests/_files/CoveredFunction.php | 4 - .../phpunit/tests/_files/CustomPrinter.php | 6 - .../tests/_files/DataProviderDebugTest.php | 50 - .../_files/DataProviderDependencyTest.php | 24 - .../tests/_files/DataProviderFilterTest.php | 41 - .../_files/DataProviderIncompleteTest.php | 39 - .../DataProviderIssue2833/FirstTest.php | 23 - .../DataProviderIssue2833/SecondTest.php | 15 - .../_files/DataProviderIssue2859/phpunit.xml | 10 - .../another/TestWithDataProviderTest.php | 21 - .../DataProviderIssue2922/FirstTest.php | 24 - .../DataProviderIssue2922/SecondTest.php | 14 - .../tests/_files/DataProviderSkippedTest.php | 39 - .../phpunit/tests/_files/DataProviderTest.php | 23 - .../tests/_files/DataProviderTestDoxTest.php | 30 - .../tests/_files/DependencyFailureTest.php | 34 - .../tests/_files/DependencySuccessTest.php | 26 - .../tests/_files/DependencyTestSuite.php | 15 - .../phpunit/tests/_files/DoubleTestCase.php | 31 - .../phpunit/tests/_files/DummyBarTest.php | 18 - .../phpunit/tests/_files/DummyException.php | 5 - .../phpunit/tests/_files/DummyFooTest.php | 18 - .../tests/_files/EmptyTestCaseTest.php | 6 - .../ExceptionInAssertPostConditionsTest.php | 37 - .../ExceptionInAssertPreConditionsTest.php | 37 - .../tests/_files/ExceptionInSetUpTest.php | 37 - .../tests/_files/ExceptionInTearDownTest.php | 37 - .../phpunit/tests/_files/ExceptionInTest.php | 37 - .../tests/_files/ExceptionNamespaceTest.php | 38 - .../tests/_files/ExceptionStackTest.php | 26 - .../phpunit/tests/_files/ExceptionTest.php | 141 - .../phpunit/phpunit/tests/_files/Failure.php | 10 - .../phpunit/tests/_files/FailureTest.php | 77 - .../phpunit/tests/_files/FalsyConstraint.php | 18 - .../phpunit/tests/_files/FatalTest.php | 15 - .../tests/_files/IgnoreCodeCoverageClass.php | 16 - .../_files/IgnoreCodeCoverageClassTest.php | 17 - .../phpunit/tests/_files/IncompleteTest.php | 10 - .../tests/_files/Inheritance/InheritanceA.php | 7 - .../tests/_files/Inheritance/InheritanceB.php | 10 - .../tests/_files/InheritedTestCase.php | 7 - .../phpunit/phpunit/tests/_files/IniTest.php | 10 - .../phpunit/tests/_files/IsolationTest.php | 15 - .../tests/_files/JsonData/arrayObject.json | 1 - .../tests/_files/JsonData/simpleObject.json | 1 - .../phpunit/tests/_files/MockRunner.php | 9 - .../phpunit/phpunit/tests/_files/Mockable.php | 26 - .../tests/_files/MultiDependencyTest.php | 29 - .../tests/_files/MultipleDataProviderTest.php | 77 - .../phpunit/tests/_files/MyCommand.php | 16 - .../phpunit/tests/_files/NamedConstraint.php | 29 - .../NamespaceCoverageClassExtendedTest.php | 14 - .../_files/NamespaceCoverageClassTest.php | 14 - ...NamespaceCoverageCoversClassPublicTest.php | 17 - .../NamespaceCoverageCoversClassTest.php | 22 - .../_files/NamespaceCoverageMethodTest.php | 14 - .../NamespaceCoverageNotPrivateTest.php | 14 - .../NamespaceCoverageNotProtectedTest.php | 14 - .../_files/NamespaceCoverageNotPublicTest.php | 14 - .../_files/NamespaceCoveragePrivateTest.php | 14 - .../_files/NamespaceCoverageProtectedTest.php | 14 - .../_files/NamespaceCoveragePublicTest.php | 14 - .../tests/_files/NamespaceCoveredClass.php | 38 - .../tests/_files/NamespaceCoveredFunction.php | 7 - .../tests/_files/NoArgTestCaseTest.php | 9 - .../phpunit/tests/_files/NoTestCaseClass.php | 4 - .../phpunit/tests/_files/NoTestCases.php | 9 - .../phpunit/tests/_files/NonStatic.php | 7 - .../_files/NotExistingCoveredElementTest.php | 26 - .../tests/_files/NotPublicTestCase.php | 13 - .../phpunit/tests/_files/NotVoidTestCase.php | 6 - .../phpunit/tests/_files/NothingTest.php | 9 - .../phpunit/tests/_files/OneTestCase.php | 13 - .../phpunit/tests/_files/OutputTestCase.php | 29 - .../phpunit/tests/_files/OverrideTestCase.php | 7 - .../_files/ParseTestMethodAnnotationsMock.php | 15 - .../RequirementsClassBeforeClassHookTest.php | 13 - .../_files/RequirementsClassDocBlockTest.php | 22 - .../phpunit/tests/_files/RequirementsTest.php | 454 --- .../tests/_files/SampleArrayAccess.php | 36 - .../phpunit/tests/_files/SampleClass.php | 14 - .../phpunit/tests/_files/Singleton.php | 22 - .../phpunit/tests/_files/StackTest.php | 26 - .../phpunit/tests/_files/StatusTest.php | 42 - .../tests/_files/StopOnWarningTestSuite.php | 15 - .../tests/_files/StopsOnWarningTest.php | 9 - .../phpunit/phpunit/tests/_files/Struct.php | 10 - .../phpunit/phpunit/tests/_files/Success.php | 10 - .../tests/_files/TemplateMethodsTest.php | 53 - .../tests/_files/TestAutoreferenced.php | 12 - .../phpunit/tests/_files/TestDoxGroupTest.php | 22 - .../tests/_files/TestGeneratorMaker.php | 10 - .../phpunit/tests/_files/TestIncomplete.php | 10 - .../phpunit/tests/_files/TestIterator.php | 36 - .../phpunit/tests/_files/TestIterator2.php | 35 - .../tests/_files/TestIteratorAggregate.php | 16 - .../tests/_files/TestIteratorAggregate2.php | 19 - .../phpunit/tests/_files/TestSkipped.php | 10 - .../phpunit/tests/_files/TestTestError.php | 10 - .../phpunit/tests/_files/TestWithTest.php | 26 - .../_files/TestableCliTestDoxPrinter.php | 25 - .../tests/_files/ThrowExceptionTestCase.php | 10 - .../tests/_files/ThrowNoExceptionTestCase.php | 9 - .../phpunit/tests/_files/TruthyConstraint.php | 18 - .../VariousIterableDataProviderTest.php | 38 - .../phpunit/phpunit/tests/_files/WasRun.php | 12 - .../tests/_files/WrapperIteratorAggregate.php | 22 - vendor/phpunit/phpunit/tests/_files/bar.xml | 1 - .../_files/configuration.colors.empty.xml | 1 - .../_files/configuration.colors.false.xml | 1 - .../_files/configuration.colors.invalid.xml | 1 - .../_files/configuration.colors.true.xml | 1 - .../_files/configuration.custom-printer.xml | 2 - .../_files/configuration.defaulttestsuite.xml | 10 - .../_files/configuration.one-file-suite.xml | 7 - .../tests/_files/configuration.suites.xml | 6 - .../phpunit/tests/_files/configuration.xml | 131 - .../tests/_files/configuration_empty.xml | 49 - .../_files/configuration_stop_on_warning.xml | 2 - .../tests/_files/configuration_xinclude.xml | 79 - .../tests/_files/expectedFileFormat.txt | 1 - vendor/phpunit/phpunit/tests/_files/foo.xml | 1 - .../tests/_files/phpt-for-coverage.phpt | 8 - .../phpunit/tests/_files/phpt-xfail.phpt | 11 - .../phpunit-example-extension/phpunit.xml | 10 - .../tests/OneTest.php | 13 - .../phpunit-example-extension-3.0.3.phar | Bin 7698 -> 0 bytes ...uctureAttributesAreSameButValuesAreNot.xml | 10 - .../tests/_files/structureExpected.xml | 10 - .../tests/_files/structureIgnoreTextNodes.xml | 13 - .../_files/structureIsSameButDataIsNot.xml | 10 - .../structureWrongNumberOfAttributes.xml | 10 - .../_files/structureWrongNumberOfNodes.xml | 9 - vendor/phpunit/phpunit/tests/bootstrap.php | 30 - .../code-unit-reverse-lookup/.gitignore | 4 - .../code-unit-reverse-lookup/.php_cs | 67 - .../code-unit-reverse-lookup/.travis.yml | 25 - .../code-unit-reverse-lookup/ChangeLog.md | 10 - .../code-unit-reverse-lookup/LICENSE | 33 - .../code-unit-reverse-lookup/README.md | 14 - .../code-unit-reverse-lookup/build.xml | 22 - .../code-unit-reverse-lookup/composer.json | 28 - .../code-unit-reverse-lookup/phpunit.xml | 21 - .../code-unit-reverse-lookup/src/Wizard.php | 111 - .../tests/WizardTest.php | 45 - vendor/sebastian/comparator/.gitignore | 4 - vendor/sebastian/comparator/.php_cs.dist | 88 - vendor/sebastian/comparator/.travis.yml | 34 - vendor/sebastian/comparator/ChangeLog.md | 33 - vendor/sebastian/comparator/LICENSE | 33 - vendor/sebastian/comparator/README.md | 37 - vendor/sebastian/comparator/build.xml | 21 - vendor/sebastian/comparator/composer.json | 54 - vendor/sebastian/comparator/phpunit.xml | 18 - .../comparator/src/ArrayComparator.php | 131 - .../sebastian/comparator/src/Comparator.php | 65 - .../comparator/src/ComparisonFailure.php | 135 - .../comparator/src/DOMNodeComparator.php | 87 - .../comparator/src/DateTimeComparator.php | 84 - .../comparator/src/DoubleComparator.php | 57 - .../comparator/src/ExceptionComparator.php | 53 - vendor/sebastian/comparator/src/Factory.php | 139 - .../comparator/src/MockObjectComparator.php | 48 - .../comparator/src/NumericComparator.php | 69 - .../comparator/src/ObjectComparator.php | 107 - .../comparator/src/ResourceComparator.php | 53 - .../comparator/src/ScalarComparator.php | 92 - .../src/SplObjectStorageComparator.php | 70 - .../comparator/src/TypeComparator.php | 60 - .../comparator/tests/ArrayComparatorTest.php | 168 - .../tests/ComparisonFailureTest.php | 58 - .../tests/DOMNodeComparatorTest.php | 163 - .../tests/DateTimeComparatorTest.php | 223 -- .../comparator/tests/DoubleComparatorTest.php | 137 - .../tests/ExceptionComparatorTest.php | 138 - .../comparator/tests/FactoryTest.php | 126 - .../tests/MockObjectComparatorTest.php | 170 - .../tests/NumericComparatorTest.php | 125 - .../comparator/tests/ObjectComparatorTest.php | 152 - .../tests/ResourceComparatorTest.php | 124 - .../comparator/tests/ScalarComparatorTest.php | 161 - .../tests/SplObjectStorageComparatorTest.php | 149 - .../comparator/tests/TypeComparatorTest.php | 108 - .../comparator/tests/_fixture/Author.php | 27 - .../comparator/tests/_fixture/Book.php | 20 - .../tests/_fixture/ClassWithToString.php | 19 - .../comparator/tests/_fixture/SampleClass.php | 28 - .../comparator/tests/_fixture/Struct.php | 24 - .../comparator/tests/_fixture/TestClass.php | 15 - .../tests/_fixture/TestClassComparator.php | 15 - vendor/sebastian/diff/.gitignore | 5 - vendor/sebastian/diff/.php_cs.dist | 149 - vendor/sebastian/diff/.travis.yml | 25 - vendor/sebastian/diff/ChangeLog.md | 39 - vendor/sebastian/diff/LICENSE | 33 - vendor/sebastian/diff/README.md | 194 -- vendor/sebastian/diff/build.xml | 22 - vendor/sebastian/diff/composer.json | 40 - vendor/sebastian/diff/phpunit.xml | 19 - vendor/sebastian/diff/src/Chunk.php | 78 - vendor/sebastian/diff/src/Diff.php | 67 - vendor/sebastian/diff/src/Differ.php | 329 -- .../src/Exception/ConfigurationException.php | 40 - .../diff/src/Exception/Exception.php | 15 - .../Exception/InvalidArgumentException.php | 15 - vendor/sebastian/diff/src/Line.php | 44 - .../LongestCommonSubsequenceCalculator.php | 24 - ...ientLongestCommonSubsequenceCalculator.php | 81 - .../src/Output/AbstractChunkOutputBuilder.php | 56 - .../diff/src/Output/DiffOnlyOutputBuilder.php | 66 - .../src/Output/DiffOutputBuilderInterface.php | 20 - .../Output/StrictUnifiedDiffOutputBuilder.php | 315 -- .../src/Output/UnifiedDiffOutputBuilder.php | 259 -- vendor/sebastian/diff/src/Parser.php | 106 - ...ientLongestCommonSubsequenceCalculator.php | 66 - vendor/sebastian/diff/tests/ChunkTest.php | 68 - vendor/sebastian/diff/tests/DiffTest.php | 55 - vendor/sebastian/diff/tests/DifferTest.php | 462 --- .../Exception/ConfigurationExceptionTest.php | 41 - .../InvalidArgumentExceptionTest.php | 33 - vendor/sebastian/diff/tests/LineTest.php | 44 - .../tests/LongestCommonSubsequenceTest.php | 201 -- .../MemoryEfficientImplementationTest.php | 22 - .../Output/AbstractChunkOutputBuilderTest.php | 152 - .../Output/DiffOnlyOutputBuilderTest.php | 76 - ...nifiedDiffOutputBuilderIntegrationTest.php | 299 -- ...nifiedDiffOutputBuilderIntegrationTest.php | 163 - ...ctUnifiedDiffOutputBuilderDataProvider.php | 189 -- .../StrictUnifiedDiffOutputBuilderTest.php | 684 ---- .../UnifiedDiffOutputBuilderDataProvider.php | 396 --- .../Output/UnifiedDiffOutputBuilderTest.php | 90 - vendor/sebastian/diff/tests/ParserTest.php | 175 - .../tests/TimeEfficientImplementationTest.php | 22 - .../sebastian/diff/tests/Utils/FileUtils.php | 30 - .../tests/Utils/UnifiedDiffAssertTrait.php | 274 -- .../UnifiedDiffAssertTraitIntegrationTest.php | 129 - .../Utils/UnifiedDiffAssertTraitTest.php | 434 --- .../diff/tests/fixtures/.editorconfig | 1 - .../1_a.txt | 1 - .../1_b.txt | 0 .../2_a.txt | 35 - .../2_b.txt | 18 - .../diff/tests/fixtures/out/.editorconfig | 1 - .../diff/tests/fixtures/out/.gitignore | 2 - .../sebastian/diff/tests/fixtures/patch.txt | 9 - .../sebastian/diff/tests/fixtures/patch2.txt | 21 - .../diff/tests/fixtures/serialized_diff.bin | Bin 4143 -> 0 bytes vendor/sebastian/environment/.gitignore | 5 - vendor/sebastian/environment/.php_cs | 79 - vendor/sebastian/environment/.travis.yml | 34 - vendor/sebastian/environment/ChangeLog.md | 51 - vendor/sebastian/environment/LICENSE | 33 - vendor/sebastian/environment/README.md | 17 - vendor/sebastian/environment/build.xml | 21 - vendor/sebastian/environment/composer.json | 30 - vendor/sebastian/environment/phpunit.xml | 18 - vendor/sebastian/environment/src/Console.php | 146 - .../environment/src/OperatingSystem.php | 51 - vendor/sebastian/environment/src/Runtime.php | 186 -- .../environment/tests/ConsoleTest.php | 67 - .../environment/tests/OperatingSystemTest.php | 39 - .../environment/tests/RuntimeTest.php | 112 - vendor/sebastian/exporter/.gitignore | 4 - vendor/sebastian/exporter/.php_cs | 77 - vendor/sebastian/exporter/.travis.yml | 26 - vendor/sebastian/exporter/LICENSE | 33 - vendor/sebastian/exporter/README.md | 172 - vendor/sebastian/exporter/build.xml | 21 - vendor/sebastian/exporter/composer.json | 48 - vendor/sebastian/exporter/phpunit.xml | 19 - vendor/sebastian/exporter/src/Exporter.php | 312 -- .../sebastian/exporter/tests/ExporterTest.php | 361 --- vendor/sebastian/global-state/.gitignore | 4 - vendor/sebastian/global-state/.php_cs | 79 - vendor/sebastian/global-state/.travis.yml | 26 - vendor/sebastian/global-state/LICENSE | 33 - vendor/sebastian/global-state/README.md | 16 - vendor/sebastian/global-state/build.xml | 22 - vendor/sebastian/global-state/composer.json | 40 - vendor/sebastian/global-state/phpunit.xml | 24 - .../sebastian/global-state/src/Blacklist.php | 123 - .../global-state/src/CodeExporter.php | 94 - .../sebastian/global-state/src/Restorer.php | 137 - .../sebastian/global-state/src/Snapshot.php | 368 --- .../global-state/src/exceptions/Exception.php | 17 - .../src/exceptions/RuntimeException.php | 17 - .../global-state/tests/BlacklistTest.php | 120 - .../global-state/tests/CodeExporterTest.php | 38 - .../global-state/tests/RestorerTest.php | 105 - .../global-state/tests/SnapshotTest.php | 116 - .../tests/_fixture/BlacklistedChildClass.php | 17 - .../tests/_fixture/BlacklistedClass.php | 18 - .../tests/_fixture/BlacklistedImplementor.php | 18 - .../tests/_fixture/BlacklistedInterface.php | 17 - .../tests/_fixture/SnapshotClass.php | 37 - .../tests/_fixture/SnapshotDomDocument.php | 19 - .../tests/_fixture/SnapshotFunctions.php | 17 - .../tests/_fixture/SnapshotTrait.php | 17 - vendor/sebastian/object-enumerator/.gitignore | 8 - vendor/sebastian/object-enumerator/.php_cs | 67 - .../sebastian/object-enumerator/.travis.yml | 26 - .../sebastian/object-enumerator/ChangeLog.md | 53 - vendor/sebastian/object-enumerator/LICENSE | 33 - vendor/sebastian/object-enumerator/README.md | 14 - vendor/sebastian/object-enumerator/build.xml | 22 - .../sebastian/object-enumerator/composer.json | 35 - .../sebastian/object-enumerator/phpunit.xml | 20 - .../object-enumerator/src/Enumerator.php | 85 - .../object-enumerator/src/Exception.php | 15 - .../src/InvalidArgumentException.php | 15 - .../tests/EnumeratorTest.php | 139 - .../tests/_fixture/ExceptionThrower.php | 28 - vendor/sebastian/object-reflector/.gitignore | 4 - vendor/sebastian/object-reflector/.php_cs | 79 - vendor/sebastian/object-reflector/.travis.yml | 26 - .../sebastian/object-reflector/ChangeLog.md | 20 - vendor/sebastian/object-reflector/LICENSE | 33 - vendor/sebastian/object-reflector/README.md | 14 - vendor/sebastian/object-reflector/build.xml | 22 - .../sebastian/object-reflector/composer.json | 33 - vendor/sebastian/object-reflector/phpunit.xml | 19 - .../object-reflector/src/Exception.php | 17 - .../src/InvalidArgumentException.php | 17 - .../object-reflector/src/ObjectReflector.php | 51 - .../tests/ObjectReflectorTest.php | 70 - .../tests/_fixture/ChildClass.php | 25 - .../ClassWithIntegerAttributeName.php | 22 - .../tests/_fixture/ParentClass.php | 20 - vendor/sebastian/recursion-context/.gitignore | 3 - .../sebastian/recursion-context/.travis.yml | 23 - vendor/sebastian/recursion-context/LICENSE | 33 - vendor/sebastian/recursion-context/README.md | 14 - vendor/sebastian/recursion-context/build.xml | 21 - .../sebastian/recursion-context/composer.json | 36 - .../sebastian/recursion-context/phpunit.xml | 19 - .../recursion-context/src/Context.php | 167 - .../recursion-context/src/Exception.php | 17 - .../src/InvalidArgumentException.php | 17 - .../recursion-context/tests/ContextTest.php | 142 - .../sebastian/resource-operations/.gitignore | 3 - vendor/sebastian/resource-operations/LICENSE | 33 - .../sebastian/resource-operations/README.md | 16 - .../sebastian/resource-operations/build.xml | 24 - .../resource-operations/build/generate.php | 62 - .../resource-operations/composer.json | 26 - .../src/ResourceOperations.php | 670 ---- vendor/sebastian/version/.gitattributes | 1 - vendor/sebastian/version/.gitignore | 1 - vendor/sebastian/version/.php_cs | 66 - vendor/sebastian/version/LICENSE | 33 - vendor/sebastian/version/README.md | 43 - vendor/sebastian/version/composer.json | 29 - vendor/sebastian/version/src/Version.php | 109 - vendor/theseer/tokenizer/.gitignore | 7 - vendor/theseer/tokenizer/.php_cs | 67 - vendor/theseer/tokenizer/.travis.yml | 33 - vendor/theseer/tokenizer/LICENSE | 30 - vendor/theseer/tokenizer/README.md | 49 - vendor/theseer/tokenizer/build.xml | 41 - vendor/theseer/tokenizer/composer.json | 27 - vendor/theseer/tokenizer/phive.xml | 5 - vendor/theseer/tokenizer/phpunit.xml | 25 - vendor/theseer/tokenizer/src/Exception.php | 6 - vendor/theseer/tokenizer/src/NamespaceUri.php | 28 - .../tokenizer/src/NamespaceUriException.php | 6 - vendor/theseer/tokenizer/src/Token.php | 55 - .../theseer/tokenizer/src/TokenCollection.php | 128 - .../src/TokenCollectionException.php | 6 - vendor/theseer/tokenizer/src/Tokenizer.php | 82 - .../theseer/tokenizer/src/XMLSerializer.php | 94 - .../tokenizer/tests/NamespaceUriTest.php | 29 - .../tokenizer/tests/TokenCollectionTest.php | 72 - vendor/theseer/tokenizer/tests/TokenTest.php | 31 - .../theseer/tokenizer/tests/TokenizerTest.php | 21 - .../tokenizer/tests/XMLSerializerTest.php | 43 - .../tokenizer/tests/_files/customns.xml | 177 - .../theseer/tokenizer/tests/_files/test.php | 25 - .../tokenizer/tests/_files/test.php.tokens | Bin 29474 -> 0 bytes .../tokenizer/tests/_files/test.php.xml | 177 - vendor/webmozart/assert/.composer-auth.json | 7 - vendor/webmozart/assert/.styleci.yml | 11 - vendor/webmozart/assert/CHANGELOG.md | 53 - vendor/webmozart/assert/LICENSE | 20 - vendor/webmozart/assert/README.md | 252 -- vendor/webmozart/assert/composer.json | 34 - vendor/webmozart/assert/src/Assert.php | 1087 ------- 2335 files changed, 2478 insertions(+), 166712 deletions(-) create mode 100644 .gitignore create mode 100644 composer.lock delete mode 100644 vendor/autoload.php delete mode 120000 vendor/bin/phpunit delete mode 100644 vendor/composer/ClassLoader.php delete mode 100644 vendor/composer/LICENSE delete mode 100644 vendor/composer/autoload_classmap.php delete mode 100644 vendor/composer/autoload_files.php delete mode 100644 vendor/composer/autoload_namespaces.php delete mode 100644 vendor/composer/autoload_psr4.php delete mode 100644 vendor/composer/autoload_real.php delete mode 100644 vendor/composer/autoload_static.php delete mode 100644 vendor/composer/installed.json delete mode 100644 vendor/doctrine/annotations/CHANGELOG.md delete mode 100644 vendor/doctrine/annotations/LICENSE delete mode 100644 vendor/doctrine/annotations/README.md delete mode 100644 vendor/doctrine/annotations/composer.json delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php delete mode 100644 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php delete mode 100644 vendor/doctrine/annotations/phpstan.neon delete mode 100644 vendor/doctrine/instantiator/CONTRIBUTING.md delete mode 100644 vendor/doctrine/instantiator/LICENSE delete mode 100644 vendor/doctrine/instantiator/README.md delete mode 100644 vendor/doctrine/instantiator/composer.json delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php delete mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php delete mode 100644 vendor/doctrine/lexer/LICENSE delete mode 100644 vendor/doctrine/lexer/README.md delete mode 100644 vendor/doctrine/lexer/composer.json delete mode 100644 vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php delete mode 100644 vendor/jms/metadata/.gitignore delete mode 100644 vendor/jms/metadata/.travis.yml delete mode 100644 vendor/jms/metadata/CHANGELOG.md delete mode 100644 vendor/jms/metadata/LICENSE delete mode 100644 vendor/jms/metadata/README.rst delete mode 100644 vendor/jms/metadata/composer.json delete mode 100644 vendor/jms/metadata/composer.lock delete mode 100644 vendor/jms/metadata/phpunit.xml.dist delete mode 100644 vendor/jms/metadata/src/Metadata/AdvancedMetadataFactoryInterface.php delete mode 100644 vendor/jms/metadata/src/Metadata/Cache/CacheInterface.php delete mode 100644 vendor/jms/metadata/src/Metadata/Cache/DoctrineCacheAdapter.php delete mode 100644 vendor/jms/metadata/src/Metadata/Cache/FileCache.php delete mode 100644 vendor/jms/metadata/src/Metadata/Cache/PsrCacheAdapter.php delete mode 100644 vendor/jms/metadata/src/Metadata/ClassHierarchyMetadata.php delete mode 100644 vendor/jms/metadata/src/Metadata/ClassMetadata.php delete mode 100644 vendor/jms/metadata/src/Metadata/Driver/AbstractFileDriver.php delete mode 100644 vendor/jms/metadata/src/Metadata/Driver/AdvancedDriverInterface.php delete mode 100644 vendor/jms/metadata/src/Metadata/Driver/AdvancedFileLocatorInterface.php delete mode 100644 vendor/jms/metadata/src/Metadata/Driver/DriverChain.php delete mode 100644 vendor/jms/metadata/src/Metadata/Driver/DriverInterface.php delete mode 100644 vendor/jms/metadata/src/Metadata/Driver/FileLocator.php delete mode 100644 vendor/jms/metadata/src/Metadata/Driver/FileLocatorInterface.php delete mode 100644 vendor/jms/metadata/src/Metadata/Driver/LazyLoadingDriver.php delete mode 100644 vendor/jms/metadata/src/Metadata/MergeableClassMetadata.php delete mode 100644 vendor/jms/metadata/src/Metadata/MergeableInterface.php delete mode 100644 vendor/jms/metadata/src/Metadata/MetadataFactory.php delete mode 100644 vendor/jms/metadata/src/Metadata/MetadataFactoryInterface.php delete mode 100644 vendor/jms/metadata/src/Metadata/MethodMetadata.php delete mode 100644 vendor/jms/metadata/src/Metadata/NullMetadata.php delete mode 100644 vendor/jms/metadata/src/Metadata/PropertyMetadata.php delete mode 100644 vendor/jms/metadata/src/Metadata/Version.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Cache/DoctrineCacheAdapterTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Cache/FileCacheTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Cache/PsrCacheAdapterTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/ClassMetadataTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/AbstractFileDriverTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/DriverChainTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/FileLocatorTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/A/A.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/A/A.xml delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/B/B.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/B/B.yml delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/C/SubDir.C.yml delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/C/SubDir/C.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/D/D.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/D/D.yml delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/T/T.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/T/T.xml delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Fixtures/ComplexHierarchy/BaseClass.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Fixtures/ComplexHierarchy/InterfaceA.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Fixtures/ComplexHierarchy/InterfaceB.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Fixtures/ComplexHierarchy/SubClassA.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Fixtures/ComplexHierarchy/SubClassB.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Fixtures/TestObject.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/Fixtures/TestParent.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/MergeableClassMetadataTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/MetadataFactoryTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/MethodMetadataTest.php delete mode 100644 vendor/jms/metadata/tests/Metadata/Tests/PropertyMetadataTest.php delete mode 100644 vendor/jms/metadata/tests/bootstrap.php delete mode 100644 vendor/jms/parser-lib/.gitignore delete mode 100644 vendor/jms/parser-lib/.jms.yml delete mode 100644 vendor/jms/parser-lib/.travis.yml delete mode 100644 vendor/jms/parser-lib/LICENSE delete mode 100644 vendor/jms/parser-lib/README.md delete mode 100644 vendor/jms/parser-lib/composer.json delete mode 100644 vendor/jms/parser-lib/composer.lock delete mode 100644 vendor/jms/parser-lib/doc/LICENSE delete mode 100644 vendor/jms/parser-lib/doc/index.rst delete mode 100644 vendor/jms/parser-lib/phpunit.xml.dist delete mode 100644 vendor/jms/parser-lib/src/JMS/Parser/AbstractLexer.php delete mode 100644 vendor/jms/parser-lib/src/JMS/Parser/AbstractParser.php delete mode 100644 vendor/jms/parser-lib/src/JMS/Parser/SimpleLexer.php delete mode 100644 vendor/jms/parser-lib/src/JMS/Parser/SyntaxErrorException.php delete mode 100644 vendor/jms/parser-lib/tests/JMS/Parser/Tests/AbstractLexerTest.php delete mode 100644 vendor/jms/parser-lib/tests/JMS/Parser/Tests/AbstractParserTest.php delete mode 100644 vendor/jms/parser-lib/tests/bootstrap.php delete mode 100644 vendor/jms/serializer/.github/CONDUCT.md delete mode 100644 vendor/jms/serializer/.github/CONTRIBUTING.md delete mode 100644 vendor/jms/serializer/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/jms/serializer/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 vendor/jms/serializer/.gitignore delete mode 100644 vendor/jms/serializer/.scrutinizer.yml delete mode 100644 vendor/jms/serializer/.travis.yml delete mode 100644 vendor/jms/serializer/CHANGELOG.md delete mode 100644 vendor/jms/serializer/LICENSE delete mode 100644 vendor/jms/serializer/META.md delete mode 100644 vendor/jms/serializer/README.md delete mode 100644 vendor/jms/serializer/UPGRADING.md delete mode 100644 vendor/jms/serializer/composer.json delete mode 100644 vendor/jms/serializer/doc/LICENSE delete mode 100644 vendor/jms/serializer/doc/configuration.rst delete mode 100644 vendor/jms/serializer/doc/cookbook.rst delete mode 100644 vendor/jms/serializer/doc/cookbook/arrays.rst delete mode 100644 vendor/jms/serializer/doc/cookbook/exclusion_strategies.rst delete mode 100644 vendor/jms/serializer/doc/cookbook/stdclass.rst delete mode 100644 vendor/jms/serializer/doc/event_system.rst delete mode 100644 vendor/jms/serializer/doc/handlers.rst delete mode 100644 vendor/jms/serializer/doc/index.rst delete mode 100644 vendor/jms/serializer/doc/reference.rst delete mode 100644 vendor/jms/serializer/doc/reference/annotations.rst delete mode 100644 vendor/jms/serializer/doc/reference/xml_reference.rst delete mode 100644 vendor/jms/serializer/doc/reference/yml_reference.rst delete mode 100644 vendor/jms/serializer/doc/usage.rst delete mode 100644 vendor/jms/serializer/phpunit.xml.dist delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/AbstractVisitor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Accessor/AccessorStrategyInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Accessor/DefaultAccessorStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Accessor/ExpressionAccessorStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/AccessType.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Accessor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/AccessorOrder.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Discriminator.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Exclude.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/ExclusionPolicy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Expose.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Groups.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/HandlerCallback.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Inline.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/MaxDepth.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/PostDeserialize.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/PostSerialize.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/PreSerialize.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/ReadOnly.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/SerializedName.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Since.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/SkipWhenEmpty.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Type.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Until.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/Version.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/VirtualProperty.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlAttribute.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlAttributeMap.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlCollection.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlDiscriminator.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlElement.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlKeyValuePairs.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlList.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlMap.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlNamespace.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlRoot.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlValue.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/ArrayTransformerInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Builder/CallbackDriverFactory.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Builder/DefaultDriverFactory.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Builder/DriverFactoryInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Construction/DoctrineObjectConstructor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Construction/ObjectConstructorInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Construction/UnserializeObjectConstructor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Context.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableContextFactory.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableDeserializationContextFactory.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableSerializationContextFactory.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DefaultDeserializationContextFactory.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DefaultSerializationContextFactory.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DeserializationContextFactoryInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/ContextFactory/SerializationContextFactoryInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/DeserializationContext.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Event.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventDispatcher.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventDispatcherInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventSubscriberInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Events.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/LazyEventDispatcher.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/ObjectEvent.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/PreDeserializeEvent.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/PreSerializeEvent.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/DoctrineProxySubscriber.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/SymfonyValidatorSubscriber.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/SymfonyValidatorValidatorSubscriber.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exception/Exception.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exception/ExpressionLanguageRequiredException.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exception/InvalidArgumentException.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exception/LogicException.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exception/ObjectConstructionException.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exception/RuntimeException.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exception/UnsupportedFormatException.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exception/ValidationFailedException.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exception/XmlErrorException.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exclusion/DepthExclusionStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exclusion/DisjunctExclusionStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exclusion/ExclusionStrategyInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exclusion/ExpressionLanguageExclusionStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exclusion/GroupsExclusionStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Exclusion/VersionExclusionStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Expression/ExpressionEvaluator.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Expression/ExpressionEvaluatorInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/GenericDeserializationVisitor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/GenericSerializationVisitor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/GraphNavigator.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/ArrayCollectionHandler.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/ConstraintViolationHandler.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/DateHandler.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/FormErrorHandler.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/HandlerRegistry.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/HandlerRegistryInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/LazyHandlerRegistry.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/PhpCollectionHandler.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/PropelCollectionHandler.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/StdClassHandler.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Handler/SubscribingHandlerInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/JsonDeserializationVisitor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/JsonSerializationVisitor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/ClassMetadata.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/AbstractDoctrineTypeDriver.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/AnnotationDriver.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/DoctrinePHPCRTypeDriver.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/DoctrineTypeDriver.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/NullDriver.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/PhpDriver.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/XmlDriver.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/YamlDriver.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/ExpressionPropertyMetadata.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/PropertyMetadata.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/StaticPropertyMetadata.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Metadata/VirtualPropertyMetadata.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Naming/AdvancedNamingStrategyInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Naming/CacheNamingStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Naming/CamelCaseNamingStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Naming/IdenticalPropertyNamingStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Naming/PropertyNamingStrategyInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Naming/SerializedNameAnnotationStrategy.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/NullAwareVisitorInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/SerializationContext.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Serializer.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/SerializerBuilder.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/SerializerInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerExtension.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerRuntimeExtension.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerRuntimeHelper.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/TypeParser.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/Util/Writer.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/VisitorInterface.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/XmlDeserializationVisitor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/XmlSerializationVisitor.php delete mode 100644 vendor/jms/serializer/src/JMS/Serializer/YamlSerializationVisitor.php delete mode 100644 vendor/jms/serializer/tests/Exclusion/DisjunctExclusionStrategyTest.php delete mode 100644 vendor/jms/serializer/tests/Exclusion/ExpressionLanguageExclusionStrategyTest.php delete mode 100644 vendor/jms/serializer/tests/Exclusion/GroupsExclusionStrategyTest.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/AccessorOrderChild.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/AccessorOrderMethod.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/AccessorOrderParent.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/AccessorSetter.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/AllExcludedObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Article.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Author.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/AuthorExpressionAccess.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/AuthorList.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/AuthorReadOnly.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/AuthorReadOnlyPerClass.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/BlogPost.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/CircularReferenceChild.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/CircularReferenceParent.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Comment.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ContextualNamingStrategy.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/CurrencyAwareOrder.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/CurrencyAwarePrice.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/CustomDeserializationObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/DateTimeArraysObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/Car.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/Moped.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlAttributeDiscriminatorChild.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlAttributeDiscriminatorParent.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNamespaceDiscriminatorChild.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNamespaceDiscriminatorParent.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNotCDataDiscriminatorChild.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNotCDataDiscriminatorParent.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/Vehicle.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Discriminator/VehicleInterface.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/DiscriminatorGroup/Car.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/DiscriminatorGroup/Vehicle.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/Author.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/BlogPost.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/Comment.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/AbstractModel.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/Clazz.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/Organization.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/Person.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/School.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/Student.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/Teacher.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/DoctrinePHPCR/Author.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/DoctrinePHPCR/BlogPost.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/DoctrinePHPCR/Comment.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ExcludePublicAccessor.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ExclusionStrategy/AlwaysExcludeExclusionStrategy.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Garage.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/GetSetObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/GroupsObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/GroupsTrim.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/GroupsUser.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/IndexedCommentsBlogPost.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/InitializedBlogPostConstructor.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/InitializedObjectConstructor.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/InlineChild.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/InlineChildEmpty.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/InlineChildWithGroups.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/InlineParent.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Input.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/InvalidGroupsObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/InvalidUsageOfXmlValue.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Log.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/MaxDepth/Gh236Bar.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/MaxDepth/Gh236Foo.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/MultilineGroupsFormat.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/NamedDateTimeArraysObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/NamedDateTimeImmutableArraysObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Node.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithAbsentXmlListNode.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyArrayAndHash.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyHash.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyNullableAndEmptyArrays.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithExpressionVirtualPropertiesAndExcludeAll.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithHandlerCallbacks.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithIntListAndIntMap.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithLifecycleCallbacks.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithNamespacesAndList.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithNamespacesAndNestedList.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithNullProperty.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithObjectProperty.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithToString.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithVersionedVirtualProperties.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualProperties.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualPropertiesAndExcludeAll.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualXmlProperties.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairs.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairsWithObjectType.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairsWithType.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespaces.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectProperty.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectPropertyAuthor.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectPropertyVirtual.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ObjectWithXmlRootNamespace.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Order.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ParentDoNotSkipWithEmptyChild.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/ParentSkipWithEmptyChild.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Person.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/PersonCollection.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/PersonLocation.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/PersonSecret.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/PersonSecretMore.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/PersonSecretMoreVirtual.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/PersonSecretVirtual.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/PersonSecretWithVariables.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Price.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Publisher.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/SimpleClassObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/SimpleObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/SimpleObjectProxy.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/SimpleSubClassObject.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Tag.php delete mode 100755 vendor/jms/serializer/tests/Fixtures/Timestamp.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/Tree.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/VehicleInterfaceGarage.php delete mode 100644 vendor/jms/serializer/tests/Fixtures/VersionedObject.php delete mode 100644 vendor/jms/serializer/tests/Handler/ArrayCollectionHandlerTest.php delete mode 100644 vendor/jms/serializer/tests/Handler/DateHandlerTest.php delete mode 100644 vendor/jms/serializer/tests/Handler/FormErrorHandlerTest.php delete mode 100644 vendor/jms/serializer/tests/Handler/HandlerRegistryTest.php delete mode 100644 vendor/jms/serializer/tests/Handler/LazyHandlerRegistryTest.php delete mode 100644 vendor/jms/serializer/tests/Handler/LazyHandlerRegistryWithPsr11ContainerTest.php delete mode 100644 vendor/jms/serializer/tests/Handler/LazyHandlerRegistryWithSymfonyContainerTest.php delete mode 100644 vendor/jms/serializer/tests/Handler/PropelCollectionHandlerTest.php delete mode 100644 vendor/jms/serializer/tests/JMS/Serializer/Tests/Fixtures/ObjectWithInlineArray.php delete mode 100644 vendor/jms/serializer/tests/Metadata/ClassMetadataTest.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/AnnotationDriverTest.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/BaseDriverTest.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/DoctrineDriverTest.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/DoctrinePHPCRDriverTest.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/NullDriverTest.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/PhpDriverTest.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/XmlDriverTest.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/YamlDriverTest.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/AuthorExpressionAccess.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/AuthorReadOnly.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/AuthorReadOnlyPerClass.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/BlogPost.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.Car.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.Moped.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.ObjectWithXmlAttributeDiscriminatorParent.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.Vehicle.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/DiscriminatorGroup.Vehicle.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/Node.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithAbsentXmlListNode.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithExpressionVirtualPropertiesAndExcludeAll.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithHandlerCallbacks.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithVirtualProperties.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithVirtualPropertiesAndExcludeAll.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithXmlKeyValuePairs.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithXmlNamespaces.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/ParentSkipWithEmptyChild.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/Person.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/PersonSecret.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/Price.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/SimpleClassObject.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/php/SimpleSubClassObject.php delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorExpressionAccess.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorReadOnly.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorReadOnlyPerClass.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/BlogPost.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Car.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Moped.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.ObjectWithXmlAttributeDiscriminatorParent.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Vehicle.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/DiscriminatorGroup.Vehicle.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/ExcludePublicAccessor.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/GetSetObject.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/GroupsTrim.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/MultilineGroupsFormat.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/Node.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithAbsentXmlListNode.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithExpressionVirtualPropertiesAndExcludeAll.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithHandlerCallbacks.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithVirtualProperties.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithVirtualPropertiesAndExcludeAll.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithXmlKeyValuePairs.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithXmlNamespaces.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/ParentSkipWithEmptyChild.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/Person.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/PersonSecret.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/Price.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/SimpleClassObject.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/SimpleSubClassObject.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/case/BlogPost.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/exclude_all/BlogPost.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/exclude_none/BlogPost.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/xml/invalid.xml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorExpressionAccess.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorReadOnly.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorReadOnlyPerClass.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/BlogPost.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Car.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Moped.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.ObjectWithXmlAttributeDiscriminatorParent.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Vehicle.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/DiscriminatorGroup.Vehicle.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/ExcludePublicAccessor.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/Node.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithAbsentXmlListNode.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithExpressionVirtualPropertiesAndExcludeAll.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithHandlerCallbacks.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithVirtualProperties.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithVirtualPropertiesAndExcludeAll.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithXmlKeyValuePairs.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithXmlNamespaces.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/ParentSkipWithEmptyChild.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/Person.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/PersonSecret.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/Price.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/SimpleClassObject.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/SimpleSubClassObject.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/accessor/BlogPost.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/accessor_inferred/Person.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/case/BlogPost.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/exclude_all/BlogPost.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/exclude_none/BlogPost.yml delete mode 100644 vendor/jms/serializer/tests/Metadata/Driver/yml/short_expose/Person.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/ArrayTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/BaseSerializationTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/ContextTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/DateIntervalFormatTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/Doctrine/IntegrationTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/Doctrine/ObjectConstructorTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/EventDispatcher/EventDispatcherTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherWithPsr11ContainerTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherWithSymfonyContainerTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/DoctrineProxySubscriberTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/SymfonyValidatorSubscriberTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/SymfonyValidatorValidatorSubscriberTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/GraphNavigatorTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/JsonSerializationTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/Naming/IdenticalPropertyNamingStrategyTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/SerializationContextFactoryTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/TypeParserTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/XmlSerializationTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/YamlSerializationTest.php delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/accessor_order_child.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/accessor_order_methods.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/accessor_order_parent.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_booleans.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_datetimes_object.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_floats.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_integers.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_key_values.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_nested_type.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_type_1.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_type_2.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_list_and_map_difference.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_mixed.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_named_datetimeimmutables_object.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_named_datetimes_object.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_objects.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/array_strings.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/article.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/author_expression.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/blog_post.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/blog_post_unauthored.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/boolean_false.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/boolean_true.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/car.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/car_without_type.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/circular_reference.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/constraint_violation.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/constraint_violation_list.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/currency_aware_price.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/custom_accessor.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/date_interval.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/date_time.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/date_time_immutable.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/date_time_immutable_no_cdata.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/date_time_no_cdata.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/empty_child.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/empty_child_skip.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/float.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/float_trailing_zero.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/form_errors.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/garage.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/groups_advanced.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/groups_all.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/groups_default.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/groups_foo.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/groups_foobar.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/hash_empty.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/inline.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/inline_child_empty.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/input.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/integer.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/lifecycle_callbacks.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/log.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/maxdepth_skippabe_object.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/mixed_access_types.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/nested_form_errors.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/null.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/nullable.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/nullable_arrays.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/nullable_skip.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_when_null.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_when_null_and_serialized.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_with_namespaces_and_list.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_with_namespaces_and_nested_list.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_with_only_namespaces_and_list.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces_and_object_property.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces_and_object_property_virtual.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespacesalias.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/object_with_xml_root_namespace.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/order.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/order_with_currency_aware_price.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/orm_proxy.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/person_collection.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/person_location.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/person_secret_hide.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/person_secret_show.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/price.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/readonly.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/simple_class_object.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/simple_class_object_minified.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/simple_object.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/simple_object_nullable.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/simple_subclass_object.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/string.xml delete mode 100755 vendor/jms/serializer/tests/Serializer/xml/timestamp.xml delete mode 100755 vendor/jms/serializer/tests/Serializer/xml/timestamp_prev.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/tree.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/virtual_attributes.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/virtual_properties.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/virtual_properties_all.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/virtual_properties_high.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/virtual_properties_list.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/virtual_properties_low.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/virtual_properties_map.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/virtual_values.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_attribute.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_namespace.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_not_cdata.xml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/accessor_order_child.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/accessor_order_methods.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/accessor_order_parent.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_booleans.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_datetimes_object.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_empty.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_floats.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_integers.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_list_and_map_difference.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_mixed.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_named_datetimeimmutables_object.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_named_datetimes_object.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_objects.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/array_strings.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/article.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/author_expression.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/blog_post.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/blog_post_unauthored.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/boolean_false.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/boolean_true.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/car.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/car_without_type.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/circular_reference.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/currency_aware_price.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/custom_accessor.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/date_interval.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/date_time.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/date_time_immutable.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/float.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/float_trailing_zero.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/garage.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/groups_advanced.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/groups_all.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/groups_default.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/groups_foo.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/groups_foobar.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/hash_empty.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/inline.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/inline_child_empty.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/input.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/integer.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/lifecycle_callbacks.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/log.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/maxdepth_skippabe_object.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/mixed_access_types.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/null.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/nullable.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/nullable_arrays.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/nullable_skip.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/object_when_null.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/object_when_null_and_serialized.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/order.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/order_with_currency_aware_price.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/orm_proxy.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/person_secret_hide.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/person_secret_show.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/price.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/readonly.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/simple_object.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/simple_object_nullable.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/string.yml delete mode 100755 vendor/jms/serializer/tests/Serializer/yml/timestamp.yml delete mode 100755 vendor/jms/serializer/tests/Serializer/yml/timestamp_prev.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/tree.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/virtual_properties.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/virtual_properties_all.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/virtual_properties_high.yml delete mode 100644 vendor/jms/serializer/tests/Serializer/yml/virtual_properties_low.yml delete mode 100644 vendor/jms/serializer/tests/SerializerBuilderTest.php delete mode 100644 vendor/jms/serializer/tests/Twig/SerializerExtensionTest.php delete mode 100644 vendor/jms/serializer/tests/benchmark.php delete mode 100644 vendor/jms/serializer/tests/bootstrap.php delete mode 100755 vendor/myclabs/deep-copy/.gitattributes delete mode 100755 vendor/myclabs/deep-copy/.gitignore delete mode 100755 vendor/myclabs/deep-copy/.travis.yml delete mode 100644 vendor/myclabs/deep-copy/LICENSE delete mode 100644 vendor/myclabs/deep-copy/README.md delete mode 100644 vendor/myclabs/deep-copy/composer.json delete mode 100644 vendor/myclabs/deep-copy/doc/clone.png delete mode 100644 vendor/myclabs/deep-copy/doc/deep-clone.png delete mode 100644 vendor/myclabs/deep-copy/doc/deep-copy.png delete mode 100644 vendor/myclabs/deep-copy/doc/graph.png delete mode 100644 vendor/myclabs/deep-copy/fixtures/f001/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f001/B.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f002/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f003/Foo.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f005/Foo.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f006/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f006/B.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f008/A.php delete mode 100644 vendor/myclabs/deep-copy/fixtures/f008/B.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php delete mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php delete mode 100644 vendor/phar-io/manifest/.gitignore delete mode 100644 vendor/phar-io/manifest/.php_cs delete mode 100644 vendor/phar-io/manifest/.travis.yml delete mode 100644 vendor/phar-io/manifest/LICENSE delete mode 100644 vendor/phar-io/manifest/README.md delete mode 100644 vendor/phar-io/manifest/build.xml delete mode 100644 vendor/phar-io/manifest/composer.json delete mode 100644 vendor/phar-io/manifest/examples/example-01.php delete mode 100644 vendor/phar-io/manifest/phive.xml delete mode 100644 vendor/phar-io/manifest/phpunit.xml delete mode 100644 vendor/phar-io/manifest/src/ManifestDocumentMapper.php delete mode 100644 vendor/phar-io/manifest/src/ManifestLoader.php delete mode 100644 vendor/phar-io/manifest/src/ManifestSerializer.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/Exception.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestElementException.php delete mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestLoaderException.php delete mode 100644 vendor/phar-io/manifest/src/values/Application.php delete mode 100644 vendor/phar-io/manifest/src/values/ApplicationName.php delete mode 100644 vendor/phar-io/manifest/src/values/Author.php delete mode 100644 vendor/phar-io/manifest/src/values/AuthorCollection.php delete mode 100644 vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php delete mode 100644 vendor/phar-io/manifest/src/values/BundledComponent.php delete mode 100644 vendor/phar-io/manifest/src/values/BundledComponentCollection.php delete mode 100644 vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php delete mode 100644 vendor/phar-io/manifest/src/values/CopyrightInformation.php delete mode 100644 vendor/phar-io/manifest/src/values/Email.php delete mode 100644 vendor/phar-io/manifest/src/values/Extension.php delete mode 100644 vendor/phar-io/manifest/src/values/Library.php delete mode 100644 vendor/phar-io/manifest/src/values/License.php delete mode 100644 vendor/phar-io/manifest/src/values/Manifest.php delete mode 100644 vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php delete mode 100644 vendor/phar-io/manifest/src/values/PhpVersionRequirement.php delete mode 100644 vendor/phar-io/manifest/src/values/Requirement.php delete mode 100644 vendor/phar-io/manifest/src/values/RequirementCollection.php delete mode 100644 vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php delete mode 100644 vendor/phar-io/manifest/src/values/Type.php delete mode 100644 vendor/phar-io/manifest/src/values/Url.php delete mode 100644 vendor/phar-io/manifest/src/xml/AuthorElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/AuthorElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/BundlesElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ComponentElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ComponentElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/ContainsElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/CopyrightElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/ExtElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ExtElementCollection.php delete mode 100644 vendor/phar-io/manifest/src/xml/ExtensionElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/LicenseElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/ManifestDocument.php delete mode 100644 vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php delete mode 100644 vendor/phar-io/manifest/src/xml/ManifestElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/PhpElement.php delete mode 100644 vendor/phar-io/manifest/src/xml/RequiresElement.php delete mode 100644 vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php delete mode 100644 vendor/phar-io/manifest/tests/ManifestLoaderTest.php delete mode 100644 vendor/phar-io/manifest/tests/ManifestSerializerTest.php delete mode 100644 vendor/phar-io/manifest/tests/_fixture/custom.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/extension.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/invalidversion.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/library.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/manifest.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml delete mode 100644 vendor/phar-io/manifest/tests/_fixture/test.phar delete mode 100644 vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ApplicationNameTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ApplicationTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/AuthorTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/BundledComponentTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/EmailTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ExtensionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/LibraryTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/LicenseTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/ManifestTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/values/UrlTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/AuthorElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/BundlesElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ComponentElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ContainsElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ExtElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/LicenseElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/PhpElementTest.php delete mode 100644 vendor/phar-io/manifest/tests/xml/RequiresElementTest.php delete mode 100644 vendor/phar-io/version/.gitignore delete mode 100644 vendor/phar-io/version/.php_cs delete mode 100644 vendor/phar-io/version/.travis.yml delete mode 100644 vendor/phar-io/version/LICENSE delete mode 100644 vendor/phar-io/version/README.md delete mode 100644 vendor/phar-io/version/build.xml delete mode 100644 vendor/phar-io/version/composer.json delete mode 100644 vendor/phar-io/version/phive.xml delete mode 100644 vendor/phar-io/version/phpunit.xml delete mode 100644 vendor/phar-io/version/src/AbstractVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/AndVersionConstraintGroup.php delete mode 100644 vendor/phar-io/version/src/AnyVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/ExactVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/Exception.php delete mode 100644 vendor/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/InvalidVersionException.php delete mode 100644 vendor/phar-io/version/src/OrVersionConstraintGroup.php delete mode 100644 vendor/phar-io/version/src/PreReleaseSuffix.php delete mode 100644 vendor/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/SpecificMajorVersionConstraint.php delete mode 100644 vendor/phar-io/version/src/UnsupportedVersionConstraintException.php delete mode 100644 vendor/phar-io/version/src/Version.php delete mode 100644 vendor/phar-io/version/src/VersionConstraint.php delete mode 100644 vendor/phar-io/version/src/VersionConstraintParser.php delete mode 100644 vendor/phar-io/version/src/VersionConstraintValue.php delete mode 100644 vendor/phar-io/version/src/VersionNumber.php delete mode 100644 vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php delete mode 100644 vendor/phar-io/version/tests/Unit/VersionTest.php delete mode 100644 vendor/phpcollection/phpcollection/.gitignore delete mode 100644 vendor/phpcollection/phpcollection/.travis.yml delete mode 100644 vendor/phpcollection/phpcollection/LICENSE delete mode 100644 vendor/phpcollection/phpcollection/README.md delete mode 100644 vendor/phpcollection/phpcollection/composer.json delete mode 100644 vendor/phpcollection/phpcollection/composer.lock delete mode 100644 vendor/phpcollection/phpcollection/doc/LICENSE delete mode 100644 vendor/phpcollection/phpcollection/doc/index.rst delete mode 100644 vendor/phpcollection/phpcollection/phpunit.xml.dist delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/AbstractCollection.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/AbstractMap.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/AbstractSequence.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/CollectionInterface.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/EntityLikeObject.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/Map.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/MapInterface.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasics.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler/DateTimeHandler.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler/IdentityHandler.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandlerRegistry.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/Sequence.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/SequenceInterface.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/Set.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/SetInterface.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/SortableInterface.php delete mode 100644 vendor/phpcollection/phpcollection/src/PhpCollection/SortedSequence.php delete mode 100644 vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/MapTest.php delete mode 100644 vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SequenceTest.php delete mode 100644 vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SetTest.php delete mode 100644 vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SortedSequenceTest.php delete mode 100644 vendor/phpcollection/phpcollection/tests/bootstrap.php delete mode 100644 vendor/phpdocumentor/reflection-common/.travis.yml delete mode 100644 vendor/phpdocumentor/reflection-common/LICENSE delete mode 100644 vendor/phpdocumentor/reflection-common/README.md delete mode 100644 vendor/phpdocumentor/reflection-common/composer.json delete mode 100644 vendor/phpdocumentor/reflection-common/src/Element.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/File.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/Fqsen.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/Location.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/Project.php delete mode 100644 vendor/phpdocumentor/reflection-common/src/ProjectFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/.coveralls.yml delete mode 100644 vendor/phpdocumentor/reflection-docblock/LICENSE delete mode 100644 vendor/phpdocumentor/reflection-docblock/README.md delete mode 100644 vendor/phpdocumentor/reflection-docblock/composer.json delete mode 100644 vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php delete mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php delete mode 100644 vendor/phpdocumentor/type-resolver/LICENSE delete mode 100644 vendor/phpdocumentor/type-resolver/README.md delete mode 100644 vendor/phpdocumentor/type-resolver/composer.json delete mode 100644 vendor/phpdocumentor/type-resolver/src/FqsenResolver.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Type.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/TypeResolver.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Array_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Boolean.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Callable_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Compound.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Context.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Float_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Integer.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Null_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Nullable.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Object_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Parent_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Resource_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Scalar.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Self_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Static_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/String_.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/This.php delete mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Void_.php delete mode 100644 vendor/phpoption/phpoption/.gitignore delete mode 100644 vendor/phpoption/phpoption/.travis.yml delete mode 100644 vendor/phpoption/phpoption/LICENSE delete mode 100644 vendor/phpoption/phpoption/README.md delete mode 100644 vendor/phpoption/phpoption/composer.json delete mode 100644 vendor/phpoption/phpoption/phpunit.xml.dist delete mode 100644 vendor/phpoption/phpoption/src/PhpOption/LazyOption.php delete mode 100644 vendor/phpoption/phpoption/src/PhpOption/None.php delete mode 100644 vendor/phpoption/phpoption/src/PhpOption/Option.php delete mode 100644 vendor/phpoption/phpoption/src/PhpOption/Some.php delete mode 100644 vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php delete mode 100644 vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php delete mode 100644 vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php delete mode 100644 vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php delete mode 100644 vendor/phpoption/phpoption/tests/PhpOption/Tests/PerformanceTest.php delete mode 100644 vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php delete mode 100644 vendor/phpoption/phpoption/tests/bootstrap.php delete mode 100644 vendor/phpspec/prophecy/CHANGES.md delete mode 100644 vendor/phpspec/prophecy/LICENSE delete mode 100644 vendor/phpspec/prophecy/README.md delete mode 100644 vendor/phpspec/prophecy/composer.json delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Call/Call.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophet.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php delete mode 100644 vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php delete mode 100644 vendor/phpunit/php-code-coverage/.gitattributes delete mode 100644 vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md delete mode 100644 vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/phpunit/php-code-coverage/.gitignore delete mode 100644 vendor/phpunit/php-code-coverage/.php_cs delete mode 100644 vendor/phpunit/php-code-coverage/.travis.yml delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-2.2.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.0.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.1.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.2.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-3.3.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-4.0.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.0.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.1.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.2.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-5.3.md delete mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-6.0.md delete mode 100644 vendor/phpunit/php-code-coverage/LICENSE delete mode 100644 vendor/phpunit/php-code-coverage/README.md delete mode 100644 vendor/phpunit/php-code-coverage/build.xml delete mode 100644 vendor/phpunit/php-code-coverage/composer.json delete mode 100644 vendor/phpunit/php-code-coverage/phpunit.xml delete mode 100644 vendor/phpunit/php-code-coverage/src/CodeCoverage.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/Driver.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/Exception.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Filter.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/Builder.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/Directory.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/File.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Node/Iterator.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Clover.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Crap4j.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.svg delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/html5shiv.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/jquery.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/nv.d3.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/respond.min.js delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/method_item.html.dist delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/PHP.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Text.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Coverage.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Directory.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Facade.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/File.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Method.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Node.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Project.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Report.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Tests.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Totals.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Unit.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Util.php delete mode 100644 vendor/phpunit/php-code-coverage/src/Version.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/TestCase.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-clover.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-crap4j.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-text.txt delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccountTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageClassTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodOneLineAnnotationTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNoneTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNothingTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveragePrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveragePublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageTwoDefaultClassAnnotations.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveredClass.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveredFunction.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassPublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageMethodTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePrivateTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageProtectedTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePublicTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveredClass.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NotExistingCoveredElementTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/BankAccount.php.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/dashboard.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/index.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/dashboard.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/index.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/dashboard.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/index.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/source_with_ignore.php.html delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/index.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-crap4j.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-text.txt delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-crap4j.xml delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-text.txt delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_ignore.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_namespace.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_oneline_annotations.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_without_ignore.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_without_namespace.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/bootstrap.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/BuilderTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/CloverTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/CodeCoverageTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/Crap4jTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/FilterTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/HTMLTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/TextTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/UtilTest.php delete mode 100644 vendor/phpunit/php-code-coverage/tests/tests/XmlTest.php delete mode 100644 vendor/phpunit/php-file-iterator/.gitattributes delete mode 100644 vendor/phpunit/php-file-iterator/.gitignore delete mode 100644 vendor/phpunit/php-file-iterator/ChangeLog.md delete mode 100644 vendor/phpunit/php-file-iterator/LICENSE delete mode 100644 vendor/phpunit/php-file-iterator/README.md delete mode 100644 vendor/phpunit/php-file-iterator/composer.json delete mode 100644 vendor/phpunit/php-file-iterator/src/Facade.php delete mode 100644 vendor/phpunit/php-file-iterator/src/Factory.php delete mode 100644 vendor/phpunit/php-file-iterator/src/Iterator.php delete mode 100644 vendor/phpunit/php-text-template/.gitattributes delete mode 100644 vendor/phpunit/php-text-template/.gitignore delete mode 100644 vendor/phpunit/php-text-template/LICENSE delete mode 100644 vendor/phpunit/php-text-template/README.md delete mode 100644 vendor/phpunit/php-text-template/composer.json delete mode 100644 vendor/phpunit/php-text-template/src/Template.php delete mode 100644 vendor/phpunit/php-timer/.gitattributes delete mode 100644 vendor/phpunit/php-timer/.gitignore delete mode 100644 vendor/phpunit/php-timer/.php_cs.dist delete mode 100644 vendor/phpunit/php-timer/.travis.yml delete mode 100644 vendor/phpunit/php-timer/ChangeLog.md delete mode 100644 vendor/phpunit/php-timer/LICENSE delete mode 100644 vendor/phpunit/php-timer/README.md delete mode 100644 vendor/phpunit/php-timer/build.xml delete mode 100644 vendor/phpunit/php-timer/composer.json delete mode 100644 vendor/phpunit/php-timer/phpunit.xml delete mode 100644 vendor/phpunit/php-timer/src/Exception.php delete mode 100644 vendor/phpunit/php-timer/src/RuntimeException.php delete mode 100644 vendor/phpunit/php-timer/src/Timer.php delete mode 100644 vendor/phpunit/php-timer/tests/TimerTest.php delete mode 100644 vendor/phpunit/php-token-stream/.gitattributes delete mode 100644 vendor/phpunit/php-token-stream/.gitignore delete mode 100644 vendor/phpunit/php-token-stream/.travis.yml delete mode 100644 vendor/phpunit/php-token-stream/ChangeLog.md delete mode 100644 vendor/phpunit/php-token-stream/LICENSE delete mode 100644 vendor/phpunit/php-token-stream/README.md delete mode 100644 vendor/phpunit/php-token-stream/build.xml delete mode 100644 vendor/phpunit/php-token-stream/composer.json delete mode 100644 vendor/phpunit/php-token-stream/phpunit.xml delete mode 100644 vendor/phpunit/php-token-stream/src/Token.php delete mode 100644 vendor/phpunit/php-token-stream/src/Token/Stream.php delete mode 100644 vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/ClassTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classInNamespace.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classInScopedNamespace.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classUsesNamespacedFunction.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_named_empty.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_that_declares_anonymous_class.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_that_declares_anonymous_class2.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_multiple_anonymous_classes_and_functions.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/closure.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/issue19.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/issue30.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingBraces.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingNonBraceSyntax.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/php-code-coverage-issue-424.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source2.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source3.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source4.php delete mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source5.php delete mode 100644 vendor/phpunit/php-token-stream/tests/bootstrap.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/.gitattributes delete mode 100644 vendor/phpunit/phpunit-mock-objects/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/phpunit/phpunit-mock-objects/.gitignore delete mode 100644 vendor/phpunit/phpunit-mock-objects/.php_cs delete mode 100644 vendor/phpunit/phpunit-mock-objects/.travis.yml delete mode 100644 vendor/phpunit/phpunit-mock-objects/CONTRIBUTING.md delete mode 100644 vendor/phpunit/phpunit-mock-objects/ChangeLog.md delete mode 100644 vendor/phpunit/phpunit-mock-objects/LICENSE delete mode 100644 vendor/phpunit/phpunit-mock-objects/README.md delete mode 100644 vendor/phpunit/phpunit-mock-objects/build.xml delete mode 100644 vendor/phpunit/phpunit-mock-objects/composer.json delete mode 100644 vendor/phpunit/phpunit-mock-objects/phpunit.xml delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/Identity.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/Match.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Builder/Stub.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Exception/Exception.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/deprecation.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_class.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_class_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_clone.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_method_void.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/mocked_static_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/proxied_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/proxied_method_void.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/trait_class.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/unmocked_clone.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/wsdl_class.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Generator/wsdl_method.tpl.dist delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/InvocationMocker.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Invokable.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/MockBuilder.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/MockObject.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/Exception.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/src/Verifiable.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Builder/InvocationMockerTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/232.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/397.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/abstract_class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_dont_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_implementing_interface_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_implementing_interface_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_partial.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_deprecated_method.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_method_named_method.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_method_with_nullable_typehinted_variadic_arguments.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_method_with_typehinted_variadic_arguments.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/class_with_method_with_variadic_arguments.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/interface.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/invocation_object_clone_object.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_dont_call_parent_clone.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_implementing_interface_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_implementing_interface_dont_call_parent_constructor.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_class_partial.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/namespaced_interface.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/nonexistent_class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/nonexistent_class_with_namespace.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/nonexistent_class_with_namespace_starting_with_separator.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/nullable_types.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/proxy.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_closure.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_final.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_generator.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_nullable.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_object_method.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_parent.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_self.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_static_method.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/return_type_declarations_void.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/scalar_type_declarations.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/wsdl_class.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/wsdl_class_namespace.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Generator/wsdl_class_partial.phpt delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/GeneratorTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Invocation/ObjectInvocationTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Invocation/StaticInvocationTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/Matcher/ConsecutiveParametersTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/MockBuilderTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/MockObjectTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/ProxyObjectTest.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractMockTestClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AbstractTrait.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnInterface.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnInterfaceWithReturnType.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/AnotherInterface.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/Bar.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassThatImplementsSerializable.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassWithAllPossibleReturnTypes.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassWithSelfTypeHint.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/ClassWithStaticMethod.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/Foo.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/FunctionCallback.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/GoogleSearch.wsdl delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/InterfaceWithSemiReservedMethodName.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/InterfaceWithStaticMethod.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallback.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/MethodCallbackByReference.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/MockTestInterface.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/Mockable.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/PartialMockTestClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/SingletonClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/SomeClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/StaticMockTestClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/StringableClass.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/_fixture/TraversableMockTestInterface.php delete mode 100644 vendor/phpunit/phpunit-mock-objects/tests/bootstrap.php delete mode 100644 vendor/phpunit/phpunit/.editorconfig delete mode 100644 vendor/phpunit/phpunit/.gitattributes delete mode 100644 vendor/phpunit/phpunit/.github/CODE_OF_CONDUCT.md delete mode 100644 vendor/phpunit/phpunit/.github/CONTRIBUTING.md delete mode 100644 vendor/phpunit/phpunit/.github/ISSUE_TEMPLATE.md delete mode 100644 vendor/phpunit/phpunit/.gitignore delete mode 100644 vendor/phpunit/phpunit/.php_cs.dist delete mode 100644 vendor/phpunit/phpunit/.travis.yml delete mode 100644 vendor/phpunit/phpunit/ChangeLog-5.7.md delete mode 100644 vendor/phpunit/phpunit/ChangeLog-6.5.md delete mode 100644 vendor/phpunit/phpunit/ChangeLog-7.0.md delete mode 100644 vendor/phpunit/phpunit/LICENSE delete mode 100644 vendor/phpunit/phpunit/README.md delete mode 100644 vendor/phpunit/phpunit/appveyor.yml delete mode 100644 vendor/phpunit/phpunit/build.xml delete mode 100644 vendor/phpunit/phpunit/composer.json delete mode 100755 vendor/phpunit/phpunit/phpunit delete mode 100644 vendor/phpunit/phpunit/phpunit.xml delete mode 100644 vendor/phpunit/phpunit/phpunit.xsd delete mode 100644 vendor/phpunit/phpunit/src/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Assert.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Assert/Functions.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Count.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsFinite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsNan.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsReadable.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsWritable.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Error.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Notice.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Warning.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTest.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/OutputError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/RiskyTest.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/RiskyTestError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SelfDescribing.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTest.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/SyntheticError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Test.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestFailure.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestListener.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestResult.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestSuite.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/Warning.php delete mode 100644 vendor/phpunit/phpunit/src/Framework/WarningTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Exception.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/Factory.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/PhptTestCase.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php delete mode 100644 vendor/phpunit/phpunit/src/Runner/Version.php delete mode 100644 vendor/phpunit/phpunit/src/TextUI/Command.php delete mode 100644 vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/TextUI/TestRunner.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Blacklist.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Configuration.php delete mode 100644 vendor/phpunit/phpunit/src/Util/ConfigurationGenerator.php delete mode 100644 vendor/phpunit/phpunit/src/Util/ErrorHandler.php delete mode 100644 vendor/phpunit/phpunit/src/Util/FileLoader.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Filesystem.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Filter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Getopt.php delete mode 100644 vendor/phpunit/phpunit/src/Util/GlobalState.php delete mode 100644 vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Json.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Log/JUnit.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Log/TeamCity.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/PhptTestCase.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseClass.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php delete mode 100644 vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Printer.php delete mode 100644 vendor/phpunit/phpunit/src/Util/RegularExpression.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Test.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/TestResult.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php delete mode 100644 vendor/phpunit/phpunit/src/Util/TextTestListRenderer.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Type.php delete mode 100644 vendor/phpunit/phpunit/src/Util/Xml.php delete mode 100644 vendor/phpunit/phpunit/src/Util/XmlTestListRenderer.php delete mode 100644 vendor/phpunit/phpunit/tests/Fail/fail.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Framework/AssertTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ArrayHasKeyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ArraySubsetTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/AttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/CallbackTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ClassHasAttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ClassHasStaticAttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ConstraintTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/CountTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/DirectoryExistsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageRegExpTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ExceptionMessageTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/FileExistsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/GreaterThanTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsEmptyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsEqualTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsIdenticalTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsJsonTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsNullTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsReadableTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsTypeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/IsWritableTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatchesErrorMessageProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/JsonMatchesTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LessThanTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LogicalAndTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LogicalOrTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/LogicalXorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/ObjectHasAttributeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/RegularExpressionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/SameSizeTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringContainsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringEndsWithTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringMatchesFormatDescriptionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/StringStartsWithTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/Constraint/TraversableContainsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/ConstraintTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestFailureTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestImplementorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestListenerTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Framework/TestSuiteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1149.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1149/Issue1149Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216/Issue1216Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216/bootstrap1216.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1216/phpunit1216.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1265.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1265/Issue1265Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1265/phpunit1265.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1330.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1330/Issue1330Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1330/phpunit1330.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1335.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1335/Issue1335Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1335/bootstrap1335.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1337.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1337/Issue1337Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1348.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1348/Issue1348Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1351.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1351/ChildProcessClass1351.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1351/Issue1351Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1374.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1374/Issue1374Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1437.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1437/Issue1437Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1468.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1468/Issue1468Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1471.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1471/Issue1471Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1472.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1472/Issue1472Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1570.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/1570/Issue1570Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2137-filter.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2137-no_filter.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2137/Issue2137Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2145.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2145/Issue2145Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2158.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2158/Issue2158Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2158/constant.inc delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2366.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2366/Issue2366Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2380.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2380/Issue2380Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2382.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2382/Issue2382Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2435.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2435/Issue2435Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/244.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/244/Issue244Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2448-existing-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2448-not-existing-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2448/Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-class-preserve-no-bootstrap.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-class-preserve.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve-no-bootstrap-php73.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve-no-bootstrap-xdebug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve-no-bootstrap.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-no-preserve.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591-separate-function-preserve.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/SeparateClassPreserveTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/SeparateFunctionNoPreserveTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/SeparateFunctionPreserveTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/bootstrapNoBootstrap.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/bootstrapWithBootstrap.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2591/bootstrapWithBootstrapNoGlobal.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2725-separate-class-before-after-pid.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2725/BeforeAfterClassPidTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2731.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2731/Issue2731Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2811.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2811/Issue2811Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2972.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2972/issue-2972-test.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/2972/unconventiallyNamedIssue2972Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/322.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/322/Issue322Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/322/phpunit322.xml delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/433.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/433/Issue433Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/445.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/445/Issue445Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/498.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/498/Issue498Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/503.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/503/Issue503Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/581.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/581/Issue581Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/74.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/74/Issue74Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/74/NewException.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/765.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/765/Issue765Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/797.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/797/Issue797Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/797/bootstrap797.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/863.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/873.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/GitHub/873/Issue873Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/1021.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/1021/Issue1021Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/523.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/523/Issue523Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/578.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/578/Issue578Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/684.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/684/Issue684Test.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/ChildSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/OneTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/ParentSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/Regression/Trac/783/TwoTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Runner/PhptTestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/expect_external.txt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/phpt-env.expected.txt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/_files/phpt_external.php delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/abstract-test-class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/assertion.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/code-coverage-ignore.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/code-coverage-phpt.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/colors-always.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/concrete-test-class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/custom-printer-debug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/custom-printer-verbose.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-debug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-issue-2833.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-issue-2859.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-issue-2922.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-log-xml.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dataprovider-testdox.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/debug.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/default-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/default.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/defaulttestsuite-using-testsuite.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/defaulttestsuite.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies-clone.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies2-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies2.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies3-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/dependencies3.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/disable-code-coverage-ignore.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/empty-testcase.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/exception-stack.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/exclude-group-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/exclude-group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/failure-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/failure-reverse-list.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/failure.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/fatal-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-class-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-class.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-classname-and-range.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-number.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-range.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-regexp.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-only-string.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-range.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-regexp.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-dataprovider-by-string.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method-case-insensitive.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method-case-sensitive-no-result.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-method.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/filter-no-results.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/forward-compatibility.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/group-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/help.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/help2.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/ini-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-groups.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-suites.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-tests-dataprovider.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/list-tests-xml-dataprovider.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/log-junit.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/log-teamcity.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/mycommand.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/options-after-arguments.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/output-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phar-extension-suppressed.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phar-extension.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-args.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-env.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-external.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-stderr.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-stdin.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/phpt-xfail.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/repeat.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-incomplete.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-useless-tests-isolation.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/report-useless-tests.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/stop-on-warning-via-cli.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/stop-on-warning-via-config.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/teamcity-inner-exceptions.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/teamcity.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-suffix-multiple.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/test-suffix-single.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-exclude-group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-group.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-html.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-text.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-verbose.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox-xml.phpt delete mode 100644 vendor/phpunit/phpunit/tests/TextUI/testdox.phpt delete mode 100644 vendor/phpunit/phpunit/tests/Util/ConfigurationGeneratorTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/ConfigurationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/GetoptTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/GlobalStateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/JsonTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/PHP/AbstractPhpProcessTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/RegularExpressionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/TestDox/CliTestDoxPrinterTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/TestDox/NamePrettifierTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/TestTest.php delete mode 100644 vendor/phpunit/phpunit/tests/Util/XmlTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AbstractTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ArrayAccessible.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AssertionExample.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/AssertionExampleTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Author.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccount.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest.test.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest2.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeAndAfterTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeClassAndAfterClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeClassWithOnlyDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Book.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Calculator.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ChangeCurrentWorkingDirectoryTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithNonPublicAttributes.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithScalarTypeDeclarations.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithToString.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ClonedDependencyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ConcreteTest.my.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ConcreteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CountConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodOneLineAnnotationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesWhitespaceTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNamespacedFunctionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNoneTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotPublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNothingTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveragePrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveragePublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageTwoDefaultClassAnnotations.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveredClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CoveredFunction.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/CustomPrinter.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderDebugTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderDependencyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderFilterTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIncompleteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2833/FirstTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2833/SecondTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2859/phpunit.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2859/tests/another/TestWithDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2922/FirstTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2922/SecondTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderSkippedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderTestDoxTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DependencyFailureTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DependencySuccessTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DependencyTestSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DoubleTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DummyBarTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DummyException.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/DummyFooTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/EmptyTestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPostConditionsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPreConditionsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInSetUpTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTearDownTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionNamespaceTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionStackTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Failure.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FailureTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FalsyConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/FatalTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IgnoreCodeCoverageClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IgnoreCodeCoverageClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IncompleteTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/InheritedTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IniTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/IsolationTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/JsonData/arrayObject.json delete mode 100644 vendor/phpunit/phpunit/tests/_files/JsonData/simpleObject.json delete mode 100644 vendor/phpunit/phpunit/tests/_files/MockRunner.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Mockable.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MultiDependencyTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MultipleDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/MyCommand.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamedConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassExtendedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassPublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageMethodTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePrivateTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageProtectedTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePublicTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveredClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveredFunction.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NoArgTestCaseTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NoTestCaseClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NoTestCases.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NonStatic.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NotExistingCoveredElementTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NotPublicTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NotVoidTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/NothingTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/OneTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/OutputTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/OverrideTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ParseTestMethodAnnotationsMock.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsClassBeforeClassHookTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsClassDocBlockTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/SampleArrayAccess.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/SampleClass.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Singleton.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StackTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StatusTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StopOnWarningTestSuite.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/StopsOnWarningTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Struct.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/Success.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TemplateMethodsTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestAutoreferenced.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestDoxGroupTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestGeneratorMaker.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIncomplete.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIterator.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIterator2.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIteratorAggregate.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestIteratorAggregate2.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestSkipped.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestTestError.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestWithTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TestableCliTestDoxPrinter.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ThrowExceptionTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/ThrowNoExceptionTestCase.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/TruthyConstraint.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/VariousIterableDataProviderTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/WasRun.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/WrapperIteratorAggregate.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/bar.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.custom-printer.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.defaulttestsuite.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.one-file-suite.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.suites.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_empty.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_stop_on_warning.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/expectedFileFormat.txt delete mode 100644 vendor/phpunit/phpunit/tests/_files/foo.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpt-for-coverage.phpt delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpt-xfail.phpt delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/phpunit.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/tests/OneTest.php delete mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/tools/phpunit.d/phpunit-example-extension-3.0.3.phar delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureAttributesAreSameButValuesAreNot.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureExpected.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureIgnoreTextNodes.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureIsSameButDataIsNot.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfAttributes.xml delete mode 100644 vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfNodes.xml delete mode 100644 vendor/phpunit/phpunit/tests/bootstrap.php delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/.gitignore delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/.php_cs delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/.travis.yml delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/ChangeLog.md delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/LICENSE delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/README.md delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/build.xml delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/composer.json delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/phpunit.xml delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/src/Wizard.php delete mode 100644 vendor/sebastian/code-unit-reverse-lookup/tests/WizardTest.php delete mode 100644 vendor/sebastian/comparator/.gitignore delete mode 100644 vendor/sebastian/comparator/.php_cs.dist delete mode 100644 vendor/sebastian/comparator/.travis.yml delete mode 100644 vendor/sebastian/comparator/ChangeLog.md delete mode 100644 vendor/sebastian/comparator/LICENSE delete mode 100644 vendor/sebastian/comparator/README.md delete mode 100644 vendor/sebastian/comparator/build.xml delete mode 100644 vendor/sebastian/comparator/composer.json delete mode 100644 vendor/sebastian/comparator/phpunit.xml delete mode 100644 vendor/sebastian/comparator/src/ArrayComparator.php delete mode 100644 vendor/sebastian/comparator/src/Comparator.php delete mode 100644 vendor/sebastian/comparator/src/ComparisonFailure.php delete mode 100644 vendor/sebastian/comparator/src/DOMNodeComparator.php delete mode 100644 vendor/sebastian/comparator/src/DateTimeComparator.php delete mode 100644 vendor/sebastian/comparator/src/DoubleComparator.php delete mode 100644 vendor/sebastian/comparator/src/ExceptionComparator.php delete mode 100644 vendor/sebastian/comparator/src/Factory.php delete mode 100644 vendor/sebastian/comparator/src/MockObjectComparator.php delete mode 100644 vendor/sebastian/comparator/src/NumericComparator.php delete mode 100644 vendor/sebastian/comparator/src/ObjectComparator.php delete mode 100644 vendor/sebastian/comparator/src/ResourceComparator.php delete mode 100644 vendor/sebastian/comparator/src/ScalarComparator.php delete mode 100644 vendor/sebastian/comparator/src/SplObjectStorageComparator.php delete mode 100644 vendor/sebastian/comparator/src/TypeComparator.php delete mode 100644 vendor/sebastian/comparator/tests/ArrayComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ComparisonFailureTest.php delete mode 100644 vendor/sebastian/comparator/tests/DOMNodeComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/DateTimeComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/DoubleComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ExceptionComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/FactoryTest.php delete mode 100644 vendor/sebastian/comparator/tests/MockObjectComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/NumericComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ObjectComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ResourceComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/ScalarComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/SplObjectStorageComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/TypeComparatorTest.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/Author.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/Book.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/ClassWithToString.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/SampleClass.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/Struct.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/TestClass.php delete mode 100644 vendor/sebastian/comparator/tests/_fixture/TestClassComparator.php delete mode 100644 vendor/sebastian/diff/.gitignore delete mode 100644 vendor/sebastian/diff/.php_cs.dist delete mode 100644 vendor/sebastian/diff/.travis.yml delete mode 100644 vendor/sebastian/diff/ChangeLog.md delete mode 100644 vendor/sebastian/diff/LICENSE delete mode 100644 vendor/sebastian/diff/README.md delete mode 100644 vendor/sebastian/diff/build.xml delete mode 100644 vendor/sebastian/diff/composer.json delete mode 100644 vendor/sebastian/diff/phpunit.xml delete mode 100644 vendor/sebastian/diff/src/Chunk.php delete mode 100644 vendor/sebastian/diff/src/Diff.php delete mode 100644 vendor/sebastian/diff/src/Differ.php delete mode 100644 vendor/sebastian/diff/src/Exception/ConfigurationException.php delete mode 100644 vendor/sebastian/diff/src/Exception/Exception.php delete mode 100644 vendor/sebastian/diff/src/Exception/InvalidArgumentException.php delete mode 100644 vendor/sebastian/diff/src/Line.php delete mode 100644 vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php delete mode 100644 vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php delete mode 100644 vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php delete mode 100644 vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php delete mode 100644 vendor/sebastian/diff/src/Parser.php delete mode 100644 vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php delete mode 100644 vendor/sebastian/diff/tests/ChunkTest.php delete mode 100644 vendor/sebastian/diff/tests/DiffTest.php delete mode 100644 vendor/sebastian/diff/tests/DifferTest.php delete mode 100644 vendor/sebastian/diff/tests/Exception/ConfigurationExceptionTest.php delete mode 100644 vendor/sebastian/diff/tests/Exception/InvalidArgumentExceptionTest.php delete mode 100644 vendor/sebastian/diff/tests/LineTest.php delete mode 100644 vendor/sebastian/diff/tests/LongestCommonSubsequenceTest.php delete mode 100644 vendor/sebastian/diff/tests/MemoryEfficientImplementationTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/AbstractChunkOutputBuilderTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/DiffOnlyOutputBuilderTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/Integration/StrictUnifiedDiffOutputBuilderIntegrationTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/Integration/UnifiedDiffOutputBuilderIntegrationTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/StrictUnifiedDiffOutputBuilderDataProvider.php delete mode 100644 vendor/sebastian/diff/tests/Output/StrictUnifiedDiffOutputBuilderTest.php delete mode 100644 vendor/sebastian/diff/tests/Output/UnifiedDiffOutputBuilderDataProvider.php delete mode 100644 vendor/sebastian/diff/tests/Output/UnifiedDiffOutputBuilderTest.php delete mode 100644 vendor/sebastian/diff/tests/ParserTest.php delete mode 100644 vendor/sebastian/diff/tests/TimeEfficientImplementationTest.php delete mode 100644 vendor/sebastian/diff/tests/Utils/FileUtils.php delete mode 100644 vendor/sebastian/diff/tests/Utils/UnifiedDiffAssertTrait.php delete mode 100644 vendor/sebastian/diff/tests/Utils/UnifiedDiffAssertTraitIntegrationTest.php delete mode 100644 vendor/sebastian/diff/tests/Utils/UnifiedDiffAssertTraitTest.php delete mode 100644 vendor/sebastian/diff/tests/fixtures/.editorconfig delete mode 100644 vendor/sebastian/diff/tests/fixtures/UnifiedDiffAssertTraitIntegrationTest/1_a.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/UnifiedDiffAssertTraitIntegrationTest/1_b.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/UnifiedDiffAssertTraitIntegrationTest/2_a.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/UnifiedDiffAssertTraitIntegrationTest/2_b.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/out/.editorconfig delete mode 100644 vendor/sebastian/diff/tests/fixtures/out/.gitignore delete mode 100644 vendor/sebastian/diff/tests/fixtures/patch.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/patch2.txt delete mode 100644 vendor/sebastian/diff/tests/fixtures/serialized_diff.bin delete mode 100644 vendor/sebastian/environment/.gitignore delete mode 100644 vendor/sebastian/environment/.php_cs delete mode 100644 vendor/sebastian/environment/.travis.yml delete mode 100644 vendor/sebastian/environment/ChangeLog.md delete mode 100644 vendor/sebastian/environment/LICENSE delete mode 100644 vendor/sebastian/environment/README.md delete mode 100644 vendor/sebastian/environment/build.xml delete mode 100644 vendor/sebastian/environment/composer.json delete mode 100644 vendor/sebastian/environment/phpunit.xml delete mode 100644 vendor/sebastian/environment/src/Console.php delete mode 100644 vendor/sebastian/environment/src/OperatingSystem.php delete mode 100644 vendor/sebastian/environment/src/Runtime.php delete mode 100644 vendor/sebastian/environment/tests/ConsoleTest.php delete mode 100644 vendor/sebastian/environment/tests/OperatingSystemTest.php delete mode 100644 vendor/sebastian/environment/tests/RuntimeTest.php delete mode 100644 vendor/sebastian/exporter/.gitignore delete mode 100644 vendor/sebastian/exporter/.php_cs delete mode 100644 vendor/sebastian/exporter/.travis.yml delete mode 100644 vendor/sebastian/exporter/LICENSE delete mode 100644 vendor/sebastian/exporter/README.md delete mode 100644 vendor/sebastian/exporter/build.xml delete mode 100644 vendor/sebastian/exporter/composer.json delete mode 100644 vendor/sebastian/exporter/phpunit.xml delete mode 100644 vendor/sebastian/exporter/src/Exporter.php delete mode 100644 vendor/sebastian/exporter/tests/ExporterTest.php delete mode 100644 vendor/sebastian/global-state/.gitignore delete mode 100644 vendor/sebastian/global-state/.php_cs delete mode 100644 vendor/sebastian/global-state/.travis.yml delete mode 100644 vendor/sebastian/global-state/LICENSE delete mode 100644 vendor/sebastian/global-state/README.md delete mode 100644 vendor/sebastian/global-state/build.xml delete mode 100644 vendor/sebastian/global-state/composer.json delete mode 100644 vendor/sebastian/global-state/phpunit.xml delete mode 100644 vendor/sebastian/global-state/src/Blacklist.php delete mode 100644 vendor/sebastian/global-state/src/CodeExporter.php delete mode 100644 vendor/sebastian/global-state/src/Restorer.php delete mode 100644 vendor/sebastian/global-state/src/Snapshot.php delete mode 100644 vendor/sebastian/global-state/src/exceptions/Exception.php delete mode 100644 vendor/sebastian/global-state/src/exceptions/RuntimeException.php delete mode 100644 vendor/sebastian/global-state/tests/BlacklistTest.php delete mode 100644 vendor/sebastian/global-state/tests/CodeExporterTest.php delete mode 100644 vendor/sebastian/global-state/tests/RestorerTest.php delete mode 100644 vendor/sebastian/global-state/tests/SnapshotTest.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedChildClass.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedClass.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedImplementor.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedInterface.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotClass.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotDomDocument.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotFunctions.php delete mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotTrait.php delete mode 100644 vendor/sebastian/object-enumerator/.gitignore delete mode 100644 vendor/sebastian/object-enumerator/.php_cs delete mode 100644 vendor/sebastian/object-enumerator/.travis.yml delete mode 100644 vendor/sebastian/object-enumerator/ChangeLog.md delete mode 100644 vendor/sebastian/object-enumerator/LICENSE delete mode 100644 vendor/sebastian/object-enumerator/README.md delete mode 100644 vendor/sebastian/object-enumerator/build.xml delete mode 100644 vendor/sebastian/object-enumerator/composer.json delete mode 100644 vendor/sebastian/object-enumerator/phpunit.xml delete mode 100644 vendor/sebastian/object-enumerator/src/Enumerator.php delete mode 100644 vendor/sebastian/object-enumerator/src/Exception.php delete mode 100644 vendor/sebastian/object-enumerator/src/InvalidArgumentException.php delete mode 100644 vendor/sebastian/object-enumerator/tests/EnumeratorTest.php delete mode 100644 vendor/sebastian/object-enumerator/tests/_fixture/ExceptionThrower.php delete mode 100644 vendor/sebastian/object-reflector/.gitignore delete mode 100644 vendor/sebastian/object-reflector/.php_cs delete mode 100644 vendor/sebastian/object-reflector/.travis.yml delete mode 100644 vendor/sebastian/object-reflector/ChangeLog.md delete mode 100644 vendor/sebastian/object-reflector/LICENSE delete mode 100644 vendor/sebastian/object-reflector/README.md delete mode 100644 vendor/sebastian/object-reflector/build.xml delete mode 100644 vendor/sebastian/object-reflector/composer.json delete mode 100644 vendor/sebastian/object-reflector/phpunit.xml delete mode 100644 vendor/sebastian/object-reflector/src/Exception.php delete mode 100644 vendor/sebastian/object-reflector/src/InvalidArgumentException.php delete mode 100644 vendor/sebastian/object-reflector/src/ObjectReflector.php delete mode 100644 vendor/sebastian/object-reflector/tests/ObjectReflectorTest.php delete mode 100644 vendor/sebastian/object-reflector/tests/_fixture/ChildClass.php delete mode 100644 vendor/sebastian/object-reflector/tests/_fixture/ClassWithIntegerAttributeName.php delete mode 100644 vendor/sebastian/object-reflector/tests/_fixture/ParentClass.php delete mode 100644 vendor/sebastian/recursion-context/.gitignore delete mode 100644 vendor/sebastian/recursion-context/.travis.yml delete mode 100644 vendor/sebastian/recursion-context/LICENSE delete mode 100644 vendor/sebastian/recursion-context/README.md delete mode 100644 vendor/sebastian/recursion-context/build.xml delete mode 100644 vendor/sebastian/recursion-context/composer.json delete mode 100644 vendor/sebastian/recursion-context/phpunit.xml delete mode 100644 vendor/sebastian/recursion-context/src/Context.php delete mode 100644 vendor/sebastian/recursion-context/src/Exception.php delete mode 100644 vendor/sebastian/recursion-context/src/InvalidArgumentException.php delete mode 100644 vendor/sebastian/recursion-context/tests/ContextTest.php delete mode 100644 vendor/sebastian/resource-operations/.gitignore delete mode 100644 vendor/sebastian/resource-operations/LICENSE delete mode 100644 vendor/sebastian/resource-operations/README.md delete mode 100644 vendor/sebastian/resource-operations/build.xml delete mode 100755 vendor/sebastian/resource-operations/build/generate.php delete mode 100644 vendor/sebastian/resource-operations/composer.json delete mode 100644 vendor/sebastian/resource-operations/src/ResourceOperations.php delete mode 100644 vendor/sebastian/version/.gitattributes delete mode 100644 vendor/sebastian/version/.gitignore delete mode 100644 vendor/sebastian/version/.php_cs delete mode 100644 vendor/sebastian/version/LICENSE delete mode 100644 vendor/sebastian/version/README.md delete mode 100644 vendor/sebastian/version/composer.json delete mode 100644 vendor/sebastian/version/src/Version.php delete mode 100644 vendor/theseer/tokenizer/.gitignore delete mode 100644 vendor/theseer/tokenizer/.php_cs delete mode 100644 vendor/theseer/tokenizer/.travis.yml delete mode 100644 vendor/theseer/tokenizer/LICENSE delete mode 100644 vendor/theseer/tokenizer/README.md delete mode 100644 vendor/theseer/tokenizer/build.xml delete mode 100644 vendor/theseer/tokenizer/composer.json delete mode 100644 vendor/theseer/tokenizer/phive.xml delete mode 100644 vendor/theseer/tokenizer/phpunit.xml delete mode 100644 vendor/theseer/tokenizer/src/Exception.php delete mode 100644 vendor/theseer/tokenizer/src/NamespaceUri.php delete mode 100644 vendor/theseer/tokenizer/src/NamespaceUriException.php delete mode 100644 vendor/theseer/tokenizer/src/Token.php delete mode 100644 vendor/theseer/tokenizer/src/TokenCollection.php delete mode 100644 vendor/theseer/tokenizer/src/TokenCollectionException.php delete mode 100644 vendor/theseer/tokenizer/src/Tokenizer.php delete mode 100644 vendor/theseer/tokenizer/src/XMLSerializer.php delete mode 100644 vendor/theseer/tokenizer/tests/NamespaceUriTest.php delete mode 100644 vendor/theseer/tokenizer/tests/TokenCollectionTest.php delete mode 100644 vendor/theseer/tokenizer/tests/TokenTest.php delete mode 100644 vendor/theseer/tokenizer/tests/TokenizerTest.php delete mode 100644 vendor/theseer/tokenizer/tests/XMLSerializerTest.php delete mode 100644 vendor/theseer/tokenizer/tests/_files/customns.xml delete mode 100644 vendor/theseer/tokenizer/tests/_files/test.php delete mode 100644 vendor/theseer/tokenizer/tests/_files/test.php.tokens delete mode 100644 vendor/theseer/tokenizer/tests/_files/test.php.xml delete mode 100644 vendor/webmozart/assert/.composer-auth.json delete mode 100644 vendor/webmozart/assert/.styleci.yml delete mode 100644 vendor/webmozart/assert/CHANGELOG.md delete mode 100644 vendor/webmozart/assert/LICENSE delete mode 100644 vendor/webmozart/assert/README.md delete mode 100644 vendor/webmozart/assert/composer.json delete mode 100644 vendor/webmozart/assert/src/Assert.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b787476 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/vendor/ + diff --git a/composer.json b/composer.json index 7212e02..37c45ff 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "type": "library", "require": { "php": ">=7.1.0", - "jms/serializer": "^1.11" + "jms/serializer": "^2.0" }, "require-dev": { "phpunit/phpunit": "^7.0" diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..83e3e59 --- /dev/null +++ b/composer.lock @@ -0,0 +1,2475 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "d9169f525cfdafadda3e77df92704479", + "packages": [ + { + "name": "doctrine/annotations", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", + "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/cache": "1.*", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "time": "2017-12-06T07:11:42+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "^6.2.3", + "squizlabs/php_codesniffer": "^3.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2017-07-22T11:58:36+00:00" + }, + { + "name": "doctrine/lexer", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Lexer\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "lexer", + "parser" + ], + "time": "2014-09-09T13:34:57+00:00" + }, + { + "name": "hoa/compiler", + "version": "3.17.08.08", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Compiler.git", + "reference": "aa09caf0bf28adae6654ca6ee415ee2f522672de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Compiler/zipball/aa09caf0bf28adae6654ca6ee415ee2f522672de", + "reference": "aa09caf0bf28adae6654ca6ee415ee2f522672de", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/exception": "~1.0", + "hoa/file": "~1.0", + "hoa/iterator": "~2.0", + "hoa/math": "~1.0", + "hoa/protocol": "~1.0", + "hoa/regex": "~1.0", + "hoa/visitor": "~2.0" + }, + "require-dev": { + "hoa/json": "~2.0", + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Compiler\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Compiler library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "algebraic", + "ast", + "compiler", + "context-free", + "coverage", + "exhaustive", + "grammar", + "isotropic", + "language", + "lexer", + "library", + "ll1", + "llk", + "parser", + "pp", + "random", + "regular", + "rule", + "sampler", + "syntax", + "token", + "trace", + "uniform" + ], + "time": "2017-08-08T07:44:07+00:00" + }, + { + "name": "hoa/consistency", + "version": "1.17.05.02", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Consistency.git", + "reference": "fd7d0adc82410507f332516faf655b6ed22e4c2f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Consistency/zipball/fd7d0adc82410507f332516faf655b6ed22e4c2f", + "reference": "fd7d0adc82410507f332516faf655b6ed22e4c2f", + "shasum": "" + }, + "require": { + "hoa/exception": "~1.0", + "php": ">=5.5.0" + }, + "require-dev": { + "hoa/stream": "~1.0", + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Consistency\\": "." + }, + "files": [ + "Prelude.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Consistency library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "autoloader", + "callable", + "consistency", + "entity", + "flex", + "keyword", + "library" + ], + "time": "2017-05-02T12:18:12+00:00" + }, + { + "name": "hoa/event", + "version": "1.17.01.13", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Event.git", + "reference": "6c0060dced212ffa3af0e34bb46624f990b29c54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Event/zipball/6c0060dced212ffa3af0e34bb46624f990b29c54", + "reference": "6c0060dced212ffa3af0e34bb46624f990b29c54", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/exception": "~1.0" + }, + "require-dev": { + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Event\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Event library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "event", + "library", + "listener", + "observer" + ], + "time": "2017-01-13T15:30:50+00:00" + }, + { + "name": "hoa/exception", + "version": "1.17.01.16", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Exception.git", + "reference": "091727d46420a3d7468ef0595651488bfc3a458f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Exception/zipball/091727d46420a3d7468ef0595651488bfc3a458f", + "reference": "091727d46420a3d7468ef0595651488bfc3a458f", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/event": "~1.0" + }, + "require-dev": { + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Exception\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Exception library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "exception", + "library" + ], + "time": "2017-01-16T07:53:27+00:00" + }, + { + "name": "hoa/file", + "version": "1.17.07.11", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/File.git", + "reference": "35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/File/zipball/35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca", + "reference": "35cb979b779bc54918d2f9a4e02ed6c7a1fa67ca", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/event": "~1.0", + "hoa/exception": "~1.0", + "hoa/iterator": "~2.0", + "hoa/stream": "~1.0" + }, + "require-dev": { + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\File\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\File library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "Socket", + "directory", + "file", + "finder", + "library", + "link", + "temporary" + ], + "time": "2017-07-11T07:42:15+00:00" + }, + { + "name": "hoa/iterator", + "version": "2.17.01.10", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Iterator.git", + "reference": "d1120ba09cb4ccd049c86d10058ab94af245f0cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Iterator/zipball/d1120ba09cb4ccd049c86d10058ab94af245f0cc", + "reference": "d1120ba09cb4ccd049c86d10058ab94af245f0cc", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/exception": "~1.0" + }, + "require-dev": { + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Iterator\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Iterator library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "iterator", + "library" + ], + "time": "2017-01-10T10:34:47+00:00" + }, + { + "name": "hoa/math", + "version": "1.17.05.16", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Math.git", + "reference": "7150785d30f5d565704912116a462e9f5bc83a0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Math/zipball/7150785d30f5d565704912116a462e9f5bc83a0c", + "reference": "7150785d30f5d565704912116a462e9f5bc83a0c", + "shasum": "" + }, + "require": { + "hoa/compiler": "~3.0", + "hoa/consistency": "~1.0", + "hoa/exception": "~1.0", + "hoa/iterator": "~2.0", + "hoa/protocol": "~1.0", + "hoa/zformat": "~1.0" + }, + "require-dev": { + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Math\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Math library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "arrangement", + "combination", + "combinatorics", + "counting", + "library", + "math", + "permutation", + "sampler", + "set" + ], + "time": "2017-05-16T08:02:17+00:00" + }, + { + "name": "hoa/protocol", + "version": "1.17.01.14", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Protocol.git", + "reference": "5c2cf972151c45f373230da170ea015deecf19e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Protocol/zipball/5c2cf972151c45f373230da170ea015deecf19e2", + "reference": "5c2cf972151c45f373230da170ea015deecf19e2", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/exception": "~1.0" + }, + "require-dev": { + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Protocol\\": "." + }, + "files": [ + "Wrapper.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Protocol library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "library", + "protocol", + "resource", + "stream", + "wrapper" + ], + "time": "2017-01-14T12:26:10+00:00" + }, + { + "name": "hoa/regex", + "version": "1.17.01.13", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Regex.git", + "reference": "7e263a61b6fb45c1d03d8e5ef77668518abd5bec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Regex/zipball/7e263a61b6fb45c1d03d8e5ef77668518abd5bec", + "reference": "7e263a61b6fb45c1d03d8e5ef77668518abd5bec", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/exception": "~1.0", + "hoa/math": "~1.0", + "hoa/protocol": "~1.0", + "hoa/ustring": "~4.0", + "hoa/visitor": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Regex\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Regex library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "compiler", + "library", + "regex" + ], + "time": "2017-01-13T16:10:24+00:00" + }, + { + "name": "hoa/stream", + "version": "1.17.02.21", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Stream.git", + "reference": "3293cfffca2de10525df51436adf88a559151d82" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Stream/zipball/3293cfffca2de10525df51436adf88a559151d82", + "reference": "3293cfffca2de10525df51436adf88a559151d82", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/event": "~1.0", + "hoa/exception": "~1.0", + "hoa/protocol": "~1.0" + }, + "require-dev": { + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Stream\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Stream library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "Context", + "bucket", + "composite", + "filter", + "in", + "library", + "out", + "protocol", + "stream", + "wrapper" + ], + "time": "2017-02-21T16:01:06+00:00" + }, + { + "name": "hoa/ustring", + "version": "4.17.01.16", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Ustring.git", + "reference": "e6326e2739178799b1fe3fdd92029f9517fa17a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Ustring/zipball/e6326e2739178799b1fe3fdd92029f9517fa17a0", + "reference": "e6326e2739178799b1fe3fdd92029f9517fa17a0", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/exception": "~1.0" + }, + "require-dev": { + "hoa/test": "~2.0" + }, + "suggest": { + "ext-iconv": "ext/iconv must be present (or a third implementation) to use Hoa\\Ustring::transcode().", + "ext-intl": "To get a better Hoa\\Ustring::toAscii() and Hoa\\Ustring::compareTo()." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Ustring\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Ustring library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "library", + "search", + "string", + "unicode" + ], + "time": "2017-01-16T07:08:25+00:00" + }, + { + "name": "hoa/visitor", + "version": "2.17.01.16", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Visitor.git", + "reference": "c18fe1cbac98ae449e0d56e87469103ba08f224a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Visitor/zipball/c18fe1cbac98ae449e0d56e87469103ba08f224a", + "reference": "c18fe1cbac98ae449e0d56e87469103ba08f224a", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0" + }, + "require-dev": { + "hoa/test": "~2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Visitor\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Visitor library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "library", + "structure", + "visit", + "visitor" + ], + "time": "2017-01-16T07:02:03+00:00" + }, + { + "name": "hoa/zformat", + "version": "1.17.01.10", + "source": { + "type": "git", + "url": "https://github.com/hoaproject/Zformat.git", + "reference": "522c381a2a075d4b9dbb42eb4592dd09520e4ac2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hoaproject/Zformat/zipball/522c381a2a075d4b9dbb42eb4592dd09520e4ac2", + "reference": "522c381a2a075d4b9dbb42eb4592dd09520e4ac2", + "shasum": "" + }, + "require": { + "hoa/consistency": "~1.0", + "hoa/exception": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Hoa\\Zformat\\": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Ivan Enderlin", + "email": "ivan.enderlin@hoa-project.net" + }, + { + "name": "Hoa community", + "homepage": "https://hoa-project.net/" + } + ], + "description": "The Hoa\\Zformat library.", + "homepage": "https://hoa-project.net/", + "keywords": [ + "library", + "parameter", + "zformat" + ], + "time": "2017-01-10T10:39:54+00:00" + }, + { + "name": "jms/metadata", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/metadata.git", + "reference": "e918c3a65105f73b74d94a0837b9f7d611d5bf0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/e918c3a65105f73b74d94a0837b9f7d611d5bf0c", + "reference": "e918c3a65105f73b74d94a0837b9f7d611d5bf0c", + "shasum": "" + }, + "require": { + "php": "^7.2" + }, + "require-dev": { + "doctrine/cache": "^1.0", + "doctrine/coding-standard": "^4.0", + "phpunit/phpunit": "^7.0", + "symfony/cache": "^3.1|^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Metadata\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + }, + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Class/method/property metadata management in PHP", + "keywords": [ + "annotations", + "metadata", + "xml", + "yaml" + ], + "time": "2018-11-09T13:57:43+00:00" + }, + { + "name": "jms/serializer", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/serializer.git", + "reference": "c976e8ec0c8eeaba98f8565b42148e4e1ed95e36" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/c976e8ec0c8eeaba98f8565b42148e4e1ed95e36", + "reference": "c976e8ec0c8eeaba98f8565b42148e4e1ed95e36", + "shasum": "" + }, + "require": { + "doctrine/annotations": "^1.0", + "doctrine/instantiator": "^1.0.3", + "hoa/compiler": "^3.17.08.08", + "jms/metadata": "^2.0", + "php": "^7.2" + }, + "conflict": { + "hoa/consistency": "<1.17.05.02", + "hoa/core": "*", + "hoa/iterator": "<2.16.03.15" + }, + "require-dev": { + "doctrine/coding-standard": "^5.0", + "doctrine/orm": "~2.1", + "doctrine/phpcr-odm": "^1.3|^2.0", + "ext-pdo_sqlite": "*", + "jackalope/jackalope-doctrine-dbal": "^1.1.5", + "phpunit/phpunit": "^7.1", + "psr/container": "^1.0", + "symfony/dependency-injection": "^3.0|^4.0", + "symfony/expression-language": "^3.0|^4.0", + "symfony/filesystem": "^3.0|^4.0", + "symfony/form": "^3.0|^4.0", + "symfony/translation": "^3.0|^4.0", + "symfony/validator": "^3.1.9|^4.0", + "symfony/yaml": "^3.3|^4.0", + "twig/twig": "^1.12|^2.0" + }, + "suggest": { + "doctrine/cache": "Required if you like to use cache functionality.", + "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", + "symfony/yaml": "Required if you'd like to use the YAML metadata format." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "JMS\\Serializer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + }, + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", + "homepage": "http://jmsyst.com/libs/serializer", + "keywords": [ + "deserialization", + "jaxb", + "json", + "serialization", + "xml" + ], + "time": "2018-11-29T16:48:02+00:00" + } + ], + "packages-dev": [ + { + "name": "myclabs/deep-copy", + "version": "1.8.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2018-06-11T23:09:50+00:00" + }, + { + "name": "phar-io/manifest", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" + }, + { + "name": "phar-io/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "4.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08", + "shasum": "" + }, + "require": { + "php": "^7.0", + "phpdocumentor/reflection-common": "^1.0.0", + "phpdocumentor/type-resolver": "^0.4.0", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2017-11-30T07:14:17+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "time": "2017-07-14T14:27:02+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2018-08-05T17:53:17+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "6.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.1", + "phpunit/php-file-iterator": "^2.0", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.1 || ^4.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "suggest": { + "ext-xdebug": "^2.6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2018-10-31T16:06:48+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "050bedf145a257b1ff02746c31894800e5122946" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2018-09-13T20:33:42+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f", + "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2018-02-01T13:07:23+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", + "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2018-10-30T05:52:18+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "7.5.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "520723129e2b3fc1dc4c0953e43c9d40e1ecb352" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/520723129e2b3fc1dc4c0953e43c9d40e1ecb352", + "reference": "520723129e2b3fc1dc4c0953e43c9d40e1ecb352", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "^1.7", + "phar-io/manifest": "^1.0.2", + "phar-io/version": "^2.0", + "php": "^7.1", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^6.0.7", + "phpunit/php-file-iterator": "^2.0.1", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.0", + "sebastian/comparator": "^3.0", + "sebastian/diff": "^3.0", + "sebastian/environment": "^4.0", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpunit/phpunit-mock-objects": "*" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2018-12-07T07:08:12+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "time": "2017-03-04T06:30:41+00:00" + }, + { + "name": "sebastian/comparator", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "shasum": "" + }, + "require": { + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2018-07-12T15:12:46+00:00" + }, + { + "name": "sebastian/diff", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "366541b989927187c4ca70490a35615d3fef2dce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/366541b989927187c4ca70490a35615d3fef2dce", + "reference": "366541b989927187c4ca70490a35615d3fef2dce", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0", + "symfony/process": "^2 || ^3.3 || ^4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "time": "2018-06-10T07:54:39+00:00" + }, + { + "name": "sebastian/environment", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/febd209a219cea7b56ad799b30ebbea34b71eb8f", + "reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2018-11-25T09:31:21+00:00" + }, + { + "name": "sebastian/exporter", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2017-04-03T13:19:02+00:00" + }, + { + "name": "sebastian/global-state", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2017-04-27T15:39:26+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "time": "2017-08-03T12:35:26+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-03-03T06:23:57+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "time": "2018-10-04T04:07:39+00:00" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2016-10-03T07:35:21+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2017-04-07T12:08:54+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "time": "2018-01-29T19:49:41+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=7.1.0" + }, + "platform-dev": [] +} diff --git a/vendor/autoload.php b/vendor/autoload.php deleted file mode 100644 index 5db05bb..0000000 --- a/vendor/autoload.php +++ /dev/null @@ -1,7 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see http://www.php-fig.org/psr/psr-0/ - * @see http://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - // PSR-4 - private $prefixLengthsPsr4 = array(); - private $prefixDirsPsr4 = array(); - private $fallbackDirsPsr4 = array(); - - // PSR-0 - private $prefixesPsr0 = array(); - private $fallbackDirsPsr0 = array(); - - private $useIncludePath = false; - private $classMap = array(); - private $classMapAuthoritative = false; - private $missingClasses = array(); - private $apcuPrefix; - - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', $this->prefixesPsr0); - } - - return array(); - } - - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - */ - public function add($prefix, $paths, $prepend = false) - { - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - (array) $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - (array) $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - (array) $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - (array) $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - (array) $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param array|string $paths The PSR-0 base directories - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param array|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - } - - /** - * Unregisters this instance as an autoloader. - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return bool|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - includeFile($file); - - return true; - } - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath.'\\'; - if (isset($this->prefixDirsPsr4[$search])) { - foreach ($this->prefixDirsPsr4[$search] as $dir) { - $length = $this->prefixLengthsPsr4[$first][$search]; - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } -} - -/** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - */ -function includeFile($file) -{ - include $file; -} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE deleted file mode 100644 index f0157a6..0000000 --- a/vendor/composer/LICENSE +++ /dev/null @@ -1,56 +0,0 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: Composer -Upstream-Contact: Jordi Boggiano -Source: https://github.com/composer/composer - -Files: * -Copyright: 2016, Nils Adermann - 2016, Jordi Boggiano -License: Expat - -Files: src/Composer/Util/TlsHelper.php -Copyright: 2016, Nils Adermann - 2016, Jordi Boggiano - 2013, Evan Coury -License: Expat and BSD-2-Clause - -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. diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php deleted file mode 100644 index b27f61a..0000000 --- a/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,528 +0,0 @@ - $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php', - 'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php', - 'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php', - 'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php', - 'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php', - 'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', - 'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', - 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', - 'PHPUnit\\Framework\\Constraint\\ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', - 'PHPUnit\\Framework\\Constraint\\Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', - 'PHPUnit\\Framework\\Constraint\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', - 'PHPUnit\\Framework\\Constraint\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', - 'PHPUnit\\Framework\\Constraint\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php', - 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php', - 'PHPUnit\\Framework\\Constraint\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', - 'PHPUnit\\Framework\\Constraint\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', - 'PHPUnit\\Framework\\Constraint\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', - 'PHPUnit\\Framework\\Constraint\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', - 'PHPUnit\\Framework\\Constraint\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', - 'PHPUnit\\Framework\\Constraint\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', - 'PHPUnit\\Framework\\Constraint\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php', - 'PHPUnit\\Framework\\Constraint\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php', - 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', - 'PHPUnit\\Framework\\Constraint\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', - 'PHPUnit\\Framework\\Constraint\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php', - 'PHPUnit\\Framework\\Constraint\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', - 'PHPUnit\\Framework\\Constraint\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php', - 'PHPUnit\\Framework\\Constraint\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', - 'PHPUnit\\Framework\\Constraint\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', - 'PHPUnit\\Framework\\Constraint\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', - 'PHPUnit\\Framework\\Constraint\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', - 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php', - 'PHPUnit\\Framework\\Constraint\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php', - 'PHPUnit\\Framework\\Constraint\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php', - 'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php', - 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', - 'PHPUnit\\Framework\\Constraint\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', - 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', - 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php', - 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', - 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php', - 'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', - 'PHPUnit\\Framework\\Error\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', - 'PHPUnit\\Framework\\Error\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php', - 'PHPUnit\\Framework\\Error\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php', - 'PHPUnit\\Framework\\Error\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php', - 'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php', - 'PHPUnit\\Framework\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', - 'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', - 'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php', - 'PHPUnit\\Framework\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', - 'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', - 'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Match.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Generator.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Invokable.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Verifiable.php', - 'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php', - 'PHPUnit\\Framework\\RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php', - 'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php', - 'PHPUnit\\Framework\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php', - 'PHPUnit\\Framework\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php', - 'PHPUnit\\Framework\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', - 'PHPUnit\\Framework\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php', - 'PHPUnit\\Framework\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', - 'PHPUnit\\Framework\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php', - 'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php', - 'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php', - 'PHPUnit\\Framework\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php', - 'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php', - 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', - 'PHPUnit\\Framework\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php', - 'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php', - 'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', - 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', - 'PHPUnit\\Framework\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php', - 'PHPUnit\\Framework\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php', - 'PHPUnit\\Runner\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', - 'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php', - 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php', - 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', - 'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php', - 'PHPUnit\\Runner\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php', - 'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php', - 'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', - 'PHPUnit\\TextUI\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php', - 'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php', - 'PHPUnit\\Util\\Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php', - 'PHPUnit\\Util\\ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php', - 'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php', - 'PHPUnit\\Util\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/FileLoader.php', - 'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php', - 'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php', - 'PHPUnit\\Util\\Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php', - 'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php', - 'PHPUnit\\Util\\InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', - 'PHPUnit\\Util\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php', - 'PHPUnit\\Util\\Log\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php', - 'PHPUnit\\Util\\Log\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php', - 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', - 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', - 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', - 'PHPUnit\\Util\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php', - 'PHPUnit\\Util\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php', - 'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php', - 'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php', - 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', - 'PHPUnit\\Util\\TestDox\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TestResult.php', - 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', - 'PHPUnit\\Util\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', - 'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php', - 'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php', - 'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/MockObject.php', - 'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php', - 'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', - 'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', - 'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php', - 'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php', - 'PharIo\\Manifest\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php', - 'PharIo\\Manifest\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php', - 'PharIo\\Manifest\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', - 'PharIo\\Manifest\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php', - 'PharIo\\Manifest\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php', - 'PharIo\\Manifest\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php', - 'PharIo\\Manifest\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php', - 'PharIo\\Manifest\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', - 'PharIo\\Manifest\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php', - 'PharIo\\Manifest\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php', - 'PharIo\\Manifest\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php', - 'PharIo\\Manifest\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php', - 'PharIo\\Manifest\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php', - 'PharIo\\Manifest\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php', - 'PharIo\\Manifest\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php', - 'PharIo\\Manifest\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php', - 'PharIo\\Manifest\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php', - 'PharIo\\Manifest\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php', - 'PharIo\\Manifest\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php', - 'PharIo\\Manifest\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php', - 'PharIo\\Manifest\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php', - 'PharIo\\Manifest\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', - 'PharIo\\Manifest\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', - 'PharIo\\Manifest\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', - 'PharIo\\Manifest\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php', - 'PharIo\\Manifest\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php', - 'PharIo\\Manifest\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php', - 'PharIo\\Manifest\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php', - 'PharIo\\Manifest\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php', - 'PharIo\\Manifest\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', - 'PharIo\\Manifest\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php', - 'PharIo\\Manifest\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php', - 'PharIo\\Manifest\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', - 'PharIo\\Manifest\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php', - 'PharIo\\Manifest\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php', - 'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php', - 'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', - 'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php', - 'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php', - 'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', - 'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php', - 'PharIo\\Manifest\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php', - 'PharIo\\Manifest\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php', - 'PharIo\\Manifest\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', - 'PharIo\\Manifest\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php', - 'PharIo\\Manifest\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php', - 'PharIo\\Manifest\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php', - 'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/AbstractVersionConstraint.php', - 'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/AndVersionConstraintGroup.php', - 'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/AnyVersionConstraint.php', - 'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/ExactVersionConstraint.php', - 'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/Exception.php', - 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php', - 'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/InvalidVersionException.php', - 'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/OrVersionConstraintGroup.php', - 'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php', - 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php', - 'PharIo\\Version\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/SpecificMajorVersionConstraint.php', - 'PharIo\\Version\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/UnsupportedVersionConstraintException.php', - 'PharIo\\Version\\Version' => $vendorDir . '/phar-io/version/src/Version.php', - 'PharIo\\Version\\VersionConstraint' => $vendorDir . '/phar-io/version/src/VersionConstraint.php', - 'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php', - 'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php', - 'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php', - 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php', - 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php', - 'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php', - 'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php', - 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php', - 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', - 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', - 'SebastianBergmann\\CodeCoverage\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php', - 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', - 'SebastianBergmann\\CodeCoverage\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php', - 'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php', - 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php', - 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php', - 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php', - 'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php', - 'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php', - 'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php', - 'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php', - 'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php', - 'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php', - 'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php', - 'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php', - 'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php', - 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php', - 'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php', - 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', - 'SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', - 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', - 'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', - 'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', - 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', - 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php', - 'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php', - 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php', - 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php', - 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php', - 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php', - 'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php', - 'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php', - 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php', - 'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php', - 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php', - 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php', - 'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php', - 'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php', - 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php', - 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php', - 'SebastianBergmann\\Timer\\Exception' => $vendorDir . '/phpunit/php-timer/src/Exception.php', - 'SebastianBergmann\\Timer\\RuntimeException' => $vendorDir . '/phpunit/php-timer/src/RuntimeException.php', - 'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php', - 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php', - 'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php', - 'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php', - 'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php', - 'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php', - 'TheSeer\\Tokenizer\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php', - 'TheSeer\\Tokenizer\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php', - 'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php', - 'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php', - 'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php', -); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php deleted file mode 100644 index d931b8f..0000000 --- a/vendor/composer/autoload_files.php +++ /dev/null @@ -1,10 +0,0 @@ - $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', -); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php deleted file mode 100644 index d3ed2a7..0000000 --- a/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,16 +0,0 @@ - array($vendorDir . '/phpspec/prophecy/src'), - 'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src'), - 'PhpCollection' => array($vendorDir . '/phpcollection/phpcollection/src'), - 'Metadata\\' => array($vendorDir . '/jms/metadata/src'), - 'JMS\\Serializer' => array($vendorDir . '/jms/serializer/src'), - 'JMS\\' => array($vendorDir . '/jms/parser-lib/src'), - 'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib'), -); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php deleted file mode 100644 index 30e5b13..0000000 --- a/vendor/composer/autoload_psr4.php +++ /dev/null @@ -1,16 +0,0 @@ - array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'), - 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), - 'Doctrine\\Common\\Annotations\\' => array($vendorDir . '/doctrine/annotations/lib/Doctrine/Common/Annotations'), - 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), - 'DaDaDev\\AmazonAlexa\\' => array($baseDir . '/src'), - 'DaDaDev\\AmazonAlexaTests\\' => array($baseDir . '/tests'), -); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php deleted file mode 100644 index 8c784fb..0000000 --- a/vendor/composer/autoload_real.php +++ /dev/null @@ -1,70 +0,0 @@ -= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require_once __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInit70df599cbd96ff4b066aa562ef92462d::getInitializer($loader)); - } else { - $map = require __DIR__ . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->set($namespace, $path); - } - - $map = require __DIR__ . '/autoload_psr4.php'; - foreach ($map as $namespace => $path) { - $loader->setPsr4($namespace, $path); - } - - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } - - $loader->register(true); - - if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit70df599cbd96ff4b066aa562ef92462d::$files; - } else { - $includeFiles = require __DIR__ . '/autoload_files.php'; - } - foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire70df599cbd96ff4b066aa562ef92462d($fileIdentifier, $file); - } - - return $loader; - } -} - -function composerRequire70df599cbd96ff4b066aa562ef92462d($fileIdentifier, $file) -{ - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - require $file; - - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - } -} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php deleted file mode 100644 index 1eb12f4..0000000 --- a/vendor/composer/autoload_static.php +++ /dev/null @@ -1,640 +0,0 @@ - __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'p' => - array ( - 'phpDocumentor\\Reflection\\' => 25, - ), - 'W' => - array ( - 'Webmozart\\Assert\\' => 17, - ), - 'D' => - array ( - 'Doctrine\\Instantiator\\' => 22, - 'Doctrine\\Common\\Annotations\\' => 28, - 'DeepCopy\\' => 9, - 'DaDaDev\\AmazonAlexa\\' => 20, - 'DaDaDev\\AmazonAlexaTests\\' => 25, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'phpDocumentor\\Reflection\\' => - array ( - 0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src', - 1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src', - 2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src', - ), - 'Webmozart\\Assert\\' => - array ( - 0 => __DIR__ . '/..' . '/webmozart/assert/src', - ), - 'Doctrine\\Instantiator\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator', - ), - 'Doctrine\\Common\\Annotations\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/annotations/lib/Doctrine/Common/Annotations', - ), - 'DeepCopy\\' => - array ( - 0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy', - ), - 'DaDaDev\\AmazonAlexa\\' => - array ( - 0 => __DIR__ . '/../..' . '/src', - ), - 'DaDaDev\\AmazonAlexaTests\\' => - array ( - 0 => __DIR__ . '/../..' . '/tests', - ), - ); - - public static $prefixesPsr0 = array ( - 'P' => - array ( - 'Prophecy\\' => - array ( - 0 => __DIR__ . '/..' . '/phpspec/prophecy/src', - ), - 'PhpOption\\' => - array ( - 0 => __DIR__ . '/..' . '/phpoption/phpoption/src', - ), - 'PhpCollection' => - array ( - 0 => __DIR__ . '/..' . '/phpcollection/phpcollection/src', - ), - ), - 'M' => - array ( - 'Metadata\\' => - array ( - 0 => __DIR__ . '/..' . '/jms/metadata/src', - ), - ), - 'J' => - array ( - 'JMS\\Serializer' => - array ( - 0 => __DIR__ . '/..' . '/jms/serializer/src', - ), - 'JMS\\' => - array ( - 0 => __DIR__ . '/..' . '/jms/parser-lib/src', - ), - ), - 'D' => - array ( - 'Doctrine\\Common\\Lexer\\' => - array ( - 0 => __DIR__ . '/..' . '/doctrine/lexer/lib', - ), - ), - ); - - public static $classMap = array ( - 'File_Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php', - 'File_Iterator_Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php', - 'File_Iterator_Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php', - 'PHPUnit\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php', - 'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php', - 'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', - 'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', - 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', - 'PHPUnit\\Framework\\Constraint\\ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', - 'PHPUnit\\Framework\\Constraint\\Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', - 'PHPUnit\\Framework\\Constraint\\Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', - 'PHPUnit\\Framework\\Constraint\\Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', - 'PHPUnit\\Framework\\Constraint\\Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', - 'PHPUnit\\Framework\\Constraint\\Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php', - 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php', - 'PHPUnit\\Framework\\Constraint\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', - 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', - 'PHPUnit\\Framework\\Constraint\\GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', - 'PHPUnit\\Framework\\Constraint\\IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', - 'PHPUnit\\Framework\\Constraint\\IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', - 'PHPUnit\\Framework\\Constraint\\IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', - 'PHPUnit\\Framework\\Constraint\\IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', - 'PHPUnit\\Framework\\Constraint\\IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php', - 'PHPUnit\\Framework\\Constraint\\IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', - 'PHPUnit\\Framework\\Constraint\\IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php', - 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', - 'PHPUnit\\Framework\\Constraint\\IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', - 'PHPUnit\\Framework\\Constraint\\IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php', - 'PHPUnit\\Framework\\Constraint\\IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', - 'PHPUnit\\Framework\\Constraint\\IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php', - 'PHPUnit\\Framework\\Constraint\\IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', - 'PHPUnit\\Framework\\Constraint\\IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', - 'PHPUnit\\Framework\\Constraint\\IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', - 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', - 'PHPUnit\\Framework\\Constraint\\LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', - 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php', - 'PHPUnit\\Framework\\Constraint\\LogicalNot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php', - 'PHPUnit\\Framework\\Constraint\\LogicalOr' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php', - 'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php', - 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', - 'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php', - 'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', - 'PHPUnit\\Framework\\Constraint\\StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', - 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', - 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php', - 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', - 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', - 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php', - 'PHPUnit\\Framework\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', - 'PHPUnit\\Framework\\Error\\Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', - 'PHPUnit\\Framework\\Error\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Error.php', - 'PHPUnit\\Framework\\Error\\Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php', - 'PHPUnit\\Framework\\Error\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php', - 'PHPUnit\\Framework\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php', - 'PHPUnit\\Framework\\ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', - 'PHPUnit\\Framework\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', - 'PHPUnit\\Framework\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php', - 'PHPUnit\\Framework\\IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', - 'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', - 'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', - 'PHPUnit\\Framework\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', - 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/BadMethodCallException.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Identity.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Match.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/MethodNameMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/NamespaceMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/ParametersMatch.php', - 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Builder/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Generator.php', - 'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/InvocationMocker.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/ObjectInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invocation/StaticInvocation.php', - 'PHPUnit\\Framework\\MockObject\\Invokable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Invokable.php', - 'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/AnyInvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/AnyParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/ConsecutiveParameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/Invocation.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtIndex.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtLeastOnce.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedAtMostCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedCount.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/InvokedRecorder.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/MethodName.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/Parameters.php', - 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Matcher/StatelessInvocation.php', - 'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/MockBuilder.php', - 'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/ForwardCompatibility/MockObject.php', - 'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Exception/RuntimeException.php', - 'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ConsecutiveCalls.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/Exception.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/MatcherCollection.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnArgument.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnCallback.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnReference.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnSelf.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnStub.php', - 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Stub/ReturnValueMap.php', - 'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Verifiable.php', - 'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php', - 'PHPUnit\\Framework\\RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php', - 'PHPUnit\\Framework\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php', - 'PHPUnit\\Framework\\SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php', - 'PHPUnit\\Framework\\SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php', - 'PHPUnit\\Framework\\SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', - 'PHPUnit\\Framework\\SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php', - 'PHPUnit\\Framework\\SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', - 'PHPUnit\\Framework\\SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php', - 'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php', - 'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php', - 'PHPUnit\\Framework\\TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php', - 'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php', - 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', - 'PHPUnit\\Framework\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php', - 'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php', - 'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', - 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', - 'PHPUnit\\Framework\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php', - 'PHPUnit\\Framework\\WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php', - 'PHPUnit\\Runner\\BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', - 'PHPUnit\\Runner\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php', - 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php', - 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', - 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', - 'PHPUnit\\Runner\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PhptTestCase.php', - 'PHPUnit\\Runner\\StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', - 'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', - 'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php', - 'PHPUnit\\TextUI\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php', - 'PHPUnit\\TextUI\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', - 'PHPUnit\\TextUI\\TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php', - 'PHPUnit\\Util\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php', - 'PHPUnit\\Util\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php', - 'PHPUnit\\Util\\ConfigurationGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php', - 'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php', - 'PHPUnit\\Util\\FileLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/FileLoader.php', - 'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php', - 'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php', - 'PHPUnit\\Util\\Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php', - 'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php', - 'PHPUnit\\Util\\InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', - 'PHPUnit\\Util\\Json' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Json.php', - 'PHPUnit\\Util\\Log\\JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php', - 'PHPUnit\\Util\\Log\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php', - 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', - 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', - 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', - 'PHPUnit\\Util\\Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php', - 'PHPUnit\\Util\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/RegularExpression.php', - 'PHPUnit\\Util\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php', - 'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php', - 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', - 'PHPUnit\\Util\\TestDox\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TestResult.php', - 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', - 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', - 'PHPUnit\\Util\\TextTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', - 'PHPUnit\\Util\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php', - 'PHPUnit\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php', - 'PHPUnit\\Util\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', - 'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/MockObject.php', - 'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php', - 'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', - 'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', - 'PharIo\\Manifest\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php', - 'PharIo\\Manifest\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php', - 'PharIo\\Manifest\\Author' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Author.php', - 'PharIo\\Manifest\\AuthorCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollection.php', - 'PharIo\\Manifest\\AuthorCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', - 'PharIo\\Manifest\\AuthorElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElement.php', - 'PharIo\\Manifest\\AuthorElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElementCollection.php', - 'PharIo\\Manifest\\BundledComponent' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponent.php', - 'PharIo\\Manifest\\BundledComponentCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollection.php', - 'PharIo\\Manifest\\BundledComponentCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', - 'PharIo\\Manifest\\BundlesElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/BundlesElement.php', - 'PharIo\\Manifest\\ComponentElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElement.php', - 'PharIo\\Manifest\\ComponentElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElementCollection.php', - 'PharIo\\Manifest\\ContainsElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ContainsElement.php', - 'PharIo\\Manifest\\CopyrightElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/CopyrightElement.php', - 'PharIo\\Manifest\\CopyrightInformation' => __DIR__ . '/..' . '/phar-io/manifest/src/values/CopyrightInformation.php', - 'PharIo\\Manifest\\ElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ElementCollection.php', - 'PharIo\\Manifest\\Email' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Email.php', - 'PharIo\\Manifest\\Exception' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/Exception.php', - 'PharIo\\Manifest\\ExtElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElement.php', - 'PharIo\\Manifest\\ExtElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElementCollection.php', - 'PharIo\\Manifest\\Extension' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Extension.php', - 'PharIo\\Manifest\\ExtensionElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtensionElement.php', - 'PharIo\\Manifest\\InvalidApplicationNameException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', - 'PharIo\\Manifest\\InvalidEmailException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', - 'PharIo\\Manifest\\InvalidUrlException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', - 'PharIo\\Manifest\\Library' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Library.php', - 'PharIo\\Manifest\\License' => __DIR__ . '/..' . '/phar-io/manifest/src/values/License.php', - 'PharIo\\Manifest\\LicenseElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/LicenseElement.php', - 'PharIo\\Manifest\\Manifest' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Manifest.php', - 'PharIo\\Manifest\\ManifestDocument' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocument.php', - 'PharIo\\Manifest\\ManifestDocumentException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', - 'PharIo\\Manifest\\ManifestDocumentLoadingException' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php', - 'PharIo\\Manifest\\ManifestDocumentMapper' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestDocumentMapper.php', - 'PharIo\\Manifest\\ManifestDocumentMapperException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', - 'PharIo\\Manifest\\ManifestElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestElement.php', - 'PharIo\\Manifest\\ManifestElementException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestElementException.php', - 'PharIo\\Manifest\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php', - 'PharIo\\Manifest\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', - 'PharIo\\Manifest\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php', - 'PharIo\\Manifest\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php', - 'PharIo\\Manifest\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', - 'PharIo\\Manifest\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php', - 'PharIo\\Manifest\\Requirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Requirement.php', - 'PharIo\\Manifest\\RequirementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollection.php', - 'PharIo\\Manifest\\RequirementCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', - 'PharIo\\Manifest\\RequiresElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/RequiresElement.php', - 'PharIo\\Manifest\\Type' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Type.php', - 'PharIo\\Manifest\\Url' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Url.php', - 'PharIo\\Version\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/AbstractVersionConstraint.php', - 'PharIo\\Version\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/AndVersionConstraintGroup.php', - 'PharIo\\Version\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/AnyVersionConstraint.php', - 'PharIo\\Version\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/ExactVersionConstraint.php', - 'PharIo\\Version\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/Exception.php', - 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php', - 'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/InvalidVersionException.php', - 'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/OrVersionConstraintGroup.php', - 'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php', - 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php', - 'PharIo\\Version\\SpecificMajorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/SpecificMajorVersionConstraint.php', - 'PharIo\\Version\\UnsupportedVersionConstraintException' => __DIR__ . '/..' . '/phar-io/version/src/UnsupportedVersionConstraintException.php', - 'PharIo\\Version\\Version' => __DIR__ . '/..' . '/phar-io/version/src/Version.php', - 'PharIo\\Version\\VersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraint.php', - 'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php', - 'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php', - 'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php', - 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php', - 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php', - 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug.php', - 'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php', - 'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php', - 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php', - 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php', - 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', - 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', - 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', - 'SebastianBergmann\\CodeCoverage\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php', - 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', - 'SebastianBergmann\\CodeCoverage\\Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util.php', - 'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php', - 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', - 'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php', - 'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php', - 'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php', - 'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php', - 'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php', - 'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php', - 'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php', - 'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php', - 'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php', - 'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php', - 'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php', - 'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php', - 'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php', - 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php', - 'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php', - 'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', - 'SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', - 'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', - 'SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', - 'SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', - 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', - 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php', - 'SebastianBergmann\\Environment\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php', - 'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php', - 'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php', - 'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php', - 'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php', - 'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php', - 'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php', - 'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/RuntimeException.php', - 'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php', - 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php', - 'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php', - 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\Exception' => __DIR__ . '/..' . '/sebastian/object-reflector/src/Exception.php', - 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-reflector/src/InvalidArgumentException.php', - 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php', - 'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php', - 'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php', - 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php', - 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php', - 'SebastianBergmann\\Timer\\Exception' => __DIR__ . '/..' . '/phpunit/php-timer/src/Exception.php', - 'SebastianBergmann\\Timer\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-timer/src/RuntimeException.php', - 'SebastianBergmann\\Timer\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php', - 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php', - 'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php', - 'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php', - 'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php', - 'TheSeer\\Tokenizer\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php', - 'TheSeer\\Tokenizer\\Token' => __DIR__ . '/..' . '/theseer/tokenizer/src/Token.php', - 'TheSeer\\Tokenizer\\TokenCollection' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollection.php', - 'TheSeer\\Tokenizer\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php', - 'TheSeer\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php', - 'TheSeer\\Tokenizer\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit70df599cbd96ff4b066aa562ef92462d::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit70df599cbd96ff4b066aa562ef92462d::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit70df599cbd96ff4b066aa562ef92462d::$prefixesPsr0; - $loader->classMap = ComposerStaticInit70df599cbd96ff4b066aa562ef92462d::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json deleted file mode 100644 index d99ea7b..0000000 --- a/vendor/composer/installed.json +++ /dev/null @@ -1,1916 +0,0 @@ -[ - { - "name": "doctrine/instantiator", - "version": "1.1.0", - "version_normalized": "1.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "athletic/athletic": "~0.1.8", - "ext-pdo": "*", - "ext-phar": "*", - "phpunit/phpunit": "^6.2.3", - "squizlabs/php_codesniffer": "^3.0.2" - }, - "time": "2017-07-22T11:58:36+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "constructor", - "instantiate" - ] - }, - { - "name": "doctrine/lexer", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", - "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "time": "2014-09-09T13:34:57+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "lexer", - "parser" - ] - }, - { - "name": "doctrine/annotations", - "version": "v1.6.0", - "version_normalized": "1.6.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", - "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5", - "shasum": "" - }, - "require": { - "doctrine/lexer": "1.*", - "php": "^7.1" - }, - "require-dev": { - "doctrine/cache": "1.*", - "phpunit/phpunit": "^6.4" - }, - "time": "2017-12-06T07:11:42+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "annotations", - "docblock", - "parser" - ] - }, - { - "name": "phpoption/phpoption", - "version": "1.5.0", - "version_normalized": "1.5.0.0", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed", - "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "4.7.*" - }, - "time": "2015-07-25T16:39:46+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "PhpOption\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache2" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Option Type for PHP", - "keywords": [ - "language", - "option", - "php", - "type" - ] - }, - { - "name": "phpcollection/phpcollection", - "version": "0.5.0", - "version_normalized": "0.5.0.0", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/php-collection.git", - "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", - "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6", - "shasum": "" - }, - "require": { - "phpoption/phpoption": "1.*" - }, - "time": "2015-05-17T12:39:23+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "PhpCollection": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache2" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "General-Purpose Collection Library for PHP", - "keywords": [ - "collection", - "list", - "map", - "sequence", - "set" - ] - }, - { - "name": "jms/parser-lib", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/parser-lib.git", - "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d", - "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d", - "shasum": "" - }, - "require": { - "phpoption/phpoption": ">=0.9,<2.0-dev" - }, - "time": "2012-11-18T18:08:43+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "JMS\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache2" - ], - "description": "A library for easily creating recursive-descent parsers." - }, - { - "name": "jms/metadata", - "version": "1.6.0", - "version_normalized": "1.6.0.0", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/metadata.git", - "reference": "6a06970a10e0a532fb52d3959547123b84a3b3ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/6a06970a10e0a532fb52d3959547123b84a3b3ab", - "reference": "6a06970a10e0a532fb52d3959547123b84a3b3ab", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "doctrine/cache": "~1.0", - "symfony/cache": "~3.1" - }, - "time": "2016-12-05T10:18:33+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Metadata\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Class/method/property metadata management in PHP", - "keywords": [ - "annotations", - "metadata", - "xml", - "yaml" - ] - }, - { - "name": "jms/serializer", - "version": "1.11.0", - "version_normalized": "1.11.0.0", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/serializer.git", - "reference": "e7c53477ff55c21d1b1db7d062edc050a24f465f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/e7c53477ff55c21d1b1db7d062edc050a24f465f", - "reference": "e7c53477ff55c21d1b1db7d062edc050a24f465f", - "shasum": "" - }, - "require": { - "doctrine/annotations": "^1.0", - "doctrine/instantiator": "^1.0.3", - "jms/metadata": "~1.1", - "jms/parser-lib": "1.*", - "php": "^5.5|^7.0", - "phpcollection/phpcollection": "~0.1", - "phpoption/phpoption": "^1.1" - }, - "conflict": { - "twig/twig": "<1.12" - }, - "require-dev": { - "doctrine/orm": "~2.1", - "doctrine/phpcr-odm": "^1.3|^2.0", - "ext-pdo_sqlite": "*", - "jackalope/jackalope-doctrine-dbal": "^1.1.5", - "phpunit/phpunit": "^4.8|^5.0", - "propel/propel1": "~1.7", - "psr/container": "^1.0", - "symfony/dependency-injection": "^2.7|^3.3|^4.0", - "symfony/expression-language": "^2.6|^3.0", - "symfony/filesystem": "^2.1", - "symfony/form": "~2.1|^3.0", - "symfony/translation": "^2.1|^3.0", - "symfony/validator": "^2.2|^3.0", - "symfony/yaml": "^2.1|^3.0", - "twig/twig": "~1.12|~2.0" - }, - "suggest": { - "doctrine/cache": "Required if you like to use cache functionality.", - "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", - "symfony/yaml": "Required if you'd like to serialize data to YAML format." - }, - "time": "2018-02-04T17:48:54+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "JMS\\Serializer": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - }, - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", - "homepage": "http://jmsyst.com/libs/serializer", - "keywords": [ - "deserialization", - "jaxb", - "json", - "serialization", - "xml" - ] - }, - { - "name": "sebastian/version", - "version": "2.0.1", - "version_normalized": "2.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "time": "2016-10-03T07:35:21+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version" - }, - { - "name": "sebastian/resource-operations", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "shasum": "" - }, - "require": { - "php": ">=5.6.0" - }, - "time": "2015-07-28T20:34:47+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations" - }, - { - "name": "sebastian/recursion-context", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "time": "2017-03-03T06:23:57+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.1", - "version_normalized": "1.1.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "time": "2017-03-29T09:07:27+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/" - }, - { - "name": "sebastian/object-enumerator", - "version": "3.0.3", - "version_normalized": "3.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "time": "2017-08-03T12:35:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/" - }, - { - "name": "sebastian/global-state", - "version": "2.0.0", - "version_normalized": "2.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-uopz": "*" - }, - "time": "2017-04-27T15:39:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ] - }, - { - "name": "sebastian/exporter", - "version": "3.1.0", - "version_normalized": "3.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" - }, - "time": "2017-04-03T13:19:02+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ] - }, - { - "name": "sebastian/environment", - "version": "3.1.0", - "version_normalized": "3.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.1" - }, - "time": "2017-07-01T08:51:00+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ] - }, - { - "name": "sebastian/diff", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "e09160918c66281713f1c324c1f4c4c3037ba1e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/e09160918c66281713f1c324c1f4c4c3037ba1e8", - "reference": "e09160918c66281713f1c324c1f4c4c3037ba1e8", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0", - "symfony/process": "^2 || ^3.3 || ^4" - }, - "time": "2018-02-01T13:45:15+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ] - }, - { - "name": "sebastian/comparator", - "version": "2.1.3", - "version_normalized": "2.1.3.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", - "shasum": "" - }, - "require": { - "php": "^7.0", - "sebastian/diff": "^2.0 || ^3.0", - "sebastian/exporter": "^3.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.4" - }, - "time": "2018-02-01T13:46:46+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ] - }, - { - "name": "phpunit/php-text-template", - "version": "1.2.1", - "version_normalized": "1.2.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2015-06-21T13:50:34+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ] - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "6.0.1", - "version_normalized": "6.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "e3249dedc2d99259ccae6affbc2684eac37c2e53" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/e3249dedc2d99259ccae6affbc2684eac37c2e53", - "reference": "e3249dedc2d99259ccae6affbc2684eac37c2e53", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.5", - "php": "^7.1", - "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "suggest": { - "ext-soap": "*" - }, - "time": "2018-02-15T05:27:38+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ] - }, - { - "name": "phpunit/php-timer", - "version": "2.0.0", - "version_normalized": "2.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f", - "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f", - "shasum": "" - }, - "require": { - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "time": "2018-02-01T13:07:23+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ] - }, - { - "name": "phpunit/php-file-iterator", - "version": "1.4.5", - "version_normalized": "1.4.5.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "time": "2017-11-27T13:52:08+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ] - }, - { - "name": "theseer/tokenizer", - "version": "1.1.0", - "version_normalized": "1.1.0.0", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" - }, - "time": "2017-04-07T12:08:54+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" - }, - "time": "2017-03-04T06:30:41+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/" - }, - { - "name": "phpunit/php-token-stream", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/21ad88bbba7c3d93530d93994e0a33cd45f02ace", - "reference": "21ad88bbba7c3d93530d93994e0a33cd45f02ace", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": "^7.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "time": "2018-02-01T13:16:43+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", - "keywords": [ - "tokenizer" - ] - }, - { - "name": "phpunit/php-code-coverage", - "version": "6.0.1", - "version_normalized": "6.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f8ca4b604baf23dab89d87773c28cc07405189ba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f8ca4b604baf23dab89d87773c28cc07405189ba", - "reference": "f8ca4b604baf23dab89d87773c28cc07405189ba", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlwriter": "*", - "php": "^7.1", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "suggest": { - "ext-xdebug": "^2.6.0" - }, - "time": "2018-02-02T07:01:41+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ] - }, - { - "name": "webmozart/assert", - "version": "1.3.0", - "version_normalized": "1.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" - }, - "time": "2018-01-29T19:49:41+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ] - }, - { - "name": "phpdocumentor/reflection-common", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "time": "2017-09-11T18:02:19+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ] - }, - { - "name": "phpdocumentor/type-resolver", - "version": "0.4.0", - "version_normalized": "0.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", - "shasum": "" - }, - "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" - }, - "time": "2017-07-14T14:27:02+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ] - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", - "version_normalized": "4.3.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "time": "2017-11-30T07:14:17+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock." - }, - { - "name": "phpspec/prophecy", - "version": "1.7.5", - "version_normalized": "1.7.5.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401", - "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" - }, - "time": "2018-02-19T10:16:54+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ] - }, - { - "name": "phar-io/version", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "time": "2017-03-05T17:38:23+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints" - }, - { - "name": "phar-io/manifest", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" - }, - "time": "2017-03-05T18:14:27+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)" - }, - { - "name": "myclabs/deep-copy", - "version": "1.7.0", - "version_normalized": "1.7.0.0", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" - }, - "time": "2017-10-19T19:58:43+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ] - }, - { - "name": "phpunit/phpunit", - "version": "7.0.2", - "version_normalized": "7.0.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e2f8aa21bc54b6ba218bdd4f9e0dac1e9bc3b4e9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e2f8aa21bc54b6ba218bdd4f9e0dac1e9bc3b4e9", - "reference": "e2f8aa21bc54b6ba218bdd4f9e0dac1e9bc3b4e9", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.6.1", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.1", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^6.0", - "phpunit/php-file-iterator": "^1.4.3", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.0", - "phpunit/phpunit-mock-objects": "^6.0", - "sebastian/comparator": "^2.1", - "sebastian/diff": "^3.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" - }, - "require-dev": { - "ext-pdo": "*" - }, - "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0" - }, - "time": "2018-02-26T07:03:12+00:00", - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.0-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ] - } -] diff --git a/vendor/doctrine/annotations/CHANGELOG.md b/vendor/doctrine/annotations/CHANGELOG.md deleted file mode 100644 index 100b006..0000000 --- a/vendor/doctrine/annotations/CHANGELOG.md +++ /dev/null @@ -1,130 +0,0 @@ -## Changelog - -### 1.5.0 - -This release increments the minimum supported PHP version to 7.1.0. - -Also, HHVM official support has been dropped. - -Some noticeable performance improvements to annotation autoloading -have been applied, making failed annotation autoloading less heavy -on the filesystem access. - -- [133: Add @throws annotation in AnnotationReader#__construct()](https://github.com/doctrine/annotations/issues/133) thanks to @SenseException -- [134: Require PHP 7.1, drop HHVM support](https://github.com/doctrine/annotations/issues/134) thanks to @lcobucci -- [135: Prevent the same loader from being registered twice](https://github.com/doctrine/annotations/issues/135) thanks to @jrjohnson -- [137: #135 optimise multiple class load attempts in AnnotationRegistry](https://github.com/doctrine/annotations/issues/137) thanks to @Ocramius - - -### 1.4.0 - -This release fix an issue were some annotations could be not loaded if the namespace in the use statement started with a backslash. -It also update the tests and drop the support for php 5.X - -- [115: Missing annotations with the latest composer version](https://github.com/doctrine/annotations/issues/115) thanks to @pascalporedda -- [120: Missing annotations with the latest composer version](https://github.com/doctrine/annotations/pull/120) thanks to @gnat42 -- [121: Adding a more detailed explanation of the test](https://github.com/doctrine/annotations/pull/121) thanks to @mikeSimonson -- [101: Test annotation parameters containing space](https://github.com/doctrine/annotations/pull/101) thanks to @mikeSimonson -- [111: Cleanup: move to correct phpunit assertions](https://github.com/doctrine/annotations/pull/111) thanks to @Ocramius -- [112: Removes support for PHP 5.x](https://github.com/doctrine/annotations/pull/112) thanks to @railto -- [113: bumped phpunit version to 5.7](https://github.com/doctrine/annotations/pull/113) thanks to @gabbydgab -- [114: Enhancement: Use SVG Travis build badge](https://github.com/doctrine/annotations/pull/114) thanks to @localheinz -- [118: Integrating PHPStan](https://github.com/doctrine/annotations/pull/118) thanks to @ondrejmirtes - -### 1.3.1 - 2016-12-30 - -This release fixes an issue with ignored annotations that were already -autoloaded, causing the `SimpleAnnotationReader` to pick them up -anyway. [#110](https://github.com/doctrine/annotations/pull/110) - -Additionally, an issue was fixed in the `CachedReader`, which was -not correctly checking the freshness of cached annotations when -traits were defined on a class. [#105](https://github.com/doctrine/annotations/pull/105) - -Total issues resolved: **2** - -- [105: Return single max timestamp](https://github.com/doctrine/annotations/pull/105) -- [110: setIgnoreNotImportedAnnotations(true) didn’t work for existing classes](https://github.com/doctrine/annotations/pull/110) - -### 1.3.0 - -This release introduces a PHP version bump. `doctrine/annotations` now requires PHP -5.6 or later to be installed. - -A series of additional improvements have been introduced: - - * support for PHP 7 "grouped use statements" - * support for ignoring entire namespace names - via `Doctrine\Common\Annotations\AnnotationReader::addGlobalIgnoredNamespace()` and - `Doctrine\Common\Annotations\DocParser::setIgnoredAnnotationNamespaces()`. This will - allow you to ignore annotations from namespaces that you cannot autoload - * testing all parent classes and interfaces when checking if the annotation cache - in the `CachedReader` is fresh - * simplifying the cache keys used by the `CachedReader`: keys are no longer artificially - namespaced, since `Doctrine\Common\Cache` already supports that - * corrected parsing of multibyte strings when `mbstring.func_overload` is enabled - * corrected parsing of annotations when `"\t"` is put before the first annotation - in a docblock - * allow skipping non-imported annotations when a custom `DocParser` is passed to - the `AnnotationReader` constructor - -Total issues resolved: **15** - -- [45: DocParser can now ignore whole namespaces](https://github.com/doctrine/annotations/pull/45) -- [57: Switch to the docker-based infrastructure on Travis](https://github.com/doctrine/annotations/pull/57) -- [59: opcache.load_comments has been removed from PHP 7](https://github.com/doctrine/annotations/pull/59) -- [62: [CachedReader\ Test traits and parent class to see if cache is fresh](https://github.com/doctrine/annotations/pull/62) -- [65: Remove cache salt making key unnecessarily long](https://github.com/doctrine/annotations/pull/65) -- [66: Fix of incorrect parsing multibyte strings](https://github.com/doctrine/annotations/pull/66) -- [68: Annotations that are indented by tab are not processed.](https://github.com/doctrine/annotations/issues/68) -- [69: Support for Group Use Statements](https://github.com/doctrine/annotations/pull/69) -- [70: Allow tab character before first annotation in DocBlock](https://github.com/doctrine/annotations/pull/70) -- [74: Ignore not registered annotations fix](https://github.com/doctrine/annotations/pull/74) -- [92: Added tests for AnnotationRegistry class.](https://github.com/doctrine/annotations/pull/92) -- [96: Fix/#62 check trait and parent class ttl in annotations](https://github.com/doctrine/annotations/pull/96) -- [97: Feature - #45 - allow ignoring entire namespaces](https://github.com/doctrine/annotations/pull/97) -- [98: Enhancement/#65 remove cache salt from cached reader](https://github.com/doctrine/annotations/pull/98) -- [99: Fix - #70 - allow tab character before first annotation in docblock](https://github.com/doctrine/annotations/pull/99) - -### 1.2.4 - -Total issues resolved: **1** - -- [51: FileCacheReader::saveCacheFile::unlink fix](https://github.com/doctrine/annotations/pull/51) - -### 1.2.3 - -Total issues resolved: [**2**](https://github.com/doctrine/annotations/milestones/v1.2.3) - -- [49: #46 - applying correct `chmod()` to generated cache file](https://github.com/doctrine/annotations/pull/49) -- [50: Hotfix: match escaped quotes (revert #44)](https://github.com/doctrine/annotations/pull/50) - -### 1.2.2 - -Total issues resolved: **4** - -- [43: Exclude files from distribution with .gitattributes](https://github.com/doctrine/annotations/pull/43) -- [44: Update DocLexer.php](https://github.com/doctrine/annotations/pull/44) -- [46: A plain "file_put_contents" can cause havoc](https://github.com/doctrine/annotations/pull/46) -- [48: Deprecating the `FileCacheReader` in 1.2.2: will be removed in 2.0.0](https://github.com/doctrine/annotations/pull/48) - -### 1.2.1 - -Total issues resolved: **4** - -- [38: fixes doctrine/common#326](https://github.com/doctrine/annotations/pull/38) -- [39: Remove superfluous NS](https://github.com/doctrine/annotations/pull/39) -- [41: Warn if load_comments is not enabled.](https://github.com/doctrine/annotations/pull/41) -- [42: Clean up unused uses](https://github.com/doctrine/annotations/pull/42) - -### 1.2.0 - - * HHVM support - * Allowing dangling comma in annotations - * Excluded annotations are no longer autoloaded - * Importing namespaces also in traits - * Added support for `::class` 5.5-style constant, works also in 5.3 and 5.4 - -### 1.1.0 - - * Add Exception when ZendOptimizer+ or Opcache is configured to drop comments diff --git a/vendor/doctrine/annotations/LICENSE b/vendor/doctrine/annotations/LICENSE deleted file mode 100644 index 5e781fc..0000000 --- a/vendor/doctrine/annotations/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2013 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/doctrine/annotations/README.md b/vendor/doctrine/annotations/README.md deleted file mode 100644 index 8f89ea5..0000000 --- a/vendor/doctrine/annotations/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Doctrine Annotations - -[![Build Status](https://travis-ci.org/doctrine/annotations.svg?branch=master)](https://travis-ci.org/doctrine/annotations) -[![Dependency Status](https://www.versioneye.com/package/php--doctrine--annotations/badge.png)](https://www.versioneye.com/package/php--doctrine--annotations) -[![Reference Status](https://www.versioneye.com/php/doctrine:annotations/reference_badge.svg)](https://www.versioneye.com/php/doctrine:annotations/references) -[![Total Downloads](https://poser.pugx.org/doctrine/annotations/downloads.png)](https://packagist.org/packages/doctrine/annotations) -[![Latest Stable Version](https://poser.pugx.org/doctrine/annotations/v/stable.png)](https://packagist.org/packages/doctrine/annotations) - -Docblock Annotations Parser library (extracted from [Doctrine Common](https://github.com/doctrine/common)). - -## Documentation - -See the [doctrine-project website](http://docs.doctrine-project.org/projects/doctrine-common/en/latest/reference/annotations.html). - -## Changelog - -See [CHANGELOG.md](CHANGELOG.md). diff --git a/vendor/doctrine/annotations/composer.json b/vendor/doctrine/annotations/composer.json deleted file mode 100644 index cd5b630..0000000 --- a/vendor/doctrine/annotations/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "doctrine/annotations", - "type": "library", - "description": "Docblock Annotations Parser", - "keywords": ["annotations", "docblock", "parser"], - "homepage": "http://www.doctrine-project.org", - "license": "MIT", - "authors": [ - {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, - {"name": "Roman Borschel", "email": "roman@code-factory.org"}, - {"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"}, - {"name": "Jonathan Wage", "email": "jonwage@gmail.com"}, - {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"} - ], - "require": { - "php": "^7.1", - "doctrine/lexer": "1.*" - }, - "require-dev": { - "doctrine/cache": "1.*", - "phpunit/phpunit": "^6.4" - }, - "autoload": { - "psr-4": { "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" } - }, - "autoload-dev": { - "psr-4": { "Doctrine\\Tests\\Common\\Annotations\\": "tests/Doctrine/Tests/Common/Annotations" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php deleted file mode 100644 index a79a0f8..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation.php +++ /dev/null @@ -1,79 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -/** - * Annotations class. - * - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - */ -class Annotation -{ - /** - * Value property. Common among all derived classes. - * - * @var string - */ - public $value; - - /** - * Constructor. - * - * @param array $data Key-value for properties to be defined in this class. - */ - public final function __construct(array $data) - { - foreach ($data as $key => $value) { - $this->$key = $value; - } - } - - /** - * Error handler for unknown property accessor in Annotation class. - * - * @param string $name Unknown property name. - * - * @throws \BadMethodCallException - */ - public function __get($name) - { - throw new \BadMethodCallException( - sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this)) - ); - } - - /** - * Error handler for unknown property mutator in Annotation class. - * - * @param string $name Unknown property name. - * @param mixed $value Property value. - * - * @throws \BadMethodCallException - */ - public function __set($name, $value) - { - throw new \BadMethodCallException( - sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this)) - ); - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php deleted file mode 100644 index dbef6df..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attribute.php +++ /dev/null @@ -1,47 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations\Annotation; - -/** - * Annotation that can be used to signal to the parser - * to check the attribute type during the parsing process. - * - * @author Fabio B. Silva - * - * @Annotation - */ -final class Attribute -{ - /** - * @var string - */ - public $name; - - /** - * @var string - */ - public $type; - - /** - * @var boolean - */ - public $required = false; -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php deleted file mode 100644 index 53134e3..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Attributes.php +++ /dev/null @@ -1,37 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations\Annotation; - -/** - * Annotation that can be used to signal to the parser - * to check the types of all declared attributes during the parsing process. - * - * @author Fabio B. Silva - * - * @Annotation - */ -final class Attributes -{ - /** - * @var array - */ - public $value; -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php deleted file mode 100644 index e122a75..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Enum.php +++ /dev/null @@ -1,84 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations\Annotation; - -/** - * Annotation that can be used to signal to the parser - * to check the available values during the parsing process. - * - * @since 2.4 - * @author Fabio B. Silva - * - * @Annotation - * @Attributes({ - * @Attribute("value", required = true, type = "array"), - * @Attribute("literal", required = false, type = "array") - * }) - */ -final class Enum -{ - /** - * @var array - */ - public $value; - - /** - * Literal target declaration. - * - * @var array - */ - public $literal; - - /** - * Annotation constructor. - * - * @param array $values - * - * @throws \InvalidArgumentException - */ - public function __construct(array $values) - { - if ( ! isset($values['literal'])) { - $values['literal'] = array(); - } - - foreach ($values['value'] as $var) { - if( ! is_scalar($var)) { - throw new \InvalidArgumentException(sprintf( - '@Enum supports only scalar values "%s" given.', - is_object($var) ? get_class($var) : gettype($var) - )); - } - } - - foreach ($values['literal'] as $key => $var) { - if( ! in_array($key, $values['value'])) { - throw new \InvalidArgumentException(sprintf( - 'Undefined enumerator value "%s" for literal "%s".', - $key , $var - )); - } - } - - $this->value = $values['value']; - $this->literal = $values['literal']; - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php deleted file mode 100644 index 175226a..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php +++ /dev/null @@ -1,54 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations\Annotation; - -/** - * Annotation that can be used to signal to the parser to ignore specific - * annotations during the parsing process. - * - * @Annotation - * @author Johannes M. Schmitt - */ -final class IgnoreAnnotation -{ - /** - * @var array - */ - public $names; - - /** - * Constructor. - * - * @param array $values - * - * @throws \RuntimeException - */ - public function __construct(array $values) - { - if (is_string($values['value'])) { - $values['value'] = array($values['value']); - } - if (!is_array($values['value'])) { - throw new \RuntimeException(sprintf('@IgnoreAnnotation expects either a string name, or an array of strings, but got %s.', json_encode($values['value']))); - } - - $this->names = $values['value']; - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php deleted file mode 100644 index d67f960..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Required.php +++ /dev/null @@ -1,33 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations\Annotation; - -/** - * Annotation that can be used to signal to the parser - * to check if that attribute is required during the parsing process. - * - * @author Fabio B. Silva - * - * @Annotation - */ -final class Required -{ -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php deleted file mode 100644 index f6c5445..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Annotation/Target.php +++ /dev/null @@ -1,107 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations\Annotation; - -/** - * Annotation that can be used to signal to the parser - * to check the annotation target during the parsing process. - * - * @author Fabio B. Silva - * - * @Annotation - */ -final class Target -{ - const TARGET_CLASS = 1; - const TARGET_METHOD = 2; - const TARGET_PROPERTY = 4; - const TARGET_ANNOTATION = 8; - const TARGET_ALL = 15; - - /** - * @var array - */ - private static $map = array( - 'ALL' => self::TARGET_ALL, - 'CLASS' => self::TARGET_CLASS, - 'METHOD' => self::TARGET_METHOD, - 'PROPERTY' => self::TARGET_PROPERTY, - 'ANNOTATION' => self::TARGET_ANNOTATION, - ); - - /** - * @var array - */ - public $value; - - /** - * Targets as bitmask. - * - * @var integer - */ - public $targets; - - /** - * Literal target declaration. - * - * @var integer - */ - public $literal; - - /** - * Annotation constructor. - * - * @param array $values - * - * @throws \InvalidArgumentException - */ - public function __construct(array $values) - { - if (!isset($values['value'])){ - $values['value'] = null; - } - if (is_string($values['value'])){ - $values['value'] = array($values['value']); - } - if (!is_array($values['value'])){ - throw new \InvalidArgumentException( - sprintf('@Target expects either a string value, or an array of strings, "%s" given.', - is_object($values['value']) ? get_class($values['value']) : gettype($values['value']) - ) - ); - } - - $bitmask = 0; - foreach ($values['value'] as $literal) { - if(!isset(self::$map[$literal])){ - throw new \InvalidArgumentException( - sprintf('Invalid Target "%s". Available targets: [%s]', - $literal, implode(', ', array_keys(self::$map))) - ); - } - $bitmask |= self::$map[$literal]; - } - - $this->targets = $bitmask; - $this->value = $values['value']; - $this->literal = implode(', ', $this->value); - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php deleted file mode 100644 index d06fe66..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php +++ /dev/null @@ -1,197 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -/** - * Description of AnnotationException - * - * @since 2.0 - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - */ -class AnnotationException extends \Exception -{ - /** - * Creates a new AnnotationException describing a Syntax error. - * - * @param string $message Exception message - * - * @return AnnotationException - */ - public static function syntaxError($message) - { - return new self('[Syntax Error] ' . $message); - } - - /** - * Creates a new AnnotationException describing a Semantical error. - * - * @param string $message Exception message - * - * @return AnnotationException - */ - public static function semanticalError($message) - { - return new self('[Semantical Error] ' . $message); - } - - /** - * Creates a new AnnotationException describing an error which occurred during - * the creation of the annotation. - * - * @since 2.2 - * - * @param string $message - * - * @return AnnotationException - */ - public static function creationError($message) - { - return new self('[Creation Error] ' . $message); - } - - /** - * Creates a new AnnotationException describing a type error. - * - * @since 1.1 - * - * @param string $message - * - * @return AnnotationException - */ - public static function typeError($message) - { - return new self('[Type Error] ' . $message); - } - - /** - * Creates a new AnnotationException describing a constant semantical error. - * - * @since 2.3 - * - * @param string $identifier - * @param string $context - * - * @return AnnotationException - */ - public static function semanticalErrorConstants($identifier, $context = null) - { - return self::semanticalError(sprintf( - "Couldn't find constant %s%s.", - $identifier, - $context ? ', ' . $context : '' - )); - } - - /** - * Creates a new AnnotationException describing an type error of an attribute. - * - * @since 2.2 - * - * @param string $attributeName - * @param string $annotationName - * @param string $context - * @param string $expected - * @param mixed $actual - * - * @return AnnotationException - */ - public static function attributeTypeError($attributeName, $annotationName, $context, $expected, $actual) - { - return self::typeError(sprintf( - 'Attribute "%s" of @%s declared on %s expects %s, but got %s.', - $attributeName, - $annotationName, - $context, - $expected, - is_object($actual) ? 'an instance of ' . get_class($actual) : gettype($actual) - )); - } - - /** - * Creates a new AnnotationException describing an required error of an attribute. - * - * @since 2.2 - * - * @param string $attributeName - * @param string $annotationName - * @param string $context - * @param string $expected - * - * @return AnnotationException - */ - public static function requiredError($attributeName, $annotationName, $context, $expected) - { - return self::typeError(sprintf( - 'Attribute "%s" of @%s declared on %s expects %s. This value should not be null.', - $attributeName, - $annotationName, - $context, - $expected - )); - } - - /** - * Creates a new AnnotationException describing a invalid enummerator. - * - * @since 2.4 - * - * @param string $attributeName - * @param string $annotationName - * @param string $context - * @param array $available - * @param mixed $given - * - * @return AnnotationException - */ - public static function enumeratorError($attributeName, $annotationName, $context, $available, $given) - { - return new self(sprintf( - '[Enum Error] Attribute "%s" of @%s declared on %s accept only [%s], but got %s.', - $attributeName, - $annotationName, - $context, - implode(', ', $available), - is_object($given) ? get_class($given) : $given - )); - } - - /** - * @return AnnotationException - */ - public static function optimizerPlusSaveComments() - { - return new self( - "You have to enable opcache.save_comments=1 or zend_optimizerplus.save_comments=1." - ); - } - - /** - * @return AnnotationException - */ - public static function optimizerPlusLoadComments() - { - return new self( - "You have to enable opcache.load_comments=1 or zend_optimizerplus.load_comments=1." - ); - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php deleted file mode 100644 index 0c06049..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php +++ /dev/null @@ -1,425 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -use Doctrine\Common\Annotations\Annotation\IgnoreAnnotation; -use Doctrine\Common\Annotations\Annotation\Target; -use ReflectionClass; -use ReflectionMethod; -use ReflectionProperty; - -/** - * A reader for docblock annotations. - * - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author Johannes M. Schmitt - */ -class AnnotationReader implements Reader -{ - /** - * Global map for imports. - * - * @var array - */ - private static $globalImports = array( - 'ignoreannotation' => 'Doctrine\Common\Annotations\Annotation\IgnoreAnnotation', - ); - - /** - * A list with annotations that are not causing exceptions when not resolved to an annotation class. - * - * The names are case sensitive. - * - * @var array - */ - private static $globalIgnoredNames = array( - // Annotation tags - 'Annotation' => true, 'Attribute' => true, 'Attributes' => true, - /* Can we enable this? 'Enum' => true, */ - 'Required' => true, - 'Target' => true, - // Widely used tags (but not existent in phpdoc) - 'fix' => true , 'fixme' => true, - 'override' => true, - // PHPDocumentor 1 tags - 'abstract'=> true, 'access'=> true, - 'code' => true, - 'deprec'=> true, - 'endcode' => true, 'exception'=> true, - 'final'=> true, - 'ingroup' => true, 'inheritdoc'=> true, 'inheritDoc'=> true, - 'magic' => true, - 'name'=> true, - 'toc' => true, 'tutorial'=> true, - 'private' => true, - 'static'=> true, 'staticvar'=> true, 'staticVar'=> true, - 'throw' => true, - // PHPDocumentor 2 tags. - 'api' => true, 'author'=> true, - 'category'=> true, 'copyright'=> true, - 'deprecated'=> true, - 'example'=> true, - 'filesource'=> true, - 'global'=> true, - 'ignore'=> true, /* Can we enable this? 'index' => true, */ 'internal'=> true, - 'license'=> true, 'link'=> true, - 'method' => true, - 'package'=> true, 'param'=> true, 'property' => true, 'property-read' => true, 'property-write' => true, - 'return'=> true, - 'see'=> true, 'since'=> true, 'source' => true, 'subpackage'=> true, - 'throws'=> true, 'todo'=> true, 'TODO'=> true, - 'usedby'=> true, 'uses' => true, - 'var'=> true, 'version'=> true, - // PHPUnit tags - 'codeCoverageIgnore' => true, 'codeCoverageIgnoreStart' => true, 'codeCoverageIgnoreEnd' => true, - // PHPCheckStyle - 'SuppressWarnings' => true, - // PHPStorm - 'noinspection' => true, - // PEAR - 'package_version' => true, - // PlantUML - 'startuml' => true, 'enduml' => true, - // Symfony 3.3 Cache Adapter - 'experimental' => true - ); - - /** - * A list with annotations that are not causing exceptions when not resolved to an annotation class. - * - * The names are case sensitive. - * - * @var array - */ - private static $globalIgnoredNamespaces = array(); - - /** - * Add a new annotation to the globally ignored annotation names with regard to exception handling. - * - * @param string $name - */ - static public function addGlobalIgnoredName($name) - { - self::$globalIgnoredNames[$name] = true; - } - - /** - * Add a new annotation to the globally ignored annotation namespaces with regard to exception handling. - * - * @param string $namespace - */ - static public function addGlobalIgnoredNamespace($namespace) - { - self::$globalIgnoredNamespaces[$namespace] = true; - } - - /** - * Annotations parser. - * - * @var \Doctrine\Common\Annotations\DocParser - */ - private $parser; - - /** - * Annotations parser used to collect parsing metadata. - * - * @var \Doctrine\Common\Annotations\DocParser - */ - private $preParser; - - /** - * PHP parser used to collect imports. - * - * @var \Doctrine\Common\Annotations\PhpParser - */ - private $phpParser; - - /** - * In-memory cache mechanism to store imported annotations per class. - * - * @var array - */ - private $imports = array(); - - /** - * In-memory cache mechanism to store ignored annotations per class. - * - * @var array - */ - private $ignoredAnnotationNames = array(); - - /** - * Constructor. - * - * Initializes a new AnnotationReader. - * - * @param DocParser $parser - * - * @throws AnnotationException - */ - public function __construct(DocParser $parser = null) - { - if (extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.save_comments') === "0" || ini_get('opcache.save_comments') === "0")) { - throw AnnotationException::optimizerPlusSaveComments(); - } - - if (extension_loaded('Zend OPcache') && ini_get('opcache.save_comments') == 0) { - throw AnnotationException::optimizerPlusSaveComments(); - } - - if (PHP_VERSION_ID < 70000) { - if (extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.load_comments') === "0" || ini_get('opcache.load_comments') === "0")) { - throw AnnotationException::optimizerPlusLoadComments(); - } - - if (extension_loaded('Zend OPcache') && ini_get('opcache.load_comments') == 0) { - throw AnnotationException::optimizerPlusLoadComments(); - } - } - - AnnotationRegistry::registerFile(__DIR__ . '/Annotation/IgnoreAnnotation.php'); - - $this->parser = $parser ?: new DocParser(); - - $this->preParser = new DocParser; - - $this->preParser->setImports(self::$globalImports); - $this->preParser->setIgnoreNotImportedAnnotations(true); - - $this->phpParser = new PhpParser; - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotations(ReflectionClass $class) - { - $this->parser->setTarget(Target::TARGET_CLASS); - $this->parser->setImports($this->getClassImports($class)); - $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class)); - $this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces); - - return $this->parser->parse($class->getDocComment(), 'class ' . $class->getName()); - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotation(ReflectionClass $class, $annotationName) - { - $annotations = $this->getClassAnnotations($class); - - foreach ($annotations as $annotation) { - if ($annotation instanceof $annotationName) { - return $annotation; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotations(ReflectionProperty $property) - { - $class = $property->getDeclaringClass(); - $context = 'property ' . $class->getName() . "::\$" . $property->getName(); - - $this->parser->setTarget(Target::TARGET_PROPERTY); - $this->parser->setImports($this->getPropertyImports($property)); - $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class)); - $this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces); - - return $this->parser->parse($property->getDocComment(), $context); - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotation(ReflectionProperty $property, $annotationName) - { - $annotations = $this->getPropertyAnnotations($property); - - foreach ($annotations as $annotation) { - if ($annotation instanceof $annotationName) { - return $annotation; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotations(ReflectionMethod $method) - { - $class = $method->getDeclaringClass(); - $context = 'method ' . $class->getName() . '::' . $method->getName() . '()'; - - $this->parser->setTarget(Target::TARGET_METHOD); - $this->parser->setImports($this->getMethodImports($method)); - $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class)); - $this->parser->setIgnoredAnnotationNamespaces(self::$globalIgnoredNamespaces); - - return $this->parser->parse($method->getDocComment(), $context); - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotation(ReflectionMethod $method, $annotationName) - { - $annotations = $this->getMethodAnnotations($method); - - foreach ($annotations as $annotation) { - if ($annotation instanceof $annotationName) { - return $annotation; - } - } - - return null; - } - - /** - * Returns the ignored annotations for the given class. - * - * @param \ReflectionClass $class - * - * @return array - */ - private function getIgnoredAnnotationNames(ReflectionClass $class) - { - $name = $class->getName(); - if (isset($this->ignoredAnnotationNames[$name])) { - return $this->ignoredAnnotationNames[$name]; - } - - $this->collectParsingMetadata($class); - - return $this->ignoredAnnotationNames[$name]; - } - - /** - * Retrieves imports. - * - * @param \ReflectionClass $class - * - * @return array - */ - private function getClassImports(ReflectionClass $class) - { - $name = $class->getName(); - if (isset($this->imports[$name])) { - return $this->imports[$name]; - } - - $this->collectParsingMetadata($class); - - return $this->imports[$name]; - } - - /** - * Retrieves imports for methods. - * - * @param \ReflectionMethod $method - * - * @return array - */ - private function getMethodImports(ReflectionMethod $method) - { - $class = $method->getDeclaringClass(); - $classImports = $this->getClassImports($class); - if (!method_exists($class, 'getTraits')) { - return $classImports; - } - - $traitImports = array(); - - foreach ($class->getTraits() as $trait) { - if ($trait->hasMethod($method->getName()) - && $trait->getFileName() === $method->getFileName() - ) { - $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait)); - } - } - - return array_merge($classImports, $traitImports); - } - - /** - * Retrieves imports for properties. - * - * @param \ReflectionProperty $property - * - * @return array - */ - private function getPropertyImports(ReflectionProperty $property) - { - $class = $property->getDeclaringClass(); - $classImports = $this->getClassImports($class); - if (!method_exists($class, 'getTraits')) { - return $classImports; - } - - $traitImports = array(); - - foreach ($class->getTraits() as $trait) { - if ($trait->hasProperty($property->getName())) { - $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait)); - } - } - - return array_merge($classImports, $traitImports); - } - - /** - * Collects parsing metadata for a given class. - * - * @param \ReflectionClass $class - */ - private function collectParsingMetadata(ReflectionClass $class) - { - $ignoredAnnotationNames = self::$globalIgnoredNames; - $annotations = $this->preParser->parse($class->getDocComment(), 'class ' . $class->name); - - foreach ($annotations as $annotation) { - if ($annotation instanceof IgnoreAnnotation) { - foreach ($annotation->names AS $annot) { - $ignoredAnnotationNames[$annot] = true; - } - } - } - - $name = $class->getName(); - - $this->imports[$name] = array_merge( - self::$globalImports, - $this->phpParser->parseClass($class), - array('__NAMESPACE__' => $class->getNamespaceName()) - ); - - $this->ignoredAnnotationNames[$name] = $ignoredAnnotationNames; - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php deleted file mode 100644 index 13abaf5..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php +++ /dev/null @@ -1,174 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -final class AnnotationRegistry -{ - /** - * A map of namespaces to use for autoloading purposes based on a PSR-0 convention. - * - * Contains the namespace as key and an array of directories as value. If the value is NULL - * the include path is used for checking for the corresponding file. - * - * This autoloading mechanism does not utilize the PHP autoloading but implements autoloading on its own. - * - * @var string[][]|string[]|null[] - */ - static private $autoloadNamespaces = []; - - /** - * A map of autoloader callables. - * - * @var callable[] - */ - static private $loaders = []; - - /** - * An array of classes which cannot be found - * - * @var null[] indexed by class name - */ - static private $failedToAutoload = []; - - public static function reset() : void - { - self::$autoloadNamespaces = []; - self::$loaders = []; - self::$failedToAutoload = []; - } - - /** - * Registers file. - * - * @deprecated this method is deprecated and will be removed in doctrine/annotations 2.0 - * autoloading should be deferred to the globally registered autoloader by then. For now, - * use @example AnnotationRegistry::registerLoader('class_exists') - */ - public static function registerFile(string $file) : void - { - require_once $file; - } - - /** - * Adds a namespace with one or many directories to look for files or null for the include path. - * - * Loading of this namespaces will be done with a PSR-0 namespace loading algorithm. - * - * @param string $namespace - * @param string|array|null $dirs - * - * @deprecated this method is deprecated and will be removed in doctrine/annotations 2.0 - * autoloading should be deferred to the globally registered autoloader by then. For now, - * use @example AnnotationRegistry::registerLoader('class_exists') - */ - public static function registerAutoloadNamespace(string $namespace, $dirs = null) : void - { - self::$autoloadNamespaces[$namespace] = $dirs; - } - - /** - * Registers multiple namespaces. - * - * Loading of this namespaces will be done with a PSR-0 namespace loading algorithm. - * - * @param string[][]|string[]|null[] $namespaces indexed by namespace name - * - * @deprecated this method is deprecated and will be removed in doctrine/annotations 2.0 - * autoloading should be deferred to the globally registered autoloader by then. For now, - * use @example AnnotationRegistry::registerLoader('class_exists') - */ - public static function registerAutoloadNamespaces(array $namespaces) : void - { - self::$autoloadNamespaces = \array_merge(self::$autoloadNamespaces, $namespaces); - } - - /** - * Registers an autoloading callable for annotations, much like spl_autoload_register(). - * - * NOTE: These class loaders HAVE to be silent when a class was not found! - * IMPORTANT: Loaders have to return true if they loaded a class that could contain the searched annotation class. - * - * @deprecated this method is deprecated and will be removed in doctrine/annotations 2.0 - * autoloading should be deferred to the globally registered autoloader by then. For now, - * use @example AnnotationRegistry::registerLoader('class_exists') - */ - public static function registerLoader(callable $callable) : void - { - // Reset our static cache now that we have a new loader to work with - self::$failedToAutoload = []; - self::$loaders[] = $callable; - } - - /** - * Registers an autoloading callable for annotations, if it is not already registered - * - * @deprecated this method is deprecated and will be removed in doctrine/annotations 2.0 - */ - public static function registerUniqueLoader(callable $callable) : void - { - if ( ! in_array($callable, self::$loaders, true) ) { - self::registerLoader($callable); - } - } - - /** - * Autoloads an annotation class silently. - */ - public static function loadAnnotationClass(string $class) : bool - { - if (\class_exists($class, false)) { - return true; - } - - if (\array_key_exists($class, self::$failedToAutoload)) { - return false; - } - - foreach (self::$autoloadNamespaces AS $namespace => $dirs) { - if (\strpos($class, $namespace) === 0) { - $file = \str_replace('\\', \DIRECTORY_SEPARATOR, $class) . '.php'; - - if ($dirs === null) { - if ($path = stream_resolve_include_path($file)) { - require $path; - return true; - } - } else { - foreach((array) $dirs AS $dir) { - if (is_file($dir . \DIRECTORY_SEPARATOR . $file)) { - require $dir . \DIRECTORY_SEPARATOR . $file; - return true; - } - } - } - } - } - - foreach (self::$loaders AS $loader) { - if ($loader($class) === true) { - return true; - } - } - - self::$failedToAutoload[$class] = null; - - return false; - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php deleted file mode 100644 index 751c1b1..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/CachedReader.php +++ /dev/null @@ -1,262 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -use Doctrine\Common\Cache\Cache; -use ReflectionClass; - -/** - * A cache aware annotation reader. - * - * @author Johannes M. Schmitt - * @author Benjamin Eberlei - */ -final class CachedReader implements Reader -{ - /** - * @var Reader - */ - private $delegate; - - /** - * @var Cache - */ - private $cache; - - /** - * @var boolean - */ - private $debug; - - /** - * @var array - */ - private $loadedAnnotations = array(); - - /** - * Constructor. - * - * @param Reader $reader - * @param Cache $cache - * @param bool $debug - */ - public function __construct(Reader $reader, Cache $cache, $debug = false) - { - $this->delegate = $reader; - $this->cache = $cache; - $this->debug = (boolean) $debug; - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotations(ReflectionClass $class) - { - $cacheKey = $class->getName(); - - if (isset($this->loadedAnnotations[$cacheKey])) { - return $this->loadedAnnotations[$cacheKey]; - } - - if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) { - $annots = $this->delegate->getClassAnnotations($class); - $this->saveToCache($cacheKey, $annots); - } - - return $this->loadedAnnotations[$cacheKey] = $annots; - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotation(ReflectionClass $class, $annotationName) - { - foreach ($this->getClassAnnotations($class) as $annot) { - if ($annot instanceof $annotationName) { - return $annot; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotations(\ReflectionProperty $property) - { - $class = $property->getDeclaringClass(); - $cacheKey = $class->getName().'$'.$property->getName(); - - if (isset($this->loadedAnnotations[$cacheKey])) { - return $this->loadedAnnotations[$cacheKey]; - } - - if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) { - $annots = $this->delegate->getPropertyAnnotations($property); - $this->saveToCache($cacheKey, $annots); - } - - return $this->loadedAnnotations[$cacheKey] = $annots; - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName) - { - foreach ($this->getPropertyAnnotations($property) as $annot) { - if ($annot instanceof $annotationName) { - return $annot; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotations(\ReflectionMethod $method) - { - $class = $method->getDeclaringClass(); - $cacheKey = $class->getName().'#'.$method->getName(); - - if (isset($this->loadedAnnotations[$cacheKey])) { - return $this->loadedAnnotations[$cacheKey]; - } - - if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) { - $annots = $this->delegate->getMethodAnnotations($method); - $this->saveToCache($cacheKey, $annots); - } - - return $this->loadedAnnotations[$cacheKey] = $annots; - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotation(\ReflectionMethod $method, $annotationName) - { - foreach ($this->getMethodAnnotations($method) as $annot) { - if ($annot instanceof $annotationName) { - return $annot; - } - } - - return null; - } - - /** - * Clears loaded annotations. - * - * @return void - */ - public function clearLoadedAnnotations() - { - $this->loadedAnnotations = array(); - } - - /** - * Fetches a value from the cache. - * - * @param string $cacheKey The cache key. - * @param ReflectionClass $class The related class. - * - * @return mixed The cached value or false when the value is not in cache. - */ - private function fetchFromCache($cacheKey, ReflectionClass $class) - { - if (($data = $this->cache->fetch($cacheKey)) !== false) { - if (!$this->debug || $this->isCacheFresh($cacheKey, $class)) { - return $data; - } - } - - return false; - } - - /** - * Saves a value to the cache. - * - * @param string $cacheKey The cache key. - * @param mixed $value The value. - * - * @return void - */ - private function saveToCache($cacheKey, $value) - { - $this->cache->save($cacheKey, $value); - if ($this->debug) { - $this->cache->save('[C]'.$cacheKey, time()); - } - } - - /** - * Checks if the cache is fresh. - * - * @param string $cacheKey - * @param ReflectionClass $class - * - * @return boolean - */ - private function isCacheFresh($cacheKey, ReflectionClass $class) - { - if (null === $lastModification = $this->getLastModification($class)) { - return true; - } - - return $this->cache->fetch('[C]'.$cacheKey) >= $lastModification; - } - - /** - * Returns the time the class was last modified, testing traits and parents - * - * @param ReflectionClass $class - * @return int - */ - private function getLastModification(ReflectionClass $class) - { - $filename = $class->getFileName(); - $parent = $class->getParentClass(); - - return max(array_merge( - [$filename ? filemtime($filename) : 0], - array_map([$this, 'getTraitLastModificationTime'], $class->getTraits()), - array_map([$this, 'getLastModification'], $class->getInterfaces()), - $parent ? [$this->getLastModification($parent)] : [] - )); - } - - /** - * @param ReflectionClass $reflectionTrait - * @return int - */ - private function getTraitLastModificationTime(ReflectionClass $reflectionTrait) - { - $fileName = $reflectionTrait->getFileName(); - - return max(array_merge( - [$fileName ? filemtime($fileName) : 0], - array_map([$this, 'getTraitLastModificationTime'], $reflectionTrait->getTraits()) - )); - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php deleted file mode 100644 index d864540..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocLexer.php +++ /dev/null @@ -1,134 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -use Doctrine\Common\Lexer\AbstractLexer; - -/** - * Simple lexer for docblock annotations. - * - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author Johannes M. Schmitt - */ -final class DocLexer extends AbstractLexer -{ - const T_NONE = 1; - const T_INTEGER = 2; - const T_STRING = 3; - const T_FLOAT = 4; - - // All tokens that are also identifiers should be >= 100 - const T_IDENTIFIER = 100; - const T_AT = 101; - const T_CLOSE_CURLY_BRACES = 102; - const T_CLOSE_PARENTHESIS = 103; - const T_COMMA = 104; - const T_EQUALS = 105; - const T_FALSE = 106; - const T_NAMESPACE_SEPARATOR = 107; - const T_OPEN_CURLY_BRACES = 108; - const T_OPEN_PARENTHESIS = 109; - const T_TRUE = 110; - const T_NULL = 111; - const T_COLON = 112; - - /** - * @var array - */ - protected $noCase = array( - '@' => self::T_AT, - ',' => self::T_COMMA, - '(' => self::T_OPEN_PARENTHESIS, - ')' => self::T_CLOSE_PARENTHESIS, - '{' => self::T_OPEN_CURLY_BRACES, - '}' => self::T_CLOSE_CURLY_BRACES, - '=' => self::T_EQUALS, - ':' => self::T_COLON, - '\\' => self::T_NAMESPACE_SEPARATOR - ); - - /** - * @var array - */ - protected $withCase = array( - 'true' => self::T_TRUE, - 'false' => self::T_FALSE, - 'null' => self::T_NULL - ); - - /** - * {@inheritdoc} - */ - protected function getCatchablePatterns() - { - return array( - '[a-z_\\\][a-z0-9_\:\\\]*[a-z_][a-z0-9_]*', - '(?:[+-]?[0-9]+(?:[\.][0-9]+)*)(?:[eE][+-]?[0-9]+)?', - '"(?:""|[^"])*+"', - ); - } - - /** - * {@inheritdoc} - */ - protected function getNonCatchablePatterns() - { - return array('\s+', '\*+', '(.)'); - } - - /** - * {@inheritdoc} - */ - protected function getType(&$value) - { - $type = self::T_NONE; - - if ($value[0] === '"') { - $value = str_replace('""', '"', substr($value, 1, strlen($value) - 2)); - - return self::T_STRING; - } - - if (isset($this->noCase[$value])) { - return $this->noCase[$value]; - } - - if ($value[0] === '_' || $value[0] === '\\' || ctype_alpha($value[0])) { - return self::T_IDENTIFIER; - } - - $lowerValue = strtolower($value); - - if (isset($this->withCase[$lowerValue])) { - return $this->withCase[$lowerValue]; - } - - // Checking numeric value - if (is_numeric($value)) { - return (strpos($value, '.') !== false || stripos($value, 'e') !== false) - ? self::T_FLOAT : self::T_INTEGER; - } - - return $type; - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php deleted file mode 100644 index eb7a457..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php +++ /dev/null @@ -1,1190 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -use Doctrine\Common\Annotations\Annotation\Attribute; -use ReflectionClass; -use Doctrine\Common\Annotations\Annotation\Enum; -use Doctrine\Common\Annotations\Annotation\Target; -use Doctrine\Common\Annotations\Annotation\Attributes; - -/** - * A parser for docblock annotations. - * - * It is strongly discouraged to change the default annotation parsing process. - * - * @author Benjamin Eberlei - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author Johannes M. Schmitt - * @author Fabio B. Silva - */ -final class DocParser -{ - /** - * An array of all valid tokens for a class name. - * - * @var array - */ - private static $classIdentifiers = array( - DocLexer::T_IDENTIFIER, - DocLexer::T_TRUE, - DocLexer::T_FALSE, - DocLexer::T_NULL - ); - - /** - * The lexer. - * - * @var \Doctrine\Common\Annotations\DocLexer - */ - private $lexer; - - /** - * Current target context. - * - * @var integer - */ - private $target; - - /** - * Doc parser used to collect annotation target. - * - * @var \Doctrine\Common\Annotations\DocParser - */ - private static $metadataParser; - - /** - * Flag to control if the current annotation is nested or not. - * - * @var boolean - */ - private $isNestedAnnotation = false; - - /** - * Hashmap containing all use-statements that are to be used when parsing - * the given doc block. - * - * @var array - */ - private $imports = array(); - - /** - * This hashmap is used internally to cache results of class_exists() - * look-ups. - * - * @var array - */ - private $classExists = array(); - - /** - * Whether annotations that have not been imported should be ignored. - * - * @var boolean - */ - private $ignoreNotImportedAnnotations = false; - - /** - * An array of default namespaces if operating in simple mode. - * - * @var string[] - */ - private $namespaces = array(); - - /** - * A list with annotations that are not causing exceptions when not resolved to an annotation class. - * - * The names must be the raw names as used in the class, not the fully qualified - * class names. - * - * @var bool[] indexed by annotation name - */ - private $ignoredAnnotationNames = array(); - - /** - * A list with annotations in namespaced format - * that are not causing exceptions when not resolved to an annotation class. - * - * @var bool[] indexed by namespace name - */ - private $ignoredAnnotationNamespaces = array(); - - /** - * @var string - */ - private $context = ''; - - /** - * Hash-map for caching annotation metadata. - * - * @var array - */ - private static $annotationMetadata = array( - 'Doctrine\Common\Annotations\Annotation\Target' => array( - 'is_annotation' => true, - 'has_constructor' => true, - 'properties' => array(), - 'targets_literal' => 'ANNOTATION_CLASS', - 'targets' => Target::TARGET_CLASS, - 'default_property' => 'value', - 'attribute_types' => array( - 'value' => array( - 'required' => false, - 'type' =>'array', - 'array_type'=>'string', - 'value' =>'array' - ) - ), - ), - 'Doctrine\Common\Annotations\Annotation\Attribute' => array( - 'is_annotation' => true, - 'has_constructor' => false, - 'targets_literal' => 'ANNOTATION_ANNOTATION', - 'targets' => Target::TARGET_ANNOTATION, - 'default_property' => 'name', - 'properties' => array( - 'name' => 'name', - 'type' => 'type', - 'required' => 'required' - ), - 'attribute_types' => array( - 'value' => array( - 'required' => true, - 'type' =>'string', - 'value' =>'string' - ), - 'type' => array( - 'required' =>true, - 'type' =>'string', - 'value' =>'string' - ), - 'required' => array( - 'required' =>false, - 'type' =>'boolean', - 'value' =>'boolean' - ) - ), - ), - 'Doctrine\Common\Annotations\Annotation\Attributes' => array( - 'is_annotation' => true, - 'has_constructor' => false, - 'targets_literal' => 'ANNOTATION_CLASS', - 'targets' => Target::TARGET_CLASS, - 'default_property' => 'value', - 'properties' => array( - 'value' => 'value' - ), - 'attribute_types' => array( - 'value' => array( - 'type' =>'array', - 'required' =>true, - 'array_type'=>'Doctrine\Common\Annotations\Annotation\Attribute', - 'value' =>'array' - ) - ), - ), - 'Doctrine\Common\Annotations\Annotation\Enum' => array( - 'is_annotation' => true, - 'has_constructor' => true, - 'targets_literal' => 'ANNOTATION_PROPERTY', - 'targets' => Target::TARGET_PROPERTY, - 'default_property' => 'value', - 'properties' => array( - 'value' => 'value' - ), - 'attribute_types' => array( - 'value' => array( - 'type' => 'array', - 'required' => true, - ), - 'literal' => array( - 'type' => 'array', - 'required' => false, - ), - ), - ), - ); - - /** - * Hash-map for handle types declaration. - * - * @var array - */ - private static $typeMap = array( - 'float' => 'double', - 'bool' => 'boolean', - // allow uppercase Boolean in honor of George Boole - 'Boolean' => 'boolean', - 'int' => 'integer', - ); - - /** - * Constructs a new DocParser. - */ - public function __construct() - { - $this->lexer = new DocLexer; - } - - /** - * Sets the annotation names that are ignored during the parsing process. - * - * The names are supposed to be the raw names as used in the class, not the - * fully qualified class names. - * - * @param bool[] $names indexed by annotation name - * - * @return void - */ - public function setIgnoredAnnotationNames(array $names) - { - $this->ignoredAnnotationNames = $names; - } - - /** - * Sets the annotation namespaces that are ignored during the parsing process. - * - * @param bool[] $ignoredAnnotationNamespaces indexed by annotation namespace name - * - * @return void - */ - public function setIgnoredAnnotationNamespaces($ignoredAnnotationNamespaces) - { - $this->ignoredAnnotationNamespaces = $ignoredAnnotationNamespaces; - } - - /** - * Sets ignore on not-imported annotations. - * - * @param boolean $bool - * - * @return void - */ - public function setIgnoreNotImportedAnnotations($bool) - { - $this->ignoreNotImportedAnnotations = (boolean) $bool; - } - - /** - * Sets the default namespaces. - * - * @param string $namespace - * - * @return void - * - * @throws \RuntimeException - */ - public function addNamespace($namespace) - { - if ($this->imports) { - throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.'); - } - - $this->namespaces[] = $namespace; - } - - /** - * Sets the imports. - * - * @param array $imports - * - * @return void - * - * @throws \RuntimeException - */ - public function setImports(array $imports) - { - if ($this->namespaces) { - throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.'); - } - - $this->imports = $imports; - } - - /** - * Sets current target context as bitmask. - * - * @param integer $target - * - * @return void - */ - public function setTarget($target) - { - $this->target = $target; - } - - /** - * Parses the given docblock string for annotations. - * - * @param string $input The docblock string to parse. - * @param string $context The parsing context. - * - * @return array Array of annotations. If no annotations are found, an empty array is returned. - */ - public function parse($input, $context = '') - { - $pos = $this->findInitialTokenPosition($input); - if ($pos === null) { - return array(); - } - - $this->context = $context; - - $this->lexer->setInput(trim(substr($input, $pos), '* /')); - $this->lexer->moveNext(); - - return $this->Annotations(); - } - - /** - * Finds the first valid annotation - * - * @param string $input The docblock string to parse - * - * @return int|null - */ - private function findInitialTokenPosition($input) - { - $pos = 0; - - // search for first valid annotation - while (($pos = strpos($input, '@', $pos)) !== false) { - $preceding = substr($input, $pos - 1, 1); - - // if the @ is preceded by a space, a tab or * it is valid - if ($pos === 0 || $preceding === ' ' || $preceding === '*' || $preceding === "\t") { - return $pos; - } - - $pos++; - } - - return null; - } - - /** - * Attempts to match the given token with the current lookahead token. - * If they match, updates the lookahead token; otherwise raises a syntax error. - * - * @param integer $token Type of token. - * - * @return boolean True if tokens match; false otherwise. - */ - private function match($token) - { - if ( ! $this->lexer->isNextToken($token) ) { - $this->syntaxError($this->lexer->getLiteral($token)); - } - - return $this->lexer->moveNext(); - } - - /** - * Attempts to match the current lookahead token with any of the given tokens. - * - * If any of them matches, this method updates the lookahead token; otherwise - * a syntax error is raised. - * - * @param array $tokens - * - * @return boolean - */ - private function matchAny(array $tokens) - { - if ( ! $this->lexer->isNextTokenAny($tokens)) { - $this->syntaxError(implode(' or ', array_map(array($this->lexer, 'getLiteral'), $tokens))); - } - - return $this->lexer->moveNext(); - } - - /** - * Generates a new syntax error. - * - * @param string $expected Expected string. - * @param array|null $token Optional token. - * - * @return void - * - * @throws AnnotationException - */ - private function syntaxError($expected, $token = null) - { - if ($token === null) { - $token = $this->lexer->lookahead; - } - - $message = sprintf('Expected %s, got ', $expected); - $message .= ($this->lexer->lookahead === null) - ? 'end of string' - : sprintf("'%s' at position %s", $token['value'], $token['position']); - - if (strlen($this->context)) { - $message .= ' in ' . $this->context; - } - - $message .= '.'; - - throw AnnotationException::syntaxError($message); - } - - /** - * Attempts to check if a class exists or not. This never goes through the PHP autoloading mechanism - * but uses the {@link AnnotationRegistry} to load classes. - * - * @param string $fqcn - * - * @return boolean - */ - private function classExists($fqcn) - { - if (isset($this->classExists[$fqcn])) { - return $this->classExists[$fqcn]; - } - - // first check if the class already exists, maybe loaded through another AnnotationReader - if (class_exists($fqcn, false)) { - return $this->classExists[$fqcn] = true; - } - - // final check, does this class exist? - return $this->classExists[$fqcn] = AnnotationRegistry::loadAnnotationClass($fqcn); - } - - /** - * Collects parsing metadata for a given annotation class - * - * @param string $name The annotation name - * - * @return void - */ - private function collectAnnotationMetadata($name) - { - if (self::$metadataParser === null) { - self::$metadataParser = new self(); - - self::$metadataParser->setIgnoreNotImportedAnnotations(true); - self::$metadataParser->setIgnoredAnnotationNames($this->ignoredAnnotationNames); - self::$metadataParser->setImports(array( - 'enum' => 'Doctrine\Common\Annotations\Annotation\Enum', - 'target' => 'Doctrine\Common\Annotations\Annotation\Target', - 'attribute' => 'Doctrine\Common\Annotations\Annotation\Attribute', - 'attributes' => 'Doctrine\Common\Annotations\Annotation\Attributes' - )); - - AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Enum.php'); - AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Target.php'); - AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Attribute.php'); - AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Attributes.php'); - } - - $class = new \ReflectionClass($name); - $docComment = $class->getDocComment(); - - // Sets default values for annotation metadata - $metadata = array( - 'default_property' => null, - 'has_constructor' => (null !== $constructor = $class->getConstructor()) && $constructor->getNumberOfParameters() > 0, - 'properties' => array(), - 'property_types' => array(), - 'attribute_types' => array(), - 'targets_literal' => null, - 'targets' => Target::TARGET_ALL, - 'is_annotation' => false !== strpos($docComment, '@Annotation'), - ); - - // verify that the class is really meant to be an annotation - if ($metadata['is_annotation']) { - self::$metadataParser->setTarget(Target::TARGET_CLASS); - - foreach (self::$metadataParser->parse($docComment, 'class @' . $name) as $annotation) { - if ($annotation instanceof Target) { - $metadata['targets'] = $annotation->targets; - $metadata['targets_literal'] = $annotation->literal; - - continue; - } - - if ($annotation instanceof Attributes) { - foreach ($annotation->value as $attribute) { - $this->collectAttributeTypeMetadata($metadata, $attribute); - } - } - } - - // if not has a constructor will inject values into public properties - if (false === $metadata['has_constructor']) { - // collect all public properties - foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) { - $metadata['properties'][$property->name] = $property->name; - - if (false === ($propertyComment = $property->getDocComment())) { - continue; - } - - $attribute = new Attribute(); - - $attribute->required = (false !== strpos($propertyComment, '@Required')); - $attribute->name = $property->name; - $attribute->type = (false !== strpos($propertyComment, '@var') && preg_match('/@var\s+([^\s]+)/',$propertyComment, $matches)) - ? $matches[1] - : 'mixed'; - - $this->collectAttributeTypeMetadata($metadata, $attribute); - - // checks if the property has @Enum - if (false !== strpos($propertyComment, '@Enum')) { - $context = 'property ' . $class->name . "::\$" . $property->name; - - self::$metadataParser->setTarget(Target::TARGET_PROPERTY); - - foreach (self::$metadataParser->parse($propertyComment, $context) as $annotation) { - if ( ! $annotation instanceof Enum) { - continue; - } - - $metadata['enum'][$property->name]['value'] = $annotation->value; - $metadata['enum'][$property->name]['literal'] = ( ! empty($annotation->literal)) - ? $annotation->literal - : $annotation->value; - } - } - } - - // choose the first property as default property - $metadata['default_property'] = reset($metadata['properties']); - } - } - - self::$annotationMetadata[$name] = $metadata; - } - - /** - * Collects parsing metadata for a given attribute. - * - * @param array $metadata - * @param Attribute $attribute - * - * @return void - */ - private function collectAttributeTypeMetadata(&$metadata, Attribute $attribute) - { - // handle internal type declaration - $type = isset(self::$typeMap[$attribute->type]) - ? self::$typeMap[$attribute->type] - : $attribute->type; - - // handle the case if the property type is mixed - if ('mixed' === $type) { - return; - } - - // Evaluate type - switch (true) { - // Checks if the property has array - case (false !== $pos = strpos($type, '<')): - $arrayType = substr($type, $pos + 1, -1); - $type = 'array'; - - if (isset(self::$typeMap[$arrayType])) { - $arrayType = self::$typeMap[$arrayType]; - } - - $metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType; - break; - - // Checks if the property has type[] - case (false !== $pos = strrpos($type, '[')): - $arrayType = substr($type, 0, $pos); - $type = 'array'; - - if (isset(self::$typeMap[$arrayType])) { - $arrayType = self::$typeMap[$arrayType]; - } - - $metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType; - break; - } - - $metadata['attribute_types'][$attribute->name]['type'] = $type; - $metadata['attribute_types'][$attribute->name]['value'] = $attribute->type; - $metadata['attribute_types'][$attribute->name]['required'] = $attribute->required; - } - - /** - * Annotations ::= Annotation {[ "*" ]* [Annotation]}* - * - * @return array - */ - private function Annotations() - { - $annotations = array(); - - while (null !== $this->lexer->lookahead) { - if (DocLexer::T_AT !== $this->lexer->lookahead['type']) { - $this->lexer->moveNext(); - continue; - } - - // make sure the @ is preceded by non-catchable pattern - if (null !== $this->lexer->token && $this->lexer->lookahead['position'] === $this->lexer->token['position'] + strlen($this->lexer->token['value'])) { - $this->lexer->moveNext(); - continue; - } - - // make sure the @ is followed by either a namespace separator, or - // an identifier token - if ((null === $peek = $this->lexer->glimpse()) - || (DocLexer::T_NAMESPACE_SEPARATOR !== $peek['type'] && !in_array($peek['type'], self::$classIdentifiers, true)) - || $peek['position'] !== $this->lexer->lookahead['position'] + 1) { - $this->lexer->moveNext(); - continue; - } - - $this->isNestedAnnotation = false; - if (false !== $annot = $this->Annotation()) { - $annotations[] = $annot; - } - } - - return $annotations; - } - - /** - * Annotation ::= "@" AnnotationName MethodCall - * AnnotationName ::= QualifiedName | SimpleName - * QualifiedName ::= NameSpacePart "\" {NameSpacePart "\"}* SimpleName - * NameSpacePart ::= identifier | null | false | true - * SimpleName ::= identifier | null | false | true - * - * @return mixed False if it is not a valid annotation. - * - * @throws AnnotationException - */ - private function Annotation() - { - $this->match(DocLexer::T_AT); - - // check if we have an annotation - $name = $this->Identifier(); - - // only process names which are not fully qualified, yet - // fully qualified names must start with a \ - $originalName = $name; - - if ('\\' !== $name[0]) { - $pos = strpos($name, '\\'); - $alias = (false === $pos)? $name : substr($name, 0, $pos); - $found = false; - $loweredAlias = strtolower($alias); - - if ($this->namespaces) { - foreach ($this->namespaces as $namespace) { - if ($this->classExists($namespace.'\\'.$name)) { - $name = $namespace.'\\'.$name; - $found = true; - break; - } - } - } elseif (isset($this->imports[$loweredAlias])) { - $found = true; - $name = (false !== $pos) - ? $this->imports[$loweredAlias] . substr($name, $pos) - : $this->imports[$loweredAlias]; - } elseif ( ! isset($this->ignoredAnnotationNames[$name]) - && isset($this->imports['__NAMESPACE__']) - && $this->classExists($this->imports['__NAMESPACE__'] . '\\' . $name) - ) { - $name = $this->imports['__NAMESPACE__'].'\\'.$name; - $found = true; - } elseif (! isset($this->ignoredAnnotationNames[$name]) && $this->classExists($name)) { - $found = true; - } - - if ( ! $found) { - if ($this->isIgnoredAnnotation($name)) { - return false; - } - - throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s was never imported. Did you maybe forget to add a "use" statement for this annotation?', $name, $this->context)); - } - } - - $name = ltrim($name,'\\'); - - if ( ! $this->classExists($name)) { - throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s does not exist, or could not be auto-loaded.', $name, $this->context)); - } - - // at this point, $name contains the fully qualified class name of the - // annotation, and it is also guaranteed that this class exists, and - // that it is loaded - - - // collects the metadata annotation only if there is not yet - if ( ! isset(self::$annotationMetadata[$name])) { - $this->collectAnnotationMetadata($name); - } - - // verify that the class is really meant to be an annotation and not just any ordinary class - if (self::$annotationMetadata[$name]['is_annotation'] === false) { - if ($this->ignoreNotImportedAnnotations || isset($this->ignoredAnnotationNames[$originalName])) { - return false; - } - - throw AnnotationException::semanticalError(sprintf('The class "%s" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "%s". If it is indeed no annotation, then you need to add @IgnoreAnnotation("%s") to the _class_ doc comment of %s.', $name, $name, $originalName, $this->context)); - } - - //if target is nested annotation - $target = $this->isNestedAnnotation ? Target::TARGET_ANNOTATION : $this->target; - - // Next will be nested - $this->isNestedAnnotation = true; - - //if annotation does not support current target - if (0 === (self::$annotationMetadata[$name]['targets'] & $target) && $target) { - throw AnnotationException::semanticalError( - sprintf('Annotation @%s is not allowed to be declared on %s. You may only use this annotation on these code elements: %s.', - $originalName, $this->context, self::$annotationMetadata[$name]['targets_literal']) - ); - } - - $values = $this->MethodCall(); - - if (isset(self::$annotationMetadata[$name]['enum'])) { - // checks all declared attributes - foreach (self::$annotationMetadata[$name]['enum'] as $property => $enum) { - // checks if the attribute is a valid enumerator - if (isset($values[$property]) && ! in_array($values[$property], $enum['value'])) { - throw AnnotationException::enumeratorError($property, $name, $this->context, $enum['literal'], $values[$property]); - } - } - } - - // checks all declared attributes - foreach (self::$annotationMetadata[$name]['attribute_types'] as $property => $type) { - if ($property === self::$annotationMetadata[$name]['default_property'] - && !isset($values[$property]) && isset($values['value'])) { - $property = 'value'; - } - - // handle a not given attribute or null value - if (!isset($values[$property])) { - if ($type['required']) { - throw AnnotationException::requiredError($property, $originalName, $this->context, 'a(n) '.$type['value']); - } - - continue; - } - - if ($type['type'] === 'array') { - // handle the case of a single value - if ( ! is_array($values[$property])) { - $values[$property] = array($values[$property]); - } - - // checks if the attribute has array type declaration, such as "array" - if (isset($type['array_type'])) { - foreach ($values[$property] as $item) { - if (gettype($item) !== $type['array_type'] && !$item instanceof $type['array_type']) { - throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'either a(n) '.$type['array_type'].', or an array of '.$type['array_type'].'s', $item); - } - } - } - } elseif (gettype($values[$property]) !== $type['type'] && !$values[$property] instanceof $type['type']) { - throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'a(n) '.$type['value'], $values[$property]); - } - } - - // check if the annotation expects values via the constructor, - // or directly injected into public properties - if (self::$annotationMetadata[$name]['has_constructor'] === true) { - return new $name($values); - } - - $instance = new $name(); - - foreach ($values as $property => $value) { - if (!isset(self::$annotationMetadata[$name]['properties'][$property])) { - if ('value' !== $property) { - throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not have a property named "%s". Available properties: %s', $originalName, $this->context, $property, implode(', ', self::$annotationMetadata[$name]['properties']))); - } - - // handle the case if the property has no annotations - if ( ! $property = self::$annotationMetadata[$name]['default_property']) { - throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not accept any values, but got %s.', $originalName, $this->context, json_encode($values))); - } - } - - $instance->{$property} = $value; - } - - return $instance; - } - - /** - * MethodCall ::= ["(" [Values] ")"] - * - * @return array - */ - private function MethodCall() - { - $values = array(); - - if ( ! $this->lexer->isNextToken(DocLexer::T_OPEN_PARENTHESIS)) { - return $values; - } - - $this->match(DocLexer::T_OPEN_PARENTHESIS); - - if ( ! $this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) { - $values = $this->Values(); - } - - $this->match(DocLexer::T_CLOSE_PARENTHESIS); - - return $values; - } - - /** - * Values ::= Array | Value {"," Value}* [","] - * - * @return array - */ - private function Values() - { - $values = array($this->Value()); - - while ($this->lexer->isNextToken(DocLexer::T_COMMA)) { - $this->match(DocLexer::T_COMMA); - - if ($this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) { - break; - } - - $token = $this->lexer->lookahead; - $value = $this->Value(); - - if ( ! is_object($value) && ! is_array($value)) { - $this->syntaxError('Value', $token); - } - - $values[] = $value; - } - - foreach ($values as $k => $value) { - if (is_object($value) && $value instanceof \stdClass) { - $values[$value->name] = $value->value; - } else if ( ! isset($values['value'])){ - $values['value'] = $value; - } else { - if ( ! is_array($values['value'])) { - $values['value'] = array($values['value']); - } - - $values['value'][] = $value; - } - - unset($values[$k]); - } - - return $values; - } - - /** - * Constant ::= integer | string | float | boolean - * - * @return mixed - * - * @throws AnnotationException - */ - private function Constant() - { - $identifier = $this->Identifier(); - - if ( ! defined($identifier) && false !== strpos($identifier, '::') && '\\' !== $identifier[0]) { - list($className, $const) = explode('::', $identifier); - - $pos = strpos($className, '\\'); - $alias = (false === $pos) ? $className : substr($className, 0, $pos); - $found = false; - $loweredAlias = strtolower($alias); - - switch (true) { - case !empty ($this->namespaces): - foreach ($this->namespaces as $ns) { - if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) { - $className = $ns.'\\'.$className; - $found = true; - break; - } - } - break; - - case isset($this->imports[$loweredAlias]): - $found = true; - $className = (false !== $pos) - ? $this->imports[$loweredAlias] . substr($className, $pos) - : $this->imports[$loweredAlias]; - break; - - default: - if(isset($this->imports['__NAMESPACE__'])) { - $ns = $this->imports['__NAMESPACE__']; - - if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) { - $className = $ns.'\\'.$className; - $found = true; - } - } - break; - } - - if ($found) { - $identifier = $className . '::' . $const; - } - } - - // checks if identifier ends with ::class, \strlen('::class') === 7 - $classPos = stripos($identifier, '::class'); - if ($classPos === strlen($identifier) - 7) { - return substr($identifier, 0, $classPos); - } - - if (!defined($identifier)) { - throw AnnotationException::semanticalErrorConstants($identifier, $this->context); - } - - return constant($identifier); - } - - /** - * Identifier ::= string - * - * @return string - */ - private function Identifier() - { - // check if we have an annotation - if ( ! $this->lexer->isNextTokenAny(self::$classIdentifiers)) { - $this->syntaxError('namespace separator or identifier'); - } - - $this->lexer->moveNext(); - - $className = $this->lexer->token['value']; - - while ($this->lexer->lookahead['position'] === ($this->lexer->token['position'] + strlen($this->lexer->token['value'])) - && $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)) { - - $this->match(DocLexer::T_NAMESPACE_SEPARATOR); - $this->matchAny(self::$classIdentifiers); - - $className .= '\\' . $this->lexer->token['value']; - } - - return $className; - } - - /** - * Value ::= PlainValue | FieldAssignment - * - * @return mixed - */ - private function Value() - { - $peek = $this->lexer->glimpse(); - - if (DocLexer::T_EQUALS === $peek['type']) { - return $this->FieldAssignment(); - } - - return $this->PlainValue(); - } - - /** - * PlainValue ::= integer | string | float | boolean | Array | Annotation - * - * @return mixed - */ - private function PlainValue() - { - if ($this->lexer->isNextToken(DocLexer::T_OPEN_CURLY_BRACES)) { - return $this->Arrayx(); - } - - if ($this->lexer->isNextToken(DocLexer::T_AT)) { - return $this->Annotation(); - } - - if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) { - return $this->Constant(); - } - - switch ($this->lexer->lookahead['type']) { - case DocLexer::T_STRING: - $this->match(DocLexer::T_STRING); - return $this->lexer->token['value']; - - case DocLexer::T_INTEGER: - $this->match(DocLexer::T_INTEGER); - return (int)$this->lexer->token['value']; - - case DocLexer::T_FLOAT: - $this->match(DocLexer::T_FLOAT); - return (float)$this->lexer->token['value']; - - case DocLexer::T_TRUE: - $this->match(DocLexer::T_TRUE); - return true; - - case DocLexer::T_FALSE: - $this->match(DocLexer::T_FALSE); - return false; - - case DocLexer::T_NULL: - $this->match(DocLexer::T_NULL); - return null; - - default: - $this->syntaxError('PlainValue'); - } - } - - /** - * FieldAssignment ::= FieldName "=" PlainValue - * FieldName ::= identifier - * - * @return \stdClass - */ - private function FieldAssignment() - { - $this->match(DocLexer::T_IDENTIFIER); - $fieldName = $this->lexer->token['value']; - - $this->match(DocLexer::T_EQUALS); - - $item = new \stdClass(); - $item->name = $fieldName; - $item->value = $this->PlainValue(); - - return $item; - } - - /** - * Array ::= "{" ArrayEntry {"," ArrayEntry}* [","] "}" - * - * @return array - */ - private function Arrayx() - { - $array = $values = array(); - - $this->match(DocLexer::T_OPEN_CURLY_BRACES); - - // If the array is empty, stop parsing and return. - if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) { - $this->match(DocLexer::T_CLOSE_CURLY_BRACES); - - return $array; - } - - $values[] = $this->ArrayEntry(); - - while ($this->lexer->isNextToken(DocLexer::T_COMMA)) { - $this->match(DocLexer::T_COMMA); - - // optional trailing comma - if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) { - break; - } - - $values[] = $this->ArrayEntry(); - } - - $this->match(DocLexer::T_CLOSE_CURLY_BRACES); - - foreach ($values as $value) { - list ($key, $val) = $value; - - if ($key !== null) { - $array[$key] = $val; - } else { - $array[] = $val; - } - } - - return $array; - } - - /** - * ArrayEntry ::= Value | KeyValuePair - * KeyValuePair ::= Key ("=" | ":") PlainValue | Constant - * Key ::= string | integer | Constant - * - * @return array - */ - private function ArrayEntry() - { - $peek = $this->lexer->glimpse(); - - if (DocLexer::T_EQUALS === $peek['type'] - || DocLexer::T_COLON === $peek['type']) { - - if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) { - $key = $this->Constant(); - } else { - $this->matchAny(array(DocLexer::T_INTEGER, DocLexer::T_STRING)); - $key = $this->lexer->token['value']; - } - - $this->matchAny(array(DocLexer::T_EQUALS, DocLexer::T_COLON)); - - return array($key, $this->PlainValue()); - } - - return array(null, $this->Value()); - } - - /** - * Checks whether the given $name matches any ignored annotation name or namespace - * - * @param string $name - * - * @return bool - */ - private function isIgnoredAnnotation($name) - { - if ($this->ignoreNotImportedAnnotations || isset($this->ignoredAnnotationNames[$name])) { - return true; - } - - foreach (array_keys($this->ignoredAnnotationNamespaces) as $ignoredAnnotationNamespace) { - $ignoredAnnotationNamespace = rtrim($ignoredAnnotationNamespace, '\\') . '\\'; - - if (0 === stripos(rtrim($name, '\\') . '\\', $ignoredAnnotationNamespace)) { - return true; - } - } - - return false; - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php deleted file mode 100644 index fd2fede..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/FileCacheReader.php +++ /dev/null @@ -1,290 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -/** - * File cache reader for annotations. - * - * @author Johannes M. Schmitt - * @author Benjamin Eberlei - * - * @deprecated the FileCacheReader is deprecated and will be removed - * in version 2.0.0 of doctrine/annotations. Please use the - * {@see \Doctrine\Common\Annotations\CachedReader} instead. - */ -class FileCacheReader implements Reader -{ - /** - * @var Reader - */ - private $reader; - - /** - * @var string - */ - private $dir; - - /** - * @var bool - */ - private $debug; - - /** - * @var array - */ - private $loadedAnnotations = array(); - - /** - * @var array - */ - private $classNameHashes = array(); - - /** - * @var int - */ - private $umask; - - /** - * Constructor. - * - * @param Reader $reader - * @param string $cacheDir - * @param boolean $debug - * - * @throws \InvalidArgumentException - */ - public function __construct(Reader $reader, $cacheDir, $debug = false, $umask = 0002) - { - if ( ! is_int($umask)) { - throw new \InvalidArgumentException(sprintf( - 'The parameter umask must be an integer, was: %s', - gettype($umask) - )); - } - - $this->reader = $reader; - $this->umask = $umask; - - if (!is_dir($cacheDir) && !@mkdir($cacheDir, 0777 & (~$this->umask), true)) { - throw new \InvalidArgumentException(sprintf('The directory "%s" does not exist and could not be created.', $cacheDir)); - } - - $this->dir = rtrim($cacheDir, '\\/'); - $this->debug = $debug; - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotations(\ReflectionClass $class) - { - if ( ! isset($this->classNameHashes[$class->name])) { - $this->classNameHashes[$class->name] = sha1($class->name); - } - $key = $this->classNameHashes[$class->name]; - - if (isset($this->loadedAnnotations[$key])) { - return $this->loadedAnnotations[$key]; - } - - $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php'; - if (!is_file($path)) { - $annot = $this->reader->getClassAnnotations($class); - $this->saveCacheFile($path, $annot); - return $this->loadedAnnotations[$key] = $annot; - } - - if ($this->debug - && (false !== $filename = $class->getFileName()) - && filemtime($path) < filemtime($filename)) { - @unlink($path); - - $annot = $this->reader->getClassAnnotations($class); - $this->saveCacheFile($path, $annot); - return $this->loadedAnnotations[$key] = $annot; - } - - return $this->loadedAnnotations[$key] = include $path; - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotations(\ReflectionProperty $property) - { - $class = $property->getDeclaringClass(); - if ( ! isset($this->classNameHashes[$class->name])) { - $this->classNameHashes[$class->name] = sha1($class->name); - } - $key = $this->classNameHashes[$class->name].'$'.$property->getName(); - - if (isset($this->loadedAnnotations[$key])) { - return $this->loadedAnnotations[$key]; - } - - $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php'; - if (!is_file($path)) { - $annot = $this->reader->getPropertyAnnotations($property); - $this->saveCacheFile($path, $annot); - return $this->loadedAnnotations[$key] = $annot; - } - - if ($this->debug - && (false !== $filename = $class->getFilename()) - && filemtime($path) < filemtime($filename)) { - @unlink($path); - - $annot = $this->reader->getPropertyAnnotations($property); - $this->saveCacheFile($path, $annot); - return $this->loadedAnnotations[$key] = $annot; - } - - return $this->loadedAnnotations[$key] = include $path; - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotations(\ReflectionMethod $method) - { - $class = $method->getDeclaringClass(); - if ( ! isset($this->classNameHashes[$class->name])) { - $this->classNameHashes[$class->name] = sha1($class->name); - } - $key = $this->classNameHashes[$class->name].'#'.$method->getName(); - - if (isset($this->loadedAnnotations[$key])) { - return $this->loadedAnnotations[$key]; - } - - $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php'; - if (!is_file($path)) { - $annot = $this->reader->getMethodAnnotations($method); - $this->saveCacheFile($path, $annot); - return $this->loadedAnnotations[$key] = $annot; - } - - if ($this->debug - && (false !== $filename = $class->getFilename()) - && filemtime($path) < filemtime($filename)) { - @unlink($path); - - $annot = $this->reader->getMethodAnnotations($method); - $this->saveCacheFile($path, $annot); - return $this->loadedAnnotations[$key] = $annot; - } - - return $this->loadedAnnotations[$key] = include $path; - } - - /** - * Saves the cache file. - * - * @param string $path - * @param mixed $data - * - * @return void - */ - private function saveCacheFile($path, $data) - { - if (!is_writable($this->dir)) { - throw new \InvalidArgumentException(sprintf('The directory "%s" is not writable. Both, the webserver and the console user need access. You can manage access rights for multiple users with "chmod +a". If your system does not support this, check out the acl package.', $this->dir)); - } - - $tempfile = tempnam($this->dir, uniqid('', true)); - - if (false === $tempfile) { - throw new \RuntimeException(sprintf('Unable to create tempfile in directory: %s', $this->dir)); - } - - @chmod($tempfile, 0666 & (~$this->umask)); - - $written = file_put_contents($tempfile, 'umask)); - - if (false === rename($tempfile, $path)) { - @unlink($tempfile); - throw new \RuntimeException(sprintf('Unable to rename %s to %s', $tempfile, $path)); - } - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotation(\ReflectionClass $class, $annotationName) - { - $annotations = $this->getClassAnnotations($class); - - foreach ($annotations as $annotation) { - if ($annotation instanceof $annotationName) { - return $annotation; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotation(\ReflectionMethod $method, $annotationName) - { - $annotations = $this->getMethodAnnotations($method); - - foreach ($annotations as $annotation) { - if ($annotation instanceof $annotationName) { - return $annotation; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName) - { - $annotations = $this->getPropertyAnnotations($property); - - foreach ($annotations as $annotation) { - if ($annotation instanceof $annotationName) { - return $annotation; - } - } - - return null; - } - - /** - * Clears loaded annotations. - * - * @return void - */ - public function clearLoadedAnnotations() - { - $this->loadedAnnotations = array(); - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php deleted file mode 100644 index bf7fbdc..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/IndexedReader.php +++ /dev/null @@ -1,119 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -/** - * Allows the reader to be used in-place of Doctrine's reader. - * - * @author Johannes M. Schmitt - */ -class IndexedReader implements Reader -{ - /** - * @var Reader - */ - private $delegate; - - /** - * Constructor. - * - * @param Reader $reader - */ - public function __construct(Reader $reader) - { - $this->delegate = $reader; - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotations(\ReflectionClass $class) - { - $annotations = array(); - foreach ($this->delegate->getClassAnnotations($class) as $annot) { - $annotations[get_class($annot)] = $annot; - } - - return $annotations; - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotation(\ReflectionClass $class, $annotation) - { - return $this->delegate->getClassAnnotation($class, $annotation); - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotations(\ReflectionMethod $method) - { - $annotations = array(); - foreach ($this->delegate->getMethodAnnotations($method) as $annot) { - $annotations[get_class($annot)] = $annot; - } - - return $annotations; - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotation(\ReflectionMethod $method, $annotation) - { - return $this->delegate->getMethodAnnotation($method, $annotation); - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotations(\ReflectionProperty $property) - { - $annotations = array(); - foreach ($this->delegate->getPropertyAnnotations($property) as $annot) { - $annotations[get_class($annot)] = $annot; - } - - return $annotations; - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotation(\ReflectionProperty $property, $annotation) - { - return $this->delegate->getPropertyAnnotation($property, $annotation); - } - - /** - * Proxies all methods to the delegate. - * - * @param string $method - * @param array $args - * - * @return mixed - */ - public function __call($method, $args) - { - return call_user_func_array(array($this->delegate, $method), $args); - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php deleted file mode 100644 index c2d4770..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PhpParser.php +++ /dev/null @@ -1,91 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -use SplFileObject; - -/** - * Parses a file for namespaces/use/class declarations. - * - * @author Fabien Potencier - * @author Christian Kaps - */ -final class PhpParser -{ - /** - * Parses a class. - * - * @param \ReflectionClass $class A ReflectionClass object. - * - * @return array A list with use statements in the form (Alias => FQN). - */ - public function parseClass(\ReflectionClass $class) - { - if (method_exists($class, 'getUseStatements')) { - return $class->getUseStatements(); - } - - if (false === $filename = $class->getFileName()) { - return array(); - } - - $content = $this->getFileContent($filename, $class->getStartLine()); - - if (null === $content) { - return array(); - } - - $namespace = preg_quote($class->getNamespaceName()); - $content = preg_replace('/^.*?(\bnamespace\s+' . $namespace . '\s*[;{].*)$/s', '\\1', $content); - $tokenizer = new TokenParser('parseUseStatements($class->getNamespaceName()); - - return $statements; - } - - /** - * Gets the content of the file right up to the given line number. - * - * @param string $filename The name of the file to load. - * @param integer $lineNumber The number of lines to read from file. - * - * @return string|null The content of the file or null if the file does not exist. - */ - private function getFileContent($filename, $lineNumber) - { - if ( ! is_file($filename)) { - return null; - } - - $content = ''; - $lineCnt = 0; - $file = new SplFileObject($filename); - while (!$file->eof()) { - if ($lineCnt++ == $lineNumber) { - break; - } - - $content .= $file->fgets(); - } - - return $content; - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php deleted file mode 100644 index 4774f87..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/Reader.php +++ /dev/null @@ -1,89 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -/** - * Interface for annotation readers. - * - * @author Johannes M. Schmitt - */ -interface Reader -{ - /** - * Gets the annotations applied to a class. - * - * @param \ReflectionClass $class The ReflectionClass of the class from which - * the class annotations should be read. - * - * @return array An array of Annotations. - */ - function getClassAnnotations(\ReflectionClass $class); - - /** - * Gets a class annotation. - * - * @param \ReflectionClass $class The ReflectionClass of the class from which - * the class annotations should be read. - * @param string $annotationName The name of the annotation. - * - * @return object|null The Annotation or NULL, if the requested annotation does not exist. - */ - function getClassAnnotation(\ReflectionClass $class, $annotationName); - - /** - * Gets the annotations applied to a method. - * - * @param \ReflectionMethod $method The ReflectionMethod of the method from which - * the annotations should be read. - * - * @return array An array of Annotations. - */ - function getMethodAnnotations(\ReflectionMethod $method); - - /** - * Gets a method annotation. - * - * @param \ReflectionMethod $method The ReflectionMethod to read the annotations from. - * @param string $annotationName The name of the annotation. - * - * @return object|null The Annotation or NULL, if the requested annotation does not exist. - */ - function getMethodAnnotation(\ReflectionMethod $method, $annotationName); - - /** - * Gets the annotations applied to a property. - * - * @param \ReflectionProperty $property The ReflectionProperty of the property - * from which the annotations should be read. - * - * @return array An array of Annotations. - */ - function getPropertyAnnotations(\ReflectionProperty $property); - - /** - * Gets a property annotation. - * - * @param \ReflectionProperty $property The ReflectionProperty to read the annotations from. - * @param string $annotationName The name of the annotation. - * - * @return object|null The Annotation or NULL, if the requested annotation does not exist. - */ - function getPropertyAnnotation(\ReflectionProperty $property, $annotationName); -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php deleted file mode 100644 index d4757ee..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php +++ /dev/null @@ -1,127 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -/** - * Simple Annotation Reader. - * - * This annotation reader is intended to be used in projects where you have - * full-control over all annotations that are available. - * - * @since 2.2 - * @author Johannes M. Schmitt - * @author Fabio B. Silva - */ -class SimpleAnnotationReader implements Reader -{ - /** - * @var DocParser - */ - private $parser; - - /** - * Constructor. - * - * Initializes a new SimpleAnnotationReader. - */ - public function __construct() - { - $this->parser = new DocParser(); - $this->parser->setIgnoreNotImportedAnnotations(true); - } - - /** - * Adds a namespace in which we will look for annotations. - * - * @param string $namespace - * - * @return void - */ - public function addNamespace($namespace) - { - $this->parser->addNamespace($namespace); - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotations(\ReflectionClass $class) - { - return $this->parser->parse($class->getDocComment(), 'class '.$class->getName()); - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotations(\ReflectionMethod $method) - { - return $this->parser->parse($method->getDocComment(), 'method '.$method->getDeclaringClass()->name.'::'.$method->getName().'()'); - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotations(\ReflectionProperty $property) - { - return $this->parser->parse($property->getDocComment(), 'property '.$property->getDeclaringClass()->name.'::$'.$property->getName()); - } - - /** - * {@inheritDoc} - */ - public function getClassAnnotation(\ReflectionClass $class, $annotationName) - { - foreach ($this->getClassAnnotations($class) as $annot) { - if ($annot instanceof $annotationName) { - return $annot; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getMethodAnnotation(\ReflectionMethod $method, $annotationName) - { - foreach ($this->getMethodAnnotations($method) as $annot) { - if ($annot instanceof $annotationName) { - return $annot; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName) - { - foreach ($this->getPropertyAnnotations($property) as $annot) { - if ($annot instanceof $annotationName) { - return $annot; - } - } - - return null; - } -} diff --git a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php b/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php deleted file mode 100644 index bf1b713..0000000 --- a/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/TokenParser.php +++ /dev/null @@ -1,194 +0,0 @@ -. - */ - -namespace Doctrine\Common\Annotations; - -/** - * Parses a file for namespaces/use/class declarations. - * - * @author Fabien Potencier - * @author Christian Kaps - */ -class TokenParser -{ - /** - * The token list. - * - * @var array - */ - private $tokens; - - /** - * The number of tokens. - * - * @var int - */ - private $numTokens; - - /** - * The current array pointer. - * - * @var int - */ - private $pointer = 0; - - /** - * @param string $contents - */ - public function __construct($contents) - { - $this->tokens = token_get_all($contents); - - // The PHP parser sets internal compiler globals for certain things. Annoyingly, the last docblock comment it - // saw gets stored in doc_comment. When it comes to compile the next thing to be include()d this stored - // doc_comment becomes owned by the first thing the compiler sees in the file that it considers might have a - // docblock. If the first thing in the file is a class without a doc block this would cause calls to - // getDocBlock() on said class to return our long lost doc_comment. Argh. - // To workaround, cause the parser to parse an empty docblock. Sure getDocBlock() will return this, but at least - // it's harmless to us. - token_get_all("numTokens = count($this->tokens); - } - - /** - * Gets the next non whitespace and non comment token. - * - * @param boolean $docCommentIsComment If TRUE then a doc comment is considered a comment and skipped. - * If FALSE then only whitespace and normal comments are skipped. - * - * @return array|null The token if exists, null otherwise. - */ - public function next($docCommentIsComment = TRUE) - { - for ($i = $this->pointer; $i < $this->numTokens; $i++) { - $this->pointer++; - if ($this->tokens[$i][0] === T_WHITESPACE || - $this->tokens[$i][0] === T_COMMENT || - ($docCommentIsComment && $this->tokens[$i][0] === T_DOC_COMMENT)) { - - continue; - } - - return $this->tokens[$i]; - } - - return null; - } - - /** - * Parses a single use statement. - * - * @return array A list with all found class names for a use statement. - */ - public function parseUseStatement() - { - - $groupRoot = ''; - $class = ''; - $alias = ''; - $statements = array(); - $explicitAlias = false; - while (($token = $this->next())) { - $isNameToken = $token[0] === T_STRING || $token[0] === T_NS_SEPARATOR; - if (!$explicitAlias && $isNameToken) { - $class .= $token[1]; - $alias = $token[1]; - } else if ($explicitAlias && $isNameToken) { - $alias .= $token[1]; - } else if ($token[0] === T_AS) { - $explicitAlias = true; - $alias = ''; - } else if ($token === ',') { - $statements[strtolower($alias)] = $groupRoot . $class; - $class = ''; - $alias = ''; - $explicitAlias = false; - } else if ($token === ';') { - $statements[strtolower($alias)] = $groupRoot . $class; - break; - } else if ($token === '{' ) { - $groupRoot = $class; - $class = ''; - } else if ($token === '}' ) { - continue; - } else { - break; - } - } - - return $statements; - } - - /** - * Gets all use statements. - * - * @param string $namespaceName The namespace name of the reflected class. - * - * @return array A list with all found use statements. - */ - public function parseUseStatements($namespaceName) - { - $statements = array(); - while (($token = $this->next())) { - if ($token[0] === T_USE) { - $statements = array_merge($statements, $this->parseUseStatement()); - continue; - } - if ($token[0] !== T_NAMESPACE || $this->parseNamespace() != $namespaceName) { - continue; - } - - // Get fresh array for new namespace. This is to prevent the parser to collect the use statements - // for a previous namespace with the same name. This is the case if a namespace is defined twice - // or if a namespace with the same name is commented out. - $statements = array(); - } - - return $statements; - } - - /** - * Gets the namespace. - * - * @return string The found namespace. - */ - public function parseNamespace() - { - $name = ''; - while (($token = $this->next()) && ($token[0] === T_STRING || $token[0] === T_NS_SEPARATOR)) { - $name .= $token[1]; - } - - return $name; - } - - /** - * Gets the class name. - * - * @return string The found class name. - */ - public function parseClass() - { - // Namespaces and class names are tokenized the same: T_STRINGs - // separated by T_NS_SEPARATOR so we can use one function to provide - // both. - return $this->parseNamespace(); - } -} diff --git a/vendor/doctrine/annotations/phpstan.neon b/vendor/doctrine/annotations/phpstan.neon deleted file mode 100644 index be267e6..0000000 --- a/vendor/doctrine/annotations/phpstan.neon +++ /dev/null @@ -1,17 +0,0 @@ -parameters: - autoload_files: - - %currentWorkingDirectory%/tests/Doctrine/Tests/Common/Annotations/DocParserTest.php - excludes_analyse: - - %currentWorkingDirectory%/tests/*/Fixtures/* - - %currentWorkingDirectory%/tests/Doctrine/Tests/Common/Annotations/ReservedKeywordsClasses.php - - %currentWorkingDirectory%/tests/Doctrine/Tests/Common/Annotations/Ticket/DCOM58Entity.php - - %currentWorkingDirectory%/tests/Doctrine/Tests/DoctrineTestCase.php - polluteScopeWithLoopInitialAssignments: true - ignoreErrors: - - '#Class Doctrine_Tests_Common_Annotations_Fixtures_ClassNoNamespaceNoComment not found#' - - '#Instantiated class Doctrine_Tests_Common_Annotations_Fixtures_ClassNoNamespaceNoComment not found#' - - '#Property Doctrine\\Tests\\Common\\Annotations\\DummyClassNonAnnotationProblem::\$foo has unknown class#' - - '#Class Doctrine\\Tests\\Common\\Annotations\\True not found#' - - '#Class Doctrine\\Tests\\Common\\Annotations\\False not found#' - - '#Class Doctrine\\Tests\\Common\\Annotations\\Null not found#' - - '#Call to an undefined method ReflectionClass::getUseStatements\(\)#' diff --git a/vendor/doctrine/instantiator/CONTRIBUTING.md b/vendor/doctrine/instantiator/CONTRIBUTING.md deleted file mode 100644 index 75b84b2..0000000 --- a/vendor/doctrine/instantiator/CONTRIBUTING.md +++ /dev/null @@ -1,35 +0,0 @@ -# Contributing - - * Coding standard for the project is [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) - * The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php) - * Any contribution must provide tests for additional introduced conditions - * Any un-confirmed issue needs a failing test case before being accepted - * Pull requests must be sent from a new hotfix/feature branch, not from `master`. - -## Installation - -To install the project and run the tests, you need to clone it first: - -```sh -$ git clone git://github.com/doctrine/instantiator.git -``` - -You will then need to run a composer installation: - -```sh -$ cd Instantiator -$ curl -s https://getcomposer.org/installer | php -$ php composer.phar update -``` - -## Testing - -The PHPUnit version to be used is the one installed as a dev- dependency via composer: - -```sh -$ ./vendor/bin/phpunit -``` - -Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement -won't be merged. - diff --git a/vendor/doctrine/instantiator/LICENSE b/vendor/doctrine/instantiator/LICENSE deleted file mode 100644 index 4d983d1..0000000 --- a/vendor/doctrine/instantiator/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2014 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/doctrine/instantiator/README.md b/vendor/doctrine/instantiator/README.md deleted file mode 100644 index b66064b..0000000 --- a/vendor/doctrine/instantiator/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Instantiator - -This library provides a way of avoiding usage of constructors when instantiating PHP classes. - -[![Build Status](https://travis-ci.org/doctrine/instantiator.svg?branch=master)](https://travis-ci.org/doctrine/instantiator) -[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master) -[![Dependency Status](https://www.versioneye.com/package/php--doctrine--instantiator/badge.svg)](https://www.versioneye.com/package/php--doctrine--instantiator) -[![HHVM Status](http://hhvm.h4cc.de/badge/doctrine/instantiator.png)](http://hhvm.h4cc.de/package/doctrine/instantiator) - -[![Latest Stable Version](https://poser.pugx.org/doctrine/instantiator/v/stable.png)](https://packagist.org/packages/doctrine/instantiator) -[![Latest Unstable Version](https://poser.pugx.org/doctrine/instantiator/v/unstable.png)](https://packagist.org/packages/doctrine/instantiator) - -## Installation - -The suggested installation method is via [composer](https://getcomposer.org/): - -```sh -php composer.phar require "doctrine/instantiator:~1.0.3" -``` - -## Usage - -The instantiator is able to create new instances of any class without using the constructor or any API of the class -itself: - -```php -$instantiator = new \Doctrine\Instantiator\Instantiator(); - -$instance = $instantiator->instantiate(\My\ClassName\Here::class); -``` - -## Contributing - -Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out! - -## Credits - -This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which -has been donated to the doctrine organization, and which is now deprecated in favour of this package. diff --git a/vendor/doctrine/instantiator/composer.json b/vendor/doctrine/instantiator/composer.json deleted file mode 100644 index 403ee8e..0000000 --- a/vendor/doctrine/instantiator/composer.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "doctrine/instantiator", - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "type": "library", - "license": "MIT", - "homepage": "https://github.com/doctrine/instantiator", - "keywords": [ - "instantiate", - "constructor" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" - } - ], - "require": { - "php": "^7.1" - }, - "require-dev": { - "ext-phar": "*", - "ext-pdo": "*", - "phpunit/phpunit": "^6.2.3", - "squizlabs/php_codesniffer": "^3.0.2", - "athletic/athletic": "~0.1.8" - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "autoload-dev": { - "psr-0": { - "DoctrineTest\\InstantiatorPerformance\\": "tests", - "DoctrineTest\\InstantiatorTest\\": "tests", - "DoctrineTest\\InstantiatorTestAsset\\": "tests" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php deleted file mode 100644 index 3065375..0000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php +++ /dev/null @@ -1,29 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator\Exception; - -/** - * Base exception marker interface for the instantiator component - * - * @author Marco Pivetta - */ -interface ExceptionInterface -{ -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php deleted file mode 100644 index cb57aa8..0000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,52 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator\Exception; - -use InvalidArgumentException as BaseInvalidArgumentException; -use ReflectionClass; - -/** - * Exception for invalid arguments provided to the instantiator - * - * @author Marco Pivetta - */ -class InvalidArgumentException extends BaseInvalidArgumentException implements ExceptionInterface -{ - public static function fromNonExistingClass(string $className) : self - { - if (interface_exists($className)) { - return new self(sprintf('The provided type "%s" is an interface, and can not be instantiated', $className)); - } - - if (PHP_VERSION_ID >= 50400 && trait_exists($className)) { - return new self(sprintf('The provided type "%s" is a trait, and can not be instantiated', $className)); - } - - return new self(sprintf('The provided class "%s" does not exist', $className)); - } - - public static function fromAbstractClass(ReflectionClass $reflectionClass) : self - { - return new self(sprintf( - 'The provided class "%s" is abstract, and can not be instantiated', - $reflectionClass->getName() - )); - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php deleted file mode 100644 index 2b704b9..0000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php +++ /dev/null @@ -1,66 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator\Exception; - -use Exception; -use ReflectionClass; -use UnexpectedValueException as BaseUnexpectedValueException; - -/** - * Exception for given parameters causing invalid/unexpected state on instantiation - * - * @author Marco Pivetta - */ -class UnexpectedValueException extends BaseUnexpectedValueException implements ExceptionInterface -{ - public static function fromSerializationTriggeredException( - ReflectionClass $reflectionClass, - Exception $exception - ) : self { - return new self( - sprintf( - 'An exception was raised while trying to instantiate an instance of "%s" via un-serialization', - $reflectionClass->getName() - ), - 0, - $exception - ); - } - - public static function fromUncleanUnSerialization( - ReflectionClass $reflectionClass, - string $errorString, - int $errorCode, - string $errorFile, - int $errorLine - ) : self { - return new self( - sprintf( - 'Could not produce an instance of "%s" via un-serialization, since an error was triggered ' - . 'in file "%s" at line "%d"', - $reflectionClass->getName(), - $errorFile, - $errorLine - ), - 0, - new Exception($errorString, $errorCode) - ); - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php deleted file mode 100644 index 69fe65d..0000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php +++ /dev/null @@ -1,216 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator; - -use Doctrine\Instantiator\Exception\InvalidArgumentException; -use Doctrine\Instantiator\Exception\UnexpectedValueException; -use Exception; -use ReflectionClass; - -/** - * {@inheritDoc} - * - * @author Marco Pivetta - */ -final class Instantiator implements InstantiatorInterface -{ - /** - * Markers used internally by PHP to define whether {@see \unserialize} should invoke - * the method {@see \Serializable::unserialize()} when dealing with classes implementing - * the {@see \Serializable} interface. - */ - const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C'; - const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O'; - - /** - * @var \callable[] used to instantiate specific classes, indexed by class name - */ - private static $cachedInstantiators = []; - - /** - * @var object[] of objects that can directly be cloned, indexed by class name - */ - private static $cachedCloneables = []; - - /** - * {@inheritDoc} - */ - public function instantiate($className) - { - if (isset(self::$cachedCloneables[$className])) { - return clone self::$cachedCloneables[$className]; - } - - if (isset(self::$cachedInstantiators[$className])) { - $factory = self::$cachedInstantiators[$className]; - - return $factory(); - } - - return $this->buildAndCacheFromFactory($className); - } - - /** - * Builds the requested object and caches it in static properties for performance - * - * @return object - */ - private function buildAndCacheFromFactory(string $className) - { - $factory = self::$cachedInstantiators[$className] = $this->buildFactory($className); - $instance = $factory(); - - if ($this->isSafeToClone(new ReflectionClass($instance))) { - self::$cachedCloneables[$className] = clone $instance; - } - - return $instance; - } - - /** - * Builds a callable capable of instantiating the given $className without - * invoking its constructor. - * - * @throws InvalidArgumentException - * @throws UnexpectedValueException - * @throws \ReflectionException - */ - private function buildFactory(string $className) : callable - { - $reflectionClass = $this->getReflectionClass($className); - - if ($this->isInstantiableViaReflection($reflectionClass)) { - return [$reflectionClass, 'newInstanceWithoutConstructor']; - } - - $serializedString = sprintf( - '%s:%d:"%s":0:{}', - self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER, - strlen($className), - $className - ); - - $this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString); - - return function () use ($serializedString) { - return unserialize($serializedString); - }; - } - - /** - * @param string $className - * - * @return ReflectionClass - * - * @throws InvalidArgumentException - * @throws \ReflectionException - */ - private function getReflectionClass($className) : ReflectionClass - { - if (! class_exists($className)) { - throw InvalidArgumentException::fromNonExistingClass($className); - } - - $reflection = new ReflectionClass($className); - - if ($reflection->isAbstract()) { - throw InvalidArgumentException::fromAbstractClass($reflection); - } - - return $reflection; - } - - /** - * @param ReflectionClass $reflectionClass - * @param string $serializedString - * - * @throws UnexpectedValueException - * - * @return void - */ - private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionClass, $serializedString) : void - { - set_error_handler(function ($code, $message, $file, $line) use ($reflectionClass, & $error) : void { - $error = UnexpectedValueException::fromUncleanUnSerialization( - $reflectionClass, - $message, - $code, - $file, - $line - ); - }); - - $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString); - - restore_error_handler(); - - if ($error) { - throw $error; - } - } - - /** - * @param ReflectionClass $reflectionClass - * @param string $serializedString - * - * @throws UnexpectedValueException - * - * @return void - */ - private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, $serializedString) : void - { - try { - unserialize($serializedString); - } catch (Exception $exception) { - restore_error_handler(); - - throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception); - } - } - - private function isInstantiableViaReflection(ReflectionClass $reflectionClass) : bool - { - return ! ($this->hasInternalAncestors($reflectionClass) && $reflectionClass->isFinal()); - } - - /** - * Verifies whether the given class is to be considered internal - */ - private function hasInternalAncestors(ReflectionClass $reflectionClass) : bool - { - do { - if ($reflectionClass->isInternal()) { - return true; - } - } while ($reflectionClass = $reflectionClass->getParentClass()); - - return false; - } - - /** - * Checks if a class is cloneable - * - * Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects. - */ - private function isSafeToClone(ReflectionClass $reflection) : bool - { - return $reflection->isCloneable() && ! $reflection->hasMethod('__clone'); - } -} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php deleted file mode 100644 index b665bea..0000000 --- a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php +++ /dev/null @@ -1,37 +0,0 @@ -. - */ - -namespace Doctrine\Instantiator; - -/** - * Instantiator provides utility methods to build objects without invoking their constructors - * - * @author Marco Pivetta - */ -interface InstantiatorInterface -{ - /** - * @param string $className - * - * @return object - * - * @throws \Doctrine\Instantiator\Exception\ExceptionInterface - */ - public function instantiate($className); -} diff --git a/vendor/doctrine/lexer/LICENSE b/vendor/doctrine/lexer/LICENSE deleted file mode 100644 index 5e781fc..0000000 --- a/vendor/doctrine/lexer/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2006-2013 Doctrine Project - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/doctrine/lexer/README.md b/vendor/doctrine/lexer/README.md deleted file mode 100644 index 66f4430..0000000 --- a/vendor/doctrine/lexer/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Doctrine Lexer - -Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers. - -This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL). diff --git a/vendor/doctrine/lexer/composer.json b/vendor/doctrine/lexer/composer.json deleted file mode 100644 index 8cd694c..0000000 --- a/vendor/doctrine/lexer/composer.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "doctrine/lexer", - "type": "library", - "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", - "keywords": ["lexer", "parser"], - "homepage": "http://www.doctrine-project.org", - "license": "MIT", - "authors": [ - {"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"}, - {"name": "Roman Borschel", "email": "roman@code-factory.org"}, - {"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"} - ], - "require": { - "php": ">=5.3.2" - }, - "autoload": { - "psr-0": { "Doctrine\\Common\\Lexer\\": "lib/" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php b/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php deleted file mode 100644 index 399a552..0000000 --- a/vendor/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php +++ /dev/null @@ -1,327 +0,0 @@ -. - */ - -namespace Doctrine\Common\Lexer; - -/** - * Base class for writing simple lexers, i.e. for creating small DSLs. - * - * @since 2.0 - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - */ -abstract class AbstractLexer -{ - /** - * Lexer original input string. - * - * @var string - */ - private $input; - - /** - * Array of scanned tokens. - * - * Each token is an associative array containing three items: - * - 'value' : the string value of the token in the input string - * - 'type' : the type of the token (identifier, numeric, string, input - * parameter, none) - * - 'position' : the position of the token in the input string - * - * @var array - */ - private $tokens = array(); - - /** - * Current lexer position in input string. - * - * @var integer - */ - private $position = 0; - - /** - * Current peek of current lexer position. - * - * @var integer - */ - private $peek = 0; - - /** - * The next token in the input. - * - * @var array - */ - public $lookahead; - - /** - * The last matched/seen token. - * - * @var array - */ - public $token; - - /** - * Sets the input data to be tokenized. - * - * The Lexer is immediately reset and the new input tokenized. - * Any unprocessed tokens from any previous input are lost. - * - * @param string $input The input to be tokenized. - * - * @return void - */ - public function setInput($input) - { - $this->input = $input; - $this->tokens = array(); - - $this->reset(); - $this->scan($input); - } - - /** - * Resets the lexer. - * - * @return void - */ - public function reset() - { - $this->lookahead = null; - $this->token = null; - $this->peek = 0; - $this->position = 0; - } - - /** - * Resets the peek pointer to 0. - * - * @return void - */ - public function resetPeek() - { - $this->peek = 0; - } - - /** - * Resets the lexer position on the input to the given position. - * - * @param integer $position Position to place the lexical scanner. - * - * @return void - */ - public function resetPosition($position = 0) - { - $this->position = $position; - } - - /** - * Retrieve the original lexer's input until a given position. - * - * @param integer $position - * - * @return string - */ - public function getInputUntilPosition($position) - { - return substr($this->input, 0, $position); - } - - /** - * Checks whether a given token matches the current lookahead. - * - * @param integer|string $token - * - * @return boolean - */ - public function isNextToken($token) - { - return null !== $this->lookahead && $this->lookahead['type'] === $token; - } - - /** - * Checks whether any of the given tokens matches the current lookahead. - * - * @param array $tokens - * - * @return boolean - */ - public function isNextTokenAny(array $tokens) - { - return null !== $this->lookahead && in_array($this->lookahead['type'], $tokens, true); - } - - /** - * Moves to the next token in the input string. - * - * @return boolean - */ - public function moveNext() - { - $this->peek = 0; - $this->token = $this->lookahead; - $this->lookahead = (isset($this->tokens[$this->position])) - ? $this->tokens[$this->position++] : null; - - return $this->lookahead !== null; - } - - /** - * Tells the lexer to skip input tokens until it sees a token with the given value. - * - * @param string $type The token type to skip until. - * - * @return void - */ - public function skipUntil($type) - { - while ($this->lookahead !== null && $this->lookahead['type'] !== $type) { - $this->moveNext(); - } - } - - /** - * Checks if given value is identical to the given token. - * - * @param mixed $value - * @param integer $token - * - * @return boolean - */ - public function isA($value, $token) - { - return $this->getType($value) === $token; - } - - /** - * Moves the lookahead token forward. - * - * @return array|null The next token or NULL if there are no more tokens ahead. - */ - public function peek() - { - if (isset($this->tokens[$this->position + $this->peek])) { - return $this->tokens[$this->position + $this->peek++]; - } else { - return null; - } - } - - /** - * Peeks at the next token, returns it and immediately resets the peek. - * - * @return array|null The next token or NULL if there are no more tokens ahead. - */ - public function glimpse() - { - $peek = $this->peek(); - $this->peek = 0; - return $peek; - } - - /** - * Scans the input string for tokens. - * - * @param string $input A query string. - * - * @return void - */ - protected function scan($input) - { - static $regex; - - if ( ! isset($regex)) { - $regex = sprintf( - '/(%s)|%s/%s', - implode(')|(', $this->getCatchablePatterns()), - implode('|', $this->getNonCatchablePatterns()), - $this->getModifiers() - ); - } - - $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE; - $matches = preg_split($regex, $input, -1, $flags); - - foreach ($matches as $match) { - // Must remain before 'value' assignment since it can change content - $type = $this->getType($match[0]); - - $this->tokens[] = array( - 'value' => $match[0], - 'type' => $type, - 'position' => $match[1], - ); - } - } - - /** - * Gets the literal for a given token. - * - * @param integer $token - * - * @return string - */ - public function getLiteral($token) - { - $className = get_class($this); - $reflClass = new \ReflectionClass($className); - $constants = $reflClass->getConstants(); - - foreach ($constants as $name => $value) { - if ($value === $token) { - return $className . '::' . $name; - } - } - - return $token; - } - - /** - * Regex modifiers - * - * @return string - */ - protected function getModifiers() - { - return 'i'; - } - - /** - * Lexical catchable patterns. - * - * @return array - */ - abstract protected function getCatchablePatterns(); - - /** - * Lexical non-catchable patterns. - * - * @return array - */ - abstract protected function getNonCatchablePatterns(); - - /** - * Retrieve token type. Also processes the token value if necessary. - * - * @param string $value - * - * @return integer - */ - abstract protected function getType(&$value); -} diff --git a/vendor/jms/metadata/.gitignore b/vendor/jms/metadata/.gitignore deleted file mode 100644 index 5657f6e..0000000 --- a/vendor/jms/metadata/.gitignore +++ /dev/null @@ -1 +0,0 @@ -vendor \ No newline at end of file diff --git a/vendor/jms/metadata/.travis.yml b/vendor/jms/metadata/.travis.yml deleted file mode 100644 index 9b54292..0000000 --- a/vendor/jms/metadata/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -language: php - -php: - - 5.3 - - 5.4 - - 5.5 - - 5.6 - - hhvm - -matrix: - allow_failures: - - php: hhvm - -before_script: - - composer self-update - - composer install --dev --ignore-platform-reqs - -script: phpunit --coverage-clover clover - -after_success: - - wget https://scrutinizer-ci.com/ocular.phar - - php ocular.phar code-coverage:upload --format=php-clover clover diff --git a/vendor/jms/metadata/CHANGELOG.md b/vendor/jms/metadata/CHANGELOG.md deleted file mode 100644 index 5859f29..0000000 --- a/vendor/jms/metadata/CHANGELOG.md +++ /dev/null @@ -1,36 +0,0 @@ -CHANGELOG -========= - -This changelog references all relevant changes: - -To get the diff between the two last versions, go to -https://github.com/schmittjoh/metadata/compare/1.0.0...1.1.0 - -* 1.5.0 (2013-11-06) - * adds ability to inject new drivers into the DriverChain after it has been constructed - * improves performance by removing some superfluous filesystem calls - * made MetadataFactory implementation non-final - -* 1.4.1 (2013-08-26) - * fixes a possible permission issue when using filesystem ACLs - -* 1.4.0 (2013-08-25) - * fixes a race condition when writing cache files - -* 1.3.0 (2013-01-22) - * added ability to retrieve all managed classes from the metadata factory - -* 1.2.0 (2012-08-21) - * added a Doctrine Cache Adapter - * better support for traits, and classes in the global namespace - -* 1.1.0 (2011-10-04) - - * added support for metadata on interfaces - * added support for non annotation-based drivers - * added support for merging metadata - -This release is fully backwards compatible with the 1.0.0 release. Therefore, -the 1.0.x branch has been discontinued. - -* 1.0.0 (2011-07-09) diff --git a/vendor/jms/metadata/LICENSE b/vendor/jms/metadata/LICENSE deleted file mode 100644 index f49a4e1..0000000 --- a/vendor/jms/metadata/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/vendor/jms/metadata/README.rst b/vendor/jms/metadata/README.rst deleted file mode 100644 index 51517ff..0000000 --- a/vendor/jms/metadata/README.rst +++ /dev/null @@ -1,37 +0,0 @@ -Metadata is a library for class/method/property metadata management in PHP -========================================================================== - -Overview --------- - -This library provides some commonly needed base classes for managing metadata -for classes, methods and properties. The metadata can come from many different -sources (annotations, YAML/XML/PHP configuration files). - -The metadata classes are used to abstract away that source and provide a common -interface for all of them. - -Usage ------ - -The library provides three classes that you can extend to add your application -specific properties, and flags: ``ClassMetadata``, ``MethodMetadata``, and -``PropertyMetadata`` - -After you have added, your properties in sub-classes, you also need to add -``DriverInterface`` implementations which know how to populate these classes -from the different metadata sources. - -Finally, you can use the ``MetadataFactory`` to retrieve the metadata:: - - getMetadataForClass('MyNamespace\MyObject'); - diff --git a/vendor/jms/metadata/composer.json b/vendor/jms/metadata/composer.json deleted file mode 100644 index 58dec88..0000000 --- a/vendor/jms/metadata/composer.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "jms/metadata", - "description": "Class/method/property metadata management in PHP", - "keywords": ["annotations","metadata","yaml","xml"], - "type": "library", - "license": "Apache-2.0", - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "require": { - "php": ">=5.3.0" - }, - "require-dev" : { - "doctrine/cache" : "~1.0", - "symfony/cache" : "~3.1" - }, - "autoload": { - "psr-0": { "Metadata\\": "src/" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.5.x-dev" - } - } -} diff --git a/vendor/jms/metadata/composer.lock b/vendor/jms/metadata/composer.lock deleted file mode 100644 index fe17ee6..0000000 --- a/vendor/jms/metadata/composer.lock +++ /dev/null @@ -1,250 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "hash": "4cc1821f9af1271c77bb9a8bebc26138", - "content-hash": "ef7080989caee6eaf6daf11732a5bb86", - "packages": [], - "packages-dev": [ - { - "name": "doctrine/cache", - "version": "v1.6.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "b6f544a20f4807e81f7044d31e679ccbb1866dc3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/b6f544a20f4807e81f7044d31e679ccbb1866dc3", - "reference": "b6f544a20f4807e81f7044d31e679ccbb1866dc3", - "shasum": "" - }, - "require": { - "php": "~5.5|~7.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "phpunit/phpunit": "~4.8|~5.0", - "predis/predis": "~1.0", - "satooshi/php-coveralls": "~0.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.6.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "Caching library offering an object-oriented API for many cache backends", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "cache", - "caching" - ], - "time": "2016-10-29 11:16:17" - }, - { - "name": "psr/cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "time": "2016-08-06 20:24:11" - }, - { - "name": "psr/log", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2016-10-10 12:19:37" - }, - { - "name": "symfony/cache", - "version": "v3.1.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache.git", - "reference": "0f5881c9b8a03cef13fdee381f8ee623d0429cf4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/0f5881c9b8a03cef13fdee381f8ee623d0429cf4", - "reference": "0f5881c9b8a03cef13fdee381f8ee623d0429cf4", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "psr/cache": "~1.0", - "psr/log": "~1.0" - }, - "provide": { - "psr/cache-implementation": "1.0" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/cache": "~1.6", - "predis/predis": "~1.0" - }, - "suggest": { - "symfony/polyfill-apcu": "For using ApcuAdapter on HHVM" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Cache\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony implementation of PSR-6", - "homepage": "https://symfony.com", - "keywords": [ - "caching", - "psr6" - ], - "time": "2016-11-09 14:09:05" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">=5.3.0" - }, - "platform-dev": [] -} diff --git a/vendor/jms/metadata/phpunit.xml.dist b/vendor/jms/metadata/phpunit.xml.dist deleted file mode 100644 index 38db7c3..0000000 --- a/vendor/jms/metadata/phpunit.xml.dist +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ./tests/Metadata/ - - - - - - performance - - - diff --git a/vendor/jms/metadata/src/Metadata/AdvancedMetadataFactoryInterface.php b/vendor/jms/metadata/src/Metadata/AdvancedMetadataFactoryInterface.php deleted file mode 100644 index 22391ec..0000000 --- a/vendor/jms/metadata/src/Metadata/AdvancedMetadataFactoryInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata; - -/** - * Interface for advanced Metadata Factory implementations. - * - * @author Johannes M. Schmitt - * @author Jordan Stout - */ -interface AdvancedMetadataFactoryInterface extends MetadataFactoryInterface -{ - /** - * Gets all the possible classes. - * - * @throws \RuntimeException if driver does not an advanced driver. - * @return array - */ - public function getAllClassNames(); -} diff --git a/vendor/jms/metadata/src/Metadata/Cache/CacheInterface.php b/vendor/jms/metadata/src/Metadata/Cache/CacheInterface.php deleted file mode 100644 index dbf3ccb..0000000 --- a/vendor/jms/metadata/src/Metadata/Cache/CacheInterface.php +++ /dev/null @@ -1,35 +0,0 @@ - - */ -class DoctrineCacheAdapter implements CacheInterface -{ - /** - * @param string $prefix - */ - private $prefix; - - /** - * @var Cache $cache - */ - private $cache; - - /** - * @param string $prefix - * @param Cache $cache - */ - public function __construct($prefix, Cache $cache) - { - $this->prefix = $prefix; - $this->cache = $cache; - } - - /** - * {@inheritDoc} - */ - public function loadClassMetadataFromCache(\ReflectionClass $class) - { - $cache = $this->cache->fetch($this->prefix . $class->name); - return false === $cache ? null : $cache; - } - - /** - * {@inheritDoc} - */ - public function putClassMetadataInCache(ClassMetadata $metadata) - { - $this->cache->save($this->prefix . $metadata->name, $metadata); - } - - /** - * {@inheritDoc} - */ - public function evictClassMetadataFromCache(\ReflectionClass $class) - { - $this->cache->delete($this->prefix . $class->name); - } -} diff --git a/vendor/jms/metadata/src/Metadata/Cache/FileCache.php b/vendor/jms/metadata/src/Metadata/Cache/FileCache.php deleted file mode 100644 index c16848e..0000000 --- a/vendor/jms/metadata/src/Metadata/Cache/FileCache.php +++ /dev/null @@ -1,83 +0,0 @@ -dir = rtrim($dir, '\\/'); - } - - /** - * {@inheritDoc} - */ - public function loadClassMetadataFromCache(\ReflectionClass $class) - { - $path = $this->dir.'/'.strtr($class->name, '\\', '-').'.cache.php'; - if (!file_exists($path)) { - return null; - } - - return include $path; - } - - /** - * {@inheritDoc} - */ - public function putClassMetadataInCache(ClassMetadata $metadata) - { - $path = $this->dir.'/'.strtr($metadata->name, '\\', '-').'.cache.php'; - - $tmpFile = tempnam($this->dir, 'metadata-cache'); - file_put_contents($tmpFile, 'renameFile($tmpFile, $path); - } - - /** - * Renames a file with fallback for windows - * - * @param string $source - * @param string $target - */ - private function renameFile($source, $target) { - if (false === @rename($source, $target)) { - if (defined('PHP_WINDOWS_VERSION_BUILD')) { - if (false === copy($source, $target)) { - throw new \RuntimeException(sprintf('(WIN) Could not write new cache file to %s.', $target)); - } - if (false === unlink($source)) { - throw new \RuntimeException(sprintf('(WIN) Could not delete temp cache file to %s.', $source)); - } - } else { - throw new \RuntimeException(sprintf('Could not write new cache file to %s.', $target)); - } - } - } - - /** - * {@inheritDoc} - */ - public function evictClassMetadataFromCache(\ReflectionClass $class) - { - $path = $this->dir.'/'.strtr($class->name, '\\', '-').'.cache.php'; - if (file_exists($path)) { - unlink($path); - } - } -} diff --git a/vendor/jms/metadata/src/Metadata/Cache/PsrCacheAdapter.php b/vendor/jms/metadata/src/Metadata/Cache/PsrCacheAdapter.php deleted file mode 100644 index 9b9bb2f..0000000 --- a/vendor/jms/metadata/src/Metadata/Cache/PsrCacheAdapter.php +++ /dev/null @@ -1,51 +0,0 @@ -prefix = $prefix; - $this->pool = $pool; - } - - /** - * {@inheritDoc} - */ - public function loadClassMetadataFromCache(\ReflectionClass $class) - { - $this->lastItem = $this->pool->getItem(strtr($this->prefix . $class->name, '\\', '.')); - - return $this->lastItem->get(); - } - - /** - * {@inheritDoc} - */ - public function putClassMetadataInCache(ClassMetadata $metadata) - { - $key = strtr($this->prefix . $metadata->name, '\\', '.'); - - if (null === $this->lastItem || $this->lastItem->getKey() !== $key) { - $this->lastItem = $this->pool->getItem($key); - } - - $this->pool->save($this->lastItem->set($metadata)); - } - - /** - * {@inheritDoc} - */ - public function evictClassMetadataFromCache(\ReflectionClass $class) - { - $this->pool->deleteItem(strtr($this->prefix . $class->name, '\\', '.')); - } -} diff --git a/vendor/jms/metadata/src/Metadata/ClassHierarchyMetadata.php b/vendor/jms/metadata/src/Metadata/ClassHierarchyMetadata.php deleted file mode 100644 index a7ed6c0..0000000 --- a/vendor/jms/metadata/src/Metadata/ClassHierarchyMetadata.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata; - -/** - * Represents the metadata for the entire class hierarchy. - * - * @author Johannes M. Schmitt - */ -class ClassHierarchyMetadata -{ - public $classMetadata = array(); - - public function addClassMetadata(ClassMetadata $metadata) - { - $this->classMetadata[$metadata->name] = $metadata; - } - - public function getRootClassMetadata() - { - return reset($this->classMetadata); - } - - public function getOutsideClassMetadata() - { - return end($this->classMetadata); - } - - public function isFresh($timestamp) - { - foreach ($this->classMetadata as $metadata) { - if (!$metadata->isFresh($timestamp)) { - return false; - } - } - - return true; - } -} diff --git a/vendor/jms/metadata/src/Metadata/ClassMetadata.php b/vendor/jms/metadata/src/Metadata/ClassMetadata.php deleted file mode 100644 index 8f85054..0000000 --- a/vendor/jms/metadata/src/Metadata/ClassMetadata.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata; - -/** - * Base class for class metadata. - * - * This class is intended to be extended to add your own application specific - * properties, and flags. - * - * @author Johannes M. Schmitt - */ -class ClassMetadata implements \Serializable -{ - public $name; - public $reflection; - public $methodMetadata = array(); - public $propertyMetadata = array(); - public $fileResources = array(); - public $createdAt; - - public function __construct($name) - { - $this->name = $name; - - $this->reflection = new \ReflectionClass($name); - $this->createdAt = time(); - } - - public function addMethodMetadata(MethodMetadata $metadata) - { - $this->methodMetadata[$metadata->name] = $metadata; - } - - public function addPropertyMetadata(PropertyMetadata $metadata) - { - $this->propertyMetadata[$metadata->name] = $metadata; - } - - public function isFresh($timestamp = null) - { - if (null === $timestamp) { - $timestamp = $this->createdAt; - } - - foreach ($this->fileResources as $filepath) { - if (!file_exists($filepath)) { - return false; - } - - if ($timestamp < filemtime($filepath)) { - return false; - } - } - - return true; - } - - public function serialize() - { - return serialize(array( - $this->name, - $this->methodMetadata, - $this->propertyMetadata, - $this->fileResources, - $this->createdAt, - )); - } - - public function unserialize($str) - { - list( - $this->name, - $this->methodMetadata, - $this->propertyMetadata, - $this->fileResources, - $this->createdAt - ) = unserialize($str); - - $this->reflection = new \ReflectionClass($this->name); - } -} diff --git a/vendor/jms/metadata/src/Metadata/Driver/AbstractFileDriver.php b/vendor/jms/metadata/src/Metadata/Driver/AbstractFileDriver.php deleted file mode 100644 index 3392097..0000000 --- a/vendor/jms/metadata/src/Metadata/Driver/AbstractFileDriver.php +++ /dev/null @@ -1,59 +0,0 @@ - - */ -abstract class AbstractFileDriver implements AdvancedDriverInterface -{ - /** - * @var FileLocatorInterface|FileLocator - */ - private $locator; - - public function __construct(FileLocatorInterface $locator) - { - $this->locator = $locator; - } - - public function loadMetadataForClass(\ReflectionClass $class) - { - if (null === $path = $this->locator->findFileForClass($class, $this->getExtension())) { - return null; - } - - return $this->loadMetadataFromFile($class, $path); - } - - /** - * {@inheritDoc} - */ - public function getAllClassNames() - { - if (!$this->locator instanceof AdvancedFileLocatorInterface) { - throw new \RuntimeException('Locator "%s" must be an instance of "AdvancedFileLocatorInterface".'); - } - - return $this->locator->findAllClasses($this->getExtension()); - } - - /** - * Parses the content of the file, and converts it to the desired metadata. - * - * @param \ReflectionClass $class - * @param string $file - * - * @return \Metadata\ClassMetadata|null - */ - abstract protected function loadMetadataFromFile(\ReflectionClass $class, $file); - - /** - * Returns the extension of the file. - * - * @return string - */ - abstract protected function getExtension(); -} diff --git a/vendor/jms/metadata/src/Metadata/Driver/AdvancedDriverInterface.php b/vendor/jms/metadata/src/Metadata/Driver/AdvancedDriverInterface.php deleted file mode 100644 index 48b0eb4..0000000 --- a/vendor/jms/metadata/src/Metadata/Driver/AdvancedDriverInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata\Driver; - -/** - * Forces advanced logic to drivers. - * - * @author Jordan Stout - */ -interface AdvancedDriverInterface extends DriverInterface -{ - /** - * Gets all the metadata class names known to this driver. - * - * @return array - */ - public function getAllClassNames(); -} \ No newline at end of file diff --git a/vendor/jms/metadata/src/Metadata/Driver/AdvancedFileLocatorInterface.php b/vendor/jms/metadata/src/Metadata/Driver/AdvancedFileLocatorInterface.php deleted file mode 100644 index a2f6c84..0000000 --- a/vendor/jms/metadata/src/Metadata/Driver/AdvancedFileLocatorInterface.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata\Driver; - -/** - * Forces advanced logic on a file locator. - * - * @author Jordan Stout - */ -interface AdvancedFileLocatorInterface extends FileLocatorInterface -{ - /** - * Finds all possible metadata files. - * - * @param string $extension - * - * @return array - */ - public function findAllClasses($extension); -} \ No newline at end of file diff --git a/vendor/jms/metadata/src/Metadata/Driver/DriverChain.php b/vendor/jms/metadata/src/Metadata/Driver/DriverChain.php deleted file mode 100644 index d7221d4..0000000 --- a/vendor/jms/metadata/src/Metadata/Driver/DriverChain.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata\Driver; - -final class DriverChain implements AdvancedDriverInterface -{ - private $drivers; - - public function __construct(array $drivers = array()) - { - $this->drivers = $drivers; - } - - public function addDriver(DriverInterface $driver) - { - $this->drivers[] = $driver; - } - - public function loadMetadataForClass(\ReflectionClass $class) - { - foreach ($this->drivers as $driver) { - if (null !== $metadata = $driver->loadMetadataForClass($class)) { - return $metadata; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function getAllClassNames() - { - $classes = array(); - foreach ($this->drivers as $driver) { - if (!$driver instanceof AdvancedDriverInterface) { - throw new \RuntimeException( - sprintf( - 'Driver "%s" must be an instance of "AdvancedDriverInterface" to use '. - '"DriverChain::getAllClassNames()".', - get_class($driver) - ) - ); - } - $driverClasses = $driver->getAllClassNames(); - if (!empty($driverClasses)) { - $classes = array_merge($classes, $driverClasses); - } - } - - return $classes; - } -} diff --git a/vendor/jms/metadata/src/Metadata/Driver/DriverInterface.php b/vendor/jms/metadata/src/Metadata/Driver/DriverInterface.php deleted file mode 100644 index 4044525..0000000 --- a/vendor/jms/metadata/src/Metadata/Driver/DriverInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata\Driver; - -interface DriverInterface -{ - /** - * @param \ReflectionClass $class - * - * @return \Metadata\ClassMetadata - */ - public function loadMetadataForClass(\ReflectionClass $class); -} diff --git a/vendor/jms/metadata/src/Metadata/Driver/FileLocator.php b/vendor/jms/metadata/src/Metadata/Driver/FileLocator.php deleted file mode 100644 index 296498d..0000000 --- a/vendor/jms/metadata/src/Metadata/Driver/FileLocator.php +++ /dev/null @@ -1,66 +0,0 @@ -dirs = $dirs; - } - - public function getDirs() - { - return $this->dirs; - } - - /** - * @param \ReflectionClass $class - * @param string $extension - * - * @return string|null - */ - public function findFileForClass(\ReflectionClass $class, $extension) - { - foreach ($this->dirs as $prefix => $dir) { - if ('' !== $prefix && 0 !== strpos($class->getNamespaceName(), $prefix)) { - continue; - } - - $len = '' === $prefix ? 0 : strlen($prefix) + 1; - $path = $dir.'/'.str_replace('\\', '.', substr($class->name, $len)).'.'.$extension; - if (file_exists($path)) { - return $path; - } - } - - return null; - } - - /** - * {@inheritDoc} - */ - public function findAllClasses($extension) - { - $classes = array(); - foreach ($this->dirs as $prefix => $dir) { - /** @var $iterator \RecursiveIteratorIterator|\SplFileInfo[] */ - $iterator = new \RecursiveIteratorIterator( - new \RecursiveDirectoryIterator($dir), - \RecursiveIteratorIterator::LEAVES_ONLY - ); - $nsPrefix = $prefix !== '' ? $prefix.'\\' : ''; - foreach ($iterator as $file) { - if (($fileName = $file->getBasename('.'.$extension)) == $file->getBasename()) { - continue; - } - - $classes[] = $nsPrefix.str_replace('.', '\\', $fileName); - } - } - - return $classes; - } -} diff --git a/vendor/jms/metadata/src/Metadata/Driver/FileLocatorInterface.php b/vendor/jms/metadata/src/Metadata/Driver/FileLocatorInterface.php deleted file mode 100644 index 06c7a16..0000000 --- a/vendor/jms/metadata/src/Metadata/Driver/FileLocatorInterface.php +++ /dev/null @@ -1,14 +0,0 @@ -container = $container; - $this->realDriverId = $realDriverId; - } - - /** - * {@inheritDoc} - */ - public function loadMetadataForClass(\ReflectionClass $class) - { - return $this->container->get($this->realDriverId)->loadMetadataForClass($class); - } -} diff --git a/vendor/jms/metadata/src/Metadata/MergeableClassMetadata.php b/vendor/jms/metadata/src/Metadata/MergeableClassMetadata.php deleted file mode 100644 index 13ec158..0000000 --- a/vendor/jms/metadata/src/Metadata/MergeableClassMetadata.php +++ /dev/null @@ -1,23 +0,0 @@ -name = $object->name; - $this->reflection = $object->reflection; - $this->methodMetadata = array_merge($this->methodMetadata, $object->methodMetadata); - $this->propertyMetadata = array_merge($this->propertyMetadata, $object->propertyMetadata); - $this->fileResources = array_merge($this->fileResources, $object->fileResources); - - if ($object->createdAt < $this->createdAt) { - $this->createdAt = $object->createdAt; - } - } -} \ No newline at end of file diff --git a/vendor/jms/metadata/src/Metadata/MergeableInterface.php b/vendor/jms/metadata/src/Metadata/MergeableInterface.php deleted file mode 100644 index 5955074..0000000 --- a/vendor/jms/metadata/src/Metadata/MergeableInterface.php +++ /dev/null @@ -1,13 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata; - -use Metadata\Driver\AdvancedDriverInterface; -use Metadata\Driver\DriverInterface; -use Metadata\Cache\CacheInterface; - -class MetadataFactory implements AdvancedMetadataFactoryInterface -{ - private $driver; - private $cache; - private $loadedMetadata = array(); - private $loadedClassMetadata = array(); - private $hierarchyMetadataClass; - private $includeInterfaces = false; - private $debug; - - /** - * @param DriverInterface $driver - * @param string $hierarchyMetadataClass - * @param boolean $debug - */ - public function __construct(DriverInterface $driver, $hierarchyMetadataClass = 'Metadata\ClassHierarchyMetadata', $debug = false) - { - $this->driver = $driver; - $this->hierarchyMetadataClass = $hierarchyMetadataClass; - $this->debug = (Boolean) $debug; - } - - /** - * @param boolean $include - */ - public function setIncludeInterfaces($include) - { - $this->includeInterfaces = (Boolean) $include; - } - - public function setCache(CacheInterface $cache) - { - $this->cache = $cache; - } - - /** - * @param string $className - * - * @return ClassHierarchyMetadata|MergeableClassMetadata|null - */ - public function getMetadataForClass($className) - { - if (isset($this->loadedMetadata[$className])) { - return $this->filterNullMetadata($this->loadedMetadata[$className]); - } - - $metadata = null; - foreach ($this->getClassHierarchy($className) as $class) { - if (isset($this->loadedClassMetadata[$name = $class->getName()])) { - if (null !== $classMetadata = $this->filterNullMetadata($this->loadedClassMetadata[$name])) { - $this->addClassMetadata($metadata, $classMetadata); - } - continue; - } - - // check the cache - if (null !== $this->cache) { - if (($classMetadata = $this->cache->loadClassMetadataFromCache($class)) instanceof NullMetadata) { - $this->loadedClassMetadata[$name] = $classMetadata; - continue; - } - - if (null !== $classMetadata) { - if ( ! $classMetadata instanceof ClassMetadata) { - throw new \LogicException(sprintf('The cache must return instances of ClassMetadata, but got %s.', var_export($classMetadata, true))); - } - - if ($this->debug && !$classMetadata->isFresh()) { - $this->cache->evictClassMetadataFromCache($classMetadata->reflection); - } else { - $this->loadedClassMetadata[$name] = $classMetadata; - $this->addClassMetadata($metadata, $classMetadata); - continue; - } - } - } - - // load from source - if (null !== $classMetadata = $this->driver->loadMetadataForClass($class)) { - $this->loadedClassMetadata[$name] = $classMetadata; - $this->addClassMetadata($metadata, $classMetadata); - - if (null !== $this->cache) { - $this->cache->putClassMetadataInCache($classMetadata); - } - - continue; - } - - if (null !== $this->cache && !$this->debug) { - $this->cache->putClassMetadataInCache(new NullMetadata($class->getName())); - } - } - - if (null === $metadata) { - $metadata = new NullMetadata($className); - } - - return $this->filterNullMetadata($this->loadedMetadata[$className] = $metadata); - } - - /** - * {@inheritDoc} - */ - public function getAllClassNames() - { - if (!$this->driver instanceof AdvancedDriverInterface) { - throw new \RuntimeException( - sprintf('Driver "%s" must be an instance of "AdvancedDriverInterface".', get_class($this->driver)) - ); - } - - return $this->driver->getAllClassNames(); - } - - /** - * @param ClassMetadata|null $metadata - * @param ClassMetadata $toAdd - */ - private function addClassMetadata(&$metadata, $toAdd) - { - if ($toAdd instanceof MergeableInterface) { - if (null === $metadata) { - $metadata = clone $toAdd; - } else { - $metadata->merge($toAdd); - } - } else { - if (null === $metadata) { - $metadata = new $this->hierarchyMetadataClass; - } - - $metadata->addClassMetadata($toAdd); - } - } - - /** - * @param string $class - */ - private function getClassHierarchy($class) - { - $classes = array(); - $refl = new \ReflectionClass($class); - - do { - $classes[] = $refl; - $refl = $refl->getParentClass(); - } while (false !== $refl); - - $classes = array_reverse($classes, false); - - if (!$this->includeInterfaces) { - return $classes; - } - - $addedInterfaces = array(); - $newHierarchy = array(); - - foreach ($classes as $class) { - foreach ($class->getInterfaces() as $interface) { - if (isset($addedInterfaces[$interface->getName()])) { - continue; - } - $addedInterfaces[$interface->getName()] = true; - - $newHierarchy[] = $interface; - } - - $newHierarchy[] = $class; - } - - return $newHierarchy; - } - - /** - * @param NullMetadata|null $metadata - * - * @return ClassMetadata|null - */ - private function filterNullMetadata($metadata = null) - { - return !$metadata instanceof NullMetadata ? $metadata : null; - } -} diff --git a/vendor/jms/metadata/src/Metadata/MetadataFactoryInterface.php b/vendor/jms/metadata/src/Metadata/MetadataFactoryInterface.php deleted file mode 100644 index c544b52..0000000 --- a/vendor/jms/metadata/src/Metadata/MetadataFactoryInterface.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata; - -/** - * Interface for Metadata Factory implementations. - * - * @author Johannes M. Schmitt - */ -interface MetadataFactoryInterface -{ - /** - * Returns the gathered metadata for the given class name. - * - * If the drivers return instances of MergeableClassMetadata, these will be - * merged prior to returning. Otherwise, all metadata for the inheritance - * hierarchy will be returned as ClassHierarchyMetadata unmerged. - * - * If no metadata is available, null is returned. - * - * @param string $className - * - * @return ClassHierarchyMetadata|MergeableClassMetadata|null - */ - public function getMetadataForClass($className); -} diff --git a/vendor/jms/metadata/src/Metadata/MethodMetadata.php b/vendor/jms/metadata/src/Metadata/MethodMetadata.php deleted file mode 100644 index 67b2200..0000000 --- a/vendor/jms/metadata/src/Metadata/MethodMetadata.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata; - -/** - * Base class for method metadata. - * - * This class is intended to be extended to add your application specific - * properties, and flags. - * - * @author Johannes M. Schmitt - */ -class MethodMetadata implements \Serializable -{ - public $class; - public $name; - public $reflection; - - public function __construct($class, $name) - { - $this->class = $class; - $this->name = $name; - - $this->reflection = new \ReflectionMethod($class, $name); - $this->reflection->setAccessible(true); - } - - /** - * @param object $obj - * @param array $args - * - * @return mixed - */ - public function invoke($obj, array $args = array()) - { - return $this->reflection->invokeArgs($obj, $args); - } - - public function serialize() - { - return serialize(array($this->class, $this->name)); - } - - public function unserialize($str) - { - list($this->class, $this->name) = unserialize($str); - - $this->reflection = new \ReflectionMethod($this->class, $this->name); - $this->reflection->setAccessible(true); - } -} diff --git a/vendor/jms/metadata/src/Metadata/NullMetadata.php b/vendor/jms/metadata/src/Metadata/NullMetadata.php deleted file mode 100644 index f06dfba..0000000 --- a/vendor/jms/metadata/src/Metadata/NullMetadata.php +++ /dev/null @@ -1,13 +0,0 @@ - - */ -class NullMetadata extends ClassMetadata -{ - -} diff --git a/vendor/jms/metadata/src/Metadata/PropertyMetadata.php b/vendor/jms/metadata/src/Metadata/PropertyMetadata.php deleted file mode 100644 index 040be6b..0000000 --- a/vendor/jms/metadata/src/Metadata/PropertyMetadata.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata; - -/** - * Base class for property metadata. - * - * This class is intended to be extended to add your application specific - * properties, and flags. - * - * @author Johannes M. Schmitt - */ -class PropertyMetadata implements \Serializable -{ - public $class; - public $name; - public $reflection; - - public function __construct($class, $name) - { - $this->class = $class; - $this->name = $name; - - $this->reflection = new \ReflectionProperty($class, $name); - $this->reflection->setAccessible(true); - } - - /** - * @param object $obj - * - * @return mixed - */ - public function getValue($obj) - { - return $this->reflection->getValue($obj); - } - - /** - * @param object $obj - * @param string $value - */ - public function setValue($obj, $value) - { - $this->reflection->setValue($obj, $value); - } - - public function serialize() - { - return serialize(array( - $this->class, - $this->name, - )); - } - - public function unserialize($str) - { - list($this->class, $this->name) = unserialize($str); - - $this->reflection = new \ReflectionProperty($this->class, $this->name); - $this->reflection->setAccessible(true); - } -} diff --git a/vendor/jms/metadata/src/Metadata/Version.php b/vendor/jms/metadata/src/Metadata/Version.php deleted file mode 100644 index 3a7570e..0000000 --- a/vendor/jms/metadata/src/Metadata/Version.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace Metadata; - -final class Version -{ - const VERSION = '1.4-DEV'; -} diff --git a/vendor/jms/metadata/tests/Metadata/Tests/Cache/DoctrineCacheAdapterTest.php b/vendor/jms/metadata/tests/Metadata/Tests/Cache/DoctrineCacheAdapterTest.php deleted file mode 100644 index 3164b89..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/Cache/DoctrineCacheAdapterTest.php +++ /dev/null @@ -1,33 +0,0 @@ -markTestSkipped('Doctrine\Common is not installed.'); - } - } - - public function testLoadEvictPutClassMetadataFromInCache() - { - $cache = new DoctrineCacheAdapter('metadata-test', new ArrayCache()); - - $this->assertNull($cache->loadClassMetadataFromCache($refl = new \ReflectionClass('Metadata\Tests\Fixtures\TestObject'))); - $cache->putClassMetadataInCache($metadata = new ClassMetadata('Metadata\Tests\Fixtures\TestObject')); - - $this->assertEquals($metadata, $cache->loadClassMetadataFromCache($refl)); - - $cache->evictClassMetadataFromCache($refl); - $this->assertNull($cache->loadClassMetadataFromCache($refl)); - } -} diff --git a/vendor/jms/metadata/tests/Metadata/Tests/Cache/FileCacheTest.php b/vendor/jms/metadata/tests/Metadata/Tests/Cache/FileCacheTest.php deleted file mode 100644 index 9325dd7..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/Cache/FileCacheTest.php +++ /dev/null @@ -1,22 +0,0 @@ -assertNull($cache->loadClassMetadataFromCache($refl = new \ReflectionClass('Metadata\Tests\Fixtures\TestObject'))); - $cache->putClassMetadataInCache($metadata = new ClassMetadata('Metadata\Tests\Fixtures\TestObject')); - - $this->assertEquals($metadata, $cache->loadClassMetadataFromCache($refl)); - - $cache->evictClassMetadataFromCache($refl); - $this->assertNull($cache->loadClassMetadataFromCache($refl)); - } -} \ No newline at end of file diff --git a/vendor/jms/metadata/tests/Metadata/Tests/Cache/PsrCacheAdapterTest.php b/vendor/jms/metadata/tests/Metadata/Tests/Cache/PsrCacheAdapterTest.php deleted file mode 100644 index 7470eb6..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/Cache/PsrCacheAdapterTest.php +++ /dev/null @@ -1,33 +0,0 @@ -markTestSkipped('symfony/cache is not installed.'); - } - } - - public function testLoadEvictPutClassMetadataFromInCache() - { - $cache = new PsrCacheAdapter('metadata-test', new ArrayAdapter()); - - $this->assertNull($cache->loadClassMetadataFromCache($refl = new \ReflectionClass('Metadata\Tests\Fixtures\TestObject'))); - $cache->putClassMetadataInCache($metadata = new ClassMetadata('Metadata\Tests\Fixtures\TestObject')); - - $this->assertEquals($metadata, $cache->loadClassMetadataFromCache($refl)); - - $cache->evictClassMetadataFromCache($refl); - $this->assertNull($cache->loadClassMetadataFromCache($refl)); - } -} diff --git a/vendor/jms/metadata/tests/Metadata/Tests/ClassMetadataTest.php b/vendor/jms/metadata/tests/Metadata/Tests/ClassMetadataTest.php deleted file mode 100644 index 99cb9b3..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/ClassMetadataTest.php +++ /dev/null @@ -1,39 +0,0 @@ -assertEquals('Metadata\Tests\Fixtures\TestObject', $metadata->name); - $this->assertEquals('Metadata\Tests\Fixtures\TestObject', $metadata->reflection->name); - } - - public function testSerializeUnserialize() - { - $metadata = new ClassMetadata('Metadata\Tests\Fixtures\TestObject'); - - $this->assertEquals($metadata, unserialize(serialize($metadata))); - } - - public function testIsFresh() - { - $ref = new \ReflectionClass('Metadata\Tests\Fixtures\TestObject'); - touch($ref->getFilename()); - sleep(2); - - $metadata = new ClassMetadata($ref->name); - $metadata->fileResources[] = $ref->getFilename(); - $this->assertTrue($metadata->isFresh()); - - sleep(2); - clearstatcache($ref->getFilename()); - touch($ref->getFilename()); - $this->assertFalse($metadata->isFresh()); - } -} diff --git a/vendor/jms/metadata/tests/Metadata/Tests/Driver/AbstractFileDriverTest.php b/vendor/jms/metadata/tests/Metadata/Tests/Driver/AbstractFileDriverTest.php deleted file mode 100644 index 20b91fb..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/Driver/AbstractFileDriverTest.php +++ /dev/null @@ -1,85 +0,0 @@ - - */ -class AbstractFileDriverTest extends \PHPUnit_Framework_TestCase -{ - private static $extension = 'jms_metadata.yml'; - - /** @var \PHPUnit_Framework_MockObject_MockObject */ - private $locator; - - /** @var \PHPUnit_Framework_MockObject_MockObject */ - private $driver; - - public function setUp() - { - $this->locator = $this->getMock('Metadata\Driver\FileLocator', array(), array(), '', false); - $this->driver = $this->getMockBuilder('Metadata\Driver\AbstractFileDriver') - ->setConstructorArgs(array($this->locator)) - ->getMockForAbstractClass(); - - $this->driver->expects($this->any())->method('getExtension')->will($this->returnValue(self::$extension)); - } - - public function testLoadMetadataForClass() - { - $class = new \ReflectionClass('\stdClass'); - $this->locator - ->expects($this->once()) - ->method('findFileForClass') - ->with($class, self::$extension) - ->will($this->returnValue('Some\Path')); - - $this->driver - ->expects($this->once()) - ->method('loadMetadataFromFile') - ->with($class, 'Some\Path') - ->will($this->returnValue($metadata = new ClassMetadata('\stdClass'))); - - $this->assertSame($metadata, $this->driver->loadMetadataForClass($class)); - } - - public function testLoadMetadataForClassWillReturnNull() - { - $class = new \ReflectionClass('\stdClass'); - $this->locator - ->expects($this->once()) - ->method('findFileForClass') - ->with($class, self::$extension) - ->will($this->returnValue(null)); - - $this->assertSame(null, $this->driver->loadMetadataForClass($class)); - } - - public function testGetAllClassNames() - { - $class = new \ReflectionClass('\stdClass'); - $this->locator - ->expects($this->once()) - ->method('findAllClasses') - ->with(self::$extension) - ->will($this->returnValue(array('\stdClass'))); - - $this->assertSame(array('\stdClass'), $this->driver->getAllClassNames($class)); - } - - public function testGetAllClassNamesThrowsRuntimeException() - { - $this->setExpectedException('RuntimeException'); - - $locator = $this->getMock('Metadata\Driver\FileLocatorInterface', array(), array(), '', false); - $driver = $this->getMockBuilder('Metadata\Driver\AbstractFileDriver') - ->setConstructorArgs(array($locator)) - ->getMockForAbstractClass(); - $class = new \ReflectionClass('\stdClass'); - $locator->expects($this->never())->method('findAllClasses'); - - $driver->getAllClassNames($class); - } -} diff --git a/vendor/jms/metadata/tests/Metadata/Tests/Driver/DriverChainTest.php b/vendor/jms/metadata/tests/Metadata/Tests/Driver/DriverChainTest.php deleted file mode 100644 index 5e33643..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/Driver/DriverChainTest.php +++ /dev/null @@ -1,65 +0,0 @@ -getMock('Metadata\\Driver\\DriverInterface'); - $driver - ->expects($this->once()) - ->method('loadMetadataForClass') - ->will($this->returnValue($metadata = new ClassMetadata('\stdClass'))) - ; - $chain = new DriverChain(array($driver)); - - $this->assertSame($metadata, $chain->loadMetadataForClass(new \ReflectionClass('\stdClass'))); - } - - public function testGetAllClassNames() - { - $driver1 = $this->getMock('Metadata\\Driver\\AdvancedDriverInterface'); - $driver1 - ->expects($this->once()) - ->method('getAllClassNames') - ->will($this->returnValue(array('Foo'))); - - $driver2 = $this->getMock('Metadata\\Driver\\AdvancedDriverInterface'); - $driver2 - ->expects($this->once()) - ->method('getAllClassNames') - ->will($this->returnValue(array('Bar'))); - - $chain = new DriverChain(array($driver1, $driver2)); - - $this->assertSame(array('Foo', 'Bar'), $chain->getAllClassNames()); - } - - public function testLoadMetadataForClassReturnsNullWhenNoMetadataIsFound() - { - $driver = new DriverChain(array()); - $this->assertNull($driver->loadMetadataForClass(new \ReflectionClass('\stdClass'))); - - $driver = $this->getMock('Metadata\\Driver\\DriverInterface'); - $driver - ->expects($this->once()) - ->method('loadMetadataForClass') - ->will($this->returnValue(null)) - ; - $driverChain = new DriverChain(array($driver)); - $this->assertNull($driver->loadMetadataForClass(new \ReflectionClass('\stdClass'))); - } - - public function testGetAllClassNamesThrowsException() - { - $this->setExpectedException('RuntimeException'); - $driver = $this->getMock('Metadata\\Driver\\DriverInterface'); - $driver->expects($this->never())->method('getAllClassNames'); - $chain = new DriverChain(array($driver)); - $chain->getAllClassNames(); - } -} diff --git a/vendor/jms/metadata/tests/Metadata/Tests/Driver/FileLocatorTest.php b/vendor/jms/metadata/tests/Metadata/Tests/Driver/FileLocatorTest.php deleted file mode 100644 index b92d8c9..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/Driver/FileLocatorTest.php +++ /dev/null @@ -1,69 +0,0 @@ - __DIR__.'/Fixture/A', - 'Metadata\Tests\Driver\Fixture\B' => __DIR__.'/Fixture/B', - 'Metadata\Tests\Driver\Fixture\C' => __DIR__.'/Fixture/C', - )); - - $ref = new \ReflectionClass('Metadata\Tests\Driver\Fixture\A\A'); - $this->assertEquals(realpath(__DIR__.'/Fixture/A/A.xml'), realpath($locator->findFileForClass($ref, 'xml'))); - - $ref = new \ReflectionClass('Metadata\Tests\Driver\Fixture\B\B'); - $this->assertNull($locator->findFileForClass($ref, 'xml')); - - $ref = new \ReflectionClass('Metadata\Tests\Driver\Fixture\C\SubDir\C'); - $this->assertEquals(realpath(__DIR__.'/Fixture/C/SubDir.C.yml'), realpath($locator->findFileForClass($ref, 'yml'))); - } - - public function testTraits() - { - if (version_compare(PHP_VERSION, '5.4.0', '<')) { - $this->markTestSkipped('No traits available'); - } - - $locator = new FileLocator(array( - 'Metadata\Tests\Driver\Fixture\T' => __DIR__.'/Fixture/T', - )); - - $ref = new \ReflectionClass('Metadata\Tests\Driver\Fixture\T\T'); - $this->assertEquals(realpath(__DIR__.'/Fixture/T/T.xml'), realpath($locator->findFileForClass($ref, 'xml'))); - } - - public function testFindFileForGlobalNamespacedClass() - { - $locator = new FileLocator(array( - '' => __DIR__.'/Fixture/D', - )); - - require_once __DIR__.'/Fixture/D/D.php'; - $ref = new \ReflectionClass('D'); - $this->assertEquals(realpath(__DIR__.'/Fixture/D/D.yml'), realpath($locator->findFileForClass($ref, 'yml'))); - } - - public function testFindAllFiles() - { - $locator = new FileLocator(array( - 'Metadata\Tests\Driver\Fixture\A' => __DIR__.'/Fixture/A', - 'Metadata\Tests\Driver\Fixture\B' => __DIR__.'/Fixture/B', - 'Metadata\Tests\Driver\Fixture\C' => __DIR__.'/Fixture/C', - 'Metadata\Tests\Driver\Fixture\D' => __DIR__.'/Fixture/D' - )); - - $this->assertCount(1, $xmlFiles = $locator->findAllClasses('xml')); - $this->assertSame('Metadata\Tests\Driver\Fixture\A\A', $xmlFiles[0]); - - $this->assertCount(3, $ymlFiles = $locator->findAllClasses('yml')); - $this->assertSame('Metadata\Tests\Driver\Fixture\B\B', $ymlFiles[0]); - $this->assertSame('Metadata\Tests\Driver\Fixture\C\SubDir\C', $ymlFiles[1]); - $this->assertSame('Metadata\Tests\Driver\Fixture\D\D', $ymlFiles[2]); - } -} diff --git a/vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/A/A.php b/vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/A/A.php deleted file mode 100644 index 3ea6df1..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/Driver/Fixture/A/A.php +++ /dev/null @@ -1,5 +0,0 @@ -foo; - } - - private function setFoo($foo) - { - $this->foo = $foo; - } -} diff --git a/vendor/jms/metadata/tests/Metadata/Tests/Fixtures/TestParent.php b/vendor/jms/metadata/tests/Metadata/Tests/Fixtures/TestParent.php deleted file mode 100644 index 940cb5b..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/Fixtures/TestParent.php +++ /dev/null @@ -1,7 +0,0 @@ -propertyMetadata['foo'] = 'bar'; - $parentMetadata->propertyMetadata['baz'] = 'baz'; - $parentMetadata->methodMetadata['foo'] = 'bar'; - $parentMetadata->createdAt = 2; - $parentMetadata->fileResources[] = 'foo'; - - $childMetadata = new MergeableClassMetadata('Metadata\Tests\Fixtures\TestObject'); - $childMetadata->propertyMetadata['foo'] = 'baz'; - $childMetadata->methodMetadata['foo'] = 'baz'; - $childMetadata->createdAt = 1; - $childMetadata->fileResources[] = 'bar'; - - $parentMetadata->merge($childMetadata); - $this->assertEquals('Metadata\Tests\Fixtures\TestObject', $parentMetadata->name); - $this->assertEquals('Metadata\Tests\Fixtures\TestObject', $parentMetadata->reflection->name); - $this->assertEquals(array('foo' => 'baz', 'baz' => 'baz',), $parentMetadata->propertyMetadata); - $this->assertEquals(array('foo' => 'baz',), $parentMetadata->methodMetadata); - $this->assertEquals(1, $parentMetadata->createdAt); - $this->assertEquals(array('foo', 'bar'), $parentMetadata->fileResources); - } -} \ No newline at end of file diff --git a/vendor/jms/metadata/tests/Metadata/Tests/MetadataFactoryTest.php b/vendor/jms/metadata/tests/Metadata/Tests/MetadataFactoryTest.php deleted file mode 100644 index 7fb5df4..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/MetadataFactoryTest.php +++ /dev/null @@ -1,279 +0,0 @@ -getMock('Metadata\Driver\DriverInterface'); - - $driver - ->expects($this->at(0)) - ->method('loadMetadataForClass') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\TestObject'))) - ->will($this->returnCallback(function($class) { - return new ClassMetadata($class->getName()); - })) - ; - $driver - ->expects($this->at(1)) - ->method('loadMetadataForClass') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\TestParent'))) - ->will($this->returnCallback(function($class) { - return new ClassMetadata($class->getName()); - })) - ; - - $factory = new MetadataFactory($driver); - $metadata = $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestParent'); - - $this->assertInstanceOf('Metadata\ClassHierarchyMetadata', $metadata); - $this->assertEquals(2, count($metadata->classMetadata)); - } - - public function testGetMetadataForClassWhenMergeable() - { - $driver = $this->getMock('Metadata\Driver\DriverInterface'); - - $driver - ->expects($this->at(0)) - ->method('loadMetadataForClass') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\TestObject'))) - ->will($this->returnCallback(function($class) { - return new MergeableClassMetadata($class->getName()); - })) - ; - $driver - ->expects($this->at(1)) - ->method('loadMetadataForClass') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\TestParent'))) - ->will($this->returnCallback(function($class) { - return new MergeableClassMetadata($class->getName()); - })) - ; - - $factory = new MetadataFactory($driver); - $metadata = $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestParent'); - - $this->assertInstanceOf('Metadata\MergeableClassMetadata', $metadata); - $this->assertEquals('Metadata\Tests\Fixtures\TestParent', $metadata->name); - } - - public function testGetMetadataWithComplexHierarchy() - { - $driver = $this->getMock('Metadata\Driver\DriverInterface'); - - $driver - ->expects($this->any()) - ->method('loadMetadataForClass') - ->will($this->returnCallback(function($class) { - $metadata = new MergeableClassMetadata($class->name); - - switch ($class->name) { - case 'Metadata\Tests\Fixtures\ComplexHierarchy\BaseClass': - $metadata->propertyMetadata['foo'] = new PropertyMetadata($class->name, 'foo'); - break; - - case 'Metadata\Tests\Fixtures\ComplexHierarchy\SubClassA': - $metadata->propertyMetadata['bar'] = new PropertyMetadata($class->name, 'bar'); - break; - - case 'Metadata\Tests\Fixtures\ComplexHierarchy\SubClassB': - $metadata->propertyMetadata['baz'] = new PropertyMetadata($class->name, 'baz'); - break; - - default: - throw new \RuntimeException(sprintf('Unsupported class "%s".', $class->name)); - } - - return $metadata; - })) - ; - - $factory = new MetadataFactory($driver); - - $subClassA = $factory->getMetadataForClass('Metadata\Tests\Fixtures\ComplexHierarchy\SubClassA'); - $this->assertInstanceOf('Metadata\MergeableClassMetadata', $subClassA); - $this->assertEquals(array('foo', 'bar'), array_keys($subClassA->propertyMetadata)); - - $subClassB = $factory->getMetadataForClass('Metadata\Tests\Fixtures\ComplexHierarchy\SubClassB'); - $this->assertInstanceOf('Metadata\MergeableClassMetadata', $subClassB); - $this->assertEquals(array('foo', 'baz'), array_keys($subClassB->propertyMetadata)); - } - - public function testGetMetadataWithCache() - { - $driver = $this->getMock('Metadata\Driver\DriverInterface'); - $driver - ->expects($this->once()) - ->method('loadMetadataForClass') - ->will($this->returnValue($metadata = new ClassMetadata('Metadata\Tests\Fixtures\TestObject'))) - ; - - $factory = new MetadataFactory($driver); - - $cache = $this->getMock('Metadata\Cache\CacheInterface'); - $cache - ->expects($this->once()) - ->method('loadClassMetadataFromCache') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\TestObject'))) - ->will($this->returnValue(null)) - ; - $cache - ->expects($this->once()) - ->method('putClassMetadataInCache') - ->with($this->equalTo($metadata)) - ; - $factory->setCache($cache); - - - $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject'); - $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject'); - $this->assertSame($metadata, reset($factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject')->classMetadata)); - } - - public function testGetMetadataReturnsNullIfNoMetadataIsFound() - { - $driver = $this->getMock('Metadata\Driver\DriverInterface'); - $driver - ->expects($this->once()) - ->method('loadMetadataForClass') - ->will($this->returnValue(null)) - ; - - $factory = new MetadataFactory($driver); - - $this->assertNull($factory->getMetadataForClass('stdClass')); - } - - public function testGetMetadataWithInterfaces() - { - $driver = $this->getMock('Metadata\Driver\DriverInterface'); - - $driver - ->expects($this->at(3)) - ->method('loadMetadataForClass') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\ComplexHierarchy\SubClassA'))) - ; - $driver - ->expects($this->at(2)) - ->method('loadMetadataForClass') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\ComplexHierarchy\InterfaceB'))) - ; - $driver - ->expects($this->at(1)) - ->method('loadMetadataForClass') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\ComplexHierarchy\BaseClass'))) - ; - $driver - ->expects($this->at(0)) - ->method('loadMetadataForClass') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\ComplexHierarchy\InterfaceA'))) - ; - - $factory = new MetadataFactory($driver); - $factory->setIncludeInterfaces(true); - - $factory->getMetadataForClass('Metadata\Tests\Fixtures\ComplexHierarchy\SubClassA'); - } - - public function testGetAllClassNames() - { - $driver = $this->getMock('Metadata\Driver\AdvancedDriverInterface'); - $driver - ->expects($this->once()) - ->method('getAllClassNames') - ->will($this->returnValue(array())); - - $factory = new MetadataFactory($driver); - $this->assertSame(array(), $factory->getAllClassNames()); - } - - public function testGetAllClassNamesThrowsException() - { - $this->setExpectedException('RuntimeException'); - $factory = new MetadataFactory($this->getMock('Metadata\Driver\DriverInterface')); - $factory->getAllClassNames(); - } - - public function testNotFoundMetadataIsCached() - { - $driver = $this->getMock('Metadata\Driver\DriverInterface'); - $driver - ->expects($this->once()) // This is the important part of this test - ->method('loadMetadataForClass') - ->will($this->returnValue(null)) - ; - - $cachedMetadata = null; - $cache = $this->getMock('Metadata\Cache\CacheInterface'); - $cache - ->expects($this->any()) - ->method('loadClassMetadataFromCache') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\TestObject'))) - ->will($this->returnCallback(function () use (&$cachedMetadata) { - return $cachedMetadata; - })) - ; - $cache - ->expects($this->once()) - ->method('putClassMetadataInCache') - ->will($this->returnCallback(function ($metadata) use (&$cachedMetadata) { - $cachedMetadata = $metadata; - })) - ; - - $factory = new MetadataFactory($driver); - $factory->setCache($cache); - $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject'); - $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject'); - $this->assertNull($factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject')); - - // We use another factory with the same cache, to simulate another request and skip the in memory - $factory = new MetadataFactory($driver); - $factory->setCache($cache); - $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject'); - $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject'); - $this->assertNull($factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject')); - } - - public function testNotFoundMetadataIsNotCachedInDebug() - { - $driver = $this->getMock('Metadata\Driver\DriverInterface'); - $driver - ->expects($this->exactly(2)) - ->method('loadMetadataForClass') - ->will($this->returnValue(null)) - ; - - $cachedMetadata = null; - $cache = $this->getMock('Metadata\Cache\CacheInterface'); - $cache - ->expects($this->any()) - ->method('loadClassMetadataFromCache') - ->with($this->equalTo(new \ReflectionClass('Metadata\Tests\Fixtures\TestObject'))) - ->will($this->returnValue(null)) - ; - $cache - ->expects($this->never()) - ->method('putClassMetadataInCache') - ; - - $factory = new MetadataFactory($driver, 'Metadata\ClassHierarchyMetadata', true); - $factory->setCache($cache); - $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject'); - $this->assertNull($factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject')); - - // We use another factory with the same cache, to simulate another request and skip the in memory - $factory = new MetadataFactory($driver, 'Metadata\ClassHierarchyMetadata', true); - $factory->setCache($cache); - $factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject'); - $this->assertNull($factory->getMetadataForClass('Metadata\Tests\Fixtures\TestObject')); - } -} diff --git a/vendor/jms/metadata/tests/Metadata/Tests/MethodMetadataTest.php b/vendor/jms/metadata/tests/Metadata/Tests/MethodMetadataTest.php deleted file mode 100644 index 2276ace..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/MethodMetadataTest.php +++ /dev/null @@ -1,37 +0,0 @@ -setAccessible(true); - - $this->assertEquals('Metadata\Tests\Fixtures\TestObject', $metadata->class); - $this->assertEquals('setFoo', $metadata->name); - $this->assertEquals($expectedReflector, $metadata->reflection); - } - - public function testSerializeUnserialize() - { - $metadata = new MethodMetadata('Metadata\Tests\Fixtures\TestObject', 'setFoo'); - - $this->assertEquals($metadata, unserialize(serialize($metadata))); - } - - public function testInvoke() - { - $obj = new TestObject(); - $metadata = new MethodMetadata('Metadata\Tests\Fixtures\TestObject', 'setFoo'); - - $this->assertNull($obj->getFoo()); - $metadata->invoke($obj, array('foo')); - $this->assertEquals('foo', $obj->getFoo()); - } -} \ No newline at end of file diff --git a/vendor/jms/metadata/tests/Metadata/Tests/PropertyMetadataTest.php b/vendor/jms/metadata/tests/Metadata/Tests/PropertyMetadataTest.php deleted file mode 100644 index e30e546..0000000 --- a/vendor/jms/metadata/tests/Metadata/Tests/PropertyMetadataTest.php +++ /dev/null @@ -1,37 +0,0 @@ -setAccessible(true); - - $this->assertEquals('Metadata\Tests\Fixtures\TestObject', $metadata->class); - $this->assertEquals('foo', $metadata->name); - $this->assertEquals($expectedReflector, $metadata->reflection); - } - - public function testSerializeUnserialize() - { - $metadata = new PropertyMetadata('Metadata\Tests\Fixtures\TestObject', 'foo'); - - $this->assertEquals($metadata, unserialize(serialize($metadata))); - } - - public function testSetGetValue() - { - $obj = new TestObject(); - $metadata = new PropertyMetadata('Metadata\Tests\Fixtures\TestObject', 'foo'); - - $this->assertNull($metadata->getValue($obj)); - $metadata->setValue($obj, 'foo'); - $this->assertEquals('foo', $metadata->getValue($obj)); - } -} \ No newline at end of file diff --git a/vendor/jms/metadata/tests/bootstrap.php b/vendor/jms/metadata/tests/bootstrap.php deleted file mode 100644 index 6333321..0000000 --- a/vendor/jms/metadata/tests/bootstrap.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - */ - -spl_autoload_register(function($class) { - if (0 === strpos($class, 'Metadata\Tests\\')) { - $path = __DIR__.'/../tests/'.strtr($class, '\\', '/').'.php'; - if (file_exists($path) && is_readable($path)) { - require_once $path; - - return true; - } - } elseif (0 === strpos($class, 'Metadata\\')) { - $path = __DIR__.'/../src/'.($class = strtr($class, '\\', '/')).'.php'; - if (file_exists($path) && is_readable($path)) { - require_once $path; - - return true; - } - } elseif (0 === strpos($class, 'Symfony\\')) { - $path = __DIR__.'/../../symfony/src/'.strtr($class, '\\', '/').'.php'; - - if (file_exists($path) && is_readable($path)) { - require_once $path; - - return true; - } - } -}); - -@include __DIR__ . '/../vendor/autoload.php'; diff --git a/vendor/jms/parser-lib/.gitignore b/vendor/jms/parser-lib/.gitignore deleted file mode 100644 index 30f3ee2..0000000 --- a/vendor/jms/parser-lib/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -vendor/ -phpunit.xml - diff --git a/vendor/jms/parser-lib/.jms.yml b/vendor/jms/parser-lib/.jms.yml deleted file mode 100644 index 0d0f315..0000000 --- a/vendor/jms/parser-lib/.jms.yml +++ /dev/null @@ -1,19 +0,0 @@ -filter: - paths: [src/*, tests/*] - excluded_paths: ["tests/*/Fixture/*"] - -default_config: - psr0_compliance: true - checkstyle: true - composer_config_check: - publish_checks: true - level: warning - reflection_fixes: true - use_statement_fixes: true - -path_configs: - tests: - paths: [tests/*] - psr0_compliance: false - checkstyle: false - phpunit_checks: true diff --git a/vendor/jms/parser-lib/.travis.yml b/vendor/jms/parser-lib/.travis.yml deleted file mode 100644 index c507441..0000000 --- a/vendor/jms/parser-lib/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: php - -php: - - 5.3 - - 5.4 - -before_script: - - curl -s http://getcomposer.org/installer | php - - php composer.phar install --dev - -script: phpunit --coverage-clover clover - -after_success: - - curl -sL https://bit.ly/artifact-uploader | php - diff --git a/vendor/jms/parser-lib/LICENSE b/vendor/jms/parser-lib/LICENSE deleted file mode 100644 index f49a4e1..0000000 --- a/vendor/jms/parser-lib/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/vendor/jms/parser-lib/README.md b/vendor/jms/parser-lib/README.md deleted file mode 100644 index 75e9cec..0000000 --- a/vendor/jms/parser-lib/README.md +++ /dev/null @@ -1,4 +0,0 @@ -Parser Library -============== - -Learn more about it in its [documentation](http://jmsyst.com/libs/parser-lib). diff --git a/vendor/jms/parser-lib/composer.json b/vendor/jms/parser-lib/composer.json deleted file mode 100644 index 417661d..0000000 --- a/vendor/jms/parser-lib/composer.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "jms/parser-lib", - "description": "A library for easily creating recursive-descent parsers.", - "license": "Apache2", - "require": { - "phpoption/phpoption": ">=0.9,<2.0-dev" - }, - "autoload": { - "psr-0": { - "JMS\\": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - } -} \ No newline at end of file diff --git a/vendor/jms/parser-lib/composer.lock b/vendor/jms/parser-lib/composer.lock deleted file mode 100644 index fe331e6..0000000 --- a/vendor/jms/parser-lib/composer.lock +++ /dev/null @@ -1,62 +0,0 @@ -{ - "hash": "804f267fbd2c33067f6cafd3576f70dd", - "packages": [ - { - "name": "phpoption/phpoption", - "version": "0.9.0", - "source": { - "type": "git", - "url": "git://github.com/schmittjoh/php-option", - "reference": "0.9.0" - }, - "dist": { - "type": "zip", - "url": "https://github.com/schmittjoh/php-option/archive/0.9.0.zip", - "reference": "0.9.0", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "3.7.*" - }, - "time": "2012-11-12 08:25:35", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "PhpOption\\": "src/" - } - }, - "license": [ - "Apache2" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "http://jmsyst.com", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Option Type for PHP", - "keywords": [ - "php", - "language", - "type", - "option" - ] - } - ], - "packages-dev": [ - - ], - "aliases": [ - - ], - "minimum-stability": "stable", - "stability-flags": [ - - ] -} diff --git a/vendor/jms/parser-lib/doc/LICENSE b/vendor/jms/parser-lib/doc/LICENSE deleted file mode 100644 index a9aba5c..0000000 --- a/vendor/jms/parser-lib/doc/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. - -1. Definitions - - "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. - "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. - "Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. - "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. - "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. - "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. - "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. - "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. - "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. - -2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: - - to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, - to Distribute and Publicly Perform the Work including as incorporated in Collections. - -The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). - -4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: - - You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. - You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. - If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. - - For the avoidance of doubt: - Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; - Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, - Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). - Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. - -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. - Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. - -8. Miscellaneous - - Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. - If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. - No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. - This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. - The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/vendor/jms/parser-lib/doc/index.rst b/vendor/jms/parser-lib/doc/index.rst deleted file mode 100644 index da19058..0000000 --- a/vendor/jms/parser-lib/doc/index.rst +++ /dev/null @@ -1,108 +0,0 @@ -Parser Library -============== - -This library allows you to easily implement recursive-descent parsers. - -Installation ------------- -You can install this library through composer: - -.. code-block :: bash - - composer require jms/parser-lib - -or add it to your ``composer.json`` file directly. - -Example -------- -Let's assume that you would like to write a parser for a calculator. For simplicity -sake, we will assume that the parser would already return the result of the -calculation. Inputs could look like this ``1 + 1`` and we would expect ``2`` as -a result. - -The first step, is to create a lexer which breaks the input string up into -individual tokens which can then be consumed by the parser. This library provides -a convenient class for simple problems which we will use:: - - $lexer = new \JMS\Parser\SimpleLexer( - '/ - # Numbers - ([0-9]+) - - # Do not surround with () because whitespace is not meaningful for - # our purposes. - |\s+ - - # Operators; we support only + and - - |(+)|(-) - /x', // The x modifier tells PCRE to ignore whitespace in the regex above. - - // This maps token types to a human readable name. - array(0 => 'T_UNKNOWN', 1 => 'T_INT', 2 => 'T_PLUS', 3 => 'T_MINUS'), - - // This function tells the lexer which type a token has. The first element is - // an integer from the map above, the second element the normalized value. - function($value) { - if ('+' === $value) { - return array(2, '+'); - } - if ('-' === $value) { - return array(3, '-'); - } - if (is_numeric($value)) { - return array(1, (integer) $value); - } - - return array(0, $value); - } - ); - -Now the second step, is to create the parser which can consume the tokens once -the lexer has split them:: - - class MyParser extends \JMS\Parser\AbstractParser - { - const T_UNKNOWN = 0; - const T_INT = 1; - const T_PLUS = 2; - const T_MINUS = 3; - - public function parseInternal() - { - $result = $this->match(self::T_INT); - - while ($this->lexer->isNextAny(array(self::T_PLUS, self::T_MINUS))) { - if ($this->lexer->isNext(self::T_PLUS)) { - $this->lexer->moveNext(); - $result += $this->match(self::T_INT); - } else if ($this->lexer->isNext(self::T_MINUS)) { - $this->lexer->moveNext(); - $result -= $this->match(self::T_INT); - } else { - throw new \LogicException('Previous ifs were exhaustive.'); - } - } - - return $result; - } - } - - $parser = new MyParser($lexer); - $parser->parse('1 + 1'); // int(2) - $parser->parse('5 + 10 - 4'); // int(11) - -That's it. Now you can perform basic operations already. If you like you can now -also replace the hard-coded integers in the lexer with the class constants of the -parser. - -License -------- - -The code is released under the business-friendly `Apache2 license`_. - -Documentation is subject to the `Attribution-NonCommercial-NoDerivs 3.0 Unported -license`_. - -.. _Apache2 license: http://www.apache.org/licenses/LICENSE-2.0.html -.. _Attribution-NonCommercial-NoDerivs 3.0 Unported license: http://creativecommons.org/licenses/by-nc-nd/3.0/ - diff --git a/vendor/jms/parser-lib/phpunit.xml.dist b/vendor/jms/parser-lib/phpunit.xml.dist deleted file mode 100644 index 225f970..0000000 --- a/vendor/jms/parser-lib/phpunit.xml.dist +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ./tests/JMS/ - - - - - - performance - - - diff --git a/vendor/jms/parser-lib/src/JMS/Parser/AbstractLexer.php b/vendor/jms/parser-lib/src/JMS/Parser/AbstractLexer.php deleted file mode 100644 index 4203260..0000000 --- a/vendor/jms/parser-lib/src/JMS/Parser/AbstractLexer.php +++ /dev/null @@ -1,163 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Parser; - -/** - * Abstract Lexer. - * - * @author Johannes M. Schmitt - */ -abstract class AbstractLexer -{ - public $token; - public $next; - - private $i; - private $peek; - private $tokens; - - /** - * Returns the name of the given token. - * - * @param integer $type - * - * @return string - */ - public function getName($type) - { - $ref = new \ReflectionClass($this); - foreach ($ref->getConstants() as $name => $value) { - if ($value === $type) { - return $name; - } - } - - throw new \InvalidArgumentException(sprintf('There is no token with value %s.', json_encode($type))); - } - - public function setInput($str) - { - $tokens = preg_split($this->getRegex(), $str, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE); - - $this->tokens = array(); - foreach ($tokens as $token) { - list($token[2], $token[0]) = $this->determineTypeAndValue($token[0]); - $this->tokens[] = $token; - } - - $this->reset(); - } - - public function reset() - { - $this->i = -1; - $this->peek = 0; - $this->token = $this->next = null; - $this->moveNext(); - } - - /** - * Moves the pointer one token forward. - * - * @return boolean if we have not yet reached the end of the input - */ - public function moveNext() - { - $this->peek = 0; - $this->token = $this->next; - $this->next = isset($this->tokens[++$this->i]) ? $this->tokens[$this->i] : null; - - return null !== $this->next; - } - - /** - * Skips the token stream until a token of the given type. - * - * @param integer $type - * - * @return boolean true if a token of the passed type was found, false otherwise. - */ - public function skipUntil($type) - { - while ( ! $this->isNext($type) && $this->moveNext()); - - if ( ! $this->isNext($type)) { - throw new \RuntimeException(sprintf('Could not find the token %s.', $this->getName($type))); - } - } - - /** - * @param integer $type - * - * @return boolean - */ - public function isNext($type) - { - return null !== $this->next && $type === $this->next[2]; - } - - /** - * @param array $types - * - * @return boolean - */ - public function isNextAny(array $types) - { - if (null === $this->next) { - return false; - } - - foreach ($types as $type) { - if ($type === $this->next[2]) { - return true; - } - } - - return false; - } - - /** - * @return \PhpOption\Option<[string,integer,integer]> - */ - public function peek() - { - if ( ! isset($this->tokens[$this->i + (++$this->peek)])) { - return \PhpOption\None::create(); - } - - return new \PhpOption\Some($this->tokens[$this->i + $this->peek]); - } - - /** - * @return string - */ - abstract protected function getRegex(); - - /** - * Determines the type of the given value. - * - * This method may also modify the passed value for example to cast them to - * a different PHP type where necessary. - * - * @param string $value - * - * @return array a tupel of type and normalized value - */ - abstract protected function determineTypeAndValue($value); -} diff --git a/vendor/jms/parser-lib/src/JMS/Parser/AbstractParser.php b/vendor/jms/parser-lib/src/JMS/Parser/AbstractParser.php deleted file mode 100644 index f276d0e..0000000 --- a/vendor/jms/parser-lib/src/JMS/Parser/AbstractParser.php +++ /dev/null @@ -1,128 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Parser; - -/** - * Base Parser which provides some useful parsing methods intended for sub-classing. - * - * @author Johannes M. Schmitt - */ -abstract class AbstractParser -{ - protected $lexer; - protected $context; - - public function __construct(AbstractLexer $lexer) - { - $this->lexer = $lexer; - } - - /** - * Parses the given input. - * - * @param string $str - * @param string $context parsing context (allows to produce better error messages) - * - * @return mixed - */ - public function parse($str, $context = null) - { - $this->lexer->setInput($str); - $this->context = $context; - - $rs = $this->parseInternal(); - - if (null !== $this->lexer->next) { - $this->syntaxError('end of input'); - } - - return $rs; - } - - /** - * @return mixed - */ - abstract protected function parseInternal(); - - /** - * Matches a token, and returns its value. - * - * @param integer $type - * - * @return mixed the value of the matched token - */ - protected function match($type) - { - if ( ! $this->lexer->isNext($type)) { - $this->syntaxError($this->lexer->getName($type)); - } - - $this->lexer->moveNext(); - - return $this->lexer->token[0]; - } - - /** - * Matches any of the passed tokens, and returns the matched token's value. - * - * @param array $types - * - * @return mixed - */ - protected function matchAny(array $types) - { - if ( ! $this->lexer->isNextAny($types)) { - $this->syntaxError('any of '.implode(' or ', array_map(array($this->lexer, 'getName'), $types))); - } - - $this->lexer->moveNext(); - - return $this->lexer->token[0]; - } - - /** - * Raises a syntax error exception. - * - * @param string $expectedDesc A human understandable explanation what was expected - * @param array $actualToken The token that was found. If not given, next token will be assumed. - */ - protected function syntaxError($expectedDesc, $actualToken = null) - { - if (null === $actualToken) { - $actualToken = $this->lexer->next; - } - if (null === $actualToken) { - $actualDesc = 'end of input'; - } else if ($actualToken[1] === 0) { - $actualDesc = sprintf('"%s" of type %s at beginning of input', $actualToken[0], $this->lexer->getName($actualToken[2])); - } else { - $actualDesc = sprintf('"%s" of type %s at position %d (0-based)', $actualToken[0], $this->lexer->getName($actualToken[2]), $actualToken[1]); - } - - $ex = new SyntaxErrorException(sprintf('Expected %s, but got %s%s.', $expectedDesc, $actualDesc, $this->context ? ' '.$this->context : '')); - if (null !== $actualToken) { - $ex->setActualToken($actualToken); - } - if (null !== $this->context) { - $ex->setContext($this->context); - } - - throw $ex; - } -} \ No newline at end of file diff --git a/vendor/jms/parser-lib/src/JMS/Parser/SimpleLexer.php b/vendor/jms/parser-lib/src/JMS/Parser/SimpleLexer.php deleted file mode 100644 index 8be1052..0000000 --- a/vendor/jms/parser-lib/src/JMS/Parser/SimpleLexer.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Parser; - -/** - * The simple lexer is a fully usable lexer that does not require sub-classing. - * - * @author Johannes M. Schmitt - */ -class SimpleLexer extends AbstractLexer -{ - private $regex; - private $callable; - private $tokenNames; - - public function __construct($regex, array $tokenNames, $typeCallable) - { - $this->regex = $regex; - $this->callable = $typeCallable; - $this->tokenNames = $tokenNames; - } - - public function getName($type) - { - if ( ! isset($this->tokenNames[$type])) { - throw new \InvalidArgumentException(sprintf('There is no token with type %s.', json_encode($type))); - } - - return $this->tokenNames[$type]; - } - - protected function getRegex() - { - return $this->regex; - } - - protected function determineTypeAndValue($value) - { - return call_user_func($this->callable, $value); - } -} \ No newline at end of file diff --git a/vendor/jms/parser-lib/src/JMS/Parser/SyntaxErrorException.php b/vendor/jms/parser-lib/src/JMS/Parser/SyntaxErrorException.php deleted file mode 100644 index d05b8c9..0000000 --- a/vendor/jms/parser-lib/src/JMS/Parser/SyntaxErrorException.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Parser; - -class SyntaxErrorException extends \RuntimeException -{ - private $actualToken; - private $context; - - public function setActualToken(array $actualToken) - { - $this->actualToken = $actualToken; - } - - public function setContext($context) - { - $this->context = $context; - } - - public function getActualToken() - { - return $this->actualToken; - } - - public function getContext() - { - return $this->context; - } -} diff --git a/vendor/jms/parser-lib/tests/JMS/Parser/Tests/AbstractLexerTest.php b/vendor/jms/parser-lib/tests/JMS/Parser/Tests/AbstractLexerTest.php deleted file mode 100644 index 83f8b3b..0000000 --- a/vendor/jms/parser-lib/tests/JMS/Parser/Tests/AbstractLexerTest.php +++ /dev/null @@ -1,121 +0,0 @@ -lexer->setInput('"foo" 1234'); - - $this->assertNull($this->lexer->token); - $this->assertNotNull($this->lexer->next); - - $this->assertAttributeEquals(array( - array('foo', 0, self::T_STRING), - array(1234, 7, self::T_INTEGER), - ), 'tokens', $this->lexer); - } - - public function testMoveNext() - { - $this->lexer->setInput('1 2 3'); - $this->assertNull($this->lexer->token); - - $this->assertTrue($this->lexer->moveNext()); - $this->assertValue(1, $this->lexer->token); - - $this->assertTrue($this->lexer->moveNext()); - $this->assertValue(2, $this->lexer->token); - - $this->assertFalse($this->lexer->moveNext()); - $this->assertValue(3, $this->lexer->token); - } - - /** - * @expectedException \InvalidArgumentException - */ - public function testSkipUntilWithNonExistent() - { - $this->lexer->setInput('1 2 3'); - $this->lexer->skipUntil(self::T_STRING); - } - - public function testSkipUntil() - { - $this->lexer->setInput('1 "foo"'); - $this->assertNull($this->lexer->skipUntil(self::T_STRING)); - $this->assertValue(1, $this->lexer->token); - $this->assertValue('foo', $this->lexer->next); - } - - public function testIsNext() - { - $this->lexer->setInput('1'); - $this->assertTrue($this->lexer->isNext(self::T_INTEGER)); - $this->assertFalse($this->lexer->isNext(self::T_COMMA)); - } - - public function testIsNextAny() - { - $this->lexer->setInput('1'); - $this->assertTrue($this->lexer->isNextAny(array(self::T_COMMA, self::T_INTEGER))); - $this->assertFalse($this->lexer->isNextAny(array(self::T_COMMA, self::T_STRING))); - } - - public function testPeek() - { - $this->lexer->setInput('1 2 3'); - - $this->assertValue(1, $this->lexer->next); - $this->assertValue(2, $this->lexer->peek()->get()); - - $this->assertValue(1, $this->lexer->next); - $this->assertValue(3, $this->lexer->peek()->get()); - - $this->assertValue(1, $this->lexer->next); - $this->assertTrue($this->lexer->moveNext()); - $this->assertValue(2, $this->lexer->next); - $this->assertValue(3, $this->lexer->peek()->get()); - $this->assertValue(2, $this->lexer->next); - } - - private function assertValue($expected, $actualToken) - { - $this->assertNotNull($actualToken); - $this->assertSame($expected, $actualToken[0]); - } - - protected function setUp() - { - $this->lexer = $this->getMockForAbstractClass('JMS\Parser\AbstractLexer'); - $this->lexer->expects($this->any()) - ->method('getRegex') - ->will($this->returnValue('/("(?:[^"]*|(?<=\\)"))*")|([0-9]+)|\s+|(.)/i')); - $this->lexer->expects($this->any()) - ->method('determineTypeAndValue') - ->will($this->returnCallback(function($value) { - if (',' === $value) { - return array(AbstractLexerTest::T_COMMA, $value); - } - - if ('"' === $value[0]) { - return array(AbstractLexerTest::T_STRING, substr($value, 1, -1)); - } - - if (preg_match('/^[0-9]+$/', $value)) { - return array(AbstractLexerTest::T_INTEGER, (integer) $value); - } - - return array(AbstractLexerTest::T_UNKNOWN, $value); - })); - } -} diff --git a/vendor/jms/parser-lib/tests/JMS/Parser/Tests/AbstractParserTest.php b/vendor/jms/parser-lib/tests/JMS/Parser/Tests/AbstractParserTest.php deleted file mode 100644 index ea5b48a..0000000 --- a/vendor/jms/parser-lib/tests/JMS/Parser/Tests/AbstractParserTest.php +++ /dev/null @@ -1,87 +0,0 @@ -assertSame(2, $this->parser->parse('1 + 1')); - $this->assertSame(5, $this->parser->parse('1 + 1 + 4 - 1')); - } - - /** - * @expectedException JMS\Parser\SyntaxErrorException - * @expectedExceptionMessage Expected T_INT, but got end of input. - */ - public function testUnexpectedEnd() - { - $this->parser->parse('1 + '); - } - - protected function setUp() - { - $this->lexer = $lexer = new \JMS\Parser\SimpleLexer( - '/([0-9]+)|\s+|(.)/', - array(0 => 'T_UNKNOWN', 1 => 'T_INT', 100 => 'T_PLUS', 101 => 'T_MINUS'), - function($value) { - if ('+' === $value) { - return array(AbstractParserTest::T_PLUS, $value); - } - if ('-' === $value) { - return array(AbstractParserTest::T_MINUS, $value); - } - - // We would loose information on doubles here, but for this test it - // does not matter anyway. - if (is_numeric($value)) { - return array(AbstractParserTest::T_INT, (integer) $value); - } - - return AbstractParserTest::T_UNKNOWN; - } - ); - - $this->parser = $parser = $this->getMockBuilder('JMS\Parser\AbstractParser') - ->setConstructorArgs(array($this->lexer)) - ->getMockForAbstractClass(); - - $match = function($type) use ($parser) { - $ref = new \ReflectionMethod($parser, 'match'); - $ref->setAccessible(true); - - return $ref->invoke($parser, $type); - }; - - $this->parser->expects($this->any()) - ->method('parseInternal') - ->will($this->returnCallback(function() use ($lexer, $match) { - // Result :== Number ( ("+"|"-") Number )* - - $result = $match(AbstractParserTest::T_INT); - while ($lexer->isNextAny(array(AbstractParserTest::T_PLUS, AbstractParserTest::T_MINUS))) { - if ($lexer->isNext(AbstractParserTest::T_PLUS)) { - $lexer->moveNext(); - - $result += $match(AbstractParserTest::T_INT); - } else if ($lexer->isNext(AbstractParserTest::T_MINUS)) { - $lexer->moveNext(); - - $result -= $match(AbstractParserTest::T_INT); - } else { - throw new \LogicException('Previous ifs were exhaustive.'); - } - } - - return $result; - })); - } -} \ No newline at end of file diff --git a/vendor/jms/parser-lib/tests/bootstrap.php b/vendor/jms/parser-lib/tests/bootstrap.php deleted file mode 100644 index 37d8f3f..0000000 --- a/vendor/jms/parser-lib/tests/bootstrap.php +++ /dev/null @@ -1,8 +0,0 @@ - - - -## Steps required to reproduce the problem - -1. -2. -3. - -## Expected Result - -* - -## Actual Result - -* diff --git a/vendor/jms/serializer/.github/PULL_REQUEST_TEMPLATE.md b/vendor/jms/serializer/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 034f5e8..0000000 --- a/vendor/jms/serializer/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,11 +0,0 @@ -| Q | A -| ------------- | --- -| Bug fix? | yes/no -| New feature? | yes/no -| Doc updated | yes/no -| BC breaks? | yes/no -| Deprecations? | yes/no -| Tests pass? | yes/no -| Fixed tickets | #... -| License | Apache-2.0 - diff --git a/vendor/jms/serializer/.gitignore b/vendor/jms/serializer/.gitignore deleted file mode 100644 index a2f9cd6..0000000 --- a/vendor/jms/serializer/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -vendor/ -phpunit.xml -composer.lock -.idea/ diff --git a/vendor/jms/serializer/.scrutinizer.yml b/vendor/jms/serializer/.scrutinizer.yml deleted file mode 100644 index 4b1808a..0000000 --- a/vendor/jms/serializer/.scrutinizer.yml +++ /dev/null @@ -1,3 +0,0 @@ -tools: - external_code_coverage: - timeout: 600 \ No newline at end of file diff --git a/vendor/jms/serializer/.travis.yml b/vendor/jms/serializer/.travis.yml deleted file mode 100644 index 26ed6ec..0000000 --- a/vendor/jms/serializer/.travis.yml +++ /dev/null @@ -1,38 +0,0 @@ -language: php - -sudo: false - -git: - depth: 1 - -cache: - directories: - - $HOME/.composer/cache - -matrix: - include: - - php: 5.5 - - php: 5.6 - - php: 7.0 - - php: 7.1 - - php: 7.2 - - php: 5.5 - env: COMPOSER_FLAGS='--prefer-lowest --prefer-stable' - fast_finish: true - -before_script: - - if [[ $TRAVIS_PHP_VERSION = '7.0' ]]; then PHPUNIT_FLAGS="--coverage-clover clover"; else PHPUNIT_FLAGS=""; fi - - if [[ $TRAVIS_PHP_VERSION != '7.0' ]]; then phpenv config-rm xdebug.ini; fi - - composer self-update - - composer update $COMPOSER_FLAGS - -script: - - vendor/bin/phpunit $PHPUNIT_FLAGS - - php tests/benchmark.php json 10 - - php tests/benchmark.php yml 10 - - php tests/benchmark.php xml 10 - -after_success: - - if [[ $TRAVIS_PHP_VERSION = '7.0' ]]; then wget https://scrutinizer-ci.com/ocular.phar; fi - - if [[ $TRAVIS_PHP_VERSION = '7.0' ]]; then php ocular.phar code-coverage:upload --format=php-clover clover; fi - diff --git a/vendor/jms/serializer/CHANGELOG.md b/vendor/jms/serializer/CHANGELOG.md deleted file mode 100644 index 8feb64e..0000000 --- a/vendor/jms/serializer/CHANGELOG.md +++ /dev/null @@ -1,791 +0,0 @@ -# Change Log - -## [1.11.0](https://github.com/schmittjoh/serializer/tree/1.11.0) (2018-02-04) - -**Implemented enhancements:** - -- Deserialize xmlKeyValuePairs [\#868](https://github.com/schmittjoh/serializer/pull/868) ([goetas](https://github.com/goetas)) -- Add AdvancedNamingStrategyInterface [\#859](https://github.com/schmittjoh/serializer/pull/859) ([LeaklessGfy](https://github.com/LeaklessGfy)) - -**Fixed bugs:** - -- Exception thrown for non-existant accessor to an excluded property [\#862](https://github.com/schmittjoh/serializer/issues/862) -- Support non-namespaced lists in namespaced XML [\#851](https://github.com/schmittjoh/serializer/pull/851) ([bertterheide](https://github.com/bertterheide)) - -**Closed issues:** - -- Context Group not working [\#865](https://github.com/schmittjoh/serializer/issues/865) -- Not all virtual properties are serialized [\#864](https://github.com/schmittjoh/serializer/issues/864) -- DeserializedName [\#857](https://github.com/schmittjoh/serializer/issues/857) -- Annotation does not exist, or could not be auto-loaded. [\#855](https://github.com/schmittjoh/serializer/issues/855) -- \[Question\] Serialization of primitive types [\#853](https://github.com/schmittjoh/serializer/issues/853) -- Empty list when deserializing namespaced XML with children that are not namespaced [\#850](https://github.com/schmittjoh/serializer/issues/850) -- XmlList\(skipWhenEmpty=true\) or @SkipWhenEmpty\(\) does not work [\#847](https://github.com/schmittjoh/serializer/issues/847) -- DateHandler Timezone ignored on deserialization [\#457](https://github.com/schmittjoh/serializer/issues/457) - -**Merged pull requests:** - -- Drop HHVM support [\#869](https://github.com/schmittjoh/serializer/pull/869) ([goetas](https://github.com/goetas)) -- Allow excluded private properties to not have a getter acc… [\#863](https://github.com/schmittjoh/serializer/pull/863) ([0mars](https://github.com/0mars)) -- Solve php 7.2 deprecations [\#860](https://github.com/schmittjoh/serializer/pull/860) ([goetas](https://github.com/goetas)) -- Fixed issue where timezone is lost when creating DateTime from unix timestamp [\#835](https://github.com/schmittjoh/serializer/pull/835) ([goetas](https://github.com/goetas)) - -## [1.10.0](https://github.com/schmittjoh/serializer/tree/1.10.0) (2017-11-30) -**Implemented enhancements:** - -- support PSR-11 compatible DI containers [\#844](https://github.com/schmittjoh/serializer/pull/844) ([xabbuh](https://github.com/xabbuh)) -- Deserialize xmlKeyValuePairs [\#840](https://github.com/schmittjoh/serializer/pull/840) ([fdyckhoff](https://github.com/fdyckhoff)) - -**Closed issues:** - -- Serialize using jsonSerialize\(\) if object implements JsonSerializable [\#846](https://github.com/schmittjoh/serializer/issues/846) -- ExclusionStrategy backward compatibility break [\#843](https://github.com/schmittjoh/serializer/issues/843) -- @MaxDepth jms/serializer-bundle 2.2 [\#842](https://github.com/schmittjoh/serializer/issues/842) - -## [1.9.2](https://github.com/schmittjoh/serializer/tree/1.9.2) (2017-11-22) -**Fixed bugs:** - -- Missing ClassMetadata deserialization data [\#841](https://github.com/schmittjoh/serializer/pull/841) ([TristanMogwai](https://github.com/TristanMogwai)) - -**Closed issues:** - -- DateTime format documentation [\#836](https://github.com/schmittjoh/serializer/issues/836) -- Deserialization not working with camelCase [\#831](https://github.com/schmittjoh/serializer/issues/831) - -**Merged pull requests:** - -- Fix documentation syntax errors on available types [\#839](https://github.com/schmittjoh/serializer/pull/839) ([andy-morgan](https://github.com/andy-morgan)) -- Improve documentation about default DateTime format [\#838](https://github.com/schmittjoh/serializer/pull/838) ([enumag](https://github.com/enumag)) - -## [1.9.1](https://github.com/schmittjoh/serializer/tree/1.9.1) (2017-10-27) -**Fixed bugs:** - -- Dynamic exclusion strategy, Variable "object" is not valid [\#826](https://github.com/schmittjoh/serializer/issues/826) - -**Closed issues:** - -- Allow DateTime or Null [\#779](https://github.com/schmittjoh/serializer/issues/779) - -**Merged pull requests:** - -- Alow to use "object" var in expressions when deserializing [\#827](https://github.com/schmittjoh/serializer/pull/827) ([goetas](https://github.com/goetas)) - -## [1.9.0](https://github.com/schmittjoh/serializer/tree/1.9.0) (2017-09-28) -**Implemented enhancements:** - -- Doctrine LazyCriteriaCollection not supported [\#814](https://github.com/schmittjoh/serializer/issues/814) -- Do not require the translator [\#824](https://github.com/schmittjoh/serializer/pull/824) ([goetas](https://github.com/goetas)) -- Added mapping for guid type [\#802](https://github.com/schmittjoh/serializer/pull/802) ([develth](https://github.com/develth)) -- Added translation domain to FormErrorHandler [\#783](https://github.com/schmittjoh/serializer/pull/783) ([prosalov](https://github.com/prosalov)) - -**Fixed bugs:** - -- Node no longer exists - Deserialize Error [\#817](https://github.com/schmittjoh/serializer/issues/817) -- Serializer fails if there is no AnnotationDriver in the DriverChain instance [\#815](https://github.com/schmittjoh/serializer/issues/815) -- Evaluate XML xsi:nil="1" to null [\#799](https://github.com/schmittjoh/serializer/pull/799) ([Bouwdie](https://github.com/Bouwdie)) - -**Closed issues:** - -- Empty array removed from XML serialization [\#816](https://github.com/schmittjoh/serializer/issues/816) -- XML Discriminator tags don't work in YAML metadata [\#811](https://github.com/schmittjoh/serializer/issues/811) -- Launching phpunit does not execute any test [\#809](https://github.com/schmittjoh/serializer/issues/809) -- Add "bool" Annotation/Type [\#807](https://github.com/schmittjoh/serializer/issues/807) -- Add support for overriding default annotation driver configuration [\#804](https://github.com/schmittjoh/serializer/issues/804) -- Add description to PropertyMetadata? [\#800](https://github.com/schmittjoh/serializer/issues/800) - -**Merged pull requests:** - -- Workaround to avoid triggering simplexml warning [\#825](https://github.com/schmittjoh/serializer/pull/825) ([goetas](https://github.com/goetas)) -- Added null metadata driver [\#822](https://github.com/schmittjoh/serializer/pull/822) ([goetas](https://github.com/goetas)) -- Run Travis tests against modern PHP [\#819](https://github.com/schmittjoh/serializer/pull/819) ([Majkl578](https://github.com/Majkl578)) -- Added bool type alias [\#818](https://github.com/schmittjoh/serializer/pull/818) ([Majkl578](https://github.com/Majkl578)) - -## [1.8.1](https://github.com/schmittjoh/serializer/tree/1.8.1) (2017-07-13) -**Closed issues:** - -- Version 1.8 is breaking backwards compatibility [\#796](https://github.com/schmittjoh/serializer/issues/796) - -**Merged pull requests:** - -- Revert back to PSR-0 [\#797](https://github.com/schmittjoh/serializer/pull/797) ([goetas](https://github.com/goetas)) - -## [1.8.0](https://github.com/schmittjoh/serializer/tree/1.8.0) (2017-07-12) -**Implemented enhancements:** - -- Detect XML xsi:nil="true" to null when deserializing [\#790](https://github.com/schmittjoh/serializer/pull/790) ([goetas](https://github.com/goetas)) -- Added support for a third deserialize parameter for the DateTime type [\#788](https://github.com/schmittjoh/serializer/pull/788) ([bobvandevijver](https://github.com/bobvandevijver)) -- Added trim to xml metadata reader for groups parameter, and added support for groups element [\#781](https://github.com/schmittjoh/serializer/pull/781) ([mrosiu](https://github.com/mrosiu)) -- Add propertyMetdata to dynamic expression variables [\#778](https://github.com/schmittjoh/serializer/pull/778) ([goetas](https://github.com/goetas)) -- Fix xml deserialization when xsi:nil="true" is set [\#771](https://github.com/schmittjoh/serializer/pull/771) ([Bouwdie](https://github.com/Bouwdie)) - -**Fixed bugs:** - -- do not disappear type params in DoctrineProxySubscriber [\#793](https://github.com/schmittjoh/serializer/pull/793) ([kriswallsmith](https://github.com/kriswallsmith)) -- \#784 fix with inline array of type array\ [\#785](https://github.com/schmittjoh/serializer/pull/785) ([aviortm](https://github.com/aviortm)) - -**Closed issues:** - -- inline array with type array\ not serialized [\#784](https://github.com/schmittjoh/serializer/issues/784) -- \[2.0\] \[Feature-request\] Provide InitializedObjectConstructor as default [\#775](https://github.com/schmittjoh/serializer/issues/775) -- Allow access to PropertyMetadata in Dynamic Exclusion strategies [\#772](https://github.com/schmittjoh/serializer/issues/772) -- Overriding groups at runtime does not work, or? [\#767](https://github.com/schmittjoh/serializer/issues/767) -- DateTime format and control characters [\#94](https://github.com/schmittjoh/serializer/issues/94) - -**Merged pull requests:** - -- Missing features of the compiler pass [\#789](https://github.com/schmittjoh/serializer/pull/789) ([mikemix](https://github.com/mikemix)) -- Updated documentation related to PR \#778 [\#780](https://github.com/schmittjoh/serializer/pull/780) ([bblue](https://github.com/bblue)) -- \[RFC\] Move to PSR 4 [\#770](https://github.com/schmittjoh/serializer/pull/770) ([goetas](https://github.com/goetas)) -- Re-formatted code for better PSR compliance [\#769](https://github.com/schmittjoh/serializer/pull/769) ([goetas](https://github.com/goetas)) -- Proposing some guidelines for contributing [\#763](https://github.com/schmittjoh/serializer/pull/763) ([goetas](https://github.com/goetas)) - -## [1.7.1](https://github.com/schmittjoh/serializer/tree/1.7.1) (2017-05-15) -**Fixed bugs:** - -- Custom type handlers does not work with doctrine proxies anymore [\#765](https://github.com/schmittjoh/serializer/issues/765) -- Doctrine listener should not change the type on proxies with virtual type [\#768](https://github.com/schmittjoh/serializer/pull/768) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- Missing bool type in graphNavigator.php in method accept\(\) [\#764](https://github.com/schmittjoh/serializer/issues/764) -- The sub-class "Proxy-Class" is not listed in the discriminator of the base class "DiscriminatorClass" [\#459](https://github.com/schmittjoh/serializer/issues/459) -- Configure whether serializing empty array. [\#124](https://github.com/schmittjoh/serializer/issues/124) - -## [1.7.0](https://github.com/schmittjoh/serializer/tree/1.7.0) (2017-05-10) -**Implemented enhancements:** - -- Skip doctrine proxy initializations when exclusion strategy will exclude it [\#760](https://github.com/schmittjoh/serializer/pull/760) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- Error deserializing a map of \(nullable\) objects [\#762](https://github.com/schmittjoh/serializer/issues/762) -- Add data using setData produces hashes instead of arrays [\#761](https://github.com/schmittjoh/serializer/issues/761) - -## [1.7.0-RC2](https://github.com/schmittjoh/serializer/tree/1.7.0-RC2) (2017-05-05) -**Implemented enhancements:** - -- Make sure input is always a string [\#755](https://github.com/schmittjoh/serializer/pull/755) ([goetas](https://github.com/goetas)) -- Allow namespaced XML element discriminator [\#753](https://github.com/schmittjoh/serializer/pull/753) ([goetas](https://github.com/goetas)) - -**Fixed bugs:** - -- Allow to skip "empty serialization result" when serializing [\#757](https://github.com/schmittjoh/serializer/pull/757) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- Is it possible to use @XmlNamespace & @XmlRoot in a class at same time ? [\#759](https://github.com/schmittjoh/serializer/issues/759) -- Serializes FOS:User datas with ExclusionPolicy\("all"\) [\#599](https://github.com/schmittjoh/serializer/issues/599) - -**Merged pull requests:** - -- Add a quick reference for how to enable expression evaluator [\#758](https://github.com/schmittjoh/serializer/pull/758) ([chasen](https://github.com/chasen)) -- Allow for setExpressionEvaluator usage to be chainable [\#756](https://github.com/schmittjoh/serializer/pull/756) ([chasen](https://github.com/chasen)) -- Fix typo in annotation docs [\#754](https://github.com/schmittjoh/serializer/pull/754) ([JustBlackBird](https://github.com/JustBlackBird)) - -## [1.7.0-RC1](https://github.com/schmittjoh/serializer/tree/1.7.0-RC1) (2017-04-25) -**Implemented enhancements:** - -- Allow to configure the doctrine object constructor [\#751](https://github.com/schmittjoh/serializer/pull/751) ([goetas](https://github.com/goetas)) -- Trigger doctrine events on doctrine proxies [\#750](https://github.com/schmittjoh/serializer/pull/750) ([goetas](https://github.com/goetas)) -- Added stdClass serialization handler [\#749](https://github.com/schmittjoh/serializer/pull/749) ([goetas](https://github.com/goetas)) -- Allow to typehint for the type \(array/hash\) of the root item to be serialized [\#728](https://github.com/schmittjoh/serializer/pull/728) ([goetas](https://github.com/goetas)) - -**Fixed bugs:** - -- Array gets serialized as object, not as array, depending on order. [\#709](https://github.com/schmittjoh/serializer/issues/709) -- Doctrine Proxies and serializer.pre\_serialize [\#666](https://github.com/schmittjoh/serializer/issues/666) -- Fix stdClass inconsistencies when serializing to JSON [\#730](https://github.com/schmittjoh/serializer/pull/730) ([goetas](https://github.com/goetas)) -- Allow to typehint for the type \\(array/hash\\) of the root item to be serialized [\#728](https://github.com/schmittjoh/serializer/pull/728) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- Array serialized as JSON object [\#706](https://github.com/schmittjoh/serializer/issues/706) -- From old issue \#290 [\#670](https://github.com/schmittjoh/serializer/issues/670) -- Form validation error response - field names not converted from camel case to underscore [\#587](https://github.com/schmittjoh/serializer/issues/587) -- Ability to getGroups on Context [\#554](https://github.com/schmittjoh/serializer/issues/554) -- SerializedName misleading usage and constructor issue [\#548](https://github.com/schmittjoh/serializer/issues/548) -- Discriminator should support xmlAttribute [\#547](https://github.com/schmittjoh/serializer/issues/547) -- Public method accessor is required for excluded/not exposed properties [\#519](https://github.com/schmittjoh/serializer/issues/519) -- Entity changed via preserialize and wrongly persisted [\#509](https://github.com/schmittjoh/serializer/issues/509) -- XML deserialization properties null when using default namespace [\#504](https://github.com/schmittjoh/serializer/issues/504) -- AccessorOrder is ignored [\#501](https://github.com/schmittjoh/serializer/issues/501) -- Deserialization of sub entites with non existing id [\#492](https://github.com/schmittjoh/serializer/issues/492) -- \[Question\] Handler/Converter for specific field [\#476](https://github.com/schmittjoh/serializer/issues/476) -- getClassName regex may incorrectly retrieve a false class name from comments above the class. [\#460](https://github.com/schmittjoh/serializer/issues/460) -- Multiple types for property? [\#445](https://github.com/schmittjoh/serializer/issues/445) -- Allow non-qualified XML serialization when XML namespaces are part of the metadata [\#413](https://github.com/schmittjoh/serializer/issues/413) -- Discriminator field name [\#412](https://github.com/schmittjoh/serializer/issues/412) -- Serializing to and deserializing from DateTime is inconsistent [\#394](https://github.com/schmittjoh/serializer/issues/394) -- ManyToOne and OneToMany Serialization Groups [\#387](https://github.com/schmittjoh/serializer/issues/387) -- Static SubscribingHandlerInterface::getSubscribingMethod [\#380](https://github.com/schmittjoh/serializer/issues/380) -- User defined ordering function [\#379](https://github.com/schmittjoh/serializer/issues/379) -- serialized\_name for discriminator [\#372](https://github.com/schmittjoh/serializer/issues/372) -- Serializing object with empty array [\#350](https://github.com/schmittjoh/serializer/issues/350) -- VirtualProperty\(s\) are ignored with AccessorOrder [\#349](https://github.com/schmittjoh/serializer/issues/349) -- When setting a group of serialization, the inheritance doesn't work anymore [\#328](https://github.com/schmittjoh/serializer/issues/328) -- Serialization of empty object [\#323](https://github.com/schmittjoh/serializer/issues/323) -- "Can't pop from an empty datastructure" error when multiple serializer calls [\#319](https://github.com/schmittjoh/serializer/issues/319) -- virtual\_properties cannot be excluded with groups [\#291](https://github.com/schmittjoh/serializer/issues/291) -- Integer serialized as String using VirtualProperty [\#289](https://github.com/schmittjoh/serializer/issues/289) -- SimpleObjectProxy is not implement abstract methods of Proxy class [\#287](https://github.com/schmittjoh/serializer/issues/287) -- Serializing array that have one of the element or member of an element an empty object [\#277](https://github.com/schmittjoh/serializer/issues/277) -- Serialization with groups return json object instead array [\#267](https://github.com/schmittjoh/serializer/issues/267) -- The purpose of "Force JSON output to "{}" instead of "\[\]" if it contains either no properties or all properties are null" [\#248](https://github.com/schmittjoh/serializer/issues/248) -- Json array serialisation [\#242](https://github.com/schmittjoh/serializer/issues/242) -- Ignoring "Assert" in output doc if excluded [\#241](https://github.com/schmittjoh/serializer/issues/241) -- Alphabetical accessor order doesn't respect SerializedName overrides [\#240](https://github.com/schmittjoh/serializer/issues/240) -- Request Annotation for Array Data [\#234](https://github.com/schmittjoh/serializer/issues/234) -- Allow @var instead of @Type when deserializing [\#233](https://github.com/schmittjoh/serializer/issues/233) -- Strange issue with groups exclusion strategy [\#230](https://github.com/schmittjoh/serializer/issues/230) -- Warning when deserializing removed entity [\#216](https://github.com/schmittjoh/serializer/issues/216) -- Where in the JMS code does the navigator call VisitProperty method for visitor [\#207](https://github.com/schmittjoh/serializer/issues/207) -- Property of the type array is not in alphabetic order after serialization [\#196](https://github.com/schmittjoh/serializer/issues/196) -- Magic and inconsistencies in array serialization [\#191](https://github.com/schmittjoh/serializer/issues/191) -- PreSerialization Event not handled if the value is not object [\#162](https://github.com/schmittjoh/serializer/issues/162) -- Hierarchical object serialization does not appear to inherit metadata from ancestors for metadata defined in XML [\#151](https://github.com/schmittjoh/serializer/issues/151) -- When using MaxDepth, Serialization of an array entitiy is not working [\#132](https://github.com/schmittjoh/serializer/issues/132) -- Switch to change default naming strategy [\#128](https://github.com/schmittjoh/serializer/issues/128) -- Throw exceptions on invalid input [\#112](https://github.com/schmittjoh/serializer/issues/112) -- Recursion detected error when serialization groups are in use [\#96](https://github.com/schmittjoh/serializer/issues/96) -- Allow serialization groups to be accessible within event subscriber callbacks. [\#84](https://github.com/schmittjoh/serializer/issues/84) -- Allow Constructed Object to be Passed to Deserialize [\#79](https://github.com/schmittjoh/serializer/issues/79) -- JSON recursion when first object in root list is empty [\#61](https://github.com/schmittjoh/serializer/issues/61) -- Can't serialize an array with an empty object [\#59](https://github.com/schmittjoh/serializer/issues/59) - -**Merged pull requests:** - -- Added runtime twig extension support \(significant performance improvements\) [\#747](https://github.com/schmittjoh/serializer/pull/747) ([goetas](https://github.com/goetas)) - -## [1.6.2](https://github.com/schmittjoh/serializer/tree/1.6.2) (2017-04-17) -**Fixed bugs:** - -- @VirtualProperty "exp" does not play nice with @ExclusionPolicy\("ALL"\) [\#746](https://github.com/schmittjoh/serializer/issues/746) - -## [1.6.1](https://github.com/schmittjoh/serializer/tree/1.6.1) (2017-04-12) -**Fixed bugs:** - -- Do not output the XML node when the object will be emtpy [\#744](https://github.com/schmittjoh/serializer/pull/744) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- XmlList not working since version 1.5.0 with xmlns attributes [\#742](https://github.com/schmittjoh/serializer/issues/742) -- DoctrineObjectConstructor: how to use it without Symfony, in a PHP project [\#741](https://github.com/schmittjoh/serializer/issues/741) -- Outdated docs site [\#733](https://github.com/schmittjoh/serializer/issues/733) -- Allow data access to Property naming strategy [\#717](https://github.com/schmittjoh/serializer/issues/717) -- Can't hint interface using @Type to trigger custom handler [\#631](https://github.com/schmittjoh/serializer/issues/631) -- JSON/YAML encoding changes [\#617](https://github.com/schmittjoh/serializer/issues/617) -- Why do we need this check inside SerializedName constructor, if there is name? [\#558](https://github.com/schmittjoh/serializer/issues/558) -- Is it possible to deserialize Collection from Json [\#534](https://github.com/schmittjoh/serializer/issues/534) -- PhpCollection 0.4 [\#531](https://github.com/schmittjoh/serializer/issues/531) -- Possible mismatch of xml-attribute-map and $pMetadata-\>xmlAttribute in XmlDriver.php [\#422](https://github.com/schmittjoh/serializer/issues/422) -- Access level propose for Handler/DateHandler.php [\#386](https://github.com/schmittjoh/serializer/issues/386) -- Type DateTime and Timestamp \(U format\) [\#343](https://github.com/schmittjoh/serializer/issues/343) - -**Merged pull requests:** - -- Update PHPDocs [\#736](https://github.com/schmittjoh/serializer/pull/736) ([gnat42](https://github.com/gnat42)) - -## [1.6.0](https://github.com/schmittjoh/serializer/tree/1.6.0) (2017-03-24) -**Implemented enhancements:** - -- Add DateTimeImmutable support to DateHandler [\#543](https://github.com/schmittjoh/serializer/issues/543) - -**Fixed bugs:** - -- Virtual property having type overriden by doctrine metadata [\#276](https://github.com/schmittjoh/serializer/issues/276) - -**Closed issues:** - -- Serialize a subclass [\#735](https://github.com/schmittjoh/serializer/issues/735) -- How to handle Doctrine not found entity ? [\#731](https://github.com/schmittjoh/serializer/issues/731) -- Regression with 1.5.0 =\> Undefined offset 15 [\#715](https://github.com/schmittjoh/serializer/issues/715) -- detect serialisation without groups set [\#546](https://github.com/schmittjoh/serializer/issues/546) -- Introducing the NormalizerInterface [\#537](https://github.com/schmittjoh/serializer/issues/537) -- How to set JSON serialization options? [\#535](https://github.com/schmittjoh/serializer/issues/535) -- @MaxDepth doesn't seem to be working [\#522](https://github.com/schmittjoh/serializer/issues/522) -- max\_depth in YML config is ignored [\#498](https://github.com/schmittjoh/serializer/issues/498) -- Dynamic property type annotation [\#436](https://github.com/schmittjoh/serializer/issues/436) -- How to deserialize JSON if property might have a list of subobjects? [\#355](https://github.com/schmittjoh/serializer/issues/355) -- Object to array normalization [\#354](https://github.com/schmittjoh/serializer/issues/354) -- Serialize Doctrine object without references [\#353](https://github.com/schmittjoh/serializer/issues/353) -- Post\_serialize doesn't serialize relation! [\#236](https://github.com/schmittjoh/serializer/issues/236) -- parsing string to date [\#217](https://github.com/schmittjoh/serializer/issues/217) -- Discriminator is not exposed when using a group exclusion strategy [\#157](https://github.com/schmittjoh/serializer/issues/157) - -## [1.6.0-RC1](https://github.com/schmittjoh/serializer/tree/1.6.0-RC1) (2017-03-14) -**Implemented enhancements:** - -- Add symfony expression in exclusions/expositions [\#406](https://github.com/schmittjoh/serializer/issues/406) -- check that cache directory was not created before throwing exception [\#729](https://github.com/schmittjoh/serializer/pull/729) ([mente](https://github.com/mente)) -- \#720 - Adding support for DateInterval deserialization [\#721](https://github.com/schmittjoh/serializer/pull/721) ([c0ntax](https://github.com/c0ntax)) -- Expression language based virtual properties [\#708](https://github.com/schmittjoh/serializer/pull/708) ([goetas](https://github.com/goetas)) -- Xml namespaces improvements [\#644](https://github.com/schmittjoh/serializer/pull/644) ([goetas](https://github.com/goetas)) - -**Fixed bugs:** - -- Serialize correctly empty intervals according to ISO-8601 [\#722](https://github.com/schmittjoh/serializer/pull/722) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- Is it possible to achieve something like - shouldSerializeEmpty [\#725](https://github.com/schmittjoh/serializer/issues/725) -- How to handle DateTime serialization with fromArray method ? [\#723](https://github.com/schmittjoh/serializer/issues/723) -- DateInterval supported for serialization but not deserialization [\#720](https://github.com/schmittjoh/serializer/issues/720) -- Deserialization of collection when wraped by aditional xml tags [\#719](https://github.com/schmittjoh/serializer/issues/719) -- SerializedName based on a property value [\#716](https://github.com/schmittjoh/serializer/issues/716) -- Blank XML breaks XmlDeserializationVisitor error handling [\#701](https://github.com/schmittjoh/serializer/issues/701) -- Problem with FOSUserBundle ROLE serialization [\#690](https://github.com/schmittjoh/serializer/issues/690) -- Doctrine cache dependency when using setCacheDir [\#676](https://github.com/schmittjoh/serializer/issues/676) -- OneToOne entities are not deserialized if passing a nested one-to-one property [\#652](https://github.com/schmittjoh/serializer/issues/652) -- \[RFC\] Serialization refacotring [\#609](https://github.com/schmittjoh/serializer/issues/609) -- Object handler callback returns array, but serialized object = null [\#594](https://github.com/schmittjoh/serializer/issues/594) -- Cannot add @Discriminator field into specific @Group [\#557](https://github.com/schmittjoh/serializer/issues/557) -- Object check on SerializationContext::isVisiting\(\) [\#502](https://github.com/schmittjoh/serializer/issues/502) -- Define cdata and namespace for @XmlList elements [\#480](https://github.com/schmittjoh/serializer/issues/480) -- Serializer working with parent class [\#376](https://github.com/schmittjoh/serializer/issues/376) -- Add support for array format [\#374](https://github.com/schmittjoh/serializer/issues/374) -- Obtain VirtualProperty value using a service [\#359](https://github.com/schmittjoh/serializer/issues/359) -- make deserialisation of non existing id's configurable [\#333](https://github.com/schmittjoh/serializer/issues/333) -- HHVM compatibility issue with undefined property JMS\Serializer\Metadata\ClassMetadata::$inline [\#312](https://github.com/schmittjoh/serializer/issues/312) -- resources serialization [\#275](https://github.com/schmittjoh/serializer/issues/275) -- I'm receiving "Class ArrayCollection does not exist" when serializing \(temporarily solved with a workaround\) [\#274](https://github.com/schmittjoh/serializer/issues/274) -- Can't use handlers on strings \(and other simple types\) [\#194](https://github.com/schmittjoh/serializer/issues/194) -- composer.json update for doctrine [\#178](https://github.com/schmittjoh/serializer/issues/178) -- Use expression for virtual properties [\#171](https://github.com/schmittjoh/serializer/issues/171) -- Handle classes that implement collections \(e.g. ArrayObject\) and properties [\#137](https://github.com/schmittjoh/serializer/issues/137) -- Check CDATA is needed [\#136](https://github.com/schmittjoh/serializer/issues/136) -- property path support [\#22](https://github.com/schmittjoh/serializer/issues/22) - -**Merged pull requests:** - -- Include reference to cache [\#727](https://github.com/schmittjoh/serializer/pull/727) ([hyperized](https://github.com/hyperized)) - -## [1.5.0](https://github.com/schmittjoh/serializer/tree/1.5.0) (2017-02-14) -**Closed issues:** - -- Serialized DateTime instances are not valid ISO-8601 [\#713](https://github.com/schmittjoh/serializer/issues/713) -- Impossible to use discriminator field. Why we need StaticPropertyMetadata ? [\#705](https://github.com/schmittjoh/serializer/issues/705) -- Deserializing XMLList with Namespaces not \(always\) working as intended [\#695](https://github.com/schmittjoh/serializer/issues/695) - -## [1.5.0-RC1](https://github.com/schmittjoh/serializer/tree/1.5.0-RC1) (2017-01-19) -**Implemented enhancements:** - -- added support for xml-attributes as discriminators [\#692](https://github.com/schmittjoh/serializer/pull/692) ([twtinteractive](https://github.com/twtinteractive)) -- Added clearing previous libxml errors [\#688](https://github.com/schmittjoh/serializer/pull/688) ([zerkms](https://github.com/zerkms)) -- Prevent doctrine proxy loading for virtual types [\#684](https://github.com/schmittjoh/serializer/pull/684) ([goetas](https://github.com/goetas)) -- Implemented dynamic exclusion using symfony expression language [\#673](https://github.com/schmittjoh/serializer/pull/673) ([goetas](https://github.com/goetas)) - -**Fixed bugs:** - -- Deserializing XMLList with Namespaces not \(always\) working as intended [\#697](https://github.com/schmittjoh/serializer/pull/697) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- Groups logic [\#693](https://github.com/schmittjoh/serializer/issues/693) -- BC from 1.1.\* to ^1.2 [\#643](https://github.com/schmittjoh/serializer/issues/643) -- DoctrineProxySubscriber forces loading of the proxy even if custom handler exist [\#575](https://github.com/schmittjoh/serializer/issues/575) -- ConditionalExpose/Exclude annotation [\#540](https://github.com/schmittjoh/serializer/issues/540) -- Deprecated usage of ValidatorInterface [\#438](https://github.com/schmittjoh/serializer/issues/438) -- Missing addData in XmlSerializerVisitor makes it impossible to add data in serializer.post\_serialize event [\#235](https://github.com/schmittjoh/serializer/issues/235) -- Support JSON PATCH for updating object graph [\#231](https://github.com/schmittjoh/serializer/issues/231) -- Dynamic expose, aka 'fields' query param [\#195](https://github.com/schmittjoh/serializer/issues/195) - -**Merged pull requests:** - -- Added doc reference for disabling discriminator [\#699](https://github.com/schmittjoh/serializer/pull/699) ([dragosprotung](https://github.com/dragosprotung)) -- Use GroupsExclusionStrategy::DEFAULT\_GROUP instead default group. [\#694](https://github.com/schmittjoh/serializer/pull/694) ([Aliance](https://github.com/Aliance)) -- A possible fix for the \#688 [\#689](https://github.com/schmittjoh/serializer/pull/689) ([zerkms](https://github.com/zerkms)) -- Improved Symfony 3.x compatibility [\#682](https://github.com/schmittjoh/serializer/pull/682) ([goetas](https://github.com/goetas)) - -## [1.4.2](https://github.com/schmittjoh/serializer/tree/1.4.2) (2016-11-13) -**Fixed bugs:** - -- Warning: JMS\Serializer\XmlDeserializationVisitor::visitArray\(\): Node no longer exists [\#674](https://github.com/schmittjoh/serializer/issues/674) -- Fixed xml arrays with namespaced entry triggers error [\#675](https://github.com/schmittjoh/serializer/pull/675) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- Max depth produces array of nulls [\#671](https://github.com/schmittjoh/serializer/issues/671) - -## [1.4.1](https://github.com/schmittjoh/serializer/tree/1.4.1) (2016-11-02) -**Fixed bugs:** - -- Groups context might be not initialized [\#669](https://github.com/schmittjoh/serializer/pull/669) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- Warning: Invalid argument supplied for foreach\(\) on getCurrentPath method [\#668](https://github.com/schmittjoh/serializer/issues/668) - -## [1.4.0](https://github.com/schmittjoh/serializer/tree/1.4.0) (2016-10-31) -**Implemented enhancements:** - -- Document the implied 'Default' property group when no group is specified [\#661](https://github.com/schmittjoh/serializer/pull/661) ([akoebbe](https://github.com/akoebbe)) -- Allow discriminator map in the middle of the hierarchy when deserializing [\#659](https://github.com/schmittjoh/serializer/pull/659) ([goetas](https://github.com/goetas)) -- Handle both int and integer [\#657](https://github.com/schmittjoh/serializer/pull/657) ([Aliance](https://github.com/Aliance)) - -**Fixed bugs:** - -- Deserialization fails when discriminator base class extends another class [\#182](https://github.com/schmittjoh/serializer/issues/182) -- Xml setters ignored when deserializing [\#665](https://github.com/schmittjoh/serializer/pull/665) ([goetas](https://github.com/goetas)) - -**Closed issues:** - -- Move `FormErrorHandler` to the bundle [\#664](https://github.com/schmittjoh/serializer/issues/664) -- Not compatible with Symfony 3's Controller::json\(\) [\#663](https://github.com/schmittjoh/serializer/issues/663) -- Class name not reflecting in serialized json [\#662](https://github.com/schmittjoh/serializer/issues/662) -- YML virtual\_properties no group exlcusion [\#656](https://github.com/schmittjoh/serializer/issues/656) -- \[RFC\] Introduce normalizer\denormalizer interface [\#646](https://github.com/schmittjoh/serializer/issues/646) -- Plain arrays are serialized \(normalized\) as "objects", ignoring serializeNull [\#641](https://github.com/schmittjoh/serializer/issues/641) -- serializer doesn't serialize traits [\#638](https://github.com/schmittjoh/serializer/issues/638) -- Add metadata informations [\#637](https://github.com/schmittjoh/serializer/issues/637) -- Unexpected results when serializing arrays containing null value elements [\#593](https://github.com/schmittjoh/serializer/issues/593) -- Allow to set default serialization context when building serializer [\#528](https://github.com/schmittjoh/serializer/issues/528) -- Enable Sourcegraph [\#455](https://github.com/schmittjoh/serializer/issues/455) -- Use different accessor for each group [\#420](https://github.com/schmittjoh/serializer/issues/420) -- GenericSerializationVisitor and shouldSerializeNull [\#360](https://github.com/schmittjoh/serializer/issues/360) -- Specify group along with MaxDepth [\#150](https://github.com/schmittjoh/serializer/issues/150) -- Allow Post Serialize Event to overwrite existing data [\#129](https://github.com/schmittjoh/serializer/issues/129) -- Warning: array\_key\_exists\(\) expects parameter 2 to be array, string given [\#70](https://github.com/schmittjoh/serializer/issues/70) - -**Merged pull requests:** - -- Nullable array inconsistency [\#660](https://github.com/schmittjoh/serializer/pull/660) ([goetas](https://github.com/goetas)) -- Fixed PHP 7.0.11 BC break \(or bugfix\) [\#658](https://github.com/schmittjoh/serializer/pull/658) ([goetas](https://github.com/goetas)) -- Renamed replaceData to setData [\#653](https://github.com/schmittjoh/serializer/pull/653) ([goetas](https://github.com/goetas)) -- add required sqlite extension for developing [\#649](https://github.com/schmittjoh/serializer/pull/649) ([scasei](https://github.com/scasei)) -- Run serialization benchmarks in the build process [\#647](https://github.com/schmittjoh/serializer/pull/647) ([goetas](https://github.com/goetas)) -- Alcalyn feature default serializer context [\#645](https://github.com/schmittjoh/serializer/pull/645) ([goetas](https://github.com/goetas)) -- Add format output option [\#640](https://github.com/schmittjoh/serializer/pull/640) ([AyrtonRicardo](https://github.com/AyrtonRicardo)) -- Remove deprecated FileCacheReader for doctrine annotations [\#634](https://github.com/schmittjoh/serializer/pull/634) ([goetas](https://github.com/goetas)) -- Added tests to ensure SerializeNull policy [\#633](https://github.com/schmittjoh/serializer/pull/633) ([goetas](https://github.com/goetas)) -- Fix inheritance of discriminators on Doctrine entities [\#382](https://github.com/schmittjoh/serializer/pull/382) ([xoob](https://github.com/xoob)) -- Allow Post Serialize Event to overwrite existing data [\#273](https://github.com/schmittjoh/serializer/pull/273) ([jockri](https://github.com/jockri)) - -## [1.3.1](https://github.com/schmittjoh/serializer/tree/1.3.1) (2016-08-23) -**Closed issues:** - -- \[Idea\] Inline name [\#629](https://github.com/schmittjoh/serializer/issues/629) -- indexBy property doesn't work since 1.2.0 [\#618](https://github.com/schmittjoh/serializer/issues/618) -- Composer deps issue [\#494](https://github.com/schmittjoh/serializer/issues/494) -- PHP 7 compatability issue [\#478](https://github.com/schmittjoh/serializer/issues/478) -- Add new tag \(upgrade packagist\) [\#461](https://github.com/schmittjoh/serializer/issues/461) -- Custom Type Handler for String Values [\#384](https://github.com/schmittjoh/serializer/issues/384) -- serializer ignores properties added by traits [\#313](https://github.com/schmittjoh/serializer/issues/313) -- Skip an element during Xml deserialization process [\#229](https://github.com/schmittjoh/serializer/issues/229) -- Using serializer for JSON serialising [\#223](https://github.com/schmittjoh/serializer/issues/223) -- No way to serialize binary data with a custom type [\#202](https://github.com/schmittjoh/serializer/issues/202) -- Automatic mapping of properties [\#200](https://github.com/schmittjoh/serializer/issues/200) -- Maybe the serializer should also allow the legal literals {1, 0} for booleans [\#198](https://github.com/schmittjoh/serializer/issues/198) -- Customize how Booleans are serialized [\#180](https://github.com/schmittjoh/serializer/issues/180) -- Problem with deserialize related entity [\#123](https://github.com/schmittjoh/serializer/issues/123) -- serialized\_name does not work in yaml [\#118](https://github.com/schmittjoh/serializer/issues/118) - -**Merged pull requests:** - -- Revert "Default `$serializeNull` to false" [\#630](https://github.com/schmittjoh/serializer/pull/630) ([goetas](https://github.com/goetas)) - -## [1.3.0](https://github.com/schmittjoh/serializer/tree/1.3.0) (2016-08-17) -**Closed issues:** - -- problems with xml namespaces after update [\#621](https://github.com/schmittjoh/serializer/issues/621) -- Trying to decorate a member to ArrayCollection but gets an error when deserilizing because composer didn't download the class from doctrine. [\#596](https://github.com/schmittjoh/serializer/issues/596) -- Missing doctrine/common requirement ? [\#517](https://github.com/schmittjoh/serializer/issues/517) -- PHP Fatal error: Using $this when not in object context in JMS/Serializer/Serializer.php on line 99 [\#441](https://github.com/schmittjoh/serializer/issues/441) -- custom collection handler [\#415](https://github.com/schmittjoh/serializer/issues/415) -- Exclude annotation not preventing attempt to find public methods when using AccessType [\#367](https://github.com/schmittjoh/serializer/issues/367) -- serializer.pre\_serialize event only thrown on objects/classes [\#337](https://github.com/schmittjoh/serializer/issues/337) -- Installing through composer gets "Segmentation fault" [\#308](https://github.com/schmittjoh/serializer/issues/308) -- Erroneous data format for unserializing... [\#283](https://github.com/schmittjoh/serializer/issues/283) -- DoctrineObjectConstructor should skip empty identifier field [\#193](https://github.com/schmittjoh/serializer/issues/193) - -**Merged pull requests:** - -- Added public `hasData` function to check if a data key already have been added. [\#625](https://github.com/schmittjoh/serializer/pull/625) ([goetas](https://github.com/goetas)) -- $context is not used [\#622](https://github.com/schmittjoh/serializer/pull/622) ([olvlvl](https://github.com/olvlvl)) -- Fix Doctrine PHPCR ODM 2.0 compatibility [\#605](https://github.com/schmittjoh/serializer/pull/605) ([wouterj](https://github.com/wouterj)) -- Introducing NormalizerInterface [\#592](https://github.com/schmittjoh/serializer/pull/592) ([alcalyn](https://github.com/alcalyn)) -- Fixed type-hinting [\#586](https://github.com/schmittjoh/serializer/pull/586) ([jgendera](https://github.com/jgendera)) -- Fix multiple handler callbacks in YamlDriver [\#515](https://github.com/schmittjoh/serializer/pull/515) ([mpajunen](https://github.com/mpajunen)) -- Fixed minor typos [\#364](https://github.com/schmittjoh/serializer/pull/364) ([sdaoudi](https://github.com/sdaoudi)) -- Default `$serializeNull` to false [\#317](https://github.com/schmittjoh/serializer/pull/317) ([steveYeah](https://github.com/steveYeah)) -- Missing attribute 'xml-value' in XML Reference [\#269](https://github.com/schmittjoh/serializer/pull/269) ([holtkamp](https://github.com/holtkamp)) -- Removed unnecessary use statement [\#262](https://github.com/schmittjoh/serializer/pull/262) ([dunglas](https://github.com/dunglas)) - -## [1.2.0](https://github.com/schmittjoh/serializer/tree/1.2.0) (2016-08-03) -**Implemented enhancements:** - -- Issue543 - Adding DateTimeImmutable support [\#635](https://github.com/schmittjoh/serializer/pull/635) ([toby-griffiths](https://github.com/toby-griffiths)) - -**Fixed bugs:** - -- Fix xml-attribute-map for the xml driver [\#595](https://github.com/schmittjoh/serializer/pull/595) ([romantomchak](https://github.com/romantomchak)) -- Fix warning array\_key\_exists in deserialization. [\#398](https://github.com/schmittjoh/serializer/pull/398) ([leonnleite](https://github.com/leonnleite)) -- \#367 Exclude annotation not preventing attempt to find public methods when using AccessType [\#397](https://github.com/schmittjoh/serializer/pull/397) ([Strate](https://github.com/Strate)) - -**Closed issues:** - -- XML serialisation performance vs. SimpleXML? [\#606](https://github.com/schmittjoh/serializer/issues/606) -- Undefined Offset 21 - PropertyMetadata \(master\) [\#581](https://github.com/schmittjoh/serializer/issues/581) -- Invalid null serialization in arrays [\#571](https://github.com/schmittjoh/serializer/issues/571) -- List Polymorphic with XML Deserialization [\#568](https://github.com/schmittjoh/serializer/issues/568) -- Serialize null values as empty string [\#566](https://github.com/schmittjoh/serializer/issues/566) -- Type mismatch should throw an exception instead of coercing when deserializing JSON [\#561](https://github.com/schmittjoh/serializer/issues/561) -- Serialize to array [\#518](https://github.com/schmittjoh/serializer/issues/518) -- AnnotationDriver Exception on Missing Setter/Getter even on @Exclude'd Properties [\#516](https://github.com/schmittjoh/serializer/issues/516) -- Arrays are serialized as objects like {"0":... } when data contains empty objects [\#488](https://github.com/schmittjoh/serializer/issues/488) -- Tag new release [\#465](https://github.com/schmittjoh/serializer/issues/465) -- Forcing no scientific notation for larg number, type double [\#405](https://github.com/schmittjoh/serializer/issues/405) -- PHP \< 5.3.9 BC break [\#383](https://github.com/schmittjoh/serializer/issues/383) -- Ignoring a tag when deserializing [\#352](https://github.com/schmittjoh/serializer/issues/352) - -**Merged pull requests:** - -- Allow to not skip empty not inline array root node [\#611](https://github.com/schmittjoh/serializer/pull/611) ([goetas](https://github.com/goetas)) -- Allow to use custom serializer with primitive type [\#610](https://github.com/schmittjoh/serializer/pull/610) ([goetas](https://github.com/goetas)) -- Composer is not able to resolve a dependency [\#608](https://github.com/schmittjoh/serializer/pull/608) ([goetas](https://github.com/goetas)) -- Test on Travis always high and low deps [\#584](https://github.com/schmittjoh/serializer/pull/584) ([goetas](https://github.com/goetas)) -- Update Symfony validator and allow PHPUnit 7 [\#583](https://github.com/schmittjoh/serializer/pull/583) ([goetas](https://github.com/goetas)) -- Fix serialize bug [\#582](https://github.com/schmittjoh/serializer/pull/582) ([goetas](https://github.com/goetas)) -- HHVM compatibility [\#580](https://github.com/schmittjoh/serializer/pull/580) ([goetas](https://github.com/goetas)) -- Discriminator Groups [\#579](https://github.com/schmittjoh/serializer/pull/579) ([maennchen](https://github.com/maennchen)) -- Fixed test suite on master [\#578](https://github.com/schmittjoh/serializer/pull/578) ([goetas](https://github.com/goetas)) -- Fix for a broken test: a missing \(incorrectly positioned\) argument [\#577](https://github.com/schmittjoh/serializer/pull/577) ([zerkms](https://github.com/zerkms)) -- Add extra test for handling child elements [\#569](https://github.com/schmittjoh/serializer/pull/569) ([tarjei](https://github.com/tarjei)) -- Fix bug \#343 return integer when the column is datetime [\#562](https://github.com/schmittjoh/serializer/pull/562) ([Bukashk0zzz](https://github.com/Bukashk0zzz)) -- \[doc\] fix AccessorOrder documentation [\#553](https://github.com/schmittjoh/serializer/pull/553) ([aledeg](https://github.com/aledeg)) -- Generic way to solve setValue on a property which respects its setter [\#550](https://github.com/schmittjoh/serializer/pull/550) ([maennchen](https://github.com/maennchen)) -- Added travis-ci label [\#399](https://github.com/schmittjoh/serializer/pull/399) ([spolischook](https://github.com/spolischook)) -- Generate namespaced element on XmlList entries [\#301](https://github.com/schmittjoh/serializer/pull/301) ([goetas](https://github.com/goetas)) - -## [1.1.0](https://github.com/schmittjoh/serializer/tree/1.1.0) (2015-10-27) -**Closed issues:** - -- Possible to set xsi:schemalocation? [\#505](https://github.com/schmittjoh/serializer/issues/505) -- Travis needs a renewed token to be able to set the status [\#495](https://github.com/schmittjoh/serializer/issues/495) -- Serialize a many-to-many relation [\#474](https://github.com/schmittjoh/serializer/issues/474) -- The document type "..." is not allowed [\#427](https://github.com/schmittjoh/serializer/issues/427) -- Yml serializer don't serialize empty arrays [\#183](https://github.com/schmittjoh/serializer/issues/183) - -**Merged pull requests:** - -- Manage empty array for serializer [\#510](https://github.com/schmittjoh/serializer/pull/510) ([Soullivaneuh](https://github.com/Soullivaneuh)) -- Fix the method name for the serialization context factory [\#490](https://github.com/schmittjoh/serializer/pull/490) ([stof](https://github.com/stof)) -- Switch the Twig integration to use non-deprecated APIs [\#482](https://github.com/schmittjoh/serializer/pull/482) ([stof](https://github.com/stof)) -- Add PHP 7 on Travis [\#477](https://github.com/schmittjoh/serializer/pull/477) ([Soullivaneuh](https://github.com/Soullivaneuh)) -- Change Proxy class used to Doctrine\Common\Persistence\Proxy [\#351](https://github.com/schmittjoh/serializer/pull/351) ([bburnichon](https://github.com/bburnichon)) -- Added PHP 5.6 [\#297](https://github.com/schmittjoh/serializer/pull/297) ([Nyholm](https://github.com/Nyholm)) - -## [1.0.0](https://github.com/schmittjoh/serializer/tree/1.0.0) (2015-06-16) -**Closed issues:** - -- Unrecognized 4 parts namespace [\#449](https://github.com/schmittjoh/serializer/issues/449) -- Groups is ignored [\#440](https://github.com/schmittjoh/serializer/issues/440) -- Property FelDev\CoreBundle\Entity\Persona::$apellido does not exist [\#432](https://github.com/schmittjoh/serializer/issues/432) -- Erroneous data format for unserializing [\#430](https://github.com/schmittjoh/serializer/issues/430) -- Deserialize JSON into existing Doctrine entities and empty strings are ignored [\#417](https://github.com/schmittjoh/serializer/issues/417) -- Failing to deserealize JSON string [\#402](https://github.com/schmittjoh/serializer/issues/402) -- Empty results serializing virtual\_properties [\#400](https://github.com/schmittjoh/serializer/issues/400) -- API stable 1.0.0 release in sight? [\#395](https://github.com/schmittjoh/serializer/issues/395) -- Is this project maintained still? [\#361](https://github.com/schmittjoh/serializer/issues/361) -- PreSerialize [\#339](https://github.com/schmittjoh/serializer/issues/339) -- Change default `access\_type` globally [\#336](https://github.com/schmittjoh/serializer/issues/336) -- Deserialization of XmlList does not support namespaces [\#332](https://github.com/schmittjoh/serializer/issues/332) -- Recursion groups, serializing properties in entities [\#329](https://github.com/schmittjoh/serializer/issues/329) -- The testsuite is broken [\#326](https://github.com/schmittjoh/serializer/issues/326) -- Namespaces and serialize/deserialize process [\#303](https://github.com/schmittjoh/serializer/issues/303) -- Exclusion of parent properties failing [\#282](https://github.com/schmittjoh/serializer/issues/282) -- How to deserialize correctly an array of arbitrary values ? [\#280](https://github.com/schmittjoh/serializer/issues/280) -- Try to identify getter/setter from an excluded property [\#278](https://github.com/schmittjoh/serializer/issues/278) -- Bug Entity constructor not called [\#270](https://github.com/schmittjoh/serializer/issues/270) -- Make it possible to escape special characters on serialization [\#265](https://github.com/schmittjoh/serializer/issues/265) -- doctrine annotations without namespace [\#264](https://github.com/schmittjoh/serializer/issues/264) -- php-collection constraint [\#257](https://github.com/schmittjoh/serializer/issues/257) -- \[Metadata\] PHP warning only when unittesting [\#255](https://github.com/schmittjoh/serializer/issues/255) -- Discriminator [\#220](https://github.com/schmittjoh/serializer/issues/220) - -**Merged pull requests:** - -- fix json output \(from \[\] to {} if empty\) of form error [\#462](https://github.com/schmittjoh/serializer/pull/462) ([jhkchan](https://github.com/jhkchan)) -- Add toArray and fromArray methods to the serializer [\#435](https://github.com/schmittjoh/serializer/pull/435) ([tystr](https://github.com/tystr)) -- Erroneous data format for unserializing \#430 [\#431](https://github.com/schmittjoh/serializer/pull/431) ([tmilos](https://github.com/tmilos)) -- Scrutinizer Auto-Fixes [\#381](https://github.com/schmittjoh/serializer/pull/381) ([scrutinizer-auto-fixer](https://github.com/scrutinizer-auto-fixer)) -- Fixing tests for bugfixed PHP versions [\#375](https://github.com/schmittjoh/serializer/pull/375) ([urakozz](https://github.com/urakozz)) -- Making test running against phpunit 4.\* [\#369](https://github.com/schmittjoh/serializer/pull/369) ([joelwurtz](https://github.com/joelwurtz)) -- Fixes a typo in the annotations.rst [\#363](https://github.com/schmittjoh/serializer/pull/363) ([Potherca](https://github.com/Potherca)) -- \[doc\] Default group informations [\#345](https://github.com/schmittjoh/serializer/pull/345) ([emilien-puget](https://github.com/emilien-puget)) -- bump branch alias to 0.17 as 0.16 is already released [\#305](https://github.com/schmittjoh/serializer/pull/305) ([lsmith77](https://github.com/lsmith77)) -- Unserialization of XML booleans [\#302](https://github.com/schmittjoh/serializer/pull/302) ([goetas](https://github.com/goetas)) -- Added xml\_root\_namespace on YAML reference [\#299](https://github.com/schmittjoh/serializer/pull/299) ([goetas](https://github.com/goetas)) -- Fixed yml mapping file name [\#256](https://github.com/schmittjoh/serializer/pull/256) ([spolischook](https://github.com/spolischook)) -- Serialization of nested polymorphic objects [\#238](https://github.com/schmittjoh/serializer/pull/238) ([DavidMikeSimon](https://github.com/DavidMikeSimon)) - -## [0.16.0](https://github.com/schmittjoh/serializer/tree/0.16.0) (2014-03-18) -**Closed issues:** - -- best way to add root to json? [\#250](https://github.com/schmittjoh/serializer/issues/250) -- Use Doctrine metadata [\#247](https://github.com/schmittjoh/serializer/issues/247) -- Integration Points - run-time exclusion checking [\#239](https://github.com/schmittjoh/serializer/issues/239) -- Using DoctrineTypeDriver to use Doctrine Anotations [\#232](https://github.com/schmittjoh/serializer/issues/232) - -**Merged pull requests:** - -- Changed some constraint to allow latest versions [\#251](https://github.com/schmittjoh/serializer/pull/251) ([stof](https://github.com/stof)) -- XML root element namespace support [\#246](https://github.com/schmittjoh/serializer/pull/246) ([andreasferber](https://github.com/andreasferber)) -- Added test for leading backslash in front of class name to TypeParserTest [\#245](https://github.com/schmittjoh/serializer/pull/245) ([deralex](https://github.com/deralex)) -- Allow to fetch data from has\*\(\) with public\_method [\#243](https://github.com/schmittjoh/serializer/pull/243) ([jaymecd](https://github.com/jaymecd)) -- Improve yaml documentacion Fix \#100 [\#221](https://github.com/schmittjoh/serializer/pull/221) ([BraisGabin](https://github.com/BraisGabin)) - -## [0.15.0](https://github.com/schmittjoh/serializer/tree/0.15.0) (2014-02-10) -**Closed issues:** - -- Add trait support [\#228](https://github.com/schmittjoh/serializer/issues/228) -- "array" type: Not working for arrays of DateTime objects [\#199](https://github.com/schmittjoh/serializer/issues/199) -- Discriminator field filtered by exclusion strategy [\#189](https://github.com/schmittjoh/serializer/issues/189) -- DateTime within an array \(format get ignored\) [\#140](https://github.com/schmittjoh/serializer/issues/140) -- EntityNotFoundException using softDeletable [\#101](https://github.com/schmittjoh/serializer/issues/101) -- Virtual property documentation xml & yaml [\#100](https://github.com/schmittjoh/serializer/issues/100) - -**Merged pull requests:** - -- Read only class [\#227](https://github.com/schmittjoh/serializer/pull/227) ([goetas](https://github.com/goetas)) -- @Alex88's Serialize only form child of type Form \#117 [\#224](https://github.com/schmittjoh/serializer/pull/224) ([minayaserrano](https://github.com/minayaserrano)) -- @XmlElement notation consistency [\#219](https://github.com/schmittjoh/serializer/pull/219) ([ajgarlag](https://github.com/ajgarlag)) -- add $this-\>maxDepth to serialize / unserialize [\#218](https://github.com/schmittjoh/serializer/pull/218) ([rothfahl](https://github.com/rothfahl)) -- xml reference updated with virtual-property example [\#215](https://github.com/schmittjoh/serializer/pull/215) ([ribeiropaulor](https://github.com/ribeiropaulor)) -- Add XmlNamespace annotation documentation [\#213](https://github.com/schmittjoh/serializer/pull/213) ([jeserkin](https://github.com/jeserkin)) -- Scrutinizer Auto-Fixes [\#210](https://github.com/schmittjoh/serializer/pull/210) ([scrutinizer-auto-fixer](https://github.com/scrutinizer-auto-fixer)) -- Scrutinizer Auto-Fixes [\#206](https://github.com/schmittjoh/serializer/pull/206) ([scrutinizer-auto-fixer](https://github.com/scrutinizer-auto-fixer)) -- Add xmlAttributeMap to serialized values [\#204](https://github.com/schmittjoh/serializer/pull/204) ([colinfrei](https://github.com/colinfrei)) -- fix issue \#199: "array" type ignoring DateTime format [\#201](https://github.com/schmittjoh/serializer/pull/201) ([lukey78](https://github.com/lukey78)) -- Potential fix for "recursion detected" issue [\#104](https://github.com/schmittjoh/serializer/pull/104) ([tyler-sommer](https://github.com/tyler-sommer)) - -## [0.14.0](https://github.com/schmittjoh/serializer/tree/0.14.0) (2013-12-04) -**Implemented enhancements:** - -- Can now override groups on specific paths of the graph [\#170](https://github.com/schmittjoh/serializer/pull/170) ([adrienbrault](https://github.com/adrienbrault)) - -**Closed issues:** - -- @HandlerCallback not inherited [\#181](https://github.com/schmittjoh/serializer/issues/181) -- Conditional serialization [\#173](https://github.com/schmittjoh/serializer/issues/173) -- Deserialize XML partially [\#167](https://github.com/schmittjoh/serializer/issues/167) -- getter is not called when serializing Discriminator parent entity [\#156](https://github.com/schmittjoh/serializer/issues/156) -- Deserialize DateTime from js Date.toJSON format fail [\#145](https://github.com/schmittjoh/serializer/issues/145) -- Yaml driver for the parameter xml\_attribute\_map is broken [\#141](https://github.com/schmittjoh/serializer/issues/141) -- XmlKeyValueStore annotation does not seem to deserialize properly [\#139](https://github.com/schmittjoh/serializer/issues/139) -- Boolean conversion gone wrong [\#134](https://github.com/schmittjoh/serializer/issues/134) -- Serialize to/from array? [\#133](https://github.com/schmittjoh/serializer/issues/133) -- @XmlRoot annotation no longer working [\#131](https://github.com/schmittjoh/serializer/issues/131) -- Skip an element based on a condition in a XmlList [\#121](https://github.com/schmittjoh/serializer/issues/121) - -**Merged pull requests:** - -- No CData [\#187](https://github.com/schmittjoh/serializer/pull/187) ([mvrhov](https://github.com/mvrhov)) -- composer is preinstalled on travis [\#185](https://github.com/schmittjoh/serializer/pull/185) ([lsmith77](https://github.com/lsmith77)) -- \[WIP\] added support for PHPCR [\#184](https://github.com/schmittjoh/serializer/pull/184) ([lsmith77](https://github.com/lsmith77)) -- Metadata filename convention added to yml/xml references [\#172](https://github.com/schmittjoh/serializer/pull/172) ([rodrigodiez](https://github.com/rodrigodiez)) -- Fix inline bug with empty child [\#165](https://github.com/schmittjoh/serializer/pull/165) ([adrienbrault](https://github.com/adrienbrault)) -- Add virtual properties yaml example [\#163](https://github.com/schmittjoh/serializer/pull/163) ([adrienbrault](https://github.com/adrienbrault)) -- Allow deserialization to constructed objects [\#160](https://github.com/schmittjoh/serializer/pull/160) ([eugene-dounar](https://github.com/eugene-dounar)) -- Fix DoctrineDriverTest random failures [\#155](https://github.com/schmittjoh/serializer/pull/155) ([eugene-dounar](https://github.com/eugene-dounar)) -- Fix XML null DateTime deserialization [\#154](https://github.com/schmittjoh/serializer/pull/154) ([eugene-dounar](https://github.com/eugene-dounar)) -- Update doctrine/orm dev dependency [\#153](https://github.com/schmittjoh/serializer/pull/153) ([eugene-dounar](https://github.com/eugene-dounar)) -- composer install --dev fails [\#152](https://github.com/schmittjoh/serializer/pull/152) ([eugene-dounar](https://github.com/eugene-dounar)) -- Update annotations.rst [\#146](https://github.com/schmittjoh/serializer/pull/146) ([chrisjohnson00](https://github.com/chrisjohnson00)) -- Add Doctrine\ODM\PHPCR\ChildrenCollection to ArrayCollectionHandler [\#143](https://github.com/schmittjoh/serializer/pull/143) ([hacfi](https://github.com/hacfi)) -- xml\_attribute\_map fix for the yaml driver [\#142](https://github.com/schmittjoh/serializer/pull/142) ([mvanmeerbeck](https://github.com/mvanmeerbeck)) -- Support PropelCollection serialization [\#81](https://github.com/schmittjoh/serializer/pull/81) ([zebraf1](https://github.com/zebraf1)) -- Adds XML namespaces support [\#58](https://github.com/schmittjoh/serializer/pull/58) ([ajgarlag](https://github.com/ajgarlag)) - -## [0.13.0](https://github.com/schmittjoh/serializer/tree/0.13.0) (2013-07-29) -**Closed issues:** - -- Documentation on Exclusion Strategies has an error [\#122](https://github.com/schmittjoh/serializer/issues/122) -- How access to the current serializing group in a subscriber ? [\#99](https://github.com/schmittjoh/serializer/issues/99) -- DoctrineProxySubscriber not found [\#93](https://github.com/schmittjoh/serializer/issues/93) -- Namespaces at root level [\#86](https://github.com/schmittjoh/serializer/issues/86) -- Issues when requesting JSON or XML using Doctrine MongoDB ODM [\#85](https://github.com/schmittjoh/serializer/issues/85) -- addGlobalIgnoredName not working [\#78](https://github.com/schmittjoh/serializer/issues/78) -- serialize\_null configuration [\#77](https://github.com/schmittjoh/serializer/issues/77) -- Add json prefix to prevent script tag csrf attack [\#76](https://github.com/schmittjoh/serializer/issues/76) -- Add support for replacing serialization object inside events [\#74](https://github.com/schmittjoh/serializer/issues/74) -- Next stable version? [\#64](https://github.com/schmittjoh/serializer/issues/64) -- Deserialize with object refs [\#62](https://github.com/schmittjoh/serializer/issues/62) - -**Merged pull requests:** - -- fix wrong quote in used in docs [\#130](https://github.com/schmittjoh/serializer/pull/130) ([jaapio](https://github.com/jaapio)) -- Document the handler $context argument [\#116](https://github.com/schmittjoh/serializer/pull/116) ([adrienbrault](https://github.com/adrienbrault)) -- Document the SubscribingHandlerInterface a bit [\#115](https://github.com/schmittjoh/serializer/pull/115) ([adrienbrault](https://github.com/adrienbrault)) -- Add getter for the xml serialization visitor defaultRootName property [\#114](https://github.com/schmittjoh/serializer/pull/114) ([adrienbrault](https://github.com/adrienbrault)) -- Add Serializer::getMetadataFactory [\#113](https://github.com/schmittjoh/serializer/pull/113) ([adrienbrault](https://github.com/adrienbrault)) -- Accessor order [\#108](https://github.com/schmittjoh/serializer/pull/108) ([jaapio](https://github.com/jaapio)) -- Added xmlns:xsi namespace and fixed tests [\#107](https://github.com/schmittjoh/serializer/pull/107) ([josser](https://github.com/josser)) -- \[Doc\] Fixed typo in event\_system [\#106](https://github.com/schmittjoh/serializer/pull/106) ([lyrixx](https://github.com/lyrixx)) -- Fix discriminator map search in ClassMetadata [\#97](https://github.com/schmittjoh/serializer/pull/97) ([xanido](https://github.com/xanido)) -- Use the AnnotationReader interface in the SerializerBuilder, instead of the implemented AnnotationReader itself [\#82](https://github.com/schmittjoh/serializer/pull/82) ([HarmenM](https://github.com/HarmenM)) -- Remove useless YamlSerializationVisitor::prepare method [\#75](https://github.com/schmittjoh/serializer/pull/75) ([adrienbrault](https://github.com/adrienbrault)) -- Add the PRE\_DESERIALIZE event to the Events class [\#73](https://github.com/schmittjoh/serializer/pull/73) ([adrienbrault](https://github.com/adrienbrault)) -- Improve serialization example [\#71](https://github.com/schmittjoh/serializer/pull/71) ([tvlooy](https://github.com/tvlooy)) -- Max depth strategy [\#4](https://github.com/schmittjoh/serializer/pull/4) ([adrienbrault](https://github.com/adrienbrault)) - -## [0.12.0](https://github.com/schmittjoh/serializer/tree/0.12.0) (2013-03-28) -**Closed issues:** - -- Serialization profile/definition builder [\#68](https://github.com/schmittjoh/serializer/issues/68) -- I want to configure the default exclution policy [\#65](https://github.com/schmittjoh/serializer/issues/65) -- Mulit type property mapping [\#56](https://github.com/schmittjoh/serializer/issues/56) -- AccessType\("public\_method"\): Setters ignored when deserializing to non-standard XML properties [\#53](https://github.com/schmittjoh/serializer/issues/53) -- Adding @Accessor with custom getter causes LogicException if Doctrine ManyToOneEntity [\#52](https://github.com/schmittjoh/serializer/issues/52) -- Handler callback's does not get passed context [\#49](https://github.com/schmittjoh/serializer/issues/49) -- PostSerialize callback causes data loss [\#46](https://github.com/schmittjoh/serializer/issues/46) -- Empty Objects get serialized as "array\(\)" [\#43](https://github.com/schmittjoh/serializer/issues/43) -- Exclusion Policies aren't properly applied when "serializeNull" is "true" [\#42](https://github.com/schmittjoh/serializer/issues/42) -- Accessor annotation ignored [\#40](https://github.com/schmittjoh/serializer/issues/40) -- Support for multiple exclusion strategies [\#39](https://github.com/schmittjoh/serializer/issues/39) -- srholt123@yahoo.com [\#35](https://github.com/schmittjoh/serializer/issues/35) -- Could you tag a stable version? [\#34](https://github.com/schmittjoh/serializer/issues/34) -- Default conversion of camelCase to underscores is counterintuitive [\#33](https://github.com/schmittjoh/serializer/issues/33) -- Define the xml root when deserializing [\#18](https://github.com/schmittjoh/serializer/issues/18) - -**Merged pull requests:** - -- \[Annotation\] Added the ability to set the type when using @VirtualProperty [\#69](https://github.com/schmittjoh/serializer/pull/69) ([pylebecq](https://github.com/pylebecq)) -- Added documentation for the @VirtualProperty annotation [\#67](https://github.com/schmittjoh/serializer/pull/67) ([pylebecq](https://github.com/pylebecq)) -- Metadata stack tests [\#57](https://github.com/schmittjoh/serializer/pull/57) ([adrienbrault](https://github.com/adrienbrault)) -- Adding context to twig extension [\#55](https://github.com/schmittjoh/serializer/pull/55) ([smurfy](https://github.com/smurfy)) -- Allow deserialization of polymorphic classes by class without specifying the type [\#48](https://github.com/schmittjoh/serializer/pull/48) ([gordalina](https://github.com/gordalina)) -- Moves all state to dedicated context class [\#47](https://github.com/schmittjoh/serializer/pull/47) ([schmittjoh](https://github.com/schmittjoh)) -- Add PropertyNamingStrategy [\#37](https://github.com/schmittjoh/serializer/pull/37) ([passkey1510](https://github.com/passkey1510)) -- The NavigatorContext now holds a metadata stack [\#28](https://github.com/schmittjoh/serializer/pull/28) ([adrienbrault](https://github.com/adrienbrault)) - -## [0.11.0](https://github.com/schmittjoh/serializer/tree/0.11.0) (2013-01-29) -**Closed issues:** - -- Hooking into metadata directly... [\#17](https://github.com/schmittjoh/serializer/issues/17) -- Serializing null values [\#14](https://github.com/schmittjoh/serializer/issues/14) -- Strange caching-error [\#13](https://github.com/schmittjoh/serializer/issues/13) -- handling of plain array [\#10](https://github.com/schmittjoh/serializer/issues/10) -- Unsupported format doesn't throw exception anymore [\#8](https://github.com/schmittjoh/serializer/issues/8) - -**Merged pull requests:** - -- Fix typo [\#32](https://github.com/schmittjoh/serializer/pull/32) ([inanimatt](https://github.com/inanimatt)) -- Fixed the serialization of pluralized form errors [\#31](https://github.com/schmittjoh/serializer/pull/31) ([stof](https://github.com/stof)) -- Extract json specific logic from GenericSerializationVisitor [\#29](https://github.com/schmittjoh/serializer/pull/29) ([adrienbrault](https://github.com/adrienbrault)) -- \[Serializer\] Misc cleanup [\#27](https://github.com/schmittjoh/serializer/pull/27) ([vicb](https://github.com/vicb)) -- \[Builder\] Add ability to include if metadata [\#25](https://github.com/schmittjoh/serializer/pull/25) ([vicb](https://github.com/vicb)) -- Fix DateTimeZone issue when using the DateTime type [\#23](https://github.com/schmittjoh/serializer/pull/23) ([colinmorelli](https://github.com/colinmorelli)) -- Wrong exception message for parsing datetime [\#21](https://github.com/schmittjoh/serializer/pull/21) ([nickelc](https://github.com/nickelc)) -- Fixed typo in doc/reference/annotations.rst [\#16](https://github.com/schmittjoh/serializer/pull/16) ([iambrosi](https://github.com/iambrosi)) -- Typecast when serializing primitive types [\#15](https://github.com/schmittjoh/serializer/pull/15) ([baldurrensch](https://github.com/baldurrensch)) -- add check and helpful exception message on inconsistent type situation [\#12](https://github.com/schmittjoh/serializer/pull/12) ([dbu](https://github.com/dbu)) -- Dispatch pre-serialization event before handling data to have ability change type in listener [\#7](https://github.com/schmittjoh/serializer/pull/7) ([megazoll](https://github.com/megazoll)) -- Fix tests running in different environments [\#6](https://github.com/schmittjoh/serializer/pull/6) ([megazoll](https://github.com/megazoll)) -- Add DateInterval serialization to DateHandler formerly DateTimeHandler [\#5](https://github.com/schmittjoh/serializer/pull/5) ([rpg600](https://github.com/rpg600)) -- WIP Navigator context [\#3](https://github.com/schmittjoh/serializer/pull/3) ([adrienbrault](https://github.com/adrienbrault)) -- Update src/JMS/Serializer/Construction/DoctrineObjectConstructor.php [\#2](https://github.com/schmittjoh/serializer/pull/2) ([robocoder](https://github.com/robocoder)) -- Filter out non-identifiers from $data before calling find\(\) [\#1](https://github.com/schmittjoh/serializer/pull/1) ([robocoder](https://github.com/robocoder)) - - - -\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* diff --git a/vendor/jms/serializer/LICENSE b/vendor/jms/serializer/LICENSE deleted file mode 100644 index f49a4e1..0000000 --- a/vendor/jms/serializer/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/vendor/jms/serializer/META.md b/vendor/jms/serializer/META.md deleted file mode 100644 index 07401d8..0000000 --- a/vendor/jms/serializer/META.md +++ /dev/null @@ -1,7 +0,0 @@ -# Generating changelog - -Use: https://github.com/skywinder/Github-Changelog-Generator - -```bash -github_changelog_generator --pull-requests --no-compare-link -t GITHUB-TOKEN -``` diff --git a/vendor/jms/serializer/README.md b/vendor/jms/serializer/README.md deleted file mode 100644 index dd9f551..0000000 --- a/vendor/jms/serializer/README.md +++ /dev/null @@ -1,4 +0,0 @@ -Serializer [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/schmittjoh/serializer/badges/quality-score.png?s=189df68e00c75d3fe155bc0da0b53b53709a9895)](https://scrutinizer-ci.com/g/schmittjoh/serializer/) [![Build Status](https://travis-ci.org/schmittjoh/serializer.svg?branch=master)](https://travis-ci.org/schmittjoh/serializer) -========== - -Learn more about it in its [documentation](http://jmsyst.com/libs/serializer). diff --git a/vendor/jms/serializer/UPGRADING.md b/vendor/jms/serializer/UPGRADING.md deleted file mode 100644 index a4ada71..0000000 --- a/vendor/jms/serializer/UPGRADING.md +++ /dev/null @@ -1,26 +0,0 @@ -From 0.13 to ??? -================ - -- If you have implemented your own ObjectConstructor, you need to add the DeserializationContext as an additional - parameter for the ``construct`` method. - - -From 0.11 to 0.12 -================= - -- GraphNavigator::detachObject has been removed, you can directly use Context::stopVisiting instead. -- VisitorInterface::getNavigator was deprecated, instead use Context::accept -- Serializer::setGroups, Serializer::setExclusionStrategy and Serializer::setVersion were removed, these settings must - now be passed as part of a new Context object. - - Before: - - $serializer->setVersion(1); - $serializer->serialize($data, 'json'); - - After: - - $serializer->serialize($data, 'json', SerializationContext::create()->setVersion(1)); - -- All visit??? methods of the VisitorInterface, now require a third argument, the Context; the context is for example - passed as an additional argument to handlers, exclusion strategies, and also available in event listeners. diff --git a/vendor/jms/serializer/composer.json b/vendor/jms/serializer/composer.json deleted file mode 100644 index d23356c..0000000 --- a/vendor/jms/serializer/composer.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "jms/serializer", - "type": "library", - "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.", - "keywords": ["serialization", "deserialization", "json", "jaxb", "xml"], - "homepage": "http://jmsyst.com/libs/serializer", - "license": "Apache-2.0", - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - } - ], - "require": { - "php": "^5.5|^7.0", - "jms/metadata": "~1.1", - "jms/parser-lib": "1.*", - "phpoption/phpoption": "^1.1", - "phpcollection/phpcollection": "~0.1", - "doctrine/annotations": "^1.0", - "doctrine/instantiator": "^1.0.3" - }, - "conflict": { - "twig/twig": "<1.12" - }, - "suggest": { - "symfony/yaml": "Required if you'd like to serialize data to YAML format.", - "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.", - "doctrine/cache": "Required if you like to use cache functionality." - }, - "require-dev": { - "ext-pdo_sqlite": "*", - "twig/twig": "~1.12|~2.0", - "doctrine/orm": "~2.1", - "jackalope/jackalope-doctrine-dbal": "^1.1.5", - "doctrine/phpcr-odm": "^1.3|^2.0", - "propel/propel1": "~1.7", - "psr/container": "^1.0", - "symfony/dependency-injection": "^2.7|^3.3|^4.0", - "symfony/yaml": "^2.1|^3.0", - "symfony/translation": "^2.1|^3.0", - "symfony/validator": "^2.2|^3.0", - "symfony/form": "~2.1|^3.0", - "symfony/filesystem": "^2.1", - "symfony/expression-language": "^2.6|^3.0", - "phpunit/phpunit": "^4.8|^5.0" - }, - "autoload": { - "psr-0": { - "JMS\\Serializer": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "JMS\\Serializer\\Tests\\": "tests/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.11-dev" - } - } -} diff --git a/vendor/jms/serializer/doc/LICENSE b/vendor/jms/serializer/doc/LICENSE deleted file mode 100644 index a9aba5c..0000000 --- a/vendor/jms/serializer/doc/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. - -1. Definitions - - "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. - "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. - "Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. - "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. - "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. - "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. - "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. - "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. - "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. - -2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: - - to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, - to Distribute and Publicly Perform the Work including as incorporated in Collections. - -The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). - -4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: - - You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. - You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. - If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. - - For the avoidance of doubt: - Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; - Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, - Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). - Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. - -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. - Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. - -8. Miscellaneous - - Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. - If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. - No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. - This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. - The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/vendor/jms/serializer/doc/configuration.rst b/vendor/jms/serializer/doc/configuration.rst deleted file mode 100644 index 3e1106f..0000000 --- a/vendor/jms/serializer/doc/configuration.rst +++ /dev/null @@ -1,100 +0,0 @@ -Configuration -============= - -.. note :: - - If you are using Symfony2, this section is mostly irrelevant for you as the entire integration is provided by - JMSSerializerBundle; please see `its documentation `_. If you are - using another framework, there also might be a module, or other special integration. Please check packagist, or - whatever registry usually holds such information for your framework. - -Constructing a Serializer -------------------------- - -This library provides a special builder object which makes constructing serializer instances a breeze in any PHP -project. In its shortest version, it's just a single line of code:: - - $serializer = JMS\Serializer\SerializerBuilder::create()->build(); - -This serializer is fully functional, but you might want to tweak it a bit for example to configure a cache directory. - -Configuring a Cache Directory ------------------------------ -The serializer collects several metadata about your objects from various sources such as YML, XML, or annotations. In -order to make this process as efficient as possible, it is encourage to let the serializer cache that information. For -that, you can configure a cache directory:: - - $builder = new JMS\Serializer\SerializerBuilder(); - - $serializer = - JMS\Serializer\SerializerBuilder::create() - ->setCacheDir($someWritableDir) - ->setDebug($trueOrFalse) - ->build(); - -As you can see, we also added a call to the ``setDebug`` method. In debug mode, the serializer will perform a bit more -filesystem checks to see whether the data that it has cached is still valid. These checks are useful during development -so that you do not need to manually clear cache folders, however in production they are just unnecessary overhead. The -debug setting allows you to make the behavior environment specific. - -Adding Custom Handlers ----------------------- -If you have created custom handlers, you can add them to the serializer easily:: - - $serializer = - JMS\Serializer\SerializerBuilder::create() - ->addDefaultHandlers() - ->configureHandlers(function(JMS\Serializer\Handler\HandlerRegistry $registry) { - $registry->registerHandler('serialization', 'MyObject', 'json', - function($visitor, MyObject $obj, array $type) { - return $obj->getName(); - } - ); - }) - ->build(); - -For more complex handlers, it is advisable to extract them to dedicated classes, -see :doc:`handlers documentation `. - -Configuring Metadata Locations ------------------------------- -This library supports several metadata sources. By default, it uses Doctrine annotations, but you may also store -metadata in XML, or YML files. For the latter, it is necessary to configure a metadata directory where those files -are located:: - - $serializer = - JMS\Serializer\SerializerBuilder::create() - ->addMetadataDir($someDir) - ->build(); - -The serializer would expect the metadata files to be named like the fully qualified class names where all ``\`` are -replaced with ``.``. So, if you class would be named ``Vendor\Package\Foo``, the metadata file would need to be located -at ``$someDir/Vendor.Package.Foo.(xml|yml)``. For more information, see the :doc:`reference `. - -Setting a default SerializationContext factory --------------------------------------------- -To avoid to pass an instance of SerializationContext -every time you call method ``serialize()`` (or ``toArray()``), -you can set a ``SerializationContextFactory`` to the Serializer. - -Example using the SerializerBuilder:: - - use JMS\Serializer\SerializationContext; - - $serializer = JMS\Serializer\SerializerBuilder::create() - ->setSerializationContextFactory(function () { - return SerializationContext::create() - ->setSerializeNull(true) - ; - }) - ->build() - ; - -Then, calling ``$serializer->serialize($data, 'json');`` will generate -a serialization context from your callable and use it. - -.. note :: - - You can also set a default DeserializationContextFactory with - ``->setDeserializationContextFactory(function () { /* ... */ })`` - to be used with methods ``deserialize()`` and ``fromArray()``. diff --git a/vendor/jms/serializer/doc/cookbook.rst b/vendor/jms/serializer/doc/cookbook.rst deleted file mode 100644 index 985edd2..0000000 --- a/vendor/jms/serializer/doc/cookbook.rst +++ /dev/null @@ -1,7 +0,0 @@ -Cookbook -======== - -.. toctree :: - :glob: - - cookbook/* \ No newline at end of file diff --git a/vendor/jms/serializer/doc/cookbook/arrays.rst b/vendor/jms/serializer/doc/cookbook/arrays.rst deleted file mode 100644 index 7cb2704..0000000 --- a/vendor/jms/serializer/doc/cookbook/arrays.rst +++ /dev/null @@ -1,47 +0,0 @@ -Serailizing arrays and hashes -============================= - -Introduction ------------- -Serializing arrays and hashes (a concept that in PHP has not explicit boundaries) -can be challenging. The serializer offers via ``@Type`` annotation different options -to configure its behavior, but if we try to serialize directly an array -(not as a property of an object), we need to use context information to determine the -array "type" - -Examples --------- - -In case of a JSON serialization: - -.. code-block :: php - - serialize([1, 2]); // [1, 2] - $serializer->serialize(['a', 'b']); // ['a', 'b'] - $serializer->serialize(['c' => 'd']); // {"c" => "d"} - - // same as default (let the PHP's json_encode function decide) - $serializer->serialize([1, 2], SerializationContext::create()->setInitialType('array')); // [1, 2] - $serializer->serialize([1 => 2], SerializationContext::create()->setInitialType('array')); // {"1": 2} - $serializer->serialize(['a', 'b'], SerializationContext::create()->setInitialType('array')); // ['a', 'b'] - $serializer->serialize(['c' => 'd'], SerializationContext::create()->setInitialType('array')); // {"c" => "d"} - - // typehint as strict array, keys will be always discarded - $serializer->serialize([], SerializationContext::create()->setInitialType('array')); // [] - $serializer->serialize([1, 2], SerializationContext::create()->setInitialType('array')); // [1, 2] - $serializer->serialize(['a', 'b'], SerializationContext::create()->setInitialType('array')); // ['a', 'b'] - $serializer->serialize(['c' => 'd'], SerializationContext::create()->setInitialType('array')); // ["d"] - - // typehint as hash, keys will be always considered - $serializer->serialize([], SerializationContext::create()->setInitialType('array')); // {} - $serializer->serialize([1, 2], SerializationContext::create()->setInitialType('array')); // {"0" : 1, "1" : 2} - $serializer->serialize(['a', 'b'], SerializationContext::create()->setInitialType('array')); // {"0" : "a", "1" : "b"} - $serializer->serialize(['c' => 'd'], SerializationContext::create()->setInitialType('array')); // {"d" : "d"} - - -.. note :: - - This applies only for the JSON and YAML serialization. diff --git a/vendor/jms/serializer/doc/cookbook/exclusion_strategies.rst b/vendor/jms/serializer/doc/cookbook/exclusion_strategies.rst deleted file mode 100644 index 9f56a0b..0000000 --- a/vendor/jms/serializer/doc/cookbook/exclusion_strategies.rst +++ /dev/null @@ -1,330 +0,0 @@ -Exclusion Strategies -==================== - -Introduction ------------- -The serializer supports different exclusion strategies. Each strategy allows -you to define which properties of your objects should be serialized. - -General Exclusion Strategies ----------------------------- -If you would like to always expose, or exclude certain properties. Then, you can -do this with the annotations ``@ExclusionPolicy``, ``@Exclude``, and ``@Expose``. - -The default exclusion policy is to exclude nothing. That is, all properties of the -object will be serialized. If you only want to expose a few of the properties, -then it is easier to change the exclusion policy, and only mark these few properties: - -.. code-block :: php - - serialize(new VersionObject(), 'json', SerializationContext::create()->setVersion(1)); - - -Creating Different Views of Your Objects ----------------------------------------- -Another default exclusion strategy is to create different views of your objects. -Let's say you would like to serialize your object in a different view depending -whether it is displayed in a list view or in a details view. - -You can achieve that by using the ``@Groups`` annotation on your properties. Any -property without an explicit ``@Groups`` annotation will be included in a -``Default`` group, which can be used when specifying groups in the serialization -context. - -.. code-block :: php - - use JMS\Serializer\Annotation\Groups; - - class BlogPost - { - /** @Groups({"list", "details"}) */ - private $id; - - /** @Groups({"list", "details"}) */ - private $title; - - /** @Groups({"list"}) */ - private $nbComments; - - /** @Groups({"details"}) */ - private $comments; - - private $createdAt; - } - -You can then tell the serializer which groups to serialize in your controller:: - - use JMS\Serializer\SerializationContext; - - $serializer->serialize(new BlogPost(), 'json', SerializationContext::create()->setGroups(array('list'))); - - //will output $id, $title and $nbComments. - - $serializer->serialize(new BlogPost(), 'json', SerializationContext::create()->setGroups(array('Default', 'list'))); - - //will output $id, $title, $nbComments and $createdAt. - -Overriding Groups of Deeper Branches of the Graph -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -In some cases you want to control more precisely what is serialized because you may have the same class at different -depths of the object graph. - -For example if you have a User that has a manager and friends:: - - use JMS\Serializer\Annotation\Groups; - - class User - { - private $name; - - /** @Groups({"manager_group"}) */ - private $manager; - - /** @Groups({"friends_group"}) */ - private $friends; - - public function __construct($name, User $manager = null, array $friends = null) - { - $this->name = $name; - $this->manager = $manager; - $this->friends = $friends; - } - } - -And the following object graph:: - - $john = new User( - 'John', - new User( - 'John Manager', - new User('The boss'), - array( - new User('John Manager friend 1'), - ) - ), - array( - new User( - 'John friend 1', - new User('John friend 1 manager') - ), - new User( - 'John friend 2', - new User('John friend 2 manager') - ), - ) - ); - -You can override groups on specific paths:: - - use JMS\Serializer\SerializationContext; - - $context = SerializationContext::create()->setGroups(array( - 'Default', // Serialize John's name - 'manager_group', // Serialize John's manager - 'friends_group', // Serialize John's friends - - 'manager' => array( // Override the groups for the manager of John - 'Default', // Serialize John manager's name - 'friends_group', // Serialize John manager's friends. If you do not override the groups for the friends, it will default to Default. - ), - - 'friends' => array( // Override the groups for the friends of John - 'manager_group' // Serialize John friends' managers. - - 'manager' => array( // Override the groups for the John friends' manager - 'Default', // This would be the default if you did not override the groups of the manager property. - ), - ), - )); - $serializer->serialize($john, 'json', $context); - -This would result in the following json:: - - { - "name": "John", - "manager": { - "name": "John Manager", - "friends": [ - { - "name": "John Manager friend 1" - } - ] - }, - "friends": [ - { - "manager": { - "name": "John friend 1 manager" - }, - }, - { - "manager": { - "name": "John friend 2 manager" - }, - }, - ] - } - -Limiting serialization depth of some properties ------------------------------------------------ -You can limit the depth of what will be serialized in a property with the -``@MaxDepth`` annotation. -This exclusion strategy is a bit different from the others, because it will -affect the serialized content of others classes than the one you apply the -annotation to. - -.. code-block :: php - - use JMS\Serializer\Annotation\MaxDepth; - - class User - { - private $username; - - /** @MaxDepth(1) */ - private $friends; - - /** @MaxDepth(2) */ - private $posts; - } - - class Post - { - private $title; - - private $author; - } - -In this example, serializing a user, because the max depth of the ``$friends`` -property is 1, the user friends would be serialized, but not their friends; -and because the the max depth of the ``$posts`` property is 2, the posts would -be serialized, and their author would also be serialized. - -You need to tell the serializer to take into account MaxDepth checks:: - - use JMS\Serializer\SerializationContext; - - $serializer->serialize($data, 'json', SerializationContext::create()->enableMaxDepthChecks()); - - -Dynamic exclusion strategy --------------------------- - -If the previous exclusion strategies are not enough, is possible to use the ``ExpressionLanguageExclusionStrategy`` -that uses the `symfony expression language`_ to -allow a more sophisticated exclusion strategies using ``@Exclude(if="expression")`` and ``@Expose(if="expression")`` methods. - - -.. code-block :: php - - setExpressionEvaluator(new ExpressionEvaluator(new ExpressionLanguage())) - ->build(); - -.. _symfony expression language: https://github.com/symfony/expression-language - -By default the serializer exposes three variables (`object`, `context` and `property_metadata` for use in an expression. This enables you to create custom exclusion strategies similar to i.e. the [GroupExclusionStrategy](https://github.com/schmittjoh/serializer/blob/master/src/Exclusion/GroupsExclusionStrategy.php). In the below example, `someMethod` would receive all three variables. - -.. code-block :: php - - 'serializer.pre_serialize', - 'method' => 'onPreSerialize', - 'class' => 'AppBundle\\Entity\\SpecificClass', // if no class, subscribe to every serialization - 'format' => 'json', // optional format - 'priority' => 0, // optional priority - ), - ); - } - - public function onPreSerialize(JMS\Serializer\EventDispatcher\PreSerializeEvent $event) - { - // do something - } - } - - $builder - ->configureListeners(function(JMS\Serializer\EventDispatcher\EventDispatcher $dispatcher) { - $dispatcher->addListener('serializer.pre_serialize', - function(JMS\Serializer\EventDispatcher\PreSerializeEvent $event) { - // do something - } - ); - - $dispatcher->addSubscriber(new MyEventSubscriber()); - }) - ; - -Events ------- - -serializer.pre_serialize -~~~~~~~~~~~~~~~~~~~~~~~~ -This is dispatched before a type is visited. You have access to the visitor, -data, and type. Listeners may modify the type that is being used for -serialization. - -**Event Object**: ``JMS\Serializer\EventDispatcher\PreSerializeEvent`` - -serializer.post_serialize -~~~~~~~~~~~~~~~~~~~~~~~~~ -This is dispatched right before a type is left. You can for example use this -to add additional data for an object that you normally do not save inside -objects such as links. - -**Event Object**: ``JMS\Serializer\EventDispatcher\ObjectEvent`` - -serializer.pre_deserialize -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. versionadded : 0.12 - Event was added - -This is dispatched before an object is deserialized. You can use this to -modify submitted data, or modify the type that is being used for deserialization. - -**Event Object**: ``JMS\Serializer\EventDispatcher\PreDeserializeEvent`` - -serializer.post_deserialize -~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This is dispatched after a type is processed. You can use it to normalize -submitted data if you require external services for example, or also to -perform validation of the submitted data. - -**Event Object**: ``JMS\Serializer\EventDispatcher\ObjectEvent`` diff --git a/vendor/jms/serializer/doc/handlers.rst b/vendor/jms/serializer/doc/handlers.rst deleted file mode 100644 index e0e9cdf..0000000 --- a/vendor/jms/serializer/doc/handlers.rst +++ /dev/null @@ -1,63 +0,0 @@ -Handlers -======== - -Introduction ------------- -Handlers allow you to change the serialization, or deserialization process -for a single type/format combination. - -Handlers are simple callback which receive three arguments: the visitor, -the data, and the type. - -Simple Callables ----------------- -You can register simple callables on the builder object:: - - $builder - ->configureHandlers(function(JMS\Serializer\Handler\HandlerRegistry $registry) { - $registry->registerHandler('serialization', 'MyObject', 'json', - function($visitor, MyObject $obj, array $type) { - return $obj->getName(); - } - ); - }) - ; - -Subscribing Handlers --------------------- -Subscribing handlers contain the configuration themselves which makes them easier to share with other users, -and easier to set-up in general:: - - use JMS\Serializer\Handler\SubscribingHandlerInterface; - use JMS\Serializer\GraphNavigator; - use JMS\Serializer\JsonSerializationVisitor; - use JMS\Serializer\Context; - - class MyHandler implements SubscribingHandlerInterface - { - public static function getSubscribingMethods() - { - return array( - array( - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'format' => 'json', - 'type' => 'DateTime', - 'method' => 'serializeDateTimeToJson', - ), - ); - } - - public function serializeDateTimeToJson(JsonSerializationVisitor $visitor, \DateTime $date, array $type, Context $context) - { - return $date->format($type['params'][0]); - } - } - -Also, this type of handler is registered via the builder object:: - - $builder - ->configureHandlers(function(JMS\Serializer\Handler\HandlerRegistry $registry) { - $registry->registerSubscribingHandler(new MyHandler()); - }) - ; - diff --git a/vendor/jms/serializer/doc/index.rst b/vendor/jms/serializer/doc/index.rst deleted file mode 100644 index cd7b096..0000000 --- a/vendor/jms/serializer/doc/index.rst +++ /dev/null @@ -1,72 +0,0 @@ -Serializer -========== - -Introduction ------------- -This library allows you to (de-)serialize data of any complexity. Currently, it supports XML, JSON, and YAML. - -It also provides you with a rich tool-set to adapt the output to your specific needs. - -Built-in features include: - -- (De-)serialize data of any complexity; circular references are handled gracefully. -- Supports many built-in PHP types (such as dates) -- Integrates with Doctrine ORM, et. al. -- Supports versioning, e.g. for APIs -- Configurable via PHP, XML, YAML, or Doctrine Annotations - -Installation ------------- -This library can be easily installed via composer - -.. code-block :: bash - - composer require jms/serializer - -or just add it to your ``composer.json`` file directly. - -Usage ------ -For standalone projects usage of the provided builder is encouraged:: - - $serializer = JMS\Serializer\SerializerBuilder::create()->build(); - $jsonContent = $serializer->serialize($data, 'json'); - echo $jsonContent; // or return it in a Response - -Documentation -------------- - -.. toctree :: - :hidden: - - configuration - usage - event_system - handlers - reference - cookbook - -- :doc:`Configuration ` -- :doc:`Usage ` -- :doc:`Events ` -- :doc:`Handlers ` - -- Recipes - * :doc:`/cookbook/exclusion_strategies` - -- Reference - * :doc:`Annotations ` - * :doc:`XML Reference ` - * :doc:`YML Reference ` - -License -------- - -The code is released under the business-friendly `Apache2 license`_. - -Documentation is subject to the `Attribution-NonCommercial-NoDerivs 3.0 Unported -license`_. - -.. _Apache2 license: http://www.apache.org/licenses/LICENSE-2.0.html -.. _Attribution-NonCommercial-NoDerivs 3.0 Unported license: http://creativecommons.org/licenses/by-nc-nd/3.0/ - diff --git a/vendor/jms/serializer/doc/reference.rst b/vendor/jms/serializer/doc/reference.rst deleted file mode 100644 index 123d6f6..0000000 --- a/vendor/jms/serializer/doc/reference.rst +++ /dev/null @@ -1,8 +0,0 @@ -Reference -========= - -.. toctree :: - :glob: - :maxdepth: 1 - - reference/* \ No newline at end of file diff --git a/vendor/jms/serializer/doc/reference/annotations.rst b/vendor/jms/serializer/doc/reference/annotations.rst deleted file mode 100644 index c606a2f..0000000 --- a/vendor/jms/serializer/doc/reference/annotations.rst +++ /dev/null @@ -1,760 +0,0 @@ -Annotations ------------ - -@ExclusionPolicy -~~~~~~~~~~~~~~~~ -This annotation can be defined on a class to indicate the exclusion strategy -that should be used for the class. - -+----------+----------------------------------------------------------------+ -| Policy | Description | -+==========+================================================================+ -| all | all properties are excluded by default; only properties marked | -| | with @Expose will be serialized/unserialized | -+----------+----------------------------------------------------------------+ -| none | no properties are excluded by default; all properties except | -| | those marked with @Exclude will be serialized/unserialized | -+----------+----------------------------------------------------------------+ - -@Exclude -~~~~~~~~ -This annotation can be defined on a property to indicate that the property should -not be serialized/unserialized. Works only in combination with NoneExclusionPolicy. - -If the ``ExpressionLanguageExclusionStrategy`` exclusion strategy is enabled, will -be possible to use ``@Exclude(if="expression")`` to exclude dynamically a property. - -@Expose -~~~~~~~ -This annotation can be defined on a property to indicate that the property should -be serialized/unserialized. Works only in combination with AllExclusionPolicy. - -If the ``ExpressionLanguageExclusionStrategy`` exclusion strategy is enabled, will -be possible to use ``@Expose(if="expression")`` to expose dynamically a property. - -@SkipWhenEmpty -~~~~~~~~~~~~~~ -This annotation can be defined on a property to indicate that the property should -not be serialized if the result will be "empty". - -Works option works only when serializing. - -@SerializedName -~~~~~~~~~~~~~~~ -This annotation can be defined on a property to define the serialized name for a -property. If this is not defined, the property will be translated from camel-case -to a lower-cased underscored name, e.g. camelCase -> camel_case. - -@Since -~~~~~~ -This annotation can be defined on a property to specify starting from which -version this property is available. If an earlier version is serialized, then -this property is excluded automatically. The version must be in a format that is -understood by PHP's ``version_compare`` function. - -@Until -~~~~~~ -This annotation can be defined on a property to specify until which version this -property was available. If a later version is serialized, then this property is -excluded automatically. The version must be in a format that is understood by -PHP's ``version_compare`` function. - -@Groups -~~~~~~~ -This annotation can be defined on a property to specify if the property -should be serialized when only serializing specific groups (see -:doc:`../cookbook/exclusion_strategies`). - -@MaxDepth -~~~~~~~~~ -This annotation can be defined on a property to limit the depth to which the -content will be serialized. It is very useful when a property will contain a -large object graph. - -@AccessType -~~~~~~~~~~~ -This annotation can be defined on a property, or a class to specify in which way -the properties should be accessed. By default, the serializer will retrieve, or -set the value via reflection, but you may change this to use a public method instead: - -.. code-block :: php - - name; - } - - public function setName($name) - { - $this->name = trim($name); - } - } - -@Accessor -~~~~~~~~~ -This annotation can be defined on a property to specify which public method should -be called to retrieve, or set the value of the given property: - -.. code-block :: php - - name); - } - - public function setName($name) - { - $this->name = $name; - } - } - -.. note :: - - If you need only to serialize your data, you can avoid providing a setter by - setting the property as read-only using the ``@ReadOnly`` annotation. - -@AccessorOrder -~~~~~~~~~~~~~~ -This annotation can be defined on a class to control the order of properties. By -default the order is undefined, but you may change it to either "alphabetical", or -"custom". - -.. code-block :: php - - lastName; - } - - public function getFirstName() - { - return $this->firstName; - } - } - -In this example: - -- ``id`` is exposed using the object reflection. -- ``lastName`` is exposed using the ``getLastName`` getter method. -- ``firstName`` is exposed using the ``object.getFirstName()`` expression (``exp`` can contain any valid symfony expression). - - -.. note :: - - This only works for serialization and is completely ignored during deserialization. - -@Inline -~~~~~~~ -This annotation can be defined on a property to indicate that the data of the property -should be inlined. - -**Note**: This only works for serialization, the serializer will not be able to deserialize -objects with this annotation. Also, AccessorOrder will be using the name of the property -to determine the order. - -@ReadOnly -~~~~~~~~~ -This annotation can be defined on a property to indicate that the data of the property -is read only and cannot be set during deserialization. - -A property can be marked as non read only with ``@ReadOnly(false)`` annotation (useful when a class is marked as read only). - -@PreSerialize -~~~~~~~~~~~~~ -This annotation can be defined on a method which is supposed to be called before -the serialization of the object starts. - -@PostSerialize -~~~~~~~~~~~~~~ -This annotation can be defined on a method which is then called directly after the -object has been serialized. - -@PostDeserialize -~~~~~~~~~~~~~~~~ -This annotation can be defined on a method which is supposed to be called after -the object has been deserialized. - -@HandlerCallback -~~~~~~~~~~~~~~~~ -This annotation can be defined on a method if serialization/deserialization is handled -by the object itself. - -.. code-block :: php - - | A list of type T (T can be any available type). | -| | Examples: | -| | array, array, etc. | -+----------------------------------------------------------+--------------------------------------------------+ -| array | A map of keys of type K to values of type V. | -| | Examples: array, | -| | array, etc. | -+----------------------------------------------------------+--------------------------------------------------+ -| DateTime | PHP's DateTime object (default format*/timezone) | -+----------------------------------------------------------+--------------------------------------------------+ -| DateTime<'format'> | PHP's DateTime object (custom format/default | -| | timezone) | -+----------------------------------------------------------+--------------------------------------------------+ -| DateTime<'format', 'zone'> | PHP's DateTime object (custom format/timezone) | -+----------------------------------------------------------+--------------------------------------------------+ -| DateTime<'format', 'zone', 'deserializeFormat'> | PHP's DateTime object (custom format/timezone, | -| | deserialize format). If you do not want to | -| | specify a specific timezone, use an empty | -| | string (''). | -+----------------------------------------------------------+--------------------------------------------------+ -| DateTimeImmutable | PHP's DateTimeImmutable object (default format*/ | -| | timezone) | -+----------------------------------------------------------+--------------------------------------------------+ -| DateTimeImmutable<'format'> | PHP's DateTimeImmutable object (custom format/ | -| | default timezone) | -+----------------------------------------------------------+--------------------------------------------------+ -| DateTimeImmutable<'format', 'zone'> | PHP's DateTimeImmutable object (custom format/ | -| | timezone) | -+----------------------------------------------------------+--------------------------------------------------+ -| DateTimeImmutable<'format', 'zone', 'deserializeFormat'> | PHP's DateTimeImmutable object (custom format/ | -| | timezone/deserialize format). If you do not want | -| | to specify a specific timezone, use an empty | -| | string (''). | -+----------------------------------------------------------+--------------------------------------------------+ -| DateInterval | PHP's DateInterval object using ISO 8601 format | -+----------------------------------------------------------+--------------------------------------------------+ -| T | Where T is a fully qualified class name. | -+----------------------------------------------------------+--------------------------------------------------+ -| ArrayCollection | Similar to array, but will be deserialized | -| | into Doctrine's ArrayCollection class. | -+----------------------------------------------------------+--------------------------------------------------+ -| ArrayCollection | Similar to array, but will be deserialized | -| | into Doctrine's ArrayCollection class. | -+----------------------------------------------------------+--------------------------------------------------+ - -(*) If the standalone jms/serializer is used then default format is `\DateTime::ISO8601` (which is not compatible with ISO-8601 despite the name). For jms/serializer-bundle the default format is `\DateTime::ATOM` (the real ISO-8601 format) but it can be changed in [configuration](https://jmsyst.com/bundles/JMSSerializerBundle/master/configuration#configuration-block-2-0). - -Examples: - -.. code-block :: php - - ") - */ - private $comments; - - /** - * @Type("string") - */ - private $title; - - /** - * @Type("MyNamespace\Author") - */ - private $author; - - /** - * @Type("DateTime") - */ - private $startAt; - - /** - * @Type("DateTime<'Y-m-d'>") - */ - private $endAt; - - /** - * @Type("DateTimeImmutable") - */ - private $createdAt; - - /** - * @Type("DateTimeImmutable<'Y-m-d'>") - */ - private $updatedAt; - - /** - * @Type("boolean") - */ - private $published; - - /** - * @Type("array") - */ - private $keyValueStore; - } - -@XmlRoot -~~~~~~~~ -This allows you to specify the name of the top-level element. - -.. code-block :: php - - - - - -.. note :: - - @XmlRoot only applies to the root element, but is for example not taken into - account for collections. You can define the entry name for collections using - @XmlList, or @XmlMap. - -@XmlAttribute -~~~~~~~~~~~~~ -This allows you to mark properties which should be set as attributes, -and not as child elements. - -.. code-block :: php - - - - - - -@XmlDiscriminator -~~~~~~~~~~~~~~~~~ -This annotation allows to modify the behaviour of @Discriminator regarding handling of XML. - - -Available Options: - -+-------------------------------------+--------------------------------------------------+ -| Type | Description | -+=====================================+==================================================+ -| attribute | use an attribute instead of a child node | -+-------------------------------------+--------------------------------------------------+ -| cdata | render child node content with or without cdata | -+-------------------------------------+--------------------------------------------------+ -| namespace | render child node using the specified namespace | -+-------------------------------------+--------------------------------------------------+ - -Example for "attribute": -.. code-block :: php - - - - -Example for "cdata": - -.. code-block :: php - car - - -@XmlValue -~~~~~~~~~ -This allows you to mark properties which should be set as the value of the -current element. Note that this has the limitation that any additional -properties of that object must have the @XmlAttribute annotation. -XMlValue also has property cdata. Which has the same meaning as the one in -XMLElement. - -.. code-block :: php - - 1.23 - -@XmlList -~~~~~~~~ -This allows you to define several properties of how arrays should be -serialized. This is very similar to @XmlMap, and should be used if the -keys of the array are not important. - -.. code-block :: php - - text = $text; - } - } - -Resulting XML: - -.. code-block :: xml - - - - - - - - - - -You can also specify the entry tag namespace using the ``namespace`` attribute (``@XmlList(inline = true, entry = "comment", namespace="http://www.example.com/ns")``). - -@XmlMap -~~~~~~~ -Similar to @XmlList, but the keys of the array are meaningful. - -@XmlKeyValuePairs -~~~~~~~~~~~~~~~~~ -This allows you to use the keys of an array as xml tags. - -.. note :: - - When a key is an invalid xml tag name (e.g. 1_foo) the tag name *entry* will be used instead of the key. - -@XmlAttributeMap -~~~~~~~~~~~~~~~~ - -This is similar to the @XmlKeyValuePairs, but instead of creating child elements, it creates attributes. - -.. code-block :: php - - 'firstname', - 'value' => 'Adrien', - ); - } - -Resulting XML: - -.. code-block :: xml - - - -@XmlElement -~~~~~~~~~~~ -This annotation can be defined on a property to add additional xml serialization/deserialization properties. - -.. code-block :: php - - my_id - -@XmlNamespace -~~~~~~~~~~~~~ -This annotation allows you to specify Xml namespace/s and prefix used. - -.. code-block :: php - - - - - - - diff --git a/vendor/jms/serializer/doc/reference/xml_reference.rst b/vendor/jms/serializer/doc/reference/xml_reference.rst deleted file mode 100644 index 0ede528..0000000 --- a/vendor/jms/serializer/doc/reference/xml_reference.rst +++ /dev/null @@ -1,107 +0,0 @@ -XML Reference -------------- -:: - - - - - - - - ClassName - - foo - - - - - - - - - foo - bar - - - - - - - - - - - - - - foo - bar - - - - - - - diff --git a/vendor/jms/serializer/doc/reference/yml_reference.rst b/vendor/jms/serializer/doc/reference/yml_reference.rst deleted file mode 100644 index 0128ad1..0000000 --- a/vendor/jms/serializer/doc/reference/yml_reference.rst +++ /dev/null @@ -1,82 +0,0 @@ -YAML Reference --------------- -:: - - # Vendor\MyBundle\Resources\config\serializer\Model.ClassName.yml - Vendor\MyBundle\Model\ClassName: - exclusion_policy: ALL - xml_root_name: foobar - xml_root_namespace: http://your.default.namespace - exclude: true - read_only: false - access_type: public_method # defaults to property - accessor_order: custom - custom_accessor_order: [propertyName1, propertyName2, ..., propertyNameN] - discriminator: - field_name: type - disabled: false - map: - some-value: ClassName - groups: [foo, bar] - xml_attribute: true - xml_element: - cdata: false - namespace: http://www.w3.org/2005/Atom - virtual_properties: - getSomeProperty: - serialized_name: foo - type: integer - expression_prop: - exp: object.getName() - serialized_name: foo - type: integer - xml_namespaces: - "": http://your.default.namespace - atom: http://www.w3.org/2005/Atom - properties: - some-property: - exclude: true - expose: true - exclude_if: expr - expose_if: expr - skip_when_empty: false - access_type: public_method # defaults to property - accessor: # access_type must be set to public_method - getter: getSomeOtherProperty - setter: setSomeOtherProperty - type: string - serialized_name: foo - since_version: 1.0 - until_version: 1.1 - groups: [foo, bar] - xml_attribute: true - xml_value: true - inline: true - read_only: true - xml_key_value_pairs: true - xml_list: - inline: true - entry_name: foo - namespace: http://www.w3.org/2005/Atom - xml_map: - inline: true - key_attribute_name: foo - entry_name: bar - namespace: http://www.w3.org/2005/Atom - xml_attribute_map: true - xml_element: - cdata: false - namespace: http://www.w3.org/2005/Atom - max_depth: 2 - - handler_callbacks: - serialization: - xml: serializeToXml - json: serializeToJson - deserialization: - xml: deserializeFromXml - - callback_methods: - pre_serialize: [foo, bar] - post_serialize: [foo, bar] - post_deserialize: [foo, bar] diff --git a/vendor/jms/serializer/doc/usage.rst b/vendor/jms/serializer/doc/usage.rst deleted file mode 100644 index cd78c20..0000000 --- a/vendor/jms/serializer/doc/usage.rst +++ /dev/null @@ -1,38 +0,0 @@ -Usage -===== - -Serializing Objects -------------------- -Most common usage is probably to serialize objects. This can be achieved -very easily: - -.. configuration-block :: - - .. code-block :: php - - build(); - $serializer->serialize($object, 'json'); - $serializer->serialize($object, 'xml'); - $serializer->serialize($object, 'yml'); - - .. code-block :: jinja - - {{ object | serialize }} {# uses JSON #} - {{ object | serialize('json') }} - {{ object | serialize('xml') }} - {{ object | serialize('yml') }} - -Deserializing Objects ---------------------- -You can also deserialize objects from their XML, or JSON representation. For -example, when accepting data via an API. - -.. code-block :: php - - build(); - $object = $serializer->deserialize($jsonData, 'MyNamespace\MyObject', 'json'); - diff --git a/vendor/jms/serializer/phpunit.xml.dist b/vendor/jms/serializer/phpunit.xml.dist deleted file mode 100644 index cd62f11..0000000 --- a/vendor/jms/serializer/phpunit.xml.dist +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - ./tests - - - - - - performance - - - - - src - - - diff --git a/vendor/jms/serializer/src/JMS/Serializer/AbstractVisitor.php b/vendor/jms/serializer/src/JMS/Serializer/AbstractVisitor.php deleted file mode 100644 index f2b305c..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/AbstractVisitor.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Accessor\AccessorStrategyInterface; -use JMS\Serializer\Accessor\DefaultAccessorStrategy; - -abstract class AbstractVisitor implements VisitorInterface -{ - protected $namingStrategy; - - /** - * @var AccessorStrategyInterface - */ - protected $accessor; - - public function __construct($namingStrategy, AccessorStrategyInterface $accessorStrategy = null) - { - $this->namingStrategy = $namingStrategy; - $this->accessor = $accessorStrategy ?: new DefaultAccessorStrategy(); - } - - public function getNamingStrategy() - { - return $this->namingStrategy; - } - - public function prepare($data) - { - return $data; - } - - /** - * @param array $typeArray - */ - protected function getElementType($typeArray) - { - if (false === isset($typeArray['params'][0])) { - return null; - } - - if (isset($typeArray['params'][1]) && is_array($typeArray['params'][1])) { - return $typeArray['params'][1]; - } else { - return $typeArray['params'][0]; - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Accessor/AccessorStrategyInterface.php b/vendor/jms/serializer/src/JMS/Serializer/Accessor/AccessorStrategyInterface.php deleted file mode 100644 index 6abcf8a..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Accessor/AccessorStrategyInterface.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Accessor; - -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * @author Asmir Mustafic - */ -interface AccessorStrategyInterface -{ - /** - * @param object $object - * @param PropertyMetadata $metadata - * @return mixed - */ - public function getValue($object, PropertyMetadata $metadata); - - /** - * @param object $object - * @param mixed $value - * @param PropertyMetadata $metadata - * @return void - */ - public function setValue($object, $value, PropertyMetadata $metadata); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Accessor/DefaultAccessorStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Accessor/DefaultAccessorStrategy.php deleted file mode 100644 index 57a4435..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Accessor/DefaultAccessorStrategy.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Accessor; - -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * @author Asmir Mustafic - */ -class DefaultAccessorStrategy implements AccessorStrategyInterface -{ - - public function getValue($object, PropertyMetadata $metadata) - { - return $metadata->getValue($object); - } - - public function setValue($object, $value, PropertyMetadata $metadata) - { - $metadata->setValue($object, $value); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Accessor/ExpressionAccessorStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Accessor/ExpressionAccessorStrategy.php deleted file mode 100644 index 4dc6054..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Accessor/ExpressionAccessorStrategy.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Accessor; - -use JMS\Serializer\Expression\ExpressionEvaluatorInterface; -use JMS\Serializer\Metadata\ExpressionPropertyMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * @author Asmir Mustafic - */ -class ExpressionAccessorStrategy implements AccessorStrategyInterface -{ - /** - * @var AccessorStrategyInterface - */ - private $fallback; - /** - * @var ExpressionEvaluatorInterface - */ - private $evaluator; - - public function __construct(ExpressionEvaluatorInterface $evaluator, AccessorStrategyInterface $fallback) - { - $this->fallback = $fallback; - $this->evaluator = $evaluator; - } - - public function getValue($object, PropertyMetadata $metadata) - { - if ($metadata instanceof ExpressionPropertyMetadata) { - return $this->evaluator->evaluate($metadata->expression, array('object' => $object)); - } - return $this->fallback->getValue($object, $metadata); - } - - public function setValue($object, $value, PropertyMetadata $metadata) - { - $this->fallback->setValue($object, $value, $metadata); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/AccessType.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/AccessType.php deleted file mode 100644 index e4125e4..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/AccessType.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"CLASS", "PROPERTY"}) - * - * @author Johannes M. Schmitt - */ -final class AccessType -{ - /** - * @Required - * @var string - */ - public $type; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Accessor.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Accessor.php deleted file mode 100644 index 910fe7f..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Accessor.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target("PROPERTY") - * - * @author Johannes M. Schmitt - */ -final class Accessor -{ - /** - * @var string - */ - public $getter; - - /** - * @var string - */ - public $setter; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/AccessorOrder.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/AccessorOrder.php deleted file mode 100644 index 15510da..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/AccessorOrder.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * Controls the order of properties in a class. - * - * @Annotation - * @Target("CLASS") - * @author Johannes M. Schmitt - */ -final class AccessorOrder -{ - /** - * @Required - * @var string - */ - public $order; - - /** - * @var array - */ - public $custom = array(); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Discriminator.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Discriminator.php deleted file mode 100644 index 750e7eb..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Discriminator.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target("CLASS") - */ -class Discriminator -{ - /** @var array */ - public $map; - - /** @var string */ - public $field = 'type'; - - /** @var boolean */ - public $disabled = false; - - /** @var string[] */ - public $groups = array(); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Exclude.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Exclude.php deleted file mode 100644 index 27f3ec2..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Exclude.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY", "CLASS", "METHOD", "ANNOTATION"}) - */ -final class Exclude -{ - public $if; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/ExclusionPolicy.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/ExclusionPolicy.php deleted file mode 100644 index 2baad90..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/ExclusionPolicy.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -use JMS\Serializer\Exception\RuntimeException; - -/** - * @Annotation - * @Target("CLASS") - */ -final class ExclusionPolicy -{ - const NONE = 'NONE'; - const ALL = 'ALL'; - - public $policy; - - public function __construct(array $values) - { - if (!is_string($values['value'])) { - throw new RuntimeException('"value" must be a string.'); - } - - $this->policy = strtoupper($values['value']); - - if (self::NONE !== $this->policy && self::ALL !== $this->policy) { - throw new RuntimeException('Exclusion policy must either be "ALL", or "NONE".'); - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Expose.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Expose.php deleted file mode 100644 index 53f7cd8..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Expose.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY", "METHOD","ANNOTATION"}) - */ -final class Expose -{ - public $if; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Groups.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Groups.php deleted file mode 100644 index 70f0ad7..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Groups.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY","METHOD","ANNOTATION"}) - */ -final class Groups -{ - /** @var array @Required */ - public $groups; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/HandlerCallback.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/HandlerCallback.php deleted file mode 100644 index 588b949..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/HandlerCallback.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target("METHOD") - * - * @author Johannes M. Schmitt - */ -final class HandlerCallback -{ - /** - * @Required - * @var string - */ - public $format; - - /** - * @Required - * @var string - */ - public $direction; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Inline.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Inline.php deleted file mode 100644 index ba82d5f..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Inline.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY","METHOD","ANNOTATION"}) - */ -final class Inline -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/MaxDepth.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/MaxDepth.php deleted file mode 100644 index 7b05a3f..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/MaxDepth.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY","METHOD","ANNOTATION"}) - */ -final class MaxDepth -{ - /** - * @Required - * @var integer - */ - public $depth; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/PostDeserialize.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/PostDeserialize.php deleted file mode 100644 index b7ff4b5..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/PostDeserialize.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * This annotation can be defined on methods which are called after the - * deserialization of the object is complete. - * - * These methods do not necessarily have to be public. - * - * @Annotation - * @Target("METHOD") - * @author Johannes M. Schmitt - */ -final class PostDeserialize -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/PostSerialize.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/PostSerialize.php deleted file mode 100644 index bb9cfd3..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/PostSerialize.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target("METHOD") - */ -final class PostSerialize -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/PreSerialize.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/PreSerialize.php deleted file mode 100644 index c9ddbf1..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/PreSerialize.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * This annotation can be declared on methods which should be called - * before the Serialization process. - * - * These methods do not need to be public, and should do any clean-up, or - * preparation of the object that is necessary. - * - * @Annotation - * @Target("METHOD") - * @author Johannes M. Schmitt - */ -final class PreSerialize -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/ReadOnly.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/ReadOnly.php deleted file mode 100644 index 4712cb1..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/ReadOnly.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"CLASS","PROPERTY"}) - */ -final class ReadOnly -{ - /** - * @var boolean - */ - public $readOnly = true; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/SerializedName.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/SerializedName.php deleted file mode 100644 index 968705e..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/SerializedName.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -use JMS\Serializer\Exception\RuntimeException; - -/** - * @Annotation - * @Target({"PROPERTY","METHOD", "ANNOTATION"}) - */ -final class SerializedName -{ - public $name; - - public function __construct(array $values) - { - if (!isset($values['value']) || !is_string($values['value'])) { - throw new RuntimeException(sprintf('"value" must be a string.')); - } - - $this->name = $values['value']; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Since.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Since.php deleted file mode 100644 index 851d151..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Since.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY", "METHOD"}) - */ -final class Since extends Version -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/SkipWhenEmpty.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/SkipWhenEmpty.php deleted file mode 100644 index d2a5433..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/SkipWhenEmpty.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY","METHOD","ANNOTATION"}) - */ -final class SkipWhenEmpty -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Type.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Type.php deleted file mode 100644 index fb82886..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Type.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY", "METHOD","ANNOTATION"}) - */ -final class Type -{ - /** - * @Required - * @var string - */ - public $name; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Until.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Until.php deleted file mode 100644 index 8eef048..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Until.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY", "METHOD"}) - */ -final class Until extends Version -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Version.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/Version.php deleted file mode 100644 index 62b663c..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/Version.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -abstract class Version -{ - /** - * @Required - * @var string - */ - public $version; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/VirtualProperty.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/VirtualProperty.php deleted file mode 100644 index ee168d9..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/VirtualProperty.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"METHOD", "CLASS"}) - * - * @author Alexander Klimenkov - */ -final class VirtualProperty -{ - public $exp; - public $name; - public $options = array(); - - public function __construct(array $data) - { - if (isset($data['value'])) { - $data['name'] = $data['value']; - unset($data['value']); - } - - foreach ($data as $key => $value) { - if (!property_exists(__CLASS__, $key)) { - throw new \BadMethodCallException(sprintf('Unknown property "%s" on annotation "%s".', $key, __CLASS__)); - } - $this->{$key} = $value; - } - } -} - diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlAttribute.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlAttribute.php deleted file mode 100644 index 9f7ef31..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlAttribute.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY", "METHOD","ANNOTATION"}) - */ -final class XmlAttribute -{ - /** - * @var string - */ - public $namespace; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlAttributeMap.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlAttributeMap.php deleted file mode 100644 index 2bdef0d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlAttributeMap.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY", "METHOD"}) - */ -final class XmlAttributeMap -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlCollection.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlCollection.php deleted file mode 100644 index 699b599..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlCollection.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -abstract class XmlCollection -{ - /** - * @var string - */ - public $entry = 'entry'; - - /** - * @var boolean - */ - public $inline = false; - - /** - * @var string - */ - public $namespace; - - /** - * @var boolean - */ - public $skipWhenEmpty = true; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlDiscriminator.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlDiscriminator.php deleted file mode 100644 index caedd4c..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlDiscriminator.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - - -/** - * @Annotation - * @Target("CLASS") - */ -class XmlDiscriminator -{ - /** - * @var boolean - */ - public $attribute = false; - - /** - * @var boolean - */ - public $cdata = true; - - /** - * @var string - */ - public $namespace; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlElement.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlElement.php deleted file mode 100644 index 44800fa..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlElement.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY", "METHOD","ANNOTATION"}) - */ -final class XmlElement -{ - /** - * @var boolean - */ - public $cdata = true; - - /** - * @var string - */ - public $namespace; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlKeyValuePairs.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlKeyValuePairs.php deleted file mode 100644 index 71fecab..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlKeyValuePairs.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY","METHOD","ANNOTATION"}) - */ -final class XmlKeyValuePairs -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlList.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlList.php deleted file mode 100644 index 291daa9..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlList.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY","METHOD","ANNOTATION"}) - */ -final class XmlList extends XmlCollection -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlMap.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlMap.php deleted file mode 100644 index 813009d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlMap.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY","METHOD","ANNOTATION"}) - */ -final class XmlMap extends XmlCollection -{ - /** - * @var string - */ - public $keyAttribute = '_key'; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlNamespace.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlNamespace.php deleted file mode 100644 index 582e128..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlNamespace.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target("CLASS") - */ -final class XmlNamespace -{ - /** - * @Required - * @var string - */ - public $uri; - - /** - * @var string - */ - public $prefix = ''; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlRoot.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlRoot.php deleted file mode 100644 index 46bcf47..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlRoot.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target("CLASS") - */ -final class XmlRoot -{ - /** - * @Required - * @var string - */ - public $name; - - /** - * @var string - */ - public $namespace; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlValue.php b/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlValue.php deleted file mode 100644 index 2fbf872..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Annotation/XmlValue.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Annotation; - -/** - * @Annotation - * @Target({"PROPERTY","METHOD","ANNOTATION"}) - */ -final class XmlValue -{ - /** - * @var boolean - */ - public $cdata = true; -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/ArrayTransformerInterface.php b/vendor/jms/serializer/src/JMS/Serializer/ArrayTransformerInterface.php deleted file mode 100644 index fcd3fb1..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/ArrayTransformerInterface.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -/** - * Interface for array transformation. - * - * @author Daniel Bojdo - */ -interface ArrayTransformerInterface -{ - /** - * Converts objects to an array structure. - * - * This is useful when the data needs to be passed on to other methods which expect array data. - * - * @param mixed $data anything that converts to an array, typically an object or an array of objects - * @param SerializationContext|null $context - * - * @return array - */ - public function toArray($data, SerializationContext $context = null); - - /** - * Restores objects from an array structure. - * - * @param array $data - * @param string $type - * @param DeserializationContext|null $context - * - * @return mixed this returns whatever the passed type is, typically an object or an array of objects - */ - public function fromArray(array $data, $type, DeserializationContext $context = null); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Builder/CallbackDriverFactory.php b/vendor/jms/serializer/src/JMS/Serializer/Builder/CallbackDriverFactory.php deleted file mode 100644 index d054b4b..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Builder/CallbackDriverFactory.php +++ /dev/null @@ -1,29 +0,0 @@ -callback = $callable; - } - - public function createDriver(array $metadataDirs, Reader $reader) - { - $driver = call_user_func($this->callback, $metadataDirs, $reader); - if (!$driver instanceof DriverInterface) { - throw new \LogicException('The callback must return an instance of DriverInterface.'); - } - - return $driver; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Builder/DefaultDriverFactory.php b/vendor/jms/serializer/src/JMS/Serializer/Builder/DefaultDriverFactory.php deleted file mode 100644 index c586bc6..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Builder/DefaultDriverFactory.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Construction; - -use Doctrine\Common\Persistence\ManagerRegistry; -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\Exception\InvalidArgumentException; -use JMS\Serializer\Exception\ObjectConstructionException; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\VisitorInterface; - -/** - * Doctrine object constructor for new (or existing) objects during deserialization. - */ -class DoctrineObjectConstructor implements ObjectConstructorInterface -{ - const ON_MISSING_NULL = 'null'; - const ON_MISSING_EXCEPTION = 'exception'; - const ON_MISSING_FALLBACK = 'fallback'; - /** - * @var string - */ - private $fallbackStrategy; - - private $managerRegistry; - private $fallbackConstructor; - - /** - * Constructor. - * - * @param ManagerRegistry $managerRegistry Manager registry - * @param ObjectConstructorInterface $fallbackConstructor Fallback object constructor - * @param string $fallbackStrategy - */ - public function __construct(ManagerRegistry $managerRegistry, ObjectConstructorInterface $fallbackConstructor, $fallbackStrategy = self::ON_MISSING_NULL) - { - $this->managerRegistry = $managerRegistry; - $this->fallbackConstructor = $fallbackConstructor; - $this->fallbackStrategy = $fallbackStrategy; - } - - /** - * {@inheritdoc} - */ - public function construct(VisitorInterface $visitor, ClassMetadata $metadata, $data, array $type, DeserializationContext $context) - { - // Locate possible ObjectManager - $objectManager = $this->managerRegistry->getManagerForClass($metadata->name); - - if (!$objectManager) { - // No ObjectManager found, proceed with normal deserialization - return $this->fallbackConstructor->construct($visitor, $metadata, $data, $type, $context); - } - - // Locate possible ClassMetadata - $classMetadataFactory = $objectManager->getMetadataFactory(); - - if ($classMetadataFactory->isTransient($metadata->name)) { - // No ClassMetadata found, proceed with normal deserialization - return $this->fallbackConstructor->construct($visitor, $metadata, $data, $type, $context); - } - - // Managed entity, check for proxy load - if (!is_array($data)) { - // Single identifier, load proxy - return $objectManager->getReference($metadata->name, $data); - } - - // Fallback to default constructor if missing identifier(s) - $classMetadata = $objectManager->getClassMetadata($metadata->name); - $identifierList = array(); - - foreach ($classMetadata->getIdentifierFieldNames() as $name) { - if (!array_key_exists($name, $data)) { - return $this->fallbackConstructor->construct($visitor, $metadata, $data, $type, $context); - } - - $identifierList[$name] = $data[$name]; - } - - // Entity update, load it from database - $object = $objectManager->find($metadata->name, $identifierList); - - if (null === $object) { - switch ($this->fallbackStrategy) { - case self::ON_MISSING_NULL: - return null; - case self::ON_MISSING_EXCEPTION: - throw new ObjectConstructionException(sprintf("Entity %s can not be found", $metadata->name)); - case self::ON_MISSING_FALLBACK: - return $this->fallbackConstructor->construct($visitor, $metadata, $data, $type, $context); - default: - throw new InvalidArgumentException("The provided fallback strategy for the object constructor is not valid"); - } - } - - $objectManager->initializeObject($object); - - return $object; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Construction/ObjectConstructorInterface.php b/vendor/jms/serializer/src/JMS/Serializer/Construction/ObjectConstructorInterface.php deleted file mode 100644 index 37fc0b5..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Construction/ObjectConstructorInterface.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Construction; - -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\VisitorInterface; - -/** - * Implementations of this interface construct new objects during deserialization. - * - * @author Johannes M. Schmitt - */ -interface ObjectConstructorInterface -{ - /** - * Constructs a new object. - * - * Implementations could for example create a new object calling "new", use - * "unserialize" techniques, reflection, or other means. - * - * @param VisitorInterface $visitor - * @param ClassMetadata $metadata - * @param mixed $data - * @param array $type ["name" => string, "params" => array] - * @param DeserializationContext $context - * - * @return object - */ - public function construct(VisitorInterface $visitor, ClassMetadata $metadata, $data, array $type, DeserializationContext $context); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Construction/UnserializeObjectConstructor.php b/vendor/jms/serializer/src/JMS/Serializer/Construction/UnserializeObjectConstructor.php deleted file mode 100644 index 333b8de..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Construction/UnserializeObjectConstructor.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Construction; - -use Doctrine\Instantiator\Instantiator; -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\VisitorInterface; - -class UnserializeObjectConstructor implements ObjectConstructorInterface -{ - /** @var Instantiator */ - private $instantiator; - - public function construct(VisitorInterface $visitor, ClassMetadata $metadata, $data, array $type, DeserializationContext $context) - { - return $this->getInstantiator()->instantiate($metadata->name); - } - - /** - * @return Instantiator - */ - private function getInstantiator() - { - if (null == $this->instantiator) { - $this->instantiator = new Instantiator(); - } - - return $this->instantiator; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Context.php b/vendor/jms/serializer/src/JMS/Serializer/Context.php deleted file mode 100644 index dabf7a5..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Context.php +++ /dev/null @@ -1,280 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\Exclusion\DepthExclusionStrategy; -use JMS\Serializer\Exclusion\DisjunctExclusionStrategy; -use JMS\Serializer\Exclusion\ExclusionStrategyInterface; -use JMS\Serializer\Exclusion\GroupsExclusionStrategy; -use JMS\Serializer\Exclusion\VersionExclusionStrategy; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use Metadata\MetadataFactory; -use Metadata\MetadataFactoryInterface; -use PhpCollection\Map; - -abstract class Context -{ - /** - * @var \PhpCollection\Map - */ - public $attributes; - - private $format; - - /** @var VisitorInterface */ - private $visitor; - - /** @var GraphNavigator */ - private $navigator; - - /** @var MetadataFactory */ - private $metadataFactory; - - /** @var ExclusionStrategyInterface */ - private $exclusionStrategy; - - /** @var boolean|null */ - private $serializeNull; - - private $initialized = false; - - /** @var \SplStack */ - private $metadataStack; - - public function __construct() - { - $this->attributes = new Map(); - } - - /** - * @param string $format - */ - public function initialize($format, VisitorInterface $visitor, GraphNavigator $navigator, MetadataFactoryInterface $factory) - { - if ($this->initialized) { - throw new \LogicException('This context was already initialized, and cannot be re-used.'); - } - - $this->initialized = true; - $this->format = $format; - $this->visitor = $visitor; - $this->navigator = $navigator; - $this->metadataFactory = $factory; - $this->metadataStack = new \SplStack(); - } - - public function accept($data, array $type = null) - { - return $this->navigator->accept($data, $type, $this); - } - - public function getMetadataFactory() - { - return $this->metadataFactory; - } - - public function getVisitor() - { - return $this->visitor; - } - - public function getNavigator() - { - return $this->navigator; - } - - public function getExclusionStrategy() - { - return $this->exclusionStrategy; - } - - public function setAttribute($key, $value) - { - $this->assertMutable(); - $this->attributes->set($key, $value); - - return $this; - } - - private function assertMutable() - { - if (!$this->initialized) { - return; - } - - throw new \LogicException('This context was already initialized and is immutable; you cannot modify it anymore.'); - } - - public function addExclusionStrategy(ExclusionStrategyInterface $strategy) - { - $this->assertMutable(); - - if (null === $this->exclusionStrategy) { - $this->exclusionStrategy = $strategy; - - return $this; - } - - if ($this->exclusionStrategy instanceof DisjunctExclusionStrategy) { - $this->exclusionStrategy->addStrategy($strategy); - - return $this; - } - - $this->exclusionStrategy = new DisjunctExclusionStrategy(array( - $this->exclusionStrategy, - $strategy, - )); - - return $this; - } - - /** - * @param integer $version - */ - public function setVersion($version) - { - if (null === $version) { - throw new \LogicException('The version must not be null.'); - } - - $this->attributes->set('version', $version); - $this->addExclusionStrategy(new VersionExclusionStrategy($version)); - - return $this; - } - - /** - * @param array|string $groups - */ - public function setGroups($groups) - { - if (empty($groups)) { - throw new \LogicException('The groups must not be empty.'); - } - - $this->attributes->set('groups', (array)$groups); - $this->addExclusionStrategy(new GroupsExclusionStrategy((array)$groups)); - - return $this; - } - - public function enableMaxDepthChecks() - { - $this->addExclusionStrategy(new DepthExclusionStrategy()); - - return $this; - } - - /** - * Set if NULLs should be serialized (TRUE) ot not (FALSE) - * - * @param bool $bool - * @return $this - */ - public function setSerializeNull($bool) - { - $this->serializeNull = (boolean)$bool; - - return $this; - } - - /** - * Returns TRUE when NULLs should be serialized - * Returns FALSE when NULLs should not be serialized - * Returns NULL when NULLs should not be serialized, - * but the user has not explicitly decided to use this policy - * - * @return bool|null - */ - public function shouldSerializeNull() - { - return $this->serializeNull; - } - - /** - * @return string - */ - public function getFormat() - { - return $this->format; - } - - public function pushClassMetadata(ClassMetadata $metadata) - { - $this->metadataStack->push($metadata); - } - - public function pushPropertyMetadata(PropertyMetadata $metadata) - { - $this->metadataStack->push($metadata); - } - - public function popPropertyMetadata() - { - $metadata = $this->metadataStack->pop(); - - if (!$metadata instanceof PropertyMetadata) { - throw new RuntimeException('Context metadataStack not working well'); - } - } - - public function popClassMetadata() - { - $metadata = $this->metadataStack->pop(); - - if (!$metadata instanceof ClassMetadata) { - throw new RuntimeException('Context metadataStack not working well'); - } - } - - public function getMetadataStack() - { - return $this->metadataStack; - } - - /** - * @return array - */ - public function getCurrentPath() - { - if (!$this->metadataStack) { - return array(); - } - - $paths = array(); - foreach ($this->metadataStack as $metadata) { - if ($metadata instanceof PropertyMetadata) { - array_unshift($paths, $metadata->name); - } - } - - return $paths; - } - - - abstract public function getDepth(); - - /** - * @return integer - */ - abstract public function getDirection(); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableContextFactory.php b/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableContextFactory.php deleted file mode 100644 index 84c26b0..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableContextFactory.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\ContextFactory; - -/** - * Context Factory using a callable. - */ -abstract class CallableContextFactory -{ - /** - * @var callable - */ - private $callable; - - /** - * @param callable $callable - */ - public function __construct(callable $callable) - { - $this->callable = $callable; - } - - /** - * @return mixed - */ - protected function createContext() - { - $callable = $this->callable; - - return $callable(); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableDeserializationContextFactory.php b/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableDeserializationContextFactory.php deleted file mode 100644 index 20f9808..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableDeserializationContextFactory.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\ContextFactory; - -/** - * Deserialization Context Factory using a callable. - */ -class CallableDeserializationContextFactory extends CallableContextFactory implements - DeserializationContextFactoryInterface -{ - /** - * {@InheritDoc} - */ - public function createDeserializationContext() - { - return $this->createContext(); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableSerializationContextFactory.php b/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableSerializationContextFactory.php deleted file mode 100644 index 083666b..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/CallableSerializationContextFactory.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\ContextFactory; - -/** - * Serialization Context Factory using a callable. - */ -class CallableSerializationContextFactory extends CallableContextFactory implements - SerializationContextFactoryInterface -{ - /** - * {@InheritDoc} - */ - public function createSerializationContext() - { - return $this->createContext(); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DefaultDeserializationContextFactory.php b/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DefaultDeserializationContextFactory.php deleted file mode 100644 index d2b1d5e..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DefaultDeserializationContextFactory.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\ContextFactory; - -use JMS\Serializer\DeserializationContext; - -/** - * Default Deserialization Context Factory. - */ -class DefaultDeserializationContextFactory implements DeserializationContextFactoryInterface -{ - /** - * {@InheritDoc} - */ - public function createDeserializationContext() - { - return new DeserializationContext(); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DefaultSerializationContextFactory.php b/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DefaultSerializationContextFactory.php deleted file mode 100644 index a292d27..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DefaultSerializationContextFactory.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\ContextFactory; - -use JMS\Serializer\SerializationContext; - -/** - * Default Serialization Context Factory. - */ -class DefaultSerializationContextFactory implements SerializationContextFactoryInterface -{ - /** - * {@InheritDoc} - */ - public function createSerializationContext() - { - return new SerializationContext(); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DeserializationContextFactoryInterface.php b/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DeserializationContextFactoryInterface.php deleted file mode 100644 index 3b6718b..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/DeserializationContextFactoryInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\ContextFactory; - -use JMS\Serializer\DeserializationContext; - -/** - * Deserialization Context Factory Interface. - */ -interface DeserializationContextFactoryInterface -{ - /** - * @return DeserializationContext - */ - public function createDeserializationContext(); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/SerializationContextFactoryInterface.php b/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/SerializationContextFactoryInterface.php deleted file mode 100644 index 725d83b..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/ContextFactory/SerializationContextFactoryInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\ContextFactory; - -use JMS\Serializer\SerializationContext; - -/** - * Serialization Context Factory Interface. - */ -interface SerializationContextFactoryInterface -{ - /** - * @return SerializationContext - */ - public function createSerializationContext(); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/DeserializationContext.php b/vendor/jms/serializer/src/JMS/Serializer/DeserializationContext.php deleted file mode 100644 index 32aa867..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/DeserializationContext.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -class DeserializationContext extends Context -{ - private $depth = 0; - - public static function create() - { - return new self(); - } - - public function getDirection() - { - return GraphNavigator::DIRECTION_DESERIALIZATION; - } - - public function getDepth() - { - return $this->depth; - } - - public function increaseDepth() - { - $this->depth += 1; - } - - public function decreaseDepth() - { - if ($this->depth <= 0) { - throw new \LogicException('Depth cannot be smaller than zero.'); - } - - $this->depth -= 1; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Event.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Event.php deleted file mode 100644 index 1895ef9..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Event.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher; - -use JMS\Serializer\Context; - -class Event -{ - /** - * @var bool Whether no further event listeners should be triggered - */ - private $propagationStopped = false; - - protected $type; - private $context; - - public function __construct(Context $context, array $type) - { - $this->context = $context; - $this->type = $type; - } - - public function getVisitor() - { - return $this->context->getVisitor(); - } - - public function getContext() - { - return $this->context; - } - - public function getType() - { - return $this->type; - } - - /** - * Returns whether further event listeners should be triggered. - * - * @see Event::stopPropagation() - * - * @return bool Whether propagation was already stopped for this event - */ - public function isPropagationStopped() - { - return $this->propagationStopped; - } - - /** - * Stops the propagation of the event to further event listeners. - * - * If multiple event listeners are connected to the same event, no - * further event listener will be triggered once any trigger calls - * stopPropagation(). - */ - public function stopPropagation() - { - $this->propagationStopped = true; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventDispatcher.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventDispatcher.php deleted file mode 100644 index ead136a..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventDispatcher.php +++ /dev/null @@ -1,131 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher; - -use JMS\Serializer\Exception\InvalidArgumentException; - -/** - * Light-weight event dispatcher. - * - * This implementation focuses primarily on performance, and dispatching - * events for certain classes. It is not a general purpose event dispatcher. - * - * @author Johannes M. Schmitt - */ -class EventDispatcher implements EventDispatcherInterface -{ - private $listeners = array(); - private $classListeners = array(); - - public static function getDefaultMethodName($eventName) - { - return 'on' . str_replace(array('_', '.'), '', $eventName); - } - - /** - * Sets the listeners. - * - * @param array $listeners - */ - public function setListeners(array $listeners) - { - $this->listeners = $listeners; - $this->classListeners = array(); - } - - public function addListener($eventName, $callable, $class = null, $format = null) - { - $this->listeners[$eventName][] = array($callable, null === $class ? null : strtolower($class), $format); - unset($this->classListeners[$eventName]); - } - - public function addSubscriber(EventSubscriberInterface $subscriber) - { - foreach ($subscriber->getSubscribedEvents() as $eventData) { - if (!isset($eventData['event'])) { - throw new InvalidArgumentException(sprintf('Each event must have a "event" key.')); - } - - $method = isset($eventData['method']) ? $eventData['method'] : self::getDefaultMethodName($eventData['event']); - $class = isset($eventData['class']) ? strtolower($eventData['class']) : null; - $format = isset($eventData['format']) ? $eventData['format'] : null; - $this->listeners[$eventData['event']][] = array(array($subscriber, $method), $class, $format); - unset($this->classListeners[$eventData['event']]); - } - } - - public function hasListeners($eventName, $class, $format) - { - if (!isset($this->listeners[$eventName])) { - return false; - } - - $loweredClass = strtolower($class); - if (!isset($this->classListeners[$eventName][$loweredClass][$format])) { - $this->classListeners[$eventName][$loweredClass][$format] = $this->initializeListeners($eventName, $loweredClass, $format); - } - - return !!$this->classListeners[$eventName][$loweredClass][$format]; - } - - public function dispatch($eventName, $class, $format, Event $event) - { - if (!isset($this->listeners[$eventName])) { - return; - } - - $loweredClass = strtolower($class); - if (!isset($this->classListeners[$eventName][$loweredClass][$format])) { - $this->classListeners[$eventName][$loweredClass][$format] = $this->initializeListeners($eventName, $loweredClass, $format); - } - - foreach ($this->classListeners[$eventName][$loweredClass][$format] as $listener) { - - if ($event->isPropagationStopped()) { - break; - } - - call_user_func($listener, $event, $eventName, $loweredClass, $format, $this); - } - } - - /** - * @param string $eventName - * @param string $loweredClass - * @param string $format - * - * @return array An array of listeners - */ - protected function initializeListeners($eventName, $loweredClass, $format) - { - $listeners = array(); - foreach ($this->listeners[$eventName] as $listener) { - if (null !== $listener[1] && $loweredClass !== $listener[1]) { - continue; - } - if (null !== $listener[2] && $format !== $listener[2]) { - continue; - } - - $listeners[] = $listener[0]; - } - - return $listeners; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventDispatcherInterface.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventDispatcherInterface.php deleted file mode 100644 index d757f99..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventDispatcherInterface.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher; - -interface EventDispatcherInterface -{ - /** - * Returns whether there are listeners. - * - * @param string $eventName - * @param string $class - * @param string $format - * - * @return boolean - */ - public function hasListeners($eventName, $class, $format); - - /** - * Dispatches an event. - * - * The listeners/subscribers are called in the same order in which they - * were added to the dispatcher. - * - * @param string $eventName - * @param string $class - * @param string $format - * @param Event $event - * @return void - */ - public function dispatch($eventName, $class, $format, Event $event); - - /** - * Adds a listener. - * - * @param string $eventName - * @param callable $callable - * @param string|null $class - * @param string|null $format - * @return void - */ - public function addListener($eventName, $callable, $class = null, $format = null); - - /** - * Adds a subscribers. - * - * @param EventSubscriberInterface $subscriber - * @return void - */ - public function addSubscriber(EventSubscriberInterface $subscriber); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventSubscriberInterface.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventSubscriberInterface.php deleted file mode 100644 index a079ea5..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/EventSubscriberInterface.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher; - -interface EventSubscriberInterface -{ - /** - * Returns the events to which this class has subscribed. - * - * Return format: - * array( - * array('event' => 'the-event-name', 'method' => 'onEventName', 'class' => 'some-class', 'format' => 'json'), - * array(...), - * ) - * - * The class may be omitted if the class wants to subscribe to events of all classes. - * Same goes for the format key. - * - * @return array - */ - public static function getSubscribedEvents(); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Events.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Events.php deleted file mode 100644 index f9cd9f6..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Events.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher; - -abstract class Events -{ - const PRE_SERIALIZE = 'serializer.pre_serialize'; - const POST_SERIALIZE = 'serializer.post_serialize'; - const PRE_DESERIALIZE = 'serializer.pre_deserialize'; - const POST_DESERIALIZE = 'serializer.post_deserialize'; - - final private function __construct() - { - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/LazyEventDispatcher.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/LazyEventDispatcher.php deleted file mode 100644 index 6c5f234..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/LazyEventDispatcher.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher; - -use Psr\Container\ContainerInterface as PsrContainerInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; - -class LazyEventDispatcher extends EventDispatcher -{ - private $container; - - public function __construct($container) - { - if (!$container instanceof PsrContainerInterface && !$container instanceof ContainerInterface) { - throw new \InvalidArgumentException(sprintf('The container must be an instance of %s or %s (%s given).', PsrContainerInterface::class, ContainerInterface::class, is_object($container) ? get_class($container) : gettype($container))); - } - - $this->container = $container; - } - - /** - * {@inheritdoc} - */ - protected function initializeListeners($eventName, $loweredClass, $format) - { - $listeners = parent::initializeListeners($eventName, $loweredClass, $format); - - foreach ($listeners as &$listener) { - if (!is_array($listener) || !is_string($listener[0])) { - continue; - } - - if (!$this->container->has($listener[0])) { - continue; - } - - $listener[0] = $this->container->get($listener[0]); - } - - return $listeners; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/ObjectEvent.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/ObjectEvent.php deleted file mode 100644 index c619d41..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/ObjectEvent.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher; - -use JMS\Serializer\Context; - -class ObjectEvent extends Event -{ - private $object; - - public function __construct(Context $context, $object, array $type) - { - parent::__construct($context, $type); - - $this->object = $object; - } - - public function getObject() - { - return $this->object; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/PreDeserializeEvent.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/PreDeserializeEvent.php deleted file mode 100644 index 228eade..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/PreDeserializeEvent.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher; - -use JMS\Serializer\DeserializationContext; - -class PreDeserializeEvent extends Event -{ - private $data; - - public function __construct(DeserializationContext $context, $data, array $type) - { - parent::__construct($context, $type); - - $this->data = $data; - } - - public function setType($name, array $params = array()) - { - $this->type = array('name' => $name, 'params' => $params); - } - - public function getData() - { - return $this->data; - } - - public function setData($data) - { - $this->data = $data; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/PreSerializeEvent.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/PreSerializeEvent.php deleted file mode 100644 index ca3ed9c..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/PreSerializeEvent.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher; - -class PreSerializeEvent extends ObjectEvent -{ - /** - * @param string $typeName - * @param array $params - */ - public function setType($typeName, array $params = array()) - { - $this->type = array('name' => $typeName, 'params' => $params); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/DoctrineProxySubscriber.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/DoctrineProxySubscriber.php deleted file mode 100644 index 78d9e25..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/DoctrineProxySubscriber.php +++ /dev/null @@ -1,123 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher\Subscriber; - -use Doctrine\Common\Persistence\Proxy; -use Doctrine\ODM\MongoDB\PersistentCollection as MongoDBPersistentCollection; -use Doctrine\ODM\PHPCR\PersistentCollection as PHPCRPersistentCollection; -use Doctrine\ORM\PersistentCollection; -use Doctrine\ORM\Proxy\Proxy as ORMProxy; -use JMS\Serializer\EventDispatcher\EventDispatcherInterface; -use JMS\Serializer\EventDispatcher\EventSubscriberInterface; -use JMS\Serializer\EventDispatcher\PreSerializeEvent; - -class DoctrineProxySubscriber implements EventSubscriberInterface -{ - /** - * @var bool - */ - private $skipVirtualTypeInit = false; - - /** - * @var bool - */ - private $initializeExcluded = true; - - public function __construct($skipVirtualTypeInit = false, $initializeExcluded = true) - { - $this->skipVirtualTypeInit = (bool)$skipVirtualTypeInit; - $this->initializeExcluded = (bool)$initializeExcluded; - } - - public function onPreSerialize(PreSerializeEvent $event) - { - $object = $event->getObject(); - $type = $event->getType(); - - // If the set type name is not an actual class, but a faked type for which a custom handler exists, we do not - // modify it with this subscriber. Also, we forgo autoloading here as an instance of this type is already created, - // so it must be loaded if its a real class. - $virtualType = !class_exists($type['name'], false); - - if ($object instanceof PersistentCollection - || $object instanceof MongoDBPersistentCollection - || $object instanceof PHPCRPersistentCollection - ) { - if (!$virtualType) { - $event->setType('ArrayCollection'); - } - - return; - } - - if (($this->skipVirtualTypeInit && $virtualType) || - (!$object instanceof Proxy && !$object instanceof ORMProxy) - ) { - return; - } - - // do not initialize the proxy if is going to be excluded by-class by some exclusion strategy - if ($this->initializeExcluded === false && !$virtualType) { - $context = $event->getContext(); - $exclusionStrategy = $context->getExclusionStrategy(); - if ($exclusionStrategy !== null && $exclusionStrategy->shouldSkipClass($context->getMetadataFactory()->getMetadataForClass(get_parent_class($object)), $context)) { - return; - } - } - - $object->__load(); - - if (!$virtualType) { - $event->setType(get_parent_class($object), $type['params']); - } - } - - public function onPreSerializeTypedProxy(PreSerializeEvent $event, $eventName, $class, $format, EventDispatcherInterface $dispatcher) - { - $type = $event->getType(); - // is a virtual type? then there is no need to change the event name - if (!class_exists($type['name'], false)) { - return; - } - - $object = $event->getObject(); - if ($object instanceof Proxy) { - $parentClassName = get_parent_class($object); - - // check if this is already a re-dispatch - if (strtolower($class) !== strtolower($parentClassName)) { - $event->stopPropagation(); - $newEvent = new PreSerializeEvent($event->getContext(), $object, array('name' => $parentClassName, 'params' => $type['params'])); - $dispatcher->dispatch($eventName, $parentClassName, $format, $newEvent); - - // update the type in case some listener changed it - $newType = $newEvent->getType(); - $event->setType($newType['name'], $newType['params']); - } - } - } - - public static function getSubscribedEvents() - { - return array( - array('event' => 'serializer.pre_serialize', 'method' => 'onPreSerializeTypedProxy'), - array('event' => 'serializer.pre_serialize', 'method' => 'onPreSerialize'), - ); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/SymfonyValidatorSubscriber.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/SymfonyValidatorSubscriber.php deleted file mode 100644 index 46fae0d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/SymfonyValidatorSubscriber.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher\Subscriber; - -use JMS\Serializer\EventDispatcher\Event; -use JMS\Serializer\EventDispatcher\EventSubscriberInterface; -use JMS\Serializer\Exception\ValidationFailedException; -use Symfony\Component\Validator\ValidatorInterface; - -class SymfonyValidatorSubscriber implements EventSubscriberInterface -{ - private $validator; - - public function __construct(ValidatorInterface $validator) - { - $this->validator = $validator; - } - - public static function getSubscribedEvents() - { - return array( - array('event' => 'serializer.post_deserialize', 'method' => 'onPostDeserialize'), - ); - } - - public function onPostDeserialize(Event $event) - { - $context = $event->getContext(); - - if ($context->getDepth() > 0) { - return; - } - - $validator = $this->validator; - $context->attributes->get('validation_groups')->map( - function (array $groups) use ($event, $validator) { - $list = $validator->validate($event->getObject(), $groups); - - if ($list->count() > 0) { - throw new ValidationFailedException($list); - } - } - ); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/SymfonyValidatorValidatorSubscriber.php b/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/SymfonyValidatorValidatorSubscriber.php deleted file mode 100644 index 75ab85d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/EventDispatcher/Subscriber/SymfonyValidatorValidatorSubscriber.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\EventDispatcher\Subscriber; - -use JMS\Serializer\EventDispatcher\Event; -use JMS\Serializer\EventDispatcher\EventSubscriberInterface; -use JMS\Serializer\Exception\ValidationFailedException; -use PhpOption\None; -use Symfony\Component\Validator\Validator\ValidatorInterface; - -class SymfonyValidatorValidatorSubscriber implements EventSubscriberInterface -{ - /** - * @var ValidatorInterface - */ - private $validator; - - public function __construct(ValidatorInterface $validator) - { - $this->validator = $validator; - } - - public static function getSubscribedEvents() - { - return array( - array('event' => 'serializer.post_deserialize', 'method' => 'onPostDeserialize'), - ); - } - - public function onPostDeserialize(Event $event) - { - $context = $event->getContext(); - - if ($context->getDepth() > 0) { - return; - } - - $validator = $this->validator; - $groups = $context->attributes->get('validation_groups') instanceof None - ? null - : $context->attributes->get('validation_groups')->get(); - - if (!$groups) { - return; - } - - $constraints = $context->attributes->get('validation_constraints') instanceof None - ? null - : $context->attributes->get('validation_constraints')->get(); - - $list = $validator->validate($event->getObject(), $constraints, $groups); - - if ($list->count() > 0) { - throw new ValidationFailedException($list); - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exception/Exception.php b/vendor/jms/serializer/src/JMS/Serializer/Exception/Exception.php deleted file mode 100644 index ae8fa65..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exception/Exception.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exception; - -/** - * Base exception for the Serializer. - * - * @author Johannes M. Schmitt - */ -interface Exception -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exception/ExpressionLanguageRequiredException.php b/vendor/jms/serializer/src/JMS/Serializer/Exception/ExpressionLanguageRequiredException.php deleted file mode 100644 index 3df970f..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exception/ExpressionLanguageRequiredException.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exception; - -/** - * @author Asmir Mustafic - */ -class ExpressionLanguageRequiredException extends LogicException -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exception/InvalidArgumentException.php b/vendor/jms/serializer/src/JMS/Serializer/Exception/InvalidArgumentException.php deleted file mode 100644 index fb5d344..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exception; - -/** - * InvalidArgumentException for the Serializer. - * - * @author Johannes M. Schmitt - */ -class InvalidArgumentException extends \InvalidArgumentException implements Exception -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exception/LogicException.php b/vendor/jms/serializer/src/JMS/Serializer/Exception/LogicException.php deleted file mode 100644 index f74b015..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exception/LogicException.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exception; - -/** - * LogicException for the Serializer. - * - * @author Johannes M. Schmitt - */ -class LogicException extends \LogicException implements Exception -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exception/ObjectConstructionException.php b/vendor/jms/serializer/src/JMS/Serializer/Exception/ObjectConstructionException.php deleted file mode 100644 index 9b8a845..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exception/ObjectConstructionException.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exception; - -/** - * InvalidArgumentException for the Serializer. - * - * @author Asmir Mustafic - */ -class ObjectConstructionException extends RuntimeException implements Exception -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exception/RuntimeException.php b/vendor/jms/serializer/src/JMS/Serializer/Exception/RuntimeException.php deleted file mode 100644 index cf15a7c..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exception/RuntimeException.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exception; - -/** - * RuntimeException for the Serializer. - * - * @author Johannes M. Schmitt - */ -class RuntimeException extends \RuntimeException implements Exception -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exception/UnsupportedFormatException.php b/vendor/jms/serializer/src/JMS/Serializer/Exception/UnsupportedFormatException.php deleted file mode 100644 index bf8e6d7..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exception/UnsupportedFormatException.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exception; - -class UnsupportedFormatException extends InvalidArgumentException -{ -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exception/ValidationFailedException.php b/vendor/jms/serializer/src/JMS/Serializer/Exception/ValidationFailedException.php deleted file mode 100644 index 2627b91..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exception/ValidationFailedException.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exception; - -use Symfony\Component\Validator\ConstraintViolationListInterface; - -class ValidationFailedException extends RuntimeException -{ - /** - * @var ConstraintViolationListInterface - */ - private $list; - - public function __construct(ConstraintViolationListInterface $list) - { - parent::__construct(sprintf('Validation failed with %d error(s).', count($list))); - - $this->list = $list; - } - - /** - * @return ConstraintViolationListInterface - */ - public function getConstraintViolationList() - { - return $this->list; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exception/XmlErrorException.php b/vendor/jms/serializer/src/JMS/Serializer/Exception/XmlErrorException.php deleted file mode 100644 index 509a594..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exception/XmlErrorException.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exception; - -class XmlErrorException extends RuntimeException -{ - private $xmlError; - - public function __construct(\LibXMLError $error) - { - switch ($error->level) { - case LIBXML_ERR_WARNING: - $level = 'WARNING'; - break; - - case LIBXML_ERR_FATAL: - $level = 'FATAL'; - break; - - case LIBXML_ERR_ERROR: - $level = 'ERROR'; - break; - - default: - $level = 'UNKNOWN'; - } - - parent::__construct(sprintf('[%s] %s in %s (line: %d, column: %d)', $level, $error->message, $error->file, $error->line, $error->column)); - - $this->xmlError = $error; - } - - public function getXmlError() - { - return $this->xmlError; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/DepthExclusionStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Exclusion/DepthExclusionStrategy.php deleted file mode 100644 index 89295fc..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/DepthExclusionStrategy.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exclusion; - -use JMS\Serializer\Context; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * @author Adrien Brault - */ -class DepthExclusionStrategy implements ExclusionStrategyInterface -{ - /** - * {@inheritDoc} - */ - public function shouldSkipClass(ClassMetadata $metadata, Context $context) - { - return $this->isTooDeep($context); - } - - /** - * {@inheritDoc} - */ - public function shouldSkipProperty(PropertyMetadata $property, Context $context) - { - return $this->isTooDeep($context); - } - - private function isTooDeep(Context $context) - { - $depth = $context->getDepth(); - $metadataStack = $context->getMetadataStack(); - - $nthProperty = 0; - // iterate from the first added items to the lasts - for ($i = $metadataStack->count() - 1; $i > 0; $i--) { - $metadata = $metadataStack[$i]; - if ($metadata instanceof PropertyMetadata) { - $nthProperty++; - $relativeDepth = $depth - $nthProperty; - - if (null !== $metadata->maxDepth && $relativeDepth > $metadata->maxDepth) { - return true; - } - } - } - - return false; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/DisjunctExclusionStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Exclusion/DisjunctExclusionStrategy.php deleted file mode 100644 index 81b246f..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/DisjunctExclusionStrategy.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exclusion; - -use JMS\Serializer\Context; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use PhpCollection\Sequence; -use PhpCollection\SequenceInterface; - -/** - * Disjunct Exclusion Strategy. - * - * This strategy is short-circuiting and will skip a class, or property as soon as one of the delegates skips it. - * - * @author Johannes M. Schmitt - */ -class DisjunctExclusionStrategy implements ExclusionStrategyInterface -{ - /** @var \PhpCollection\SequenceInterface */ - private $delegates; - - /** - * @param ExclusionStrategyInterface[]|SequenceInterface $delegates - */ - public function __construct($delegates) - { - if (!$delegates instanceof SequenceInterface) { - $delegates = new Sequence($delegates); - } - - $this->delegates = $delegates; - } - - public function addStrategy(ExclusionStrategyInterface $strategy) - { - $this->delegates->add($strategy); - } - - /** - * Whether the class should be skipped. - * - * @param ClassMetadata $metadata - * - * @return boolean - */ - public function shouldSkipClass(ClassMetadata $metadata, Context $context) - { - foreach ($this->delegates as $delegate) { - /** @var $delegate ExclusionStrategyInterface */ - if ($delegate->shouldSkipClass($metadata, $context)) { - return true; - } - } - - return false; - } - - /** - * Whether the property should be skipped. - * - * @param PropertyMetadata $property - * - * @return boolean - */ - public function shouldSkipProperty(PropertyMetadata $property, Context $context) - { - foreach ($this->delegates as $delegate) { - /** @var $delegate ExclusionStrategyInterface */ - if ($delegate->shouldSkipProperty($property, $context)) { - return true; - } - } - - return false; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/ExclusionStrategyInterface.php b/vendor/jms/serializer/src/JMS/Serializer/Exclusion/ExclusionStrategyInterface.php deleted file mode 100644 index 0c6760f..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/ExclusionStrategyInterface.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exclusion; - -use JMS\Serializer\Context; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * Interface for exclusion strategies. - * - * @author Johannes M. Schmitt - */ -interface ExclusionStrategyInterface -{ - /** - * Whether the class should be skipped. - * - * @param ClassMetadata $metadata - * - * @return boolean - */ - public function shouldSkipClass(ClassMetadata $metadata, Context $context); - - /** - * Whether the property should be skipped. - * - * @param PropertyMetadata $property - * - * @return boolean - */ - public function shouldSkipProperty(PropertyMetadata $property, Context $context); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/ExpressionLanguageExclusionStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Exclusion/ExpressionLanguageExclusionStrategy.php deleted file mode 100644 index 18050c4..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/ExpressionLanguageExclusionStrategy.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exclusion; - -use JMS\Serializer\Context; -use JMS\Serializer\Expression\ExpressionEvaluatorInterface; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\SerializationContext; - -/** - * Exposes an exclusion strategy based on the Symfony's expression language. - * This is not a standard exclusion strategy and can not be used in user applications. - * - * @internal - * - * @author Asmir Mustafic - */ -class ExpressionLanguageExclusionStrategy -{ - /** - * @var ExpressionEvaluatorInterface - */ - private $expressionEvaluator; - - public function __construct(ExpressionEvaluatorInterface $expressionEvaluator) - { - $this->expressionEvaluator = $expressionEvaluator; - } - - /** - * {@inheritDoc} - */ - public function shouldSkipProperty(PropertyMetadata $property, Context $navigatorContext) - { - if (null === $property->excludeIf) { - return false; - } - - $variables = [ - 'context' => $navigatorContext, - 'property_metadata' => $property, - ]; - if ($navigatorContext instanceof SerializationContext) { - $variables['object'] = $navigatorContext->getObject(); - } else { - $variables['object'] = null; - } - - return $this->expressionEvaluator->evaluate($property->excludeIf, $variables); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/GroupsExclusionStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Exclusion/GroupsExclusionStrategy.php deleted file mode 100644 index 946c9c7..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/GroupsExclusionStrategy.php +++ /dev/null @@ -1,92 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exclusion; - -use JMS\Serializer\Context; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; - -class GroupsExclusionStrategy implements ExclusionStrategyInterface -{ - const DEFAULT_GROUP = 'Default'; - - private $groups = array(); - - public function __construct(array $groups) - { - if (empty($groups)) { - $groups = array(self::DEFAULT_GROUP); - } - - $this->groups = $groups; - } - - /** - * {@inheritDoc} - */ - public function shouldSkipClass(ClassMetadata $metadata, Context $navigatorContext) - { - return false; - } - - /** - * {@inheritDoc} - */ - public function shouldSkipProperty(PropertyMetadata $property, Context $navigatorContext) - { - $groups = $this->getGroupsFor($navigatorContext); - - if (!$property->groups) { - return !in_array(self::DEFAULT_GROUP, $groups); - } - - return $this->shouldSkipUsingGroups($property, $groups); - } - - private function shouldSkipUsingGroups(PropertyMetadata $property, $groups) - { - foreach ($property->groups as $group) { - if (in_array($group, $groups)) { - return false; - } - } - - return true; - } - - private function getGroupsFor(Context $navigatorContext) - { - $paths = $navigatorContext->getCurrentPath(); - - $groups = $this->groups; - foreach ($paths as $index => $path) { - if (!array_key_exists($path, $groups)) { - if ($index > 0) { - $groups = array(self::DEFAULT_GROUP); - } - - break; - } - - $groups = $groups[$path]; - } - - return $groups; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/VersionExclusionStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Exclusion/VersionExclusionStrategy.php deleted file mode 100644 index 471962d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Exclusion/VersionExclusionStrategy.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Exclusion; - -use JMS\Serializer\Context; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; - -class VersionExclusionStrategy implements ExclusionStrategyInterface -{ - private $version; - - public function __construct($version) - { - $this->version = $version; - } - - /** - * {@inheritDoc} - */ - public function shouldSkipClass(ClassMetadata $metadata, Context $navigatorContext) - { - return false; - } - - /** - * {@inheritDoc} - */ - public function shouldSkipProperty(PropertyMetadata $property, Context $navigatorContext) - { - if ((null !== $version = $property->sinceVersion) && version_compare($this->version, $version, '<')) { - return true; - } - - if ((null !== $version = $property->untilVersion) && version_compare($this->version, $version, '>')) { - return true; - } - - return false; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Expression/ExpressionEvaluator.php b/vendor/jms/serializer/src/JMS/Serializer/Expression/ExpressionEvaluator.php deleted file mode 100644 index 223cd3d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Expression/ExpressionEvaluator.php +++ /dev/null @@ -1,79 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Expression; - -use Symfony\Component\ExpressionLanguage\ExpressionLanguage; - -/** - * @author Asmir Mustafic - */ -class ExpressionEvaluator implements ExpressionEvaluatorInterface -{ - - /** - * @var ExpressionLanguage - */ - private $expressionLanguage; - - /** - * @var array - */ - private $context = array(); - - /** - * @var array - */ - private $cache = array(); - - public function __construct(ExpressionLanguage $expressionLanguage, array $context = array(), array $cache = array()) - { - $this->expressionLanguage = $expressionLanguage; - $this->context = $context; - $this->cache = $cache; - } - - /** - * @param string $name - * @param mixed $value - */ - public function setContextVariable($name, $value) - { - $this->context[$name] = $value; - } - - /** - * @param string $expression - * @param array $data - * @return mixed - */ - public function evaluate($expression, array $data = array()) - { - if (!is_string($expression)) { - return $expression; - } - - $context = $data + $this->context; - - if (!array_key_exists($expression, $this->cache)) { - $this->cache[$expression] = $this->expressionLanguage->parse($expression, array_keys($context)); - } - - return $this->expressionLanguage->evaluate($this->cache[$expression], $context); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Expression/ExpressionEvaluatorInterface.php b/vendor/jms/serializer/src/JMS/Serializer/Expression/ExpressionEvaluatorInterface.php deleted file mode 100644 index 9d1be23..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Expression/ExpressionEvaluatorInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Expression; - -/** - * @author Asmir Mustafic - */ -interface ExpressionEvaluatorInterface -{ - /** - * @param string $expression - * @param array $data - * @return mixed - */ - public function evaluate($expression, array $data = array()); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/GenericDeserializationVisitor.php b/vendor/jms/serializer/src/JMS/Serializer/GenericDeserializationVisitor.php deleted file mode 100644 index 803d3b2..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/GenericDeserializationVisitor.php +++ /dev/null @@ -1,223 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Naming\AdvancedNamingStrategyInterface; -use JMS\Serializer\Naming\PropertyNamingStrategyInterface; - -/** - * Generic Deserialization Visitor. - * - * @author Johannes M. Schmitt - */ -abstract class GenericDeserializationVisitor extends AbstractVisitor -{ - private $navigator; - private $result; - private $objectStack; - private $currentObject; - - public function setNavigator(GraphNavigator $navigator) - { - $this->navigator = $navigator; - $this->result = null; - $this->objectStack = new \SplStack; - } - - public function getNavigator() - { - return $this->navigator; - } - - public function prepare($data) - { - return $this->decode($data); - } - - public function visitNull($data, array $type, Context $context) - { - return null; - } - - public function visitString($data, array $type, Context $context) - { - $data = (string)$data; - - if (null === $this->result) { - $this->result = $data; - } - - return $data; - } - - public function visitBoolean($data, array $type, Context $context) - { - $data = (Boolean)$data; - - if (null === $this->result) { - $this->result = $data; - } - - return $data; - } - - public function visitInteger($data, array $type, Context $context) - { - $data = (integer)$data; - - if (null === $this->result) { - $this->result = $data; - } - - return $data; - } - - public function visitDouble($data, array $type, Context $context) - { - $data = (double)$data; - - if (null === $this->result) { - $this->result = $data; - } - - return $data; - } - - public function visitArray($data, array $type, Context $context) - { - if (!is_array($data)) { - throw new RuntimeException(sprintf('Expected array, but got %s: %s', gettype($data), json_encode($data))); - } - - // If no further parameters were given, keys/values are just passed as is. - if (!$type['params']) { - if (null === $this->result) { - $this->result = $data; - } - - return $data; - } - - switch (count($type['params'])) { - case 1: // Array is a list. - $listType = $type['params'][0]; - - $result = array(); - if (null === $this->result) { - $this->result = &$result; - } - - foreach ($data as $v) { - $result[] = $this->navigator->accept($v, $listType, $context); - } - - return $result; - - case 2: // Array is a map. - list($keyType, $entryType) = $type['params']; - - $result = array(); - if (null === $this->result) { - $this->result = &$result; - } - - foreach ($data as $k => $v) { - $result[$this->navigator->accept($k, $keyType, $context)] = $this->navigator->accept($v, $entryType, $context); - } - - return $result; - - default: - throw new RuntimeException(sprintf('Array type cannot have more than 2 parameters, but got %s.', json_encode($type['params']))); - } - } - - public function startVisitingObject(ClassMetadata $metadata, $object, array $type, Context $context) - { - $this->setCurrentObject($object); - - if (null === $this->result) { - $this->result = $this->currentObject; - } - } - - public function visitProperty(PropertyMetadata $metadata, $data, Context $context) - { - if ($this->namingStrategy instanceof AdvancedNamingStrategyInterface) { - $name = $this->namingStrategy->getPropertyName($metadata, $context); - } else { - $name = $this->namingStrategy->translateName($metadata); - } - - if (null === $data) { - return; - } - - if (!is_array($data)) { - throw new RuntimeException(sprintf('Invalid data "%s"(%s), expected "%s".', $data, $metadata->type['name'], $metadata->reflection->class)); - } - - if (!array_key_exists($name, $data)) { - return; - } - - if (!$metadata->type) { - throw new RuntimeException(sprintf('You must define a type for %s::$%s.', $metadata->reflection->class, $metadata->name)); - } - - $v = $data[$name] !== null ? $this->navigator->accept($data[$name], $metadata->type, $context) : null; - - $this->accessor->setValue($this->currentObject, $v, $metadata); - - } - - public function endVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - $obj = $this->currentObject; - $this->revertCurrentObject(); - - return $obj; - } - - public function getResult() - { - return $this->result; - } - - public function setCurrentObject($object) - { - $this->objectStack->push($this->currentObject); - $this->currentObject = $object; - } - - public function getCurrentObject() - { - return $this->currentObject; - } - - public function revertCurrentObject() - { - return $this->currentObject = $this->objectStack->pop(); - } - - abstract protected function decode($str); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/GenericSerializationVisitor.php b/vendor/jms/serializer/src/JMS/Serializer/GenericSerializationVisitor.php deleted file mode 100644 index e6db77f..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/GenericSerializationVisitor.php +++ /dev/null @@ -1,227 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Exception\InvalidArgumentException; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Naming\AdvancedNamingStrategyInterface; - -/** - * @deprecated - */ -abstract class GenericSerializationVisitor extends AbstractVisitor -{ - private $navigator; - private $root; - private $dataStack; - private $data; - - public function setNavigator(GraphNavigator $navigator) - { - $this->navigator = $navigator; - $this->root = null; - $this->dataStack = new \SplStack; - } - - /** - * @return GraphNavigator - */ - public function getNavigator() - { - return $this->navigator; - } - - public function visitNull($data, array $type, Context $context) - { - return null; - } - - public function visitString($data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = $data; - } - - return (string)$data; - } - - public function visitBoolean($data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = $data; - } - - return (boolean)$data; - } - - public function visitInteger($data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = $data; - } - - return (int)$data; - } - - public function visitDouble($data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = $data; - } - - return (float)$data; - } - - /** - * @param array $data - * @param array $type - */ - public function visitArray($data, array $type, Context $context) - { - $this->dataStack->push($data); - - $isHash = isset($type['params'][1]); - - if (null === $this->root) { - $this->root = $isHash ? new \ArrayObject() : array(); - $rs = &$this->root; - } else { - $rs = $isHash ? new \ArrayObject() : array(); - } - - $isList = isset($type['params'][0]) && !isset($type['params'][1]); - - foreach ($data as $k => $v) { - $v = $this->navigator->accept($v, $this->getElementType($type), $context); - - if (null === $v && $context->shouldSerializeNull() !== true) { - continue; - } - - if ($isList) { - $rs[] = $v; - } else { - $rs[$k] = $v; - } - } - - $this->dataStack->pop(); - - return $rs; - } - - public function startVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = new \stdClass; - } - - $this->dataStack->push($this->data); - $this->data = array(); - } - - public function endVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - $rs = $this->data; - $this->data = $this->dataStack->pop(); - - if ($this->root instanceof \stdClass && 0 === $this->dataStack->count()) { - $this->root = $rs; - } - - return $rs; - } - - public function visitProperty(PropertyMetadata $metadata, $data, Context $context) - { - $v = $this->accessor->getValue($data, $metadata); - - $v = $this->navigator->accept($v, $metadata->type, $context); - if (null === $v && $context->shouldSerializeNull() !== true) { - return; - } - - if ($this->namingStrategy instanceof AdvancedNamingStrategyInterface) { - $k = $this->namingStrategy->getPropertyName($metadata, $context); - } else { - $k = $this->namingStrategy->translateName($metadata); - } - - if ($metadata->inline) { - if (is_array($v)) { - $this->data = array_merge($this->data, $v); - } - } else { - $this->data[$k] = $v; - } - } - - /** - * Allows you to add additional data to the current object/root element. - * @deprecated use setData instead - * @param string $key - * @param integer|float|boolean|string|array|null $value This value must either be a regular scalar, or an array. - * It must not contain any objects anymore. - */ - public function addData($key, $value) - { - if (isset($this->data[$key])) { - throw new InvalidArgumentException(sprintf('There is already data for "%s".', $key)); - } - - $this->data[$key] = $value; - } - - /** - * Checks if some data key exists. - * - * @param string $key - * @return boolean - */ - public function hasData($key) - { - return isset($this->data[$key]); - } - - /** - * Allows you to replace existing data on the current object/root element. - * - * @param string $key - * @param integer|float|boolean|string|array|null $value This value must either be a regular scalar, or an array. - * It must not contain any objects anymore. - */ - public function setData($key, $value) - { - $this->data[$key] = $value; - } - - public function getRoot() - { - return $this->root; - } - - /** - * @param array|\ArrayObject $data the passed data must be understood by whatever encoding function is applied later. - */ - public function setRoot($data) - { - $this->root = $data; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/GraphNavigator.php b/vendor/jms/serializer/src/JMS/Serializer/GraphNavigator.php deleted file mode 100644 index 08503bd..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/GraphNavigator.php +++ /dev/null @@ -1,360 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Construction\ObjectConstructorInterface; -use JMS\Serializer\EventDispatcher\EventDispatcherInterface; -use JMS\Serializer\EventDispatcher\ObjectEvent; -use JMS\Serializer\EventDispatcher\PreDeserializeEvent; -use JMS\Serializer\EventDispatcher\PreSerializeEvent; -use JMS\Serializer\Exception\ExpressionLanguageRequiredException; -use JMS\Serializer\Exception\InvalidArgumentException; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\Exclusion\ExpressionLanguageExclusionStrategy; -use JMS\Serializer\Expression\ExpressionEvaluatorInterface; -use JMS\Serializer\Handler\HandlerRegistryInterface; -use JMS\Serializer\Metadata\ClassMetadata; -use Metadata\MetadataFactoryInterface; - -/** - * Handles traversal along the object graph. - * - * This class handles traversal along the graph, and calls different methods - * on visitors, or custom handlers to process its nodes. - * - * @author Johannes M. Schmitt - */ -final class GraphNavigator -{ - const DIRECTION_SERIALIZATION = 1; - const DIRECTION_DESERIALIZATION = 2; - - /** - * @var ExpressionLanguageExclusionStrategy - */ - private $expressionExclusionStrategy; - - private $dispatcher; - private $metadataFactory; - private $handlerRegistry; - private $objectConstructor; - - /** - * Parses a direction string to one of the direction constants. - * - * @param string $dirStr - * - * @return integer - */ - public static function parseDirection($dirStr) - { - switch (strtolower($dirStr)) { - case 'serialization': - return self::DIRECTION_SERIALIZATION; - - case 'deserialization': - return self::DIRECTION_DESERIALIZATION; - - default: - throw new InvalidArgumentException(sprintf('The direction "%s" does not exist.', $dirStr)); - } - } - - public function __construct( - MetadataFactoryInterface $metadataFactory, - HandlerRegistryInterface $handlerRegistry, - ObjectConstructorInterface $objectConstructor, - EventDispatcherInterface $dispatcher = null, - ExpressionEvaluatorInterface $expressionEvaluator = null - ) - { - $this->dispatcher = $dispatcher; - $this->metadataFactory = $metadataFactory; - $this->handlerRegistry = $handlerRegistry; - $this->objectConstructor = $objectConstructor; - if ($expressionEvaluator) { - $this->expressionExclusionStrategy = new ExpressionLanguageExclusionStrategy($expressionEvaluator); - } - } - - /** - * Called for each node of the graph that is being traversed. - * - * @param mixed $data the data depends on the direction, and type of visitor - * @param null|array $type array has the format ["name" => string, "params" => array] - * @param Context $context - * @return mixed the return value depends on the direction, and type of visitor - */ - public function accept($data, array $type = null, Context $context) - { - $visitor = $context->getVisitor(); - - // If the type was not given, we infer the most specific type from the - // input data in serialization mode. - if (null === $type) { - if ($context instanceof DeserializationContext) { - throw new RuntimeException('The type must be given for all properties when deserializing.'); - } - - $typeName = gettype($data); - if ('object' === $typeName) { - $typeName = get_class($data); - } - - $type = array('name' => $typeName, 'params' => array()); - } - // If the data is null, we have to force the type to null regardless of the input in order to - // guarantee correct handling of null values, and not have any internal auto-casting behavior. - else if ($context instanceof SerializationContext && null === $data) { - $type = array('name' => 'NULL', 'params' => array()); - } - // Sometimes data can convey null but is not of a null type. - // Visitors can have the power to add this custom null evaluation - if ($visitor instanceof NullAwareVisitorInterface && $visitor->isNull($data) === true) { - $type = array('name' => 'NULL', 'params' => array()); - } - - switch ($type['name']) { - case 'NULL': - return $visitor->visitNull($data, $type, $context); - - case 'string': - return $visitor->visitString($data, $type, $context); - - case 'int': - case 'integer': - return $visitor->visitInteger($data, $type, $context); - - case 'bool': - case 'boolean': - return $visitor->visitBoolean($data, $type, $context); - - case 'double': - case 'float': - return $visitor->visitDouble($data, $type, $context); - - case 'array': - return $visitor->visitArray($data, $type, $context); - - case 'resource': - $msg = 'Resources are not supported in serialized data.'; - if ($context instanceof SerializationContext && null !== $path = $context->getPath()) { - $msg .= ' Path: ' . $path; - } - - throw new RuntimeException($msg); - - default: - // TODO: The rest of this method needs some refactoring. - if ($context instanceof SerializationContext) { - if (null !== $data) { - if ($context->isVisiting($data)) { - return null; - } - $context->startVisiting($data); - } - - // If we're serializing a polymorphic type, then we'll be interested in the - // metadata for the actual type of the object, not the base class. - if (class_exists($type['name'], false) || interface_exists($type['name'], false)) { - if (is_subclass_of($data, $type['name'], false)) { - $type = array('name' => get_class($data), 'params' => array()); - } - } - } elseif ($context instanceof DeserializationContext) { - $context->increaseDepth(); - } - - // Trigger pre-serialization callbacks, and listeners if they exist. - // Dispatch pre-serialization event before handling data to have ability change type in listener - if ($context instanceof SerializationContext) { - if (null !== $this->dispatcher && $this->dispatcher->hasListeners('serializer.pre_serialize', $type['name'], $context->getFormat())) { - $this->dispatcher->dispatch('serializer.pre_serialize', $type['name'], $context->getFormat(), $event = new PreSerializeEvent($context, $data, $type)); - $type = $event->getType(); - } - } elseif ($context instanceof DeserializationContext) { - if (null !== $this->dispatcher && $this->dispatcher->hasListeners('serializer.pre_deserialize', $type['name'], $context->getFormat())) { - $this->dispatcher->dispatch('serializer.pre_deserialize', $type['name'], $context->getFormat(), $event = new PreDeserializeEvent($context, $data, $type)); - $type = $event->getType(); - $data = $event->getData(); - } - } - - // First, try whether a custom handler exists for the given type. This is done - // before loading metadata because the type name might not be a class, but - // could also simply be an artifical type. - if (null !== $handler = $this->handlerRegistry->getHandler($context->getDirection(), $type['name'], $context->getFormat())) { - $rs = call_user_func($handler, $visitor, $data, $type, $context); - $this->leaveScope($context, $data); - - return $rs; - } - - $exclusionStrategy = $context->getExclusionStrategy(); - - /** @var $metadata ClassMetadata */ - $metadata = $this->metadataFactory->getMetadataForClass($type['name']); - - if ($metadata->usingExpression && !$this->expressionExclusionStrategy) { - throw new ExpressionLanguageRequiredException("To use conditional exclude/expose in {$metadata->name} you must configure the expression language."); - } - - if ($context instanceof DeserializationContext && !empty($metadata->discriminatorMap) && $type['name'] === $metadata->discriminatorBaseClass) { - $metadata = $this->resolveMetadata($data, $metadata); - } - - if (null !== $exclusionStrategy && $exclusionStrategy->shouldSkipClass($metadata, $context)) { - $this->leaveScope($context, $data); - - return null; - } - - $context->pushClassMetadata($metadata); - - if ($context instanceof SerializationContext) { - foreach ($metadata->preSerializeMethods as $method) { - $method->invoke($data); - } - } - - $object = $data; - if ($context instanceof DeserializationContext) { - $object = $this->objectConstructor->construct($visitor, $metadata, $data, $type, $context); - } - - if (isset($metadata->handlerCallbacks[$context->getDirection()][$context->getFormat()])) { - $rs = $object->{$metadata->handlerCallbacks[$context->getDirection()][$context->getFormat()]}( - $visitor, - $context instanceof SerializationContext ? null : $data, - $context - ); - $this->afterVisitingObject($metadata, $object, $type, $context); - - return $context instanceof SerializationContext ? $rs : $object; - } - - $visitor->startVisitingObject($metadata, $object, $type, $context); - foreach ($metadata->propertyMetadata as $propertyMetadata) { - if (null !== $exclusionStrategy && $exclusionStrategy->shouldSkipProperty($propertyMetadata, $context)) { - continue; - } - - if (null !== $this->expressionExclusionStrategy && $this->expressionExclusionStrategy->shouldSkipProperty($propertyMetadata, $context)) { - continue; - } - - if ($context instanceof DeserializationContext && $propertyMetadata->readOnly) { - continue; - } - - $context->pushPropertyMetadata($propertyMetadata); - $visitor->visitProperty($propertyMetadata, $data, $context); - $context->popPropertyMetadata(); - } - - if ($context instanceof SerializationContext) { - $this->afterVisitingObject($metadata, $data, $type, $context); - - return $visitor->endVisitingObject($metadata, $data, $type, $context); - } - - $rs = $visitor->endVisitingObject($metadata, $data, $type, $context); - $this->afterVisitingObject($metadata, $rs, $type, $context); - - return $rs; - } - } - - private function resolveMetadata($data, ClassMetadata $metadata) - { - switch (true) { - case is_array($data) && isset($data[$metadata->discriminatorFieldName]): - $typeValue = (string)$data[$metadata->discriminatorFieldName]; - break; - - // Check XML attribute for discriminatorFieldName - case is_object($data) && $metadata->xmlDiscriminatorAttribute && isset($data[$metadata->discriminatorFieldName]): - $typeValue = (string)$data[$metadata->discriminatorFieldName]; - break; - - // Check XML element with namespace for discriminatorFieldName - case is_object($data) && !$metadata->xmlDiscriminatorAttribute && null !== $metadata->xmlDiscriminatorNamespace && isset($data->children($metadata->xmlDiscriminatorNamespace)->{$metadata->discriminatorFieldName}): - $typeValue = (string)$data->children($metadata->xmlDiscriminatorNamespace)->{$metadata->discriminatorFieldName}; - break; - - // Check XML element for discriminatorFieldName - case is_object($data) && isset($data->{$metadata->discriminatorFieldName}): - $typeValue = (string)$data->{$metadata->discriminatorFieldName}; - break; - - default: - throw new \LogicException(sprintf( - 'The discriminator field name "%s" for base-class "%s" was not found in input data.', - $metadata->discriminatorFieldName, - $metadata->name - )); - } - - if (!isset($metadata->discriminatorMap[$typeValue])) { - throw new \LogicException(sprintf( - 'The type value "%s" does not exist in the discriminator map of class "%s". Available types: %s', - $typeValue, - $metadata->name, - implode(', ', array_keys($metadata->discriminatorMap)) - )); - } - - return $this->metadataFactory->getMetadataForClass($metadata->discriminatorMap[$typeValue]); - } - - private function leaveScope(Context $context, $data) - { - if ($context instanceof SerializationContext) { - $context->stopVisiting($data); - } elseif ($context instanceof DeserializationContext) { - $context->decreaseDepth(); - } - } - - private function afterVisitingObject(ClassMetadata $metadata, $object, array $type, Context $context) - { - $this->leaveScope($context, $object); - $context->popClassMetadata(); - - if ($context instanceof SerializationContext) { - foreach ($metadata->postSerializeMethods as $method) { - $method->invoke($object); - } - - if (null !== $this->dispatcher && $this->dispatcher->hasListeners('serializer.post_serialize', $metadata->name, $context->getFormat())) { - $this->dispatcher->dispatch('serializer.post_serialize', $metadata->name, $context->getFormat(), new ObjectEvent($context, $object, $type)); - } - - return; - } - - foreach ($metadata->postDeserializeMethods as $method) { - $method->invoke($object); - } - - if (null !== $this->dispatcher && $this->dispatcher->hasListeners('serializer.post_deserialize', $metadata->name, $context->getFormat())) { - $this->dispatcher->dispatch('serializer.post_deserialize', $metadata->name, $context->getFormat(), new ObjectEvent($context, $object, $type)); - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/ArrayCollectionHandler.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/ArrayCollectionHandler.php deleted file mode 100644 index c938803..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/ArrayCollectionHandler.php +++ /dev/null @@ -1,94 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\Common\Collections\Collection; -use JMS\Serializer\Context; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\VisitorInterface; - -class ArrayCollectionHandler implements SubscribingHandlerInterface -{ - /** - * @var bool - */ - private $initializeExcluded = true; - - public function __construct($initializeExcluded = true) - { - $this->initializeExcluded = $initializeExcluded; - } - - public static function getSubscribingMethods() - { - $methods = array(); - $formats = array('json', 'xml', 'yml'); - $collectionTypes = array( - 'ArrayCollection', - 'Doctrine\Common\Collections\ArrayCollection', - 'Doctrine\ORM\PersistentCollection', - 'Doctrine\ODM\MongoDB\PersistentCollection', - 'Doctrine\ODM\PHPCR\PersistentCollection', - ); - - foreach ($collectionTypes as $type) { - foreach ($formats as $format) { - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'type' => $type, - 'format' => $format, - 'method' => 'serializeCollection', - ); - - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_DESERIALIZATION, - 'type' => $type, - 'format' => $format, - 'method' => 'deserializeCollection', - ); - } - } - - return $methods; - } - - public function serializeCollection(VisitorInterface $visitor, Collection $collection, array $type, Context $context) - { - // We change the base type, and pass through possible parameters. - $type['name'] = 'array'; - - if ($this->initializeExcluded === false) { - $exclusionStrategy = $context->getExclusionStrategy(); - if ($exclusionStrategy !== null && $exclusionStrategy->shouldSkipClass($context->getMetadataFactory()->getMetadataForClass(get_class($collection)), $context)) { - return $visitor->visitArray([], $type, $context); - } - } - - return $visitor->visitArray($collection->toArray(), $type, $context); - } - - public function deserializeCollection(VisitorInterface $visitor, $data, array $type, Context $context) - { - // See above. - $type['name'] = 'array'; - - return new ArrayCollection($visitor->visitArray($data, $type, $context)); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/ConstraintViolationHandler.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/ConstraintViolationHandler.php deleted file mode 100644 index c19e50e..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/ConstraintViolationHandler.php +++ /dev/null @@ -1,111 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -use JMS\Serializer\Context; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\JsonSerializationVisitor; -use JMS\Serializer\XmlSerializationVisitor; -use JMS\Serializer\YamlSerializationVisitor; -use Symfony\Component\Validator\ConstraintViolation; -use Symfony\Component\Validator\ConstraintViolationList; - -class ConstraintViolationHandler implements SubscribingHandlerInterface -{ - public static function getSubscribingMethods() - { - $methods = array(); - $formats = array('xml', 'json', 'yml'); - $types = array('Symfony\Component\Validator\ConstraintViolationList' => 'serializeList', 'Symfony\Component\Validator\ConstraintViolation' => 'serializeViolation'); - - foreach ($types as $type => $method) { - foreach ($formats as $format) { - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'type' => $type, - 'format' => $format, - 'method' => $method . 'To' . $format, - ); - } - } - - return $methods; - } - - public function serializeListToXml(XmlSerializationVisitor $visitor, ConstraintViolationList $list, array $type) - { - if (null === $visitor->document) { - $visitor->document = $visitor->createDocument(); - } - - foreach ($list as $violation) { - $this->serializeViolationToXml($visitor, $violation); - } - } - - public function serializeListToJson(JsonSerializationVisitor $visitor, ConstraintViolationList $list, array $type, Context $context) - { - return $visitor->visitArray(iterator_to_array($list), $type, $context); - } - - public function serializeListToYml(YamlSerializationVisitor $visitor, ConstraintViolationList $list, array $type, Context $context) - { - return $visitor->visitArray(iterator_to_array($list), $type, $context); - } - - public function serializeViolationToXml(XmlSerializationVisitor $visitor, ConstraintViolation $violation, array $type = null) - { - if (null === $visitor->document) { - $visitor->document = $visitor->createDocument(null, null, false); - $visitor->document->appendChild($violationNode = $visitor->document->createElement('violation')); - $visitor->setCurrentNode($violationNode); - } else { - $visitor->getCurrentNode()->appendChild( - $violationNode = $visitor->document->createElement('violation') - ); - } - - $violationNode->setAttribute('property_path', $violation->getPropertyPath()); - $violationNode->appendChild($messageNode = $visitor->document->createElement('message')); - - $messageNode->appendChild($visitor->document->createCDATASection($violation->getMessage())); - } - - public function serializeViolationToJson(JsonSerializationVisitor $visitor, ConstraintViolation $violation, array $type = null) - { - $data = array( - 'property_path' => $violation->getPropertyPath(), - 'message' => $violation->getMessage() - ); - - if (null === $visitor->getRoot()) { - $visitor->setRoot($data); - } - - return $data; - } - - public function serializeViolationToYml(YamlSerializationVisitor $visitor, ConstraintViolation $violation, array $type = null) - { - return array( - 'property_path' => $violation->getPropertyPath(), - 'message' => $violation->getMessage(), - ); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/DateHandler.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/DateHandler.php deleted file mode 100644 index c79c0e5..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/DateHandler.php +++ /dev/null @@ -1,276 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -use JMS\Serializer\Context; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\JsonDeserializationVisitor; -use JMS\Serializer\VisitorInterface; -use JMS\Serializer\XmlDeserializationVisitor; -use JMS\Serializer\XmlSerializationVisitor; - -class DateHandler implements SubscribingHandlerInterface -{ - private $defaultFormat; - private $defaultTimezone; - private $xmlCData; - - public static function getSubscribingMethods() - { - $methods = array(); - $deserializationTypes = array('DateTime', 'DateTimeImmutable', 'DateInterval'); - $serialisationTypes = array('DateTime', 'DateTimeImmutable', 'DateInterval'); - - foreach (array('json', 'xml', 'yml') as $format) { - - foreach ($deserializationTypes as $type) { - $methods[] = [ - 'type' => $type, - 'direction' => GraphNavigator::DIRECTION_DESERIALIZATION, - 'format' => $format, - ]; - } - - foreach ($serialisationTypes as $type) { - $methods[] = array( - 'type' => $type, - 'format' => $format, - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'method' => 'serialize' . $type, - ); - } - } - - return $methods; - } - - public function __construct($defaultFormat = \DateTime::ISO8601, $defaultTimezone = 'UTC', $xmlCData = true) - { - $this->defaultFormat = $defaultFormat; - $this->defaultTimezone = new \DateTimeZone($defaultTimezone); - $this->xmlCData = $xmlCData; - } - - private function serializeDateTimeInterface( - VisitorInterface $visitor, - \DateTimeInterface $date, - array $type, - Context $context - ) - { - if ($visitor instanceof XmlSerializationVisitor && false === $this->xmlCData) { - return $visitor->visitSimpleString($date->format($this->getFormat($type)), $type, $context); - } - - $format = $this->getFormat($type); - if ('U' === $format) { - return $visitor->visitInteger($date->format($format), $type, $context); - } - - return $visitor->visitString($date->format($this->getFormat($type)), $type, $context); - } - - public function serializeDateTime(VisitorInterface $visitor, \DateTime $date, array $type, Context $context) - { - return $this->serializeDateTimeInterface($visitor, $date, $type, $context); - } - - public function serializeDateTimeImmutable( - VisitorInterface $visitor, - \DateTimeImmutable $date, - array $type, - Context $context - ) - { - return $this->serializeDateTimeInterface($visitor, $date, $type, $context); - } - - public function serializeDateInterval(VisitorInterface $visitor, \DateInterval $date, array $type, Context $context) - { - $iso8601DateIntervalString = $this->format($date); - - if ($visitor instanceof XmlSerializationVisitor && false === $this->xmlCData) { - return $visitor->visitSimpleString($iso8601DateIntervalString, $type, $context); - } - - return $visitor->visitString($iso8601DateIntervalString, $type, $context); - } - - private function isDataXmlNull($data) - { - $attributes = $data->attributes('xsi', true); - return isset($attributes['nil'][0]) && (string)$attributes['nil'][0] === 'true'; - } - - public function deserializeDateTimeFromXml(XmlDeserializationVisitor $visitor, $data, array $type) - { - if ($this->isDataXmlNull($data)) { - return null; - } - - return $this->parseDateTime($data, $type); - } - - public function deserializeDateTimeImmutableFromXml(XmlDeserializationVisitor $visitor, $data, array $type) - { - if ($this->isDataXmlNull($data)) { - return null; - } - - return $this->parseDateTime($data, $type, true); - } - - public function deserializeDateIntervalFromXml(XmlDeserializationVisitor $visitor, $data, array $type) - { - if ($this->isDataXmlNull($data)) { - return null; - } - - return $this->parseDateInterval($data); - } - - public function deserializeDateTimeFromJson(JsonDeserializationVisitor $visitor, $data, array $type) - { - if (null === $data) { - return null; - } - - return $this->parseDateTime($data, $type); - } - - public function deserializeDateTimeImmutableFromJson(JsonDeserializationVisitor $visitor, $data, array $type) - { - if (null === $data) { - return null; - } - - return $this->parseDateTime($data, $type, true); - } - - public function deserializeDateIntervalFromJson(JsonDeserializationVisitor $visitor, $data, array $type) - { - if (null === $data) { - return null; - } - - return $this->parseDateInterval($data); - } - - private function parseDateTime($data, array $type, $immutable = false) - { - $timezone = !empty($type['params'][1]) ? new \DateTimeZone($type['params'][1]) : $this->defaultTimezone; - $format = $this->getDeserializationFormat($type); - - if ($immutable) { - $datetime = \DateTimeImmutable::createFromFormat($format, (string)$data, $timezone); - } else { - $datetime = \DateTime::createFromFormat($format, (string)$data, $timezone); - } - - if (false === $datetime) { - throw new RuntimeException(sprintf('Invalid datetime "%s", expected format %s.', $data, $format)); - } - - if ($format === 'U') { - $datetime = $datetime->setTimezone($timezone); - } - - return $datetime; - } - - private function parseDateInterval($data) - { - $dateInterval = null; - try { - $dateInterval = new \DateInterval($data); - } catch (\Exception $e) { - throw new RuntimeException(sprintf('Invalid dateinterval "%s", expected ISO 8601 format', $data), null, $e); - } - - return $dateInterval; - } - - /** - * @param array $type - * @return string - */ - private function getDeserializationFormat(array $type) - { - if (isset($type['params'][2])) { - return $type['params'][2]; - } - if (isset($type['params'][0])) { - return $type['params'][0]; - } - return $this->defaultFormat; - } - - /** - * @return string - * @param array $type - */ - private function getFormat(array $type) - { - return isset($type['params'][0]) ? $type['params'][0] : $this->defaultFormat; - } - - /** - * @param \DateInterval $dateInterval - * @return string - */ - public function format(\DateInterval $dateInterval) - { - $format = 'P'; - - if (0 < $dateInterval->y) { - $format .= $dateInterval->y . 'Y'; - } - - if (0 < $dateInterval->m) { - $format .= $dateInterval->m . 'M'; - } - - if (0 < $dateInterval->d) { - $format .= $dateInterval->d . 'D'; - } - - if (0 < $dateInterval->h || 0 < $dateInterval->i || 0 < $dateInterval->s) { - $format .= 'T'; - } - - if (0 < $dateInterval->h) { - $format .= $dateInterval->h . 'H'; - } - - if (0 < $dateInterval->i) { - $format .= $dateInterval->i . 'M'; - } - - if (0 < $dateInterval->s) { - $format .= $dateInterval->s . 'S'; - } - - if ($format === 'P') { - $format = 'P0DT0S'; - } - - return $format; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/FormErrorHandler.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/FormErrorHandler.php deleted file mode 100644 index d0834eb..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/FormErrorHandler.php +++ /dev/null @@ -1,167 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\JsonSerializationVisitor; -use JMS\Serializer\VisitorInterface; -use JMS\Serializer\XmlSerializationVisitor; -use JMS\Serializer\YamlSerializationVisitor; -use Symfony\Component\Form\Form; -use Symfony\Component\Form\FormError; -use Symfony\Component\Translation\TranslatorInterface; - -class FormErrorHandler implements SubscribingHandlerInterface -{ - private $translator; - - private $translationDomain; - - public static function getSubscribingMethods() - { - $methods = array(); - foreach (array('xml', 'json', 'yml') as $format) { - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'type' => 'Symfony\Component\Form\Form', - 'format' => $format, - ); - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'type' => 'Symfony\Component\Form\FormError', - 'format' => $format, - ); - } - - return $methods; - } - - public function __construct(TranslatorInterface $translator = null, $translationDomain = 'validators') - { - $this->translator = $translator; - $this->translationDomain = $translationDomain; - } - - public function serializeFormToXml(XmlSerializationVisitor $visitor, Form $form, array $type) - { - if (null === $visitor->document) { - $visitor->document = $visitor->createDocument(null, null, false); - $visitor->document->appendChild($formNode = $visitor->document->createElement('form')); - $visitor->setCurrentNode($formNode); - } else { - $visitor->getCurrentNode()->appendChild( - $formNode = $visitor->document->createElement('form') - ); - } - - $formNode->setAttribute('name', $form->getName()); - - $formNode->appendChild($errorsNode = $visitor->document->createElement('errors')); - foreach ($form->getErrors() as $error) { - $errorNode = $visitor->document->createElement('entry'); - $errorNode->appendChild($this->serializeFormErrorToXml($visitor, $error, array())); - $errorsNode->appendChild($errorNode); - } - - foreach ($form->all() as $child) { - if ($child instanceof Form) { - if (null !== $node = $this->serializeFormToXml($visitor, $child, array())) { - $formNode->appendChild($node); - } - } - } - - return $formNode; - } - - public function serializeFormToJson(JsonSerializationVisitor $visitor, Form $form, array $type) - { - return $this->convertFormToArray($visitor, $form); - } - - public function serializeFormToYml(YamlSerializationVisitor $visitor, Form $form, array $type) - { - return $this->convertFormToArray($visitor, $form); - } - - public function serializeFormErrorToXml(XmlSerializationVisitor $visitor, FormError $formError, array $type) - { - if (null === $visitor->document) { - $visitor->document = $visitor->createDocument(null, null, true); - } - - return $visitor->document->createCDATASection($this->getErrorMessage($formError)); - } - - public function serializeFormErrorToJson(JsonSerializationVisitor $visitor, FormError $formError, array $type) - { - return $this->getErrorMessage($formError); - } - - public function serializeFormErrorToYml(YamlSerializationVisitor $visitor, FormError $formError, array $type) - { - return $this->getErrorMessage($formError); - } - - private function getErrorMessage(FormError $error) - { - - if ($this->translator === null){ - return $error->getMessage(); - } - - if (null !== $error->getMessagePluralization()) { - return $this->translator->transChoice($error->getMessageTemplate(), $error->getMessagePluralization(), $error->getMessageParameters(), $this->translationDomain); - } - - return $this->translator->trans($error->getMessageTemplate(), $error->getMessageParameters(), $this->translationDomain); - } - - private function convertFormToArray(VisitorInterface $visitor, Form $data) - { - $isRoot = null === $visitor->getRoot(); - - $form = new \ArrayObject(); - $errors = array(); - foreach ($data->getErrors() as $error) { - $errors[] = $this->getErrorMessage($error); - } - - if ($errors) { - $form['errors'] = $errors; - } - - $children = array(); - foreach ($data->all() as $child) { - if ($child instanceof Form) { - $children[$child->getName()] = $this->convertFormToArray($visitor, $child); - } - } - - if ($children) { - $form['children'] = $children; - } - - if ($isRoot) { - $visitor->setRoot($form); - } - - return $form; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/HandlerRegistry.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/HandlerRegistry.php deleted file mode 100644 index a8524e3..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/HandlerRegistry.php +++ /dev/null @@ -1,88 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -use JMS\Serializer\Exception\LogicException; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\GraphNavigator; - -class HandlerRegistry implements HandlerRegistryInterface -{ - protected $handlers; - - public static function getDefaultMethod($direction, $type, $format) - { - if (false !== $pos = strrpos($type, '\\')) { - $type = substr($type, $pos + 1); - } - - switch ($direction) { - case GraphNavigator::DIRECTION_DESERIALIZATION: - return 'deserialize' . $type . 'From' . $format; - - case GraphNavigator::DIRECTION_SERIALIZATION: - return 'serialize' . $type . 'To' . $format; - - default: - throw new LogicException(sprintf('The direction %s does not exist; see GraphNavigator::DIRECTION_??? constants.', json_encode($direction))); - } - } - - public function __construct(array $handlers = array()) - { - $this->handlers = $handlers; - } - - public function registerSubscribingHandler(SubscribingHandlerInterface $handler) - { - foreach ($handler->getSubscribingMethods() as $methodData) { - if (!isset($methodData['type'], $methodData['format'])) { - throw new RuntimeException(sprintf('For each subscribing method a "type" and "format" attribute must be given, but only got "%s" for %s.', implode('" and "', array_keys($methodData)), get_class($handler))); - } - - $directions = array(GraphNavigator::DIRECTION_DESERIALIZATION, GraphNavigator::DIRECTION_SERIALIZATION); - if (isset($methodData['direction'])) { - $directions = array($methodData['direction']); - } - - foreach ($directions as $direction) { - $method = isset($methodData['method']) ? $methodData['method'] : self::getDefaultMethod($direction, $methodData['type'], $methodData['format']); - $this->registerHandler($direction, $methodData['type'], $methodData['format'], array($handler, $method)); - } - } - } - - public function registerHandler($direction, $typeName, $format, $handler) - { - if (is_string($direction)) { - $direction = GraphNavigator::parseDirection($direction); - } - - $this->handlers[$direction][$typeName][$format] = $handler; - } - - public function getHandler($direction, $typeName, $format) - { - if (!isset($this->handlers[$direction][$typeName][$format])) { - return null; - } - - return $this->handlers[$direction][$typeName][$format]; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/HandlerRegistryInterface.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/HandlerRegistryInterface.php deleted file mode 100644 index bd869f9..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/HandlerRegistryInterface.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -/** - * Handler Registry Interface. - * - * @author Johannes M. Schmitt - */ -interface HandlerRegistryInterface -{ - /** - * @param SubscribingHandlerInterface $handler - * - * @return void - */ - public function registerSubscribingHandler(SubscribingHandlerInterface $handler); - - /** - * Registers a handler in the registry. - * - * @param integer $direction one of the GraphNavigator::DIRECTION_??? constants - * @param string $typeName - * @param string $format - * @param callable $handler function(VisitorInterface, mixed $data, array $type): mixed - * - * @return void - */ - public function registerHandler($direction, $typeName, $format, $handler); - - /** - * @param integer $direction one of the GraphNavigator::DIRECTION_??? constants - * @param string $typeName - * @param string $format - * - * @return callable|null - */ - public function getHandler($direction, $typeName, $format); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/LazyHandlerRegistry.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/LazyHandlerRegistry.php deleted file mode 100644 index d2be0f3..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/LazyHandlerRegistry.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -use Psr\Container\ContainerInterface as PsrContainerInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; - -class LazyHandlerRegistry extends HandlerRegistry -{ - private $container; - private $initializedHandlers = array(); - - public function __construct($container, array $handlers = array()) - { - if (!$container instanceof PsrContainerInterface && !$container instanceof ContainerInterface) { - throw new \InvalidArgumentException(sprintf('The container must be an instance of %s or %s (%s given).', PsrContainerInterface::class, ContainerInterface::class, is_object($container) ? get_class($container) : gettype($container))); - } - - parent::__construct($handlers); - $this->container = $container; - } - - public function registerHandler($direction, $typeName, $format, $handler) - { - parent::registerHandler($direction, $typeName, $format, $handler); - unset($this->initializedHandlers[$direction][$typeName][$format]); - } - - public function getHandler($direction, $typeName, $format) - { - if (isset($this->initializedHandlers[$direction][$typeName][$format])) { - return $this->initializedHandlers[$direction][$typeName][$format]; - } - - if (!isset($this->handlers[$direction][$typeName][$format])) { - return null; - } - - $handler = $this->handlers[$direction][$typeName][$format]; - if (is_array($handler) && is_string($handler[0]) && $this->container->has($handler[0])) { - $handler[0] = $this->container->get($handler[0]); - } - - return $this->initializedHandlers[$direction][$typeName][$format] = $handler; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/PhpCollectionHandler.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/PhpCollectionHandler.php deleted file mode 100644 index dbe6c41..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/PhpCollectionHandler.php +++ /dev/null @@ -1,88 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -use JMS\Serializer\Context; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\VisitorInterface; -use PhpCollection\Map; -use PhpCollection\Sequence; - -class PhpCollectionHandler implements SubscribingHandlerInterface -{ - public static function getSubscribingMethods() - { - $methods = array(); - $formats = array('json', 'xml', 'yml'); - $collectionTypes = array( - 'PhpCollection\Sequence' => 'Sequence', - 'PhpCollection\Map' => 'Map', - ); - - foreach ($collectionTypes as $type => $shortName) { - foreach ($formats as $format) { - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'type' => $type, - 'format' => $format, - 'method' => 'serialize' . $shortName, - ); - - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_DESERIALIZATION, - 'type' => $type, - 'format' => $format, - 'method' => 'deserialize' . $shortName, - ); - } - } - - return $methods; - } - - public function serializeMap(VisitorInterface $visitor, Map $map, array $type, Context $context) - { - $type['name'] = 'array'; - - return $visitor->visitArray(iterator_to_array($map), $type, $context); - } - - public function deserializeMap(VisitorInterface $visitor, $data, array $type, Context $context) - { - $type['name'] = 'array'; - - return new Map($visitor->visitArray($data, $type, $context)); - } - - public function serializeSequence(VisitorInterface $visitor, Sequence $sequence, array $type, Context $context) - { - // We change the base type, and pass through possible parameters. - $type['name'] = 'array'; - - return $visitor->visitArray($sequence->all(), $type, $context); - } - - public function deserializeSequence(VisitorInterface $visitor, $data, array $type, Context $context) - { - // See above. - $type['name'] = 'array'; - - return new Sequence($visitor->visitArray($data, $type, $context)); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/PropelCollectionHandler.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/PropelCollectionHandler.php deleted file mode 100644 index f7cf3ef..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/PropelCollectionHandler.php +++ /dev/null @@ -1,79 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -use JMS\Serializer\Context; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\VisitorInterface; -use PropelCollection; - -class PropelCollectionHandler implements SubscribingHandlerInterface -{ - public static function getSubscribingMethods() - { - $methods = array(); - $formats = array('json', 'xml', 'yml'); - //Note: issue when handling inheritance - $collectionTypes = array( - 'PropelCollection', - 'PropelObjectCollection', - 'PropelArrayCollection', - 'PropelOnDemandCollection' - ); - - foreach ($collectionTypes as $type) { - foreach ($formats as $format) { - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'type' => $type, - 'format' => $format, - 'method' => 'serializeCollection', - ); - - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_DESERIALIZATION, - 'type' => $type, - 'format' => $format, - 'method' => 'deserializeCollection', - ); - } - } - - return $methods; - } - - public function serializeCollection(VisitorInterface $visitor, PropelCollection $collection, array $type, Context $context) - { - // We change the base type, and pass through possible parameters. - $type['name'] = 'array'; - - return $visitor->visitArray($collection->getData(), $type, $context); - } - - public function deserializeCollection(VisitorInterface $visitor, $data, array $type, Context $context) - { - // See above. Set parameter type to PropelCollection or PropelCollection - $type['name'] = 'array'; - - $collection = new PropelCollection(); - $collection->setData($visitor->visitArray($data, $type, $context)); - - return $collection; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/StdClassHandler.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/StdClassHandler.php deleted file mode 100644 index 2e1ad5b..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/StdClassHandler.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -use JMS\Serializer\Context; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Metadata\StaticPropertyMetadata; -use JMS\Serializer\VisitorInterface; - -/** - * @author Asmir Mustafic - */ -class StdClassHandler implements SubscribingHandlerInterface -{ - public static function getSubscribingMethods() - { - $methods = array(); - $formats = array('json', 'xml', 'yml'); - - foreach ($formats as $format) { - $methods[] = array( - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'type' => 'stdClass', - 'format' => $format, - 'method' => 'serializeStdClass', - ); - } - - return $methods; - } - - public function serializeStdClass(VisitorInterface $visitor, \stdClass $stdClass, array $type, Context $context) - { - $classMetadata = $context->getMetadataFactory()->getMetadataForClass('stdClass'); - $visitor->startVisitingObject($classMetadata, $stdClass, array('name' => 'stdClass'), $context); - - foreach ((array)$stdClass as $name => $value) { - $metadata = new StaticPropertyMetadata('stdClass', $name, $value); - $visitor->visitProperty($metadata, $value, $context); - } - - return $visitor->endVisitingObject($classMetadata, $stdClass, array('name' => 'stdClass'), $context); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Handler/SubscribingHandlerInterface.php b/vendor/jms/serializer/src/JMS/Serializer/Handler/SubscribingHandlerInterface.php deleted file mode 100644 index 5fd67e2..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Handler/SubscribingHandlerInterface.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Handler; - -interface SubscribingHandlerInterface -{ - /** - * Return format: - * - * array( - * array( - * 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - * 'format' => 'json', - * 'type' => 'DateTime', - * 'method' => 'serializeDateTimeToJson', - * ), - * ) - * - * The direction and method keys can be omitted. - * - * @return array - */ - public static function getSubscribingMethods(); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/JsonDeserializationVisitor.php b/vendor/jms/serializer/src/JMS/Serializer/JsonDeserializationVisitor.php deleted file mode 100644 index be763ae..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/JsonDeserializationVisitor.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Exception\RuntimeException; - -class JsonDeserializationVisitor extends GenericDeserializationVisitor -{ - protected function decode($str) - { - $decoded = json_decode($str, true); - - switch (json_last_error()) { - case JSON_ERROR_NONE: - return $decoded; - - case JSON_ERROR_DEPTH: - throw new RuntimeException('Could not decode JSON, maximum stack depth exceeded.'); - - case JSON_ERROR_STATE_MISMATCH: - throw new RuntimeException('Could not decode JSON, underflow or the nodes mismatch.'); - - case JSON_ERROR_CTRL_CHAR: - throw new RuntimeException('Could not decode JSON, unexpected control character found.'); - - case JSON_ERROR_SYNTAX: - throw new RuntimeException('Could not decode JSON, syntax error - malformed JSON.'); - - case JSON_ERROR_UTF8: - throw new RuntimeException('Could not decode JSON, malformed UTF-8 characters (incorrectly encoded?)'); - - default: - throw new RuntimeException('Could not decode JSON.'); - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/JsonSerializationVisitor.php b/vendor/jms/serializer/src/JMS/Serializer/JsonSerializationVisitor.php deleted file mode 100644 index f9d4ae2..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/JsonSerializationVisitor.php +++ /dev/null @@ -1,261 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Exception\InvalidArgumentException; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Naming\AdvancedNamingStrategyInterface; - -class JsonSerializationVisitor extends GenericSerializationVisitor -{ - private $options = 0; - - private $navigator; - private $root; - private $dataStack; - private $data; - - public function setNavigator(GraphNavigator $navigator) - { - $this->navigator = $navigator; - $this->root = null; - $this->dataStack = new \SplStack; - } - - /** - * @return GraphNavigator - */ - public function getNavigator() - { - return $this->navigator; - } - - public function visitNull($data, array $type, Context $context) - { - return null; - } - - public function visitString($data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = $data; - } - - return (string)$data; - } - - public function visitBoolean($data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = $data; - } - - return (boolean)$data; - } - - public function visitInteger($data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = $data; - } - - return (int)$data; - } - - public function visitDouble($data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = $data; - } - - return (float)$data; - } - - /** - * @param array $data - * @param array $type - * @param Context $context - * @return mixed - */ - public function visitArray($data, array $type, Context $context) - { - $this->dataStack->push($data); - - $isHash = isset($type['params'][1]); - - if (null === $this->root) { - $this->root = $isHash ? new \ArrayObject() : array(); - $rs = &$this->root; - } else { - $rs = $isHash ? new \ArrayObject() : array(); - } - - $isList = isset($type['params'][0]) && !isset($type['params'][1]); - - foreach ($data as $k => $v) { - $v = $this->navigator->accept($v, $this->getElementType($type), $context); - - if (null === $v && $context->shouldSerializeNull() !== true) { - continue; - } - - if ($isList) { - $rs[] = $v; - } else { - $rs[$k] = $v; - } - } - - $this->dataStack->pop(); - return $rs; - } - - public function startVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - if (null === $this->root) { - $this->root = new \stdClass; - } - - $this->dataStack->push($this->data); - $this->data = array(); - } - - public function endVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - $rs = $this->data; - $this->data = $this->dataStack->pop(); - - // Force JSON output to "{}" instead of "[]" if it contains either no properties or all properties are null. - if (empty($rs)) { - $rs = new \ArrayObject(); - } - - if ($this->root instanceof \stdClass && 0 === $this->dataStack->count()) { - $this->root = $rs; - } - - return $rs; - } - - public function visitProperty(PropertyMetadata $metadata, $data, Context $context) - { - $v = $this->accessor->getValue($data, $metadata); - - $v = $this->navigator->accept($v, $metadata->type, $context); - if ((null === $v && $context->shouldSerializeNull() !== true) - || (true === $metadata->skipWhenEmpty && ($v instanceof \ArrayObject || is_array($v)) && 0 === count($v)) - ) { - return; - } - - if ($this->namingStrategy instanceof AdvancedNamingStrategyInterface) { - $k = $this->namingStrategy->getPropertyName($metadata, $context); - } else { - $k = $this->namingStrategy->translateName($metadata); - } - - if ($metadata->inline) { - if (is_array($v) || ($v instanceof \ArrayObject)) { - $this->data = array_merge($this->data, (array) $v); - } - } else { - $this->data[$k] = $v; - } - } - - /** - * Allows you to add additional data to the current object/root element. - * @deprecated use setData instead - * @param string $key - * @param integer|float|boolean|string|array|null $value This value must either be a regular scalar, or an array. - * It must not contain any objects anymore. - */ - public function addData($key, $value) - { - if (isset($this->data[$key])) { - throw new InvalidArgumentException(sprintf('There is already data for "%s".', $key)); - } - - $this->data[$key] = $value; - } - - /** - * Checks if some data key exists. - * - * @param string $key - * @return boolean - */ - public function hasData($key) - { - return isset($this->data[$key]); - } - - /** - * Allows you to replace existing data on the current object/root element. - * - * @param string $key - * @param integer|float|boolean|string|array|null $value This value must either be a regular scalar, or an array. - * It must not contain any objects anymore. - */ - public function setData($key, $value) - { - $this->data[$key] = $value; - } - - public function getRoot() - { - return $this->root; - } - - /** - * @param array|\ArrayObject $data the passed data must be understood by whatever encoding function is applied later. - */ - public function setRoot($data) - { - $this->root = $data; - } - - - public function getResult() - { - $result = @json_encode($this->getRoot(), $this->options); - - switch (json_last_error()) { - case JSON_ERROR_NONE: - return $result; - - case JSON_ERROR_UTF8: - throw new \RuntimeException('Your data could not be encoded because it contains invalid UTF8 characters.'); - - default: - throw new \RuntimeException(sprintf('An error occurred while encoding your data (error code %d).', json_last_error())); - } - } - - public function getOptions() - { - return $this->options; - } - - public function setOptions($options) - { - $this->options = (integer)$options; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/ClassMetadata.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/ClassMetadata.php deleted file mode 100644 index 40f4966..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/ClassMetadata.php +++ /dev/null @@ -1,347 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata; - -use JMS\Serializer\Exception\InvalidArgumentException; -use Metadata\MergeableClassMetadata; -use Metadata\MergeableInterface; -use Metadata\MethodMetadata; -use Metadata\PropertyMetadata as BasePropertyMetadata; - -/** - * Class Metadata used to customize the serialization process. - * - * @author Johannes M. Schmitt - */ -class ClassMetadata extends MergeableClassMetadata -{ - const ACCESSOR_ORDER_UNDEFINED = 'undefined'; - const ACCESSOR_ORDER_ALPHABETICAL = 'alphabetical'; - const ACCESSOR_ORDER_CUSTOM = 'custom'; - - /** @var \ReflectionMethod[] */ - public $preSerializeMethods = array(); - - /** @var \ReflectionMethod[] */ - public $postSerializeMethods = array(); - - /** @var \ReflectionMethod[] */ - public $postDeserializeMethods = array(); - - public $xmlRootName; - public $xmlRootNamespace; - public $xmlNamespaces = array(); - public $accessorOrder; - public $customOrder; - public $usingExpression = false; - public $handlerCallbacks = array(); - - public $discriminatorDisabled = false; - public $discriminatorBaseClass; - public $discriminatorFieldName; - public $discriminatorValue; - public $discriminatorMap = array(); - public $discriminatorGroups = array(); - - public $xmlDiscriminatorAttribute = false; - public $xmlDiscriminatorCData = true; - public $xmlDiscriminatorNamespace; - - public function setDiscriminator($fieldName, array $map, array $groups = array()) - { - if (empty($fieldName)) { - throw new \InvalidArgumentException('The $fieldName cannot be empty.'); - } - - if (empty($map)) { - throw new \InvalidArgumentException('The discriminator map cannot be empty.'); - } - - $this->discriminatorBaseClass = $this->name; - $this->discriminatorFieldName = $fieldName; - $this->discriminatorMap = $map; - $this->discriminatorGroups = $groups; - } - - /** - * Sets the order of properties in the class. - * - * @param string $order - * @param array $customOrder - * - * @throws InvalidArgumentException When the accessor order is not valid - * @throws InvalidArgumentException When the custom order is not valid - */ - public function setAccessorOrder($order, array $customOrder = array()) - { - if (!in_array($order, array(self::ACCESSOR_ORDER_UNDEFINED, self::ACCESSOR_ORDER_ALPHABETICAL, self::ACCESSOR_ORDER_CUSTOM), true)) { - throw new InvalidArgumentException(sprintf('The accessor order "%s" is invalid.', $order)); - } - - foreach ($customOrder as $name) { - if (!is_string($name)) { - throw new InvalidArgumentException(sprintf('$customOrder is expected to be a list of strings, but got element of value %s.', json_encode($name))); - } - } - - $this->accessorOrder = $order; - $this->customOrder = array_flip($customOrder); - $this->sortProperties(); - } - - public function addPropertyMetadata(BasePropertyMetadata $metadata) - { - parent::addPropertyMetadata($metadata); - $this->sortProperties(); - if ($metadata instanceof PropertyMetadata && $metadata->excludeIf) { - $this->usingExpression = true; - } - } - - public function addPreSerializeMethod(MethodMetadata $method) - { - $this->preSerializeMethods[] = $method; - } - - public function addPostSerializeMethod(MethodMetadata $method) - { - $this->postSerializeMethods[] = $method; - } - - public function addPostDeserializeMethod(MethodMetadata $method) - { - $this->postDeserializeMethods[] = $method; - } - - /** - * @param integer $direction - * @param string|integer $format - * @param string $methodName - */ - public function addHandlerCallback($direction, $format, $methodName) - { - $this->handlerCallbacks[$direction][$format] = $methodName; - } - - public function merge(MergeableInterface $object) - { - if (!$object instanceof ClassMetadata) { - throw new InvalidArgumentException('$object must be an instance of ClassMetadata.'); - } - parent::merge($object); - - $this->preSerializeMethods = array_merge($this->preSerializeMethods, $object->preSerializeMethods); - $this->postSerializeMethods = array_merge($this->postSerializeMethods, $object->postSerializeMethods); - $this->postDeserializeMethods = array_merge($this->postDeserializeMethods, $object->postDeserializeMethods); - $this->xmlRootName = $object->xmlRootName; - $this->xmlRootNamespace = $object->xmlRootNamespace; - $this->xmlNamespaces = array_merge($this->xmlNamespaces, $object->xmlNamespaces); - - // Handler methods are taken from the outer class completely. - $this->handlerCallbacks = $object->handlerCallbacks; - - if ($object->accessorOrder) { - $this->accessorOrder = $object->accessorOrder; - $this->customOrder = $object->customOrder; - } - - if ($object->discriminatorFieldName && $this->discriminatorFieldName) { - throw new \LogicException(sprintf( - 'The discriminator of class "%s" would overwrite the discriminator of the parent class "%s". Please define all possible sub-classes in the discriminator of %s.', - $object->name, - $this->discriminatorBaseClass, - $this->discriminatorBaseClass - )); - } elseif (!$this->discriminatorFieldName && $object->discriminatorFieldName) { - $this->discriminatorFieldName = $object->discriminatorFieldName; - $this->discriminatorMap = $object->discriminatorMap; - } - - if ($object->discriminatorDisabled !== null) { - $this->discriminatorDisabled = $object->discriminatorDisabled; - } - - if ($object->discriminatorMap) { - $this->discriminatorFieldName = $object->discriminatorFieldName; - $this->discriminatorMap = $object->discriminatorMap; - $this->discriminatorBaseClass = $object->discriminatorBaseClass; - } - - if ($this->discriminatorMap && !$this->reflection->isAbstract()) { - if (false === $typeValue = array_search($this->name, $this->discriminatorMap, true)) { - throw new \LogicException(sprintf( - 'The sub-class "%s" is not listed in the discriminator of the base class "%s".', - $this->name, - $this->discriminatorBaseClass - )); - } - - $this->discriminatorValue = $typeValue; - - if (isset($this->propertyMetadata[$this->discriminatorFieldName]) - && !$this->propertyMetadata[$this->discriminatorFieldName] instanceof StaticPropertyMetadata - ) { - throw new \LogicException(sprintf( - 'The discriminator field name "%s" of the base-class "%s" conflicts with a regular property of the sub-class "%s".', - $this->discriminatorFieldName, - $this->discriminatorBaseClass, - $this->name - )); - } - - $discriminatorProperty = new StaticPropertyMetadata( - $this->name, - $this->discriminatorFieldName, - $typeValue, - $this->discriminatorGroups - ); - $discriminatorProperty->serializedName = $this->discriminatorFieldName; - $discriminatorProperty->xmlAttribute = $this->xmlDiscriminatorAttribute; - $discriminatorProperty->xmlElementCData = $this->xmlDiscriminatorCData; - $discriminatorProperty->xmlNamespace = $this->xmlDiscriminatorNamespace; - $this->propertyMetadata[$this->discriminatorFieldName] = $discriminatorProperty; - } - - $this->sortProperties(); - } - - public function registerNamespace($uri, $prefix = null) - { - if (!is_string($uri)) { - throw new InvalidArgumentException(sprintf('$uri is expected to be a strings, but got value %s.', json_encode($uri))); - } - - if ($prefix !== null) { - if (!is_string($prefix)) { - throw new InvalidArgumentException(sprintf('$prefix is expected to be a strings, but got value %s.', json_encode($prefix))); - } - } else { - $prefix = ""; - } - - $this->xmlNamespaces[$prefix] = $uri; - - } - - public function serialize() - { - $this->sortProperties(); - - return serialize(array( - $this->preSerializeMethods, - $this->postSerializeMethods, - $this->postDeserializeMethods, - $this->xmlRootName, - $this->xmlRootNamespace, - $this->xmlNamespaces, - $this->accessorOrder, - $this->customOrder, - $this->handlerCallbacks, - $this->discriminatorDisabled, - $this->discriminatorBaseClass, - $this->discriminatorFieldName, - $this->discriminatorValue, - $this->discriminatorMap, - $this->discriminatorGroups, - parent::serialize(), - 'discriminatorGroups' => $this->discriminatorGroups, - 'xmlDiscriminatorAttribute' => $this->xmlDiscriminatorAttribute, - 'xmlDiscriminatorCData' => $this->xmlDiscriminatorCData, - 'usingExpression' => $this->usingExpression, - 'xmlDiscriminatorNamespace' => $this->xmlDiscriminatorNamespace, - )); - } - - public function unserialize($str) - { - $unserialized = unserialize($str); - - list( - $this->preSerializeMethods, - $this->postSerializeMethods, - $this->postDeserializeMethods, - $this->xmlRootName, - $this->xmlRootNamespace, - $this->xmlNamespaces, - $this->accessorOrder, - $this->customOrder, - $this->handlerCallbacks, - $this->discriminatorDisabled, - $this->discriminatorBaseClass, - $this->discriminatorFieldName, - $this->discriminatorValue, - $this->discriminatorMap, - $this->discriminatorGroups, - $parentStr - ) = $unserialized; - - if (isset($unserialized['discriminatorGroups'])) { - $this->discriminatorGroups = $unserialized['discriminatorGroups']; - } - if (isset($unserialized['usingExpression'])) { - $this->usingExpression = $unserialized['usingExpression']; - } - - if (isset($unserialized['xmlDiscriminatorAttribute'])) { - $this->xmlDiscriminatorAttribute = $unserialized['xmlDiscriminatorAttribute']; - } - - if (isset($unserialized['xmlDiscriminatorNamespace'])) { - $this->xmlDiscriminatorNamespace = $unserialized['xmlDiscriminatorNamespace']; - } - - if (isset($unserialized['xmlDiscriminatorCData'])) { - $this->xmlDiscriminatorCData = $unserialized['xmlDiscriminatorCData']; - } - - parent::unserialize($parentStr); - } - - private function sortProperties() - { - switch ($this->accessorOrder) { - case self::ACCESSOR_ORDER_ALPHABETICAL: - ksort($this->propertyMetadata); - break; - - case self::ACCESSOR_ORDER_CUSTOM: - $order = $this->customOrder; - $currentSorting = $this->propertyMetadata ? array_combine(array_keys($this->propertyMetadata), range(1, count($this->propertyMetadata))) : []; - uksort($this->propertyMetadata, function ($a, $b) use ($order, $currentSorting) { - $existsA = isset($order[$a]); - $existsB = isset($order[$b]); - - if (!$existsA && !$existsB) { - return $currentSorting[$a] - $currentSorting[$b]; - } - - if (!$existsA) { - return 1; - } - - if (!$existsB) { - return -1; - } - - return $order[$a] < $order[$b] ? -1 : 1; - }); - break; - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/AbstractDoctrineTypeDriver.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/AbstractDoctrineTypeDriver.php deleted file mode 100644 index 455074d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/AbstractDoctrineTypeDriver.php +++ /dev/null @@ -1,174 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata\Driver; - -use Doctrine\Common\Persistence\ManagerRegistry; -use Doctrine\Common\Persistence\Mapping\ClassMetadata as DoctrineClassMetadata; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\ExpressionPropertyMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Metadata\StaticPropertyMetadata; -use JMS\Serializer\Metadata\VirtualPropertyMetadata; -use Metadata\Driver\DriverInterface; - -/** - * This class decorates any other driver. If the inner driver does not provide a - * a property type, the decorator will guess based on Doctrine 2 metadata. - */ -abstract class AbstractDoctrineTypeDriver implements DriverInterface -{ - /** - * Map of doctrine 2 field types to JMS\Serializer types - * @var array - */ - protected $fieldMapping = array( - 'string' => 'string', - 'text' => 'string', - 'blob' => 'string', - 'guid' => 'string', - - 'integer' => 'integer', - 'smallint' => 'integer', - 'bigint' => 'integer', - - 'datetime' => 'DateTime', - 'datetimetz' => 'DateTime', - 'time' => 'DateTime', - 'date' => 'DateTime', - - 'float' => 'float', - 'decimal' => 'float', - - 'boolean' => 'boolean', - - 'array' => 'array', - 'json_array' => 'array', - 'simple_array' => 'array', - ); - - /** - * @var DriverInterface - */ - protected $delegate; - - /** - * @var ManagerRegistry - */ - protected $registry; - - public function __construct(DriverInterface $delegate, ManagerRegistry $registry) - { - $this->delegate = $delegate; - $this->registry = $registry; - } - - public function loadMetadataForClass(\ReflectionClass $class) - { - /** @var $classMetadata ClassMetadata */ - $classMetadata = $this->delegate->loadMetadataForClass($class); - - // Abort if the given class is not a mapped entity - if (!$doctrineMetadata = $this->tryLoadingDoctrineMetadata($class->name)) { - return $classMetadata; - } - - $this->setDiscriminator($doctrineMetadata, $classMetadata); - - // We base our scan on the internal driver's property list so that we - // respect any internal white/blacklisting like in the AnnotationDriver - foreach ($classMetadata->propertyMetadata as $key => $propertyMetadata) { - /** @var $propertyMetadata PropertyMetadata */ - - // If the inner driver provides a type, don't guess anymore. - if ($propertyMetadata->type || $this->isVirtualProperty($propertyMetadata)) { - continue; - } - - if ($this->hideProperty($doctrineMetadata, $propertyMetadata)) { - unset($classMetadata->propertyMetadata[$key]); - } - - $this->setPropertyType($doctrineMetadata, $propertyMetadata); - } - - return $classMetadata; - } - - private function isVirtualProperty(PropertyMetadata $propertyMetadata) - { - return $propertyMetadata instanceof VirtualPropertyMetadata - || $propertyMetadata instanceof StaticPropertyMetadata - || $propertyMetadata instanceof ExpressionPropertyMetadata; - } - - /** - * @param DoctrineClassMetadata $doctrineMetadata - * @param ClassMetadata $classMetadata - */ - protected function setDiscriminator(DoctrineClassMetadata $doctrineMetadata, ClassMetadata $classMetadata) - { - } - - /** - * @param DoctrineClassMetadata $doctrineMetadata - * @param PropertyMetadata $propertyMetadata - */ - protected function hideProperty(DoctrineClassMetadata $doctrineMetadata, PropertyMetadata $propertyMetadata) - { - return false; - } - - /** - * @param DoctrineClassMetadata $doctrineMetadata - * @param PropertyMetadata $propertyMetadata - */ - protected function setPropertyType(DoctrineClassMetadata $doctrineMetadata, PropertyMetadata $propertyMetadata) - { - } - - /** - * @param string $className - * - * @return null|DoctrineClassMetadata - */ - protected function tryLoadingDoctrineMetadata($className) - { - if (!$manager = $this->registry->getManagerForClass($className)) { - return null; - } - - if ($manager->getMetadataFactory()->isTransient($className)) { - return null; - } - - return $manager->getClassMetadata($className); - } - - /** - * @param string $type - */ - protected function normalizeFieldType($type) - { - if (!isset($this->fieldMapping[$type])) { - return; - } - - return $this->fieldMapping[$type]; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/AnnotationDriver.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/AnnotationDriver.php deleted file mode 100644 index 8fec730..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/AnnotationDriver.php +++ /dev/null @@ -1,251 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata\Driver; - -use Doctrine\Common\Annotations\Reader; -use JMS\Serializer\Annotation\Accessor; -use JMS\Serializer\Annotation\AccessorOrder; -use JMS\Serializer\Annotation\AccessType; -use JMS\Serializer\Annotation\Discriminator; -use JMS\Serializer\Annotation\Exclude; -use JMS\Serializer\Annotation\ExcludeIf; -use JMS\Serializer\Annotation\ExclusionPolicy; -use JMS\Serializer\Annotation\Expose; -use JMS\Serializer\Annotation\Groups; -use JMS\Serializer\Annotation\HandlerCallback; -use JMS\Serializer\Annotation\Inline; -use JMS\Serializer\Annotation\MaxDepth; -use JMS\Serializer\Annotation\PostDeserialize; -use JMS\Serializer\Annotation\PostSerialize; -use JMS\Serializer\Annotation\PreSerialize; -use JMS\Serializer\Annotation\ReadOnly; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Since; -use JMS\Serializer\Annotation\SkipWhenEmpty; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\Until; -use JMS\Serializer\Annotation\VirtualProperty; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlAttributeMap; -use JMS\Serializer\Annotation\XmlDiscriminator; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlKeyValuePairs; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlMap; -use JMS\Serializer\Annotation\XmlNamespace; -use JMS\Serializer\Annotation\XmlRoot; -use JMS\Serializer\Annotation\XmlValue; -use JMS\Serializer\Exception\InvalidArgumentException; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\ExpressionPropertyMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Metadata\VirtualPropertyMetadata; -use Metadata\Driver\DriverInterface; -use Metadata\MethodMetadata; - -class AnnotationDriver implements DriverInterface -{ - private $reader; - - public function __construct(Reader $reader) - { - $this->reader = $reader; - } - - public function loadMetadataForClass(\ReflectionClass $class) - { - $classMetadata = new ClassMetadata($name = $class->name); - $classMetadata->fileResources[] = $class->getFilename(); - - $propertiesMetadata = array(); - $propertiesAnnotations = array(); - - $exclusionPolicy = 'NONE'; - $excludeAll = false; - $classAccessType = PropertyMetadata::ACCESS_TYPE_PROPERTY; - $readOnlyClass = false; - foreach ($this->reader->getClassAnnotations($class) as $annot) { - if ($annot instanceof ExclusionPolicy) { - $exclusionPolicy = $annot->policy; - } elseif ($annot instanceof XmlRoot) { - $classMetadata->xmlRootName = $annot->name; - $classMetadata->xmlRootNamespace = $annot->namespace; - } elseif ($annot instanceof XmlNamespace) { - $classMetadata->registerNamespace($annot->uri, $annot->prefix); - } elseif ($annot instanceof Exclude) { - $excludeAll = true; - } elseif ($annot instanceof AccessType) { - $classAccessType = $annot->type; - } elseif ($annot instanceof ReadOnly) { - $readOnlyClass = true; - } elseif ($annot instanceof AccessorOrder) { - $classMetadata->setAccessorOrder($annot->order, $annot->custom); - } elseif ($annot instanceof Discriminator) { - if ($annot->disabled) { - $classMetadata->discriminatorDisabled = true; - } else { - $classMetadata->setDiscriminator($annot->field, $annot->map, $annot->groups); - } - } elseif ($annot instanceof XmlDiscriminator) { - $classMetadata->xmlDiscriminatorAttribute = (bool)$annot->attribute; - $classMetadata->xmlDiscriminatorCData = (bool)$annot->cdata; - $classMetadata->xmlDiscriminatorNamespace = $annot->namespace ? (string)$annot->namespace : null; - } elseif ($annot instanceof VirtualProperty) { - $virtualPropertyMetadata = new ExpressionPropertyMetadata($name, $annot->name, $annot->exp); - $propertiesMetadata[] = $virtualPropertyMetadata; - $propertiesAnnotations[] = $annot->options; - } - } - - foreach ($class->getMethods() as $method) { - if ($method->class !== $name) { - continue; - } - - $methodAnnotations = $this->reader->getMethodAnnotations($method); - - foreach ($methodAnnotations as $annot) { - if ($annot instanceof PreSerialize) { - $classMetadata->addPreSerializeMethod(new MethodMetadata($name, $method->name)); - continue 2; - } elseif ($annot instanceof PostDeserialize) { - $classMetadata->addPostDeserializeMethod(new MethodMetadata($name, $method->name)); - continue 2; - } elseif ($annot instanceof PostSerialize) { - $classMetadata->addPostSerializeMethod(new MethodMetadata($name, $method->name)); - continue 2; - } elseif ($annot instanceof VirtualProperty) { - $virtualPropertyMetadata = new VirtualPropertyMetadata($name, $method->name); - $propertiesMetadata[] = $virtualPropertyMetadata; - $propertiesAnnotations[] = $methodAnnotations; - continue 2; - } elseif ($annot instanceof HandlerCallback) { - $classMetadata->addHandlerCallback(GraphNavigator::parseDirection($annot->direction), $annot->format, $method->name); - continue 2; - } - } - } - - if (!$excludeAll) { - foreach ($class->getProperties() as $property) { - if ($property->class !== $name || (isset($property->info) && $property->info['class'] !== $name)) { - continue; - } - $propertiesMetadata[] = new PropertyMetadata($name, $property->getName()); - $propertiesAnnotations[] = $this->reader->getPropertyAnnotations($property); - } - - foreach ($propertiesMetadata as $propertyKey => $propertyMetadata) { - $isExclude = false; - $isExpose = $propertyMetadata instanceof VirtualPropertyMetadata - || $propertyMetadata instanceof ExpressionPropertyMetadata; - $propertyMetadata->readOnly = $propertyMetadata->readOnly || $readOnlyClass; - $accessType = $classAccessType; - $accessor = array(null, null); - - $propertyAnnotations = $propertiesAnnotations[$propertyKey]; - - foreach ($propertyAnnotations as $annot) { - if ($annot instanceof Since) { - $propertyMetadata->sinceVersion = $annot->version; - } elseif ($annot instanceof Until) { - $propertyMetadata->untilVersion = $annot->version; - } elseif ($annot instanceof SerializedName) { - $propertyMetadata->serializedName = $annot->name; - } elseif ($annot instanceof SkipWhenEmpty) { - $propertyMetadata->skipWhenEmpty = true; - } elseif ($annot instanceof Expose) { - $isExpose = true; - if (null !== $annot->if) { - $propertyMetadata->excludeIf = "!(" . $annot->if . ")"; - } - } elseif ($annot instanceof Exclude) { - if (null !== $annot->if) { - $propertyMetadata->excludeIf = $annot->if; - } else { - $isExclude = true; - } - } elseif ($annot instanceof Type) { - $propertyMetadata->setType($annot->name); - } elseif ($annot instanceof XmlElement) { - $propertyMetadata->xmlAttribute = false; - $propertyMetadata->xmlElementCData = $annot->cdata; - $propertyMetadata->xmlNamespace = $annot->namespace; - } elseif ($annot instanceof XmlList) { - $propertyMetadata->xmlCollection = true; - $propertyMetadata->xmlCollectionInline = $annot->inline; - $propertyMetadata->xmlEntryName = $annot->entry; - $propertyMetadata->xmlEntryNamespace = $annot->namespace; - $propertyMetadata->xmlCollectionSkipWhenEmpty = $annot->skipWhenEmpty; - } elseif ($annot instanceof XmlMap) { - $propertyMetadata->xmlCollection = true; - $propertyMetadata->xmlCollectionInline = $annot->inline; - $propertyMetadata->xmlEntryName = $annot->entry; - $propertyMetadata->xmlEntryNamespace = $annot->namespace; - $propertyMetadata->xmlKeyAttribute = $annot->keyAttribute; - } elseif ($annot instanceof XmlKeyValuePairs) { - $propertyMetadata->xmlKeyValuePairs = true; - } elseif ($annot instanceof XmlAttribute) { - $propertyMetadata->xmlAttribute = true; - $propertyMetadata->xmlNamespace = $annot->namespace; - } elseif ($annot instanceof XmlValue) { - $propertyMetadata->xmlValue = true; - $propertyMetadata->xmlElementCData = $annot->cdata; - } elseif ($annot instanceof XmlElement) { - $propertyMetadata->xmlElementCData = $annot->cdata; - } elseif ($annot instanceof AccessType) { - $accessType = $annot->type; - } elseif ($annot instanceof ReadOnly) { - $propertyMetadata->readOnly = $annot->readOnly; - } elseif ($annot instanceof Accessor) { - $accessor = array($annot->getter, $annot->setter); - } elseif ($annot instanceof Groups) { - $propertyMetadata->groups = $annot->groups; - foreach ((array)$propertyMetadata->groups as $groupName) { - if (false !== strpos($groupName, ',')) { - throw new InvalidArgumentException(sprintf( - 'Invalid group name "%s" on "%s", did you mean to create multiple groups?', - implode(', ', $propertyMetadata->groups), - $propertyMetadata->class . '->' . $propertyMetadata->name - )); - } - } - } elseif ($annot instanceof Inline) { - $propertyMetadata->inline = true; - } elseif ($annot instanceof XmlAttributeMap) { - $propertyMetadata->xmlAttributeMap = true; - } elseif ($annot instanceof MaxDepth) { - $propertyMetadata->maxDepth = $annot->depth; - } - } - - - if ((ExclusionPolicy::NONE === $exclusionPolicy && !$isExclude) - || (ExclusionPolicy::ALL === $exclusionPolicy && $isExpose) - ) { - $propertyMetadata->setAccessor($accessType, $accessor[0], $accessor[1]); - $classMetadata->addPropertyMetadata($propertyMetadata); - } - } - } - - return $classMetadata; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/DoctrinePHPCRTypeDriver.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/DoctrinePHPCRTypeDriver.php deleted file mode 100644 index f507f64..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/DoctrinePHPCRTypeDriver.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata\Driver; - -use Doctrine\Common\Persistence\Mapping\ClassMetadata as DoctrineClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * This class decorates any other driver. If the inner driver does not provide a - * a property type, the decorator will guess based on Doctrine 2 metadata. - */ -class DoctrinePHPCRTypeDriver extends AbstractDoctrineTypeDriver -{ - /** - * @param DoctrineClassMetadata $doctrineMetadata - * @param PropertyMetadata $propertyMetadata - */ - protected function hideProperty(DoctrineClassMetadata $doctrineMetadata, PropertyMetadata $propertyMetadata) - { - return 'lazyPropertiesDefaults' === $propertyMetadata->name - || $doctrineMetadata->parentMapping === $propertyMetadata->name - || $doctrineMetadata->node === $propertyMetadata->name; - } - - protected function setPropertyType(DoctrineClassMetadata $doctrineMetadata, PropertyMetadata $propertyMetadata) - { - $propertyName = $propertyMetadata->name; - if ($doctrineMetadata->hasField($propertyName) && $fieldType = $this->normalizeFieldType($doctrineMetadata->getTypeOfField($propertyName))) { - $field = $doctrineMetadata->getFieldMapping($propertyName); - if (!empty($field['multivalue'])) { - $fieldType = 'array'; - } - - $propertyMetadata->setType($fieldType); - } elseif ($doctrineMetadata->hasAssociation($propertyName)) { - try { - $targetEntity = $doctrineMetadata->getAssociationTargetClass($propertyName); - } catch (\Exception $e) { - return; - } - - if (null === $this->tryLoadingDoctrineMetadata($targetEntity)) { - return; - } - - if (!$doctrineMetadata->isSingleValuedAssociation($propertyName)) { - $targetEntity = "ArrayCollection<{$targetEntity}>"; - } - - $propertyMetadata->setType($targetEntity); - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/DoctrineTypeDriver.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/DoctrineTypeDriver.php deleted file mode 100644 index f65129a..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/DoctrineTypeDriver.php +++ /dev/null @@ -1,69 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata\Driver; - -use Doctrine\Common\Persistence\Mapping\ClassMetadata as DoctrineClassMetadata; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * This class decorates any other driver. If the inner driver does not provide a - * a property type, the decorator will guess based on Doctrine 2 metadata. - */ -class DoctrineTypeDriver extends AbstractDoctrineTypeDriver -{ - protected function setDiscriminator(DoctrineClassMetadata $doctrineMetadata, ClassMetadata $classMetadata) - { - if (empty($classMetadata->discriminatorMap) && !$classMetadata->discriminatorDisabled - && !empty($doctrineMetadata->discriminatorMap) && $doctrineMetadata->isRootEntity() - ) { - $classMetadata->setDiscriminator( - $doctrineMetadata->discriminatorColumn['name'], - $doctrineMetadata->discriminatorMap - ); - } - } - - protected function setPropertyType(DoctrineClassMetadata $doctrineMetadata, PropertyMetadata $propertyMetadata) - { - $propertyName = $propertyMetadata->name; - if ($doctrineMetadata->hasField($propertyName) && $fieldType = $this->normalizeFieldType($doctrineMetadata->getTypeOfField($propertyName))) { - $propertyMetadata->setType($fieldType); - } elseif ($doctrineMetadata->hasAssociation($propertyName)) { - $targetEntity = $doctrineMetadata->getAssociationTargetClass($propertyName); - - if (null === $targetMetadata = $this->tryLoadingDoctrineMetadata($targetEntity)) { - return; - } - - // For inheritance schemes, we cannot add any type as we would only add the super-type of the hierarchy. - // On serialization, this would lead to only the supertype being serialized, and properties of subtypes - // being ignored. - if ($targetMetadata instanceof DoctrineClassMetadata && !$targetMetadata->isInheritanceTypeNone()) { - return; - } - - if (!$doctrineMetadata->isSingleValuedAssociation($propertyName)) { - $targetEntity = "ArrayCollection<{$targetEntity}>"; - } - - $propertyMetadata->setType($targetEntity); - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/NullDriver.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/NullDriver.php deleted file mode 100644 index fbd5e36..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/NullDriver.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata\Driver; - -use JMS\Serializer\Metadata\ClassMetadata; -use Metadata\Driver\DriverInterface; - -class NullDriver implements DriverInterface -{ - public function loadMetadataForClass(\ReflectionClass $class) - { - $classMetadata = new ClassMetadata($name = $class->name); - $classMetadata->fileResources[] = $class->getFilename(); - - return $classMetadata; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/PhpDriver.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/PhpDriver.php deleted file mode 100644 index 510ee00..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/PhpDriver.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata\Driver; - -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\Metadata\ClassMetadata; -use Metadata\Driver\AbstractFileDriver; - -class PhpDriver extends AbstractFileDriver -{ - protected function loadMetadataFromFile(\ReflectionClass $class, $file) - { - $metadata = require $file; - - if (!$metadata instanceof ClassMetadata) { - throw new RuntimeException(sprintf('The file %s was expected to return an instance of ClassMetadata, but returned %s.', $file, json_encode($metadata))); - } - if ($metadata->name !== $class->name) { - throw new RuntimeException(sprintf('The file %s was expected to return metadata for class %s, but instead returned metadata for class %s.', $class->name, $metadata->name)); - } - - return $metadata; - } - - protected function getExtension() - { - return 'php'; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/XmlDriver.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/XmlDriver.php deleted file mode 100644 index 0baac7d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/XmlDriver.php +++ /dev/null @@ -1,361 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata\Driver; - -use JMS\Serializer\Annotation\ExclusionPolicy; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\Exception\XmlErrorException; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\ExpressionPropertyMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Metadata\VirtualPropertyMetadata; -use Metadata\Driver\AbstractFileDriver; -use Metadata\MethodMetadata; - -class XmlDriver extends AbstractFileDriver -{ - protected function loadMetadataFromFile(\ReflectionClass $class, $path) - { - $previous = libxml_use_internal_errors(true); - libxml_clear_errors(); - - $elem = simplexml_load_file($path); - libxml_use_internal_errors($previous); - - if (false === $elem) { - throw new XmlErrorException(libxml_get_last_error()); - } - - $metadata = new ClassMetadata($name = $class->name); - if (!$elems = $elem->xpath("./class[@name = '" . $name . "']")) { - throw new RuntimeException(sprintf('Could not find class %s inside XML element.', $name)); - } - $elem = reset($elems); - - $metadata->fileResources[] = $path; - $metadata->fileResources[] = $class->getFileName(); - $exclusionPolicy = strtoupper($elem->attributes()->{'exclusion-policy'}) ?: 'NONE'; - $excludeAll = null !== ($exclude = $elem->attributes()->exclude) ? 'true' === strtolower($exclude) : false; - $classAccessType = (string)($elem->attributes()->{'access-type'} ?: PropertyMetadata::ACCESS_TYPE_PROPERTY); - - $propertiesMetadata = array(); - $propertiesNodes = array(); - - if (null !== $accessorOrder = $elem->attributes()->{'accessor-order'}) { - $metadata->setAccessorOrder((string)$accessorOrder, preg_split('/\s*,\s*/', (string)$elem->attributes()->{'custom-accessor-order'})); - } - - if (null !== $xmlRootName = $elem->attributes()->{'xml-root-name'}) { - $metadata->xmlRootName = (string)$xmlRootName; - } - - if (null !== $xmlRootNamespace = $elem->attributes()->{'xml-root-namespace'}) { - $metadata->xmlRootNamespace = (string)$xmlRootNamespace; - } - - $readOnlyClass = 'true' === strtolower($elem->attributes()->{'read-only'}); - - $discriminatorFieldName = (string)$elem->attributes()->{'discriminator-field-name'}; - $discriminatorMap = array(); - foreach ($elem->xpath('./discriminator-class') as $entry) { - if (!isset($entry->attributes()->value)) { - throw new RuntimeException('Each discriminator-class element must have a "value" attribute.'); - } - - $discriminatorMap[(string)$entry->attributes()->value] = (string)$entry; - } - - if ('true' === (string)$elem->attributes()->{'discriminator-disabled'}) { - $metadata->discriminatorDisabled = true; - } elseif (!empty($discriminatorFieldName) || !empty($discriminatorMap)) { - - $discriminatorGroups = array(); - foreach ($elem->xpath('./discriminator-groups/group') as $entry) { - $discriminatorGroups[] = (string)$entry; - } - $metadata->setDiscriminator($discriminatorFieldName, $discriminatorMap, $discriminatorGroups); - } - - foreach ($elem->xpath('./xml-namespace') as $xmlNamespace) { - if (!isset($xmlNamespace->attributes()->uri)) { - throw new RuntimeException('The prefix attribute must be set for all xml-namespace elements.'); - } - - if (isset($xmlNamespace->attributes()->prefix)) { - $prefix = (string)$xmlNamespace->attributes()->prefix; - } else { - $prefix = null; - } - - $metadata->registerNamespace((string)$xmlNamespace->attributes()->uri, $prefix); - } - - foreach ($elem->xpath('./xml-discriminator') as $xmlDiscriminator) { - if (isset($xmlDiscriminator->attributes()->attribute)) { - $metadata->xmlDiscriminatorAttribute = (string)$xmlDiscriminator->attributes()->attribute === 'true'; - } - if (isset($xmlDiscriminator->attributes()->cdata)) { - $metadata->xmlDiscriminatorCData = (string)$xmlDiscriminator->attributes()->cdata === 'true'; - } - if (isset($xmlDiscriminator->attributes()->namespace)) { - $metadata->xmlDiscriminatorNamespace = (string)$xmlDiscriminator->attributes()->namespace; - } - } - - foreach ($elem->xpath('./virtual-property') as $method) { - - if (isset($method->attributes()->expression)) { - $virtualPropertyMetadata = new ExpressionPropertyMetadata($name, (string)$method->attributes()->name, (string)$method->attributes()->expression); - } else { - if (!isset($method->attributes()->method)) { - throw new RuntimeException('The method attribute must be set for all virtual-property elements.'); - } - $virtualPropertyMetadata = new VirtualPropertyMetadata($name, (string)$method->attributes()->method); - } - - $propertiesMetadata[] = $virtualPropertyMetadata; - $propertiesNodes[] = $method; - } - - if (!$excludeAll) { - - foreach ($class->getProperties() as $property) { - if ($property->class !== $name || (isset($property->info) && $property->info['class'] !== $name)) { - continue; - } - - $propertiesMetadata[] = new PropertyMetadata($name, $pName = $property->getName()); - $pElems = $elem->xpath("./property[@name = '" . $pName . "']"); - - $propertiesNodes[] = $pElems ? reset($pElems) : null; - } - - foreach ($propertiesMetadata as $propertyKey => $pMetadata) { - - $isExclude = false; - $isExpose = $pMetadata instanceof VirtualPropertyMetadata - || $pMetadata instanceof ExpressionPropertyMetadata; - - $pElem = $propertiesNodes[$propertyKey]; - if (!empty($pElem)) { - - if (null !== $exclude = $pElem->attributes()->exclude) { - $isExclude = 'true' === strtolower($exclude); - } - - if ($isExclude) { - continue; - } - - if (null !== $expose = $pElem->attributes()->expose) { - $isExpose = 'true' === strtolower($expose); - } - - if (null !== $excludeIf = $pElem->attributes()->{'exclude-if'}) { - $pMetadata->excludeIf = $excludeIf; - } - - if (null !== $skip = $pElem->attributes()->{'skip-when-empty'}) { - $pMetadata->skipWhenEmpty = 'true' === strtolower($skip); - } - - if (null !== $excludeIf = $pElem->attributes()->{'expose-if'}) { - $pMetadata->excludeIf = "!(" . $excludeIf . ")"; - $isExpose = true; - } - - if (null !== $version = $pElem->attributes()->{'since-version'}) { - $pMetadata->sinceVersion = (string)$version; - } - - if (null !== $version = $pElem->attributes()->{'until-version'}) { - $pMetadata->untilVersion = (string)$version; - } - - if (null !== $serializedName = $pElem->attributes()->{'serialized-name'}) { - $pMetadata->serializedName = (string)$serializedName; - } - - if (null !== $type = $pElem->attributes()->type) { - $pMetadata->setType((string)$type); - } elseif (isset($pElem->type)) { - $pMetadata->setType((string)$pElem->type); - } - - if (null !== $groups = $pElem->attributes()->groups) { - $pMetadata->groups = preg_split('/\s*,\s*/', (string) trim($groups)); - } elseif (isset($pElem->groups)) { - $pMetadata->groups = (array) $pElem->groups->value; - } - - if (isset($pElem->{'xml-list'})) { - - $pMetadata->xmlCollection = true; - - $colConfig = $pElem->{'xml-list'}; - if (isset($colConfig->attributes()->inline)) { - $pMetadata->xmlCollectionInline = 'true' === (string)$colConfig->attributes()->inline; - } - - if (isset($colConfig->attributes()->{'entry-name'})) { - $pMetadata->xmlEntryName = (string)$colConfig->attributes()->{'entry-name'}; - } - - if (isset($colConfig->attributes()->{'skip-when-empty'})) { - $pMetadata->xmlCollectionSkipWhenEmpty = 'true' === (string)$colConfig->attributes()->{'skip-when-empty'}; - } else { - $pMetadata->xmlCollectionSkipWhenEmpty = true; - } - - if (isset($colConfig->attributes()->namespace)) { - $pMetadata->xmlEntryNamespace = (string)$colConfig->attributes()->namespace; - } - } - - if (isset($pElem->{'xml-map'})) { - $pMetadata->xmlCollection = true; - - $colConfig = $pElem->{'xml-map'}; - if (isset($colConfig->attributes()->inline)) { - $pMetadata->xmlCollectionInline = 'true' === (string)$colConfig->attributes()->inline; - } - - if (isset($colConfig->attributes()->{'entry-name'})) { - $pMetadata->xmlEntryName = (string)$colConfig->attributes()->{'entry-name'}; - } - - if (isset($colConfig->attributes()->namespace)) { - $pMetadata->xmlEntryNamespace = (string)$colConfig->attributes()->namespace; - } - - if (isset($colConfig->attributes()->{'key-attribute-name'})) { - $pMetadata->xmlKeyAttribute = (string)$colConfig->attributes()->{'key-attribute-name'}; - } - } - - if (isset($pElem->{'xml-element'})) { - $colConfig = $pElem->{'xml-element'}; - if (isset($colConfig->attributes()->cdata)) { - $pMetadata->xmlElementCData = 'true' === (string)$colConfig->attributes()->cdata; - } - - if (isset($colConfig->attributes()->namespace)) { - $pMetadata->xmlNamespace = (string)$colConfig->attributes()->namespace; - } - } - - if (isset($pElem->attributes()->{'xml-attribute'})) { - $pMetadata->xmlAttribute = 'true' === (string)$pElem->attributes()->{'xml-attribute'}; - } - - if (isset($pElem->attributes()->{'xml-attribute-map'})) { - $pMetadata->xmlAttributeMap = 'true' === (string)$pElem->attributes()->{'xml-attribute-map'}; - } - - if (isset($pElem->attributes()->{'xml-value'})) { - $pMetadata->xmlValue = 'true' === (string)$pElem->attributes()->{'xml-value'}; - } - - if (isset($pElem->attributes()->{'xml-key-value-pairs'})) { - $pMetadata->xmlKeyValuePairs = 'true' === (string)$pElem->attributes()->{'xml-key-value-pairs'}; - } - - if (isset($pElem->attributes()->{'max-depth'})) { - $pMetadata->maxDepth = (int)$pElem->attributes()->{'max-depth'}; - } - - //we need read-only before setter and getter set, because that method depends on flag being set - if (null !== $readOnly = $pElem->attributes()->{'read-only'}) { - $pMetadata->readOnly = 'true' === strtolower($readOnly); - } else { - $pMetadata->readOnly = $pMetadata->readOnly || $readOnlyClass; - } - - $getter = $pElem->attributes()->{'accessor-getter'}; - $setter = $pElem->attributes()->{'accessor-setter'}; - $pMetadata->setAccessor( - (string)($pElem->attributes()->{'access-type'} ?: $classAccessType), - $getter ? (string)$getter : null, - $setter ? (string)$setter : null - ); - - if (null !== $inline = $pElem->attributes()->inline) { - $pMetadata->inline = 'true' === strtolower($inline); - } - - } - - if ((ExclusionPolicy::NONE === (string)$exclusionPolicy && !$isExclude) - || (ExclusionPolicy::ALL === (string)$exclusionPolicy && $isExpose) - ) { - - $metadata->addPropertyMetadata($pMetadata); - } - } - } - - foreach ($elem->xpath('./callback-method') as $method) { - if (!isset($method->attributes()->type)) { - throw new RuntimeException('The type attribute must be set for all callback-method elements.'); - } - if (!isset($method->attributes()->name)) { - throw new RuntimeException('The name attribute must be set for all callback-method elements.'); - } - - switch ((string)$method->attributes()->type) { - case 'pre-serialize': - $metadata->addPreSerializeMethod(new MethodMetadata($name, (string)$method->attributes()->name)); - break; - - case 'post-serialize': - $metadata->addPostSerializeMethod(new MethodMetadata($name, (string)$method->attributes()->name)); - break; - - case 'post-deserialize': - $metadata->addPostDeserializeMethod(new MethodMetadata($name, (string)$method->attributes()->name)); - break; - - case 'handler': - if (!isset($method->attributes()->format)) { - throw new RuntimeException('The format attribute must be set for "handler" callback methods.'); - } - if (!isset($method->attributes()->direction)) { - throw new RuntimeException('The direction attribute must be set for "handler" callback methods.'); - } - - $direction = GraphNavigator::parseDirection((string)$method->attributes()->direction); - $format = (string)$method->attributes()->format; - $metadata->addHandlerCallback($direction, $format, (string)$method->attributes()->name); - - break; - - default: - throw new RuntimeException(sprintf('The type "%s" is not supported.', $method->attributes()->name)); - } - } - - return $metadata; - } - - protected function getExtension() - { - return 'xml'; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/YamlDriver.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/YamlDriver.php deleted file mode 100644 index 051ee14..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/Driver/YamlDriver.php +++ /dev/null @@ -1,341 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata\Driver; - -use JMS\Serializer\Annotation\ExclusionPolicy; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\ExpressionPropertyMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Metadata\VirtualPropertyMetadata; -use Metadata\Driver\AbstractFileDriver; -use Metadata\MethodMetadata; -use Symfony\Component\Yaml\Yaml; - -class YamlDriver extends AbstractFileDriver -{ - protected function loadMetadataFromFile(\ReflectionClass $class, $file) - { - $config = Yaml::parse(file_get_contents($file)); - - if (!isset($config[$name = $class->name])) { - throw new RuntimeException(sprintf('Expected metadata for class %s to be defined in %s.', $class->name, $file)); - } - - $config = $config[$name]; - $metadata = new ClassMetadata($name); - $metadata->fileResources[] = $file; - $metadata->fileResources[] = $class->getFileName(); - $exclusionPolicy = isset($config['exclusion_policy']) ? strtoupper($config['exclusion_policy']) : 'NONE'; - $excludeAll = isset($config['exclude']) ? (Boolean)$config['exclude'] : false; - $classAccessType = isset($config['access_type']) ? $config['access_type'] : PropertyMetadata::ACCESS_TYPE_PROPERTY; - $readOnlyClass = isset($config['read_only']) ? (Boolean)$config['read_only'] : false; - $this->addClassProperties($metadata, $config); - - $propertiesMetadata = array(); - if (array_key_exists('virtual_properties', $config)) { - foreach ($config['virtual_properties'] as $methodName => $propertySettings) { - if (isset($propertySettings['exp'])) { - $virtualPropertyMetadata = new ExpressionPropertyMetadata($name, $methodName, $propertySettings['exp']); - unset($propertySettings['exp']); - - } else { - - if (!$class->hasMethod($methodName)) { - throw new RuntimeException('The method ' . $methodName . ' not found in class ' . $class->name); - } - $virtualPropertyMetadata = new VirtualPropertyMetadata($name, $methodName); - } - $propertiesMetadata[$methodName] = $virtualPropertyMetadata; - $config['properties'][$methodName] = $propertySettings; - } - } - - if (!$excludeAll) { - foreach ($class->getProperties() as $property) { - if ($property->class !== $name || (isset($property->info) && $property->info['class'] !== $name)) { - continue; - } - - $pName = $property->getName(); - $propertiesMetadata[$pName] = new PropertyMetadata($name, $pName); - } - - foreach ($propertiesMetadata as $pName => $pMetadata) { - $isExclude = false; - $isExpose = $pMetadata instanceof VirtualPropertyMetadata - || $pMetadata instanceof ExpressionPropertyMetadata - || (isset($config['properties']) && array_key_exists($pName, $config['properties'])); - - if (isset($config['properties'][$pName])) { - $pConfig = $config['properties'][$pName]; - - if (isset($pConfig['exclude'])) { - $isExclude = (Boolean)$pConfig['exclude']; - } - - if ($isExclude) { - continue; - } - - if (isset($pConfig['expose'])) { - $isExpose = (Boolean)$pConfig['expose']; - } - - if (isset($pConfig['skip_when_empty'])) { - $pMetadata->skipWhenEmpty = (Boolean)$pConfig['skip_when_empty']; - } - - if (isset($pConfig['since_version'])) { - $pMetadata->sinceVersion = (string)$pConfig['since_version']; - } - - if (isset($pConfig['until_version'])) { - $pMetadata->untilVersion = (string)$pConfig['until_version']; - } - - if (isset($pConfig['exclude_if'])) { - $pMetadata->excludeIf = (string)$pConfig['exclude_if']; - } - - if (isset($pConfig['expose_if'])) { - $pMetadata->excludeIf = "!(" . $pConfig['expose_if'] . ")"; - } - - if (isset($pConfig['serialized_name'])) { - $pMetadata->serializedName = (string)$pConfig['serialized_name']; - } - - if (isset($pConfig['type'])) { - $pMetadata->setType((string)$pConfig['type']); - } - - if (isset($pConfig['groups'])) { - $pMetadata->groups = $pConfig['groups']; - } - - if (isset($pConfig['xml_list'])) { - $pMetadata->xmlCollection = true; - - $colConfig = $pConfig['xml_list']; - if (isset($colConfig['inline'])) { - $pMetadata->xmlCollectionInline = (Boolean)$colConfig['inline']; - } - - if (isset($colConfig['entry_name'])) { - $pMetadata->xmlEntryName = (string)$colConfig['entry_name']; - } - - if (isset($colConfig['skip_when_empty'])) { - $pMetadata->xmlCollectionSkipWhenEmpty = (Boolean)$colConfig['skip_when_empty']; - } else { - $pMetadata->xmlCollectionSkipWhenEmpty = true; - } - - if (isset($colConfig['namespace'])) { - $pMetadata->xmlEntryNamespace = (string)$colConfig['namespace']; - } - } - - if (isset($pConfig['xml_map'])) { - $pMetadata->xmlCollection = true; - - $colConfig = $pConfig['xml_map']; - if (isset($colConfig['inline'])) { - $pMetadata->xmlCollectionInline = (Boolean)$colConfig['inline']; - } - - if (isset($colConfig['entry_name'])) { - $pMetadata->xmlEntryName = (string)$colConfig['entry_name']; - } - - if (isset($colConfig['namespace'])) { - $pMetadata->xmlEntryNamespace = (string)$colConfig['namespace']; - } - - if (isset($colConfig['key_attribute_name'])) { - $pMetadata->xmlKeyAttribute = $colConfig['key_attribute_name']; - } - - } - - if (isset($pConfig['xml_element'])) { - $colConfig = $pConfig['xml_element']; - if (isset($colConfig['cdata'])) { - $pMetadata->xmlElementCData = (Boolean)$colConfig['cdata']; - } - - if (isset($colConfig['namespace'])) { - $pMetadata->xmlNamespace = (string)$colConfig['namespace']; - } - } - - if (isset($pConfig['xml_attribute'])) { - $pMetadata->xmlAttribute = (Boolean)$pConfig['xml_attribute']; - } - - if (isset($pConfig['xml_attribute_map'])) { - $pMetadata->xmlAttributeMap = (Boolean)$pConfig['xml_attribute_map']; - } - - if (isset($pConfig['xml_value'])) { - $pMetadata->xmlValue = (Boolean)$pConfig['xml_value']; - } - - if (isset($pConfig['xml_key_value_pairs'])) { - $pMetadata->xmlKeyValuePairs = (Boolean)$pConfig['xml_key_value_pairs']; - } - - //we need read_only before setter and getter set, because that method depends on flag being set - if (isset($pConfig['read_only'])) { - $pMetadata->readOnly = (Boolean)$pConfig['read_only']; - } else { - $pMetadata->readOnly = $pMetadata->readOnly || $readOnlyClass; - } - - $pMetadata->setAccessor( - isset($pConfig['access_type']) ? $pConfig['access_type'] : $classAccessType, - isset($pConfig['accessor']['getter']) ? $pConfig['accessor']['getter'] : null, - isset($pConfig['accessor']['setter']) ? $pConfig['accessor']['setter'] : null - ); - - if (isset($pConfig['inline'])) { - $pMetadata->inline = (Boolean)$pConfig['inline']; - } - - if (isset($pConfig['max_depth'])) { - $pMetadata->maxDepth = (int)$pConfig['max_depth']; - } - } - if ((ExclusionPolicy::NONE === $exclusionPolicy && !$isExclude) - || (ExclusionPolicy::ALL === $exclusionPolicy && $isExpose) - ) { - $metadata->addPropertyMetadata($pMetadata); - } - } - } - - if (isset($config['handler_callbacks'])) { - foreach ($config['handler_callbacks'] as $directionName => $formats) { - $direction = GraphNavigator::parseDirection($directionName); - foreach ($formats as $format => $methodName) { - $metadata->addHandlerCallback($direction, $format, $methodName); - } - } - } - - if (isset($config['callback_methods'])) { - $cConfig = $config['callback_methods']; - - if (isset($cConfig['pre_serialize'])) { - $metadata->preSerializeMethods = $this->getCallbackMetadata($class, $cConfig['pre_serialize']); - } - if (isset($cConfig['post_serialize'])) { - $metadata->postSerializeMethods = $this->getCallbackMetadata($class, $cConfig['post_serialize']); - } - if (isset($cConfig['post_deserialize'])) { - $metadata->postDeserializeMethods = $this->getCallbackMetadata($class, $cConfig['post_deserialize']); - } - } - - return $metadata; - } - - protected function getExtension() - { - return 'yml'; - } - - private function addClassProperties(ClassMetadata $metadata, array $config) - { - if (isset($config['custom_accessor_order']) && !isset($config['accessor_order'])) { - $config['accessor_order'] = 'custom'; - } - - if (isset($config['accessor_order'])) { - $metadata->setAccessorOrder($config['accessor_order'], isset($config['custom_accessor_order']) ? $config['custom_accessor_order'] : array()); - } - - if (isset($config['xml_root_name'])) { - $metadata->xmlRootName = (string)$config['xml_root_name']; - } - - if (isset($config['xml_root_namespace'])) { - $metadata->xmlRootNamespace = (string)$config['xml_root_namespace']; - } - - if (array_key_exists('xml_namespaces', $config)) { - - foreach ($config['xml_namespaces'] as $prefix => $uri) { - $metadata->registerNamespace($uri, $prefix); - } - - } - - if (isset($config['discriminator'])) { - if (isset($config['discriminator']['disabled']) && true === $config['discriminator']['disabled']) { - $metadata->discriminatorDisabled = true; - } else { - if (!isset($config['discriminator']['field_name'])) { - throw new RuntimeException('The "field_name" attribute must be set for discriminators.'); - } - - if (!isset($config['discriminator']['map']) || !is_array($config['discriminator']['map'])) { - throw new RuntimeException('The "map" attribute must be set, and be an array for discriminators.'); - } - $groups = isset($config['discriminator']['groups']) ? $config['discriminator']['groups'] : array(); - $metadata->setDiscriminator($config['discriminator']['field_name'], $config['discriminator']['map'], $groups); - - if (isset($config['discriminator']['xml_attribute'])) { - $metadata->xmlDiscriminatorAttribute = (bool)$config['discriminator']['xml_attribute']; - } - if (isset($config['discriminator']['xml_element'])) { - if (isset($config['discriminator']['xml_element']['cdata'])) { - $metadata->xmlDiscriminatorCData = (bool)$config['discriminator']['xml_element']['cdata']; - } - if (isset($config['discriminator']['xml_element']['namespace'])) { - $metadata->xmlDiscriminatorNamespace = (string)$config['discriminator']['xml_element']['namespace']; - } - } - - } - } - } - - private function getCallbackMetadata(\ReflectionClass $class, $config) - { - if (is_string($config)) { - $config = array($config); - } elseif (!is_array($config)) { - throw new RuntimeException(sprintf('callback methods expects a string, or an array of strings that represent method names, but got %s.', json_encode($config['pre_serialize']))); - } - - $methods = array(); - foreach ($config as $name) { - if (!$class->hasMethod($name)) { - throw new RuntimeException(sprintf('The method %s does not exist in class %s.', $name, $class->name)); - } - - $methods[] = new MethodMetadata($class->name, $name); - } - - return $methods; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/ExpressionPropertyMetadata.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/ExpressionPropertyMetadata.php deleted file mode 100644 index 736007a..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/ExpressionPropertyMetadata.php +++ /dev/null @@ -1,127 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata; - -use JMS\Serializer\Exception\ExpressionLanguageRequiredException; - -/** - * @Annotation - * @Target("METHOD") - * - * @author Asmir Mustafic - */ -class ExpressionPropertyMetadata extends PropertyMetadata -{ - /** - * @var string - */ - public $expression; - - public function __construct($class, $fieldName, $expression) - { - $this->class = $class; - $this->name = $fieldName; - $this->expression = $expression; - $this->readOnly = true; - } - - public function setAccessor($type, $getter = null, $setter = null) - { - } - - /** - * @param object $object - * @return mixed - */ - public function getValue($object) - { - throw new ExpressionLanguageRequiredException(sprintf('The property %s on %s requires the expression accessor strategy to be enabled.', $this->name, $this->class)); - } - - public function setValue($obj, $value) - { - throw new \LogicException('ExpressionPropertyMetadata is immutable.'); - } - - public function serialize() - { - return serialize(array( - $this->sinceVersion, - $this->untilVersion, - $this->groups, - $this->serializedName, - $this->type, - $this->xmlCollection, - $this->xmlCollectionInline, - $this->xmlEntryName, - $this->xmlKeyAttribute, - $this->xmlAttribute, - $this->xmlValue, - $this->xmlNamespace, - $this->xmlKeyValuePairs, - $this->xmlElementCData, - $this->xmlAttributeMap, - $this->maxDepth, - $this->getter, - $this->setter, - $this->inline, - $this->readOnly, - $this->class, - $this->name, - 'excludeIf' => $this->excludeIf, - 'expression' => $this->expression, - )); - } - - public function unserialize($str) - { - $unserialized = unserialize($str); - list( - $this->sinceVersion, - $this->untilVersion, - $this->groups, - $this->serializedName, - $this->type, - $this->xmlCollection, - $this->xmlCollectionInline, - $this->xmlEntryName, - $this->xmlKeyAttribute, - $this->xmlAttribute, - $this->xmlValue, - $this->xmlNamespace, - $this->xmlKeyValuePairs, - $this->xmlElementCData, - $this->xmlAttributeMap, - $this->maxDepth, - $this->getter, - $this->setter, - $this->inline, - $this->readOnly, - $this->class, - $this->name - ) = $unserialized; - - if (isset($unserialized['excludeIf'])) { - $this->excludeIf = $unserialized['excludeIf']; - } - if (isset($unserialized['expression'])) { - $this->expression = $unserialized['expression']; - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/PropertyMetadata.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/PropertyMetadata.php deleted file mode 100644 index 87d4d84..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/PropertyMetadata.php +++ /dev/null @@ -1,188 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata; - -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\TypeParser; -use Metadata\PropertyMetadata as BasePropertyMetadata; - -class PropertyMetadata extends BasePropertyMetadata -{ - const ACCESS_TYPE_PROPERTY = 'property'; - const ACCESS_TYPE_PUBLIC_METHOD = 'public_method'; - - public $sinceVersion; - public $untilVersion; - public $groups; - public $serializedName; - public $type; - public $xmlCollection = false; - public $xmlCollectionInline = false; - public $xmlCollectionSkipWhenEmpty = true; - public $xmlEntryName; - public $xmlEntryNamespace; - public $xmlKeyAttribute; - public $xmlAttribute = false; - public $xmlValue = false; - public $xmlNamespace; - public $xmlKeyValuePairs = false; - public $xmlElementCData = true; - public $getter; - public $setter; - public $inline = false; - public $skipWhenEmpty = false; - public $readOnly = false; - public $xmlAttributeMap = false; - public $maxDepth = null; - public $excludeIf = null; - - private static $typeParser; - - public function setAccessor($type, $getter = null, $setter = null) - { - if (self::ACCESS_TYPE_PUBLIC_METHOD === $type) { - $class = $this->reflection->getDeclaringClass(); - - if (empty($getter)) { - if ($class->hasMethod('get' . $this->name) && $class->getMethod('get' . $this->name)->isPublic()) { - $getter = 'get' . $this->name; - } elseif ($class->hasMethod('is' . $this->name) && $class->getMethod('is' . $this->name)->isPublic()) { - $getter = 'is' . $this->name; - } elseif ($class->hasMethod('has' . $this->name) && $class->getMethod('has' . $this->name)->isPublic()) { - $getter = 'has' . $this->name; - } else { - throw new RuntimeException(sprintf('There is neither a public %s method, nor a public %s method, nor a public %s method in class %s. Please specify which public method should be used for retrieving the value of the property %s.', 'get' . ucfirst($this->name), 'is' . ucfirst($this->name), 'has' . ucfirst($this->name), $this->class, $this->name)); - } - } - - if (empty($setter) && !$this->readOnly) { - if ($class->hasMethod('set' . $this->name) && $class->getMethod('set' . $this->name)->isPublic()) { - $setter = 'set' . $this->name; - } else { - throw new RuntimeException(sprintf('There is no public %s method in class %s. Please specify which public method should be used for setting the value of the property %s.', 'set' . ucfirst($this->name), $this->class, $this->name)); - } - } - } - - $this->getter = $getter; - $this->setter = $setter; - } - - public function getValue($obj) - { - if (null === $this->getter) { - return parent::getValue($obj); - } - - return $obj->{$this->getter}(); - } - - public function setValue($obj, $value) - { - if (null === $this->setter) { - parent::setValue($obj, $value); - return; - } - - $obj->{$this->setter}($value); - } - - public function setType($type) - { - if (null === self::$typeParser) { - self::$typeParser = new TypeParser(); - } - - $this->type = self::$typeParser->parse($type); - } - - public function serialize() - { - return serialize(array( - $this->sinceVersion, - $this->untilVersion, - $this->groups, - $this->serializedName, - $this->type, - $this->xmlCollection, - $this->xmlCollectionInline, - $this->xmlEntryName, - $this->xmlKeyAttribute, - $this->xmlAttribute, - $this->xmlValue, - $this->xmlNamespace, - $this->xmlKeyValuePairs, - $this->xmlElementCData, - $this->getter, - $this->setter, - $this->inline, - $this->readOnly, - $this->xmlAttributeMap, - $this->maxDepth, - parent::serialize(), - 'xmlEntryNamespace' => $this->xmlEntryNamespace, - 'xmlCollectionSkipWhenEmpty' => $this->xmlCollectionSkipWhenEmpty, - 'excludeIf' => $this->excludeIf, - 'skipWhenEmpty' => $this->skipWhenEmpty, - )); - } - - public function unserialize($str) - { - $unserialized = unserialize($str); - list( - $this->sinceVersion, - $this->untilVersion, - $this->groups, - $this->serializedName, - $this->type, - $this->xmlCollection, - $this->xmlCollectionInline, - $this->xmlEntryName, - $this->xmlKeyAttribute, - $this->xmlAttribute, - $this->xmlValue, - $this->xmlNamespace, - $this->xmlKeyValuePairs, - $this->xmlElementCData, - $this->getter, - $this->setter, - $this->inline, - $this->readOnly, - $this->xmlAttributeMap, - $this->maxDepth, - $parentStr - ) = $unserialized; - - if (isset($unserialized['xmlEntryNamespace'])) { - $this->xmlEntryNamespace = $unserialized['xmlEntryNamespace']; - } - if (isset($unserialized['xmlCollectionSkipWhenEmpty'])) { - $this->xmlCollectionSkipWhenEmpty = $unserialized['xmlCollectionSkipWhenEmpty']; - } - if (isset($unserialized['excludeIf'])) { - $this->excludeIf = $unserialized['excludeIf']; - } - if (isset($unserialized['skipWhenEmpty'])) { - $this->skipWhenEmpty = $unserialized['skipWhenEmpty']; - } - - parent::unserialize($parentStr); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/StaticPropertyMetadata.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/StaticPropertyMetadata.php deleted file mode 100644 index f4ad57c..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/StaticPropertyMetadata.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata; - -class StaticPropertyMetadata extends PropertyMetadata -{ - private $value; - - public function __construct($className, $fieldName, $fieldValue, array $groups = array()) - { - $this->class = $className; - $this->name = $fieldName; - $this->value = $fieldValue; - $this->readOnly = true; - $this->groups = $groups; - } - - public function getValue($obj) - { - return $this->value; - } - - public function setValue($obj, $value) - { - throw new \LogicException('StaticPropertyMetadata is immutable.'); - } - - public function setAccessor($type, $getter = null, $setter = null) - { - } - - public function serialize() - { - return serialize(array( - $this->sinceVersion, - $this->untilVersion, - $this->groups, - $this->serializedName, - $this->type, - $this->xmlCollection, - $this->xmlCollectionInline, - $this->xmlEntryName, - $this->xmlKeyAttribute, - $this->xmlAttribute, - $this->xmlValue, - $this->xmlNamespace, - $this->xmlKeyValuePairs, - $this->xmlElementCData, - $this->getter, - $this->setter, - $this->inline, - $this->readOnly, - $this->class, - $this->name, - $this->value - )); - } - - public function unserialize($str) - { - list( - $this->sinceVersion, - $this->untilVersion, - $this->groups, - $this->serializedName, - $this->type, - $this->xmlCollection, - $this->xmlCollectionInline, - $this->xmlEntryName, - $this->xmlKeyAttribute, - $this->xmlAttribute, - $this->xmlValue, - $this->xmlNamespace, - $this->xmlKeyValuePairs, - $this->xmlElementCData, - $this->getter, - $this->setter, - $this->inline, - $this->readOnly, - $this->class, - $this->name, - $this->value - ) = unserialize($str); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Metadata/VirtualPropertyMetadata.php b/vendor/jms/serializer/src/JMS/Serializer/Metadata/VirtualPropertyMetadata.php deleted file mode 100644 index 8bb97c2..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Metadata/VirtualPropertyMetadata.php +++ /dev/null @@ -1,107 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Metadata; - -class VirtualPropertyMetadata extends PropertyMetadata -{ - public function __construct($class, $methodName) - { - if (0 === strpos($methodName, 'get')) { - $fieldName = lcfirst(substr($methodName, 3)); - } else { - $fieldName = $methodName; - } - - $this->class = $class; - $this->name = $fieldName; - $this->getter = $methodName; - $this->readOnly = true; - } - - public function setValue($obj, $value) - { - throw new \LogicException('VirtualPropertyMetadata is immutable.'); - } - - public function setAccessor($type, $getter = null, $setter = null) - { - } - - public function serialize() - { - return serialize(array( - $this->sinceVersion, - $this->untilVersion, - $this->groups, - $this->serializedName, - $this->type, - $this->xmlCollection, - $this->xmlCollectionInline, - $this->xmlEntryName, - $this->xmlKeyAttribute, - $this->xmlAttribute, - $this->xmlValue, - $this->xmlNamespace, - $this->xmlKeyValuePairs, - $this->xmlElementCData, - $this->xmlAttributeMap, - $this->maxDepth, - $this->getter, - $this->setter, - $this->inline, - $this->readOnly, - $this->class, - $this->name, - 'excludeIf' => $this->excludeIf, - )); - } - - public function unserialize($str) - { - $unserialized = unserialize($str); - list( - $this->sinceVersion, - $this->untilVersion, - $this->groups, - $this->serializedName, - $this->type, - $this->xmlCollection, - $this->xmlCollectionInline, - $this->xmlEntryName, - $this->xmlKeyAttribute, - $this->xmlAttribute, - $this->xmlValue, - $this->xmlNamespace, - $this->xmlKeyValuePairs, - $this->xmlElementCData, - $this->xmlAttributeMap, - $this->maxDepth, - $this->getter, - $this->setter, - $this->inline, - $this->readOnly, - $this->class, - $this->name - ) = $unserialized; - - if (isset($unserialized['excludeIf'])) { - $this->excludeIf = $unserialized['excludeIf']; - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Naming/AdvancedNamingStrategyInterface.php b/vendor/jms/serializer/src/JMS/Serializer/Naming/AdvancedNamingStrategyInterface.php deleted file mode 100644 index 0d243ef..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Naming/AdvancedNamingStrategyInterface.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Naming; - -use JMS\Serializer\Context; -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * Interface for advanced property naming strategies. - * - * Implementations translate the property name to a serialized name that is - * displayed. It allows advanced strategy thanks to context parameter. - * - * @author Vincent Rasquier - */ -interface AdvancedNamingStrategyInterface -{ - /** - * Translates the name of the property to the serialized version. - * - * @param PropertyMetadata $property - * @param Context $context - * - * @return string - */ - public function getPropertyName(PropertyMetadata $property, Context $context); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Naming/CacheNamingStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Naming/CacheNamingStrategy.php deleted file mode 100644 index cb3d31b..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Naming/CacheNamingStrategy.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Naming; - -use JMS\Serializer\Metadata\PropertyMetadata; - -class CacheNamingStrategy implements PropertyNamingStrategyInterface -{ - private $delegate; - private $cache; - - public function __construct(PropertyNamingStrategyInterface $delegate) - { - $this->delegate = $delegate; - $this->cache = new \SplObjectStorage(); - } - - public function translateName(PropertyMetadata $property) - { - if (isset($this->cache[$property])) { - return $this->cache[$property]; - } - - return $this->cache[$property] = $this->delegate->translateName($property); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Naming/CamelCaseNamingStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Naming/CamelCaseNamingStrategy.php deleted file mode 100644 index 8c15153..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Naming/CamelCaseNamingStrategy.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Naming; - -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * Generic naming strategy which translates a camel-cased property name. - * - * @author Johannes M. Schmitt - */ -class CamelCaseNamingStrategy implements PropertyNamingStrategyInterface -{ - private $separator; - private $lowerCase; - - public function __construct($separator = '_', $lowerCase = true) - { - $this->separator = $separator; - $this->lowerCase = $lowerCase; - } - - /** - * {@inheritDoc} - */ - public function translateName(PropertyMetadata $property) - { - $name = preg_replace('/[A-Z]/', $this->separator . '\\0', $property->name); - - if ($this->lowerCase) { - return strtolower($name); - } - - return ucfirst($name); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Naming/IdenticalPropertyNamingStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Naming/IdenticalPropertyNamingStrategy.php deleted file mode 100644 index 529db3d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Naming/IdenticalPropertyNamingStrategy.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Naming; - -use JMS\Serializer\Metadata\PropertyMetadata; - -class IdenticalPropertyNamingStrategy implements PropertyNamingStrategyInterface -{ - public function translateName(PropertyMetadata $property) - { - return $property->name; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Naming/PropertyNamingStrategyInterface.php b/vendor/jms/serializer/src/JMS/Serializer/Naming/PropertyNamingStrategyInterface.php deleted file mode 100644 index 6d764cb..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Naming/PropertyNamingStrategyInterface.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Naming; - -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * Interface for property naming strategies. - * - * Implementations translate the property name to a serialized name that is - * displayed. - * - * @author Johannes M. Schmitt - */ -interface PropertyNamingStrategyInterface -{ - /** - * Translates the name of the property to the serialized version. - * - * @param PropertyMetadata $property - * - * @return string - */ - public function translateName(PropertyMetadata $property); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Naming/SerializedNameAnnotationStrategy.php b/vendor/jms/serializer/src/JMS/Serializer/Naming/SerializedNameAnnotationStrategy.php deleted file mode 100644 index e30060c..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Naming/SerializedNameAnnotationStrategy.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Naming; - -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * Naming strategy which uses an annotation to translate the property name. - * - * @author Johannes M. Schmitt - */ -class SerializedNameAnnotationStrategy implements PropertyNamingStrategyInterface -{ - private $delegate; - - public function __construct(PropertyNamingStrategyInterface $namingStrategy) - { - $this->delegate = $namingStrategy; - } - - /** - * {@inheritDoc} - */ - public function translateName(PropertyMetadata $property) - { - if (null !== $name = $property->serializedName) { - return $name; - } - - return $this->delegate->translateName($property); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/NullAwareVisitorInterface.php b/vendor/jms/serializer/src/JMS/Serializer/NullAwareVisitorInterface.php deleted file mode 100644 index 619e0c5..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/NullAwareVisitorInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -interface NullAwareVisitorInterface extends VisitorInterface -{ - /** - * Determine if a value conveys a null value. - * An example could be an xml element (Dom, SimpleXml, ...) that is tagged with a xsi:nil attribute - * - * @param mixed $value - * - * @return bool - */ - public function isNull($value); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/SerializationContext.php b/vendor/jms/serializer/src/JMS/Serializer/SerializationContext.php deleted file mode 100644 index 2118dfd..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/SerializationContext.php +++ /dev/null @@ -1,143 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Exception\RuntimeException; -use Metadata\MetadataFactoryInterface; - -class SerializationContext extends Context -{ - /** @var \SplObjectStorage */ - private $visitingSet; - - /** @var \SplStack */ - private $visitingStack; - - /** - * @var string - */ - private $initialType; - - public static function create() - { - return new self(); - } - - /** - * @param string $format - */ - public function initialize($format, VisitorInterface $visitor, GraphNavigator $navigator, MetadataFactoryInterface $factory) - { - parent::initialize($format, $visitor, $navigator, $factory); - - $this->visitingSet = new \SplObjectStorage(); - $this->visitingStack = new \SplStack(); - } - - public function startVisiting($object) - { - if (!is_object($object)) { - return; - } - $this->visitingSet->attach($object); - $this->visitingStack->push($object); - } - - public function stopVisiting($object) - { - if (!is_object($object)) { - return; - } - $this->visitingSet->detach($object); - $poppedObject = $this->visitingStack->pop(); - - if ($object !== $poppedObject) { - throw new RuntimeException('Context visitingStack not working well'); - } - } - - public function isVisiting($object) - { - if (!is_object($object)) { - return false; - } - - return $this->visitingSet->contains($object); - } - - public function getPath() - { - $path = array(); - foreach ($this->visitingStack as $obj) { - $path[] = get_class($obj); - } - - if (!$path) { - return null; - } - - return implode(' -> ', $path); - } - - public function getDirection() - { - return GraphNavigator::DIRECTION_SERIALIZATION; - } - - public function getDepth() - { - return $this->visitingStack->count(); - } - - public function getObject() - { - return !$this->visitingStack->isEmpty() ? $this->visitingStack->top() : null; - } - - public function getVisitingStack() - { - return $this->visitingStack; - } - - public function getVisitingSet() - { - return $this->visitingSet; - } - - /** - * @param string $type - * @return $this - */ - public function setInitialType($type) - { - $this->initialType = $type; - $this->attributes->set('initial_type', $type); - return $this; - } - - /** - * @return string|null - */ - public function getInitialType() - { - return $this->initialType - ? $this->initialType - : $this->attributes->containsKey('initial_type') ? $this->attributes->get('initial_type')->get() : null; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Serializer.php b/vendor/jms/serializer/src/JMS/Serializer/Serializer.php deleted file mode 100644 index 5a1273e..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Serializer.php +++ /dev/null @@ -1,251 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Construction\ObjectConstructorInterface; -use JMS\Serializer\ContextFactory\DefaultDeserializationContextFactory; -use JMS\Serializer\ContextFactory\DefaultSerializationContextFactory; -use JMS\Serializer\ContextFactory\DeserializationContextFactoryInterface; -use JMS\Serializer\ContextFactory\SerializationContextFactoryInterface; -use JMS\Serializer\EventDispatcher\EventDispatcherInterface; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\Exception\UnsupportedFormatException; -use JMS\Serializer\Expression\ExpressionEvaluatorInterface; -use JMS\Serializer\Handler\HandlerRegistryInterface; -use Metadata\MetadataFactoryInterface; -use PhpCollection\MapInterface; - -/** - * Serializer Implementation. - * - * @author Johannes M. Schmitt - */ -class Serializer implements SerializerInterface, ArrayTransformerInterface -{ - private $factory; - private $handlerRegistry; - private $objectConstructor; - private $dispatcher; - private $typeParser; - - /** @var \PhpCollection\MapInterface */ - private $serializationVisitors; - - /** @var \PhpCollection\MapInterface */ - private $deserializationVisitors; - - private $navigator; - - /** - * @var SerializationContextFactoryInterface - */ - private $serializationContextFactory; - - /** - * @var DeserializationContextFactoryInterface - */ - private $deserializationContextFactory; - - /** - * Constructor. - * - * @param \Metadata\MetadataFactoryInterface $factory - * @param Handler\HandlerRegistryInterface $handlerRegistry - * @param Construction\ObjectConstructorInterface $objectConstructor - * @param \PhpCollection\MapInterface $serializationVisitors of VisitorInterface - * @param \PhpCollection\MapInterface $deserializationVisitors of VisitorInterface - * @param EventDispatcher\EventDispatcherInterface $dispatcher - * @param TypeParser $typeParser - * @param ExpressionEvaluatorInterface|null $expressionEvaluator - */ - public function __construct( - MetadataFactoryInterface $factory, - HandlerRegistryInterface $handlerRegistry, - ObjectConstructorInterface $objectConstructor, - MapInterface $serializationVisitors, - MapInterface $deserializationVisitors, - EventDispatcherInterface $dispatcher = null, - TypeParser $typeParser = null, - ExpressionEvaluatorInterface $expressionEvaluator = null - ) - { - $this->factory = $factory; - $this->handlerRegistry = $handlerRegistry; - $this->objectConstructor = $objectConstructor; - $this->dispatcher = $dispatcher; - $this->typeParser = $typeParser ?: new TypeParser(); - $this->serializationVisitors = $serializationVisitors; - $this->deserializationVisitors = $deserializationVisitors; - - $this->navigator = new GraphNavigator($this->factory, $this->handlerRegistry, $this->objectConstructor, $this->dispatcher, $expressionEvaluator); - - $this->serializationContextFactory = new DefaultSerializationContextFactory(); - $this->deserializationContextFactory = new DefaultDeserializationContextFactory(); - } - - public function serialize($data, $format, SerializationContext $context = null) - { - if (null === $context) { - $context = $this->serializationContextFactory->createSerializationContext(); - } - - return $this->serializationVisitors->get($format) - ->map(function (VisitorInterface $visitor) use ($context, $data, $format) { - $type = $context->getInitialType() !== null ? $this->typeParser->parse($context->getInitialType()) : null; - - $this->visit($visitor, $context, $visitor->prepare($data), $format, $type); - - return $visitor->getResult(); - }) - ->getOrThrow(new UnsupportedFormatException(sprintf('The format "%s" is not supported for serialization.', $format))); - } - - public function deserialize($data, $type, $format, DeserializationContext $context = null) - { - if (null === $context) { - $context = $this->deserializationContextFactory->createDeserializationContext(); - } - - return $this->deserializationVisitors->get($format) - ->map(function (VisitorInterface $visitor) use ($context, $data, $format, $type) { - $preparedData = $visitor->prepare($data); - $navigatorResult = $this->visit($visitor, $context, $preparedData, $format, $this->typeParser->parse($type)); - - return $this->handleDeserializeResult($visitor->getResult(), $navigatorResult); - }) - ->getOrThrow(new UnsupportedFormatException(sprintf('The format "%s" is not supported for deserialization.', $format))); - } - - /** - * {@InheritDoc} - */ - public function toArray($data, SerializationContext $context = null) - { - if (null === $context) { - $context = $this->serializationContextFactory->createSerializationContext(); - } - - return $this->serializationVisitors->get('json') - ->map(function (JsonSerializationVisitor $visitor) use ($context, $data) { - $type = $context->getInitialType() !== null ? $this->typeParser->parse($context->getInitialType()) : null; - - $this->visit($visitor, $context, $data, 'json', $type); - $result = $this->convertArrayObjects($visitor->getRoot()); - - if (!is_array($result)) { - throw new RuntimeException(sprintf( - 'The input data of type "%s" did not convert to an array, but got a result of type "%s".', - is_object($data) ? get_class($data) : gettype($data), - is_object($result) ? get_class($result) : gettype($result) - )); - } - - return $result; - }) - ->get(); - } - - /** - * {@InheritDoc} - */ - public function fromArray(array $data, $type, DeserializationContext $context = null) - { - if (null === $context) { - $context = $this->deserializationContextFactory->createDeserializationContext(); - } - - return $this->deserializationVisitors->get('json') - ->map(function (JsonDeserializationVisitor $visitor) use ($data, $type, $context) { - $navigatorResult = $this->visit($visitor, $context, $data, 'json', $this->typeParser->parse($type)); - - return $this->handleDeserializeResult($visitor->getResult(), $navigatorResult); - }) - ->get(); - } - - private function visit(VisitorInterface $visitor, Context $context, $data, $format, array $type = null) - { - $context->initialize( - $format, - $visitor, - $this->navigator, - $this->factory - ); - - $visitor->setNavigator($this->navigator); - - return $this->navigator->accept($data, $type, $context); - } - - private function handleDeserializeResult($visitorResult, $navigatorResult) - { - // This is a special case if the root is handled by a callback on the object itself. - if (null === $visitorResult && null !== $navigatorResult) { - return $navigatorResult; - } - - return $visitorResult; - } - - private function convertArrayObjects($data) - { - if ($data instanceof \ArrayObject || $data instanceof \stdClass) { - $data = (array)$data; - } - if (is_array($data)) { - foreach ($data as $k => $v) { - $data[$k] = $this->convertArrayObjects($v); - } - } - - return $data; - } - - /** - * @return MetadataFactoryInterface - */ - public function getMetadataFactory() - { - return $this->factory; - } - - /** - * @param SerializationContextFactoryInterface $serializationContextFactory - * - * @return self - */ - public function setSerializationContextFactory(SerializationContextFactoryInterface $serializationContextFactory) - { - $this->serializationContextFactory = $serializationContextFactory; - - return $this; - } - - /** - * @param DeserializationContextFactoryInterface $deserializationContextFactory - * - * @return self - */ - public function setDeserializationContextFactory(DeserializationContextFactoryInterface $deserializationContextFactory) - { - $this->deserializationContextFactory = $deserializationContextFactory; - - return $this; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/SerializerBuilder.php b/vendor/jms/serializer/src/JMS/Serializer/SerializerBuilder.php deleted file mode 100644 index 6ce2662..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/SerializerBuilder.php +++ /dev/null @@ -1,502 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use Doctrine\Common\Annotations\AnnotationReader; -use Doctrine\Common\Annotations\CachedReader; -use Doctrine\Common\Annotations\Reader; -use Doctrine\Common\Cache\FilesystemCache; -use JMS\Serializer\Accessor\AccessorStrategyInterface; -use JMS\Serializer\Accessor\DefaultAccessorStrategy; -use JMS\Serializer\Accessor\ExpressionAccessorStrategy; -use JMS\Serializer\Builder\DefaultDriverFactory; -use JMS\Serializer\Builder\DriverFactoryInterface; -use JMS\Serializer\Construction\ObjectConstructorInterface; -use JMS\Serializer\Construction\UnserializeObjectConstructor; -use JMS\Serializer\ContextFactory\CallableDeserializationContextFactory; -use JMS\Serializer\ContextFactory\CallableSerializationContextFactory; -use JMS\Serializer\ContextFactory\DeserializationContextFactoryInterface; -use JMS\Serializer\ContextFactory\SerializationContextFactoryInterface; -use JMS\Serializer\EventDispatcher\EventDispatcher; -use JMS\Serializer\EventDispatcher\Subscriber\DoctrineProxySubscriber; -use JMS\Serializer\Exception\InvalidArgumentException; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\Expression\ExpressionEvaluatorInterface; -use JMS\Serializer\Handler\ArrayCollectionHandler; -use JMS\Serializer\Handler\DateHandler; -use JMS\Serializer\Handler\HandlerRegistry; -use JMS\Serializer\Handler\PhpCollectionHandler; -use JMS\Serializer\Handler\PropelCollectionHandler; -use JMS\Serializer\Handler\StdClassHandler; -use JMS\Serializer\Naming\AdvancedNamingStrategyInterface; -use JMS\Serializer\Naming\CamelCaseNamingStrategy; -use JMS\Serializer\Naming\PropertyNamingStrategyInterface; -use JMS\Serializer\Naming\SerializedNameAnnotationStrategy; -use Metadata\Cache\FileCache; -use Metadata\MetadataFactory; -use PhpCollection\Map; - -/** - * Builder for serializer instances. - * - * This object makes serializer construction a breeze for projects that do not use - * any special dependency injection container. - * - * @author Johannes M. Schmitt - */ -class SerializerBuilder -{ - private $metadataDirs = array(); - private $handlerRegistry; - private $handlersConfigured = false; - private $eventDispatcher; - private $listenersConfigured = false; - private $objectConstructor; - private $serializationVisitors; - private $deserializationVisitors; - private $visitorsAdded = false; - private $propertyNamingStrategy; - private $debug = false; - private $cacheDir; - private $annotationReader; - private $includeInterfaceMetadata = false; - private $driverFactory; - private $serializationContextFactory; - private $deserializationContextFactory; - - /** - * @var ExpressionEvaluatorInterface - */ - private $expressionEvaluator; - - /** - * @var AccessorStrategyInterface - */ - private $accessorStrategy; - - public static function create() - { - return new static(); - } - - public function __construct() - { - $this->handlerRegistry = new HandlerRegistry(); - $this->eventDispatcher = new EventDispatcher(); - $this->driverFactory = new DefaultDriverFactory(); - $this->serializationVisitors = new Map(); - $this->deserializationVisitors = new Map(); - } - - public function setAccessorStrategy(AccessorStrategyInterface $accessorStrategy) - { - $this->accessorStrategy = $accessorStrategy; - } - - protected function getAccessorStrategy() - { - if (!$this->accessorStrategy) { - $this->accessorStrategy = new DefaultAccessorStrategy(); - - if ($this->expressionEvaluator) { - $this->accessorStrategy = new ExpressionAccessorStrategy($this->expressionEvaluator, $this->accessorStrategy); - } - } - return $this->accessorStrategy; - } - - public function setExpressionEvaluator(ExpressionEvaluatorInterface $expressionEvaluator) - { - $this->expressionEvaluator = $expressionEvaluator; - - return $this; - } - - public function setAnnotationReader(Reader $reader) - { - $this->annotationReader = $reader; - - return $this; - } - - public function setDebug($bool) - { - $this->debug = (boolean)$bool; - - return $this; - } - - public function setCacheDir($dir) - { - if (!is_dir($dir)) { - $this->createDir($dir); - } - if (!is_writable($dir)) { - throw new InvalidArgumentException(sprintf('The cache directory "%s" is not writable.', $dir)); - } - - $this->cacheDir = $dir; - - return $this; - } - - public function addDefaultHandlers() - { - $this->handlersConfigured = true; - $this->handlerRegistry->registerSubscribingHandler(new DateHandler()); - $this->handlerRegistry->registerSubscribingHandler(new StdClassHandler()); - $this->handlerRegistry->registerSubscribingHandler(new PhpCollectionHandler()); - $this->handlerRegistry->registerSubscribingHandler(new ArrayCollectionHandler()); - $this->handlerRegistry->registerSubscribingHandler(new PropelCollectionHandler()); - - return $this; - } - - public function configureHandlers(\Closure $closure) - { - $this->handlersConfigured = true; - $closure($this->handlerRegistry); - - return $this; - } - - public function addDefaultListeners() - { - $this->listenersConfigured = true; - $this->eventDispatcher->addSubscriber(new DoctrineProxySubscriber()); - - return $this; - } - - public function configureListeners(\Closure $closure) - { - $this->listenersConfigured = true; - $closure($this->eventDispatcher); - - return $this; - } - - public function setObjectConstructor(ObjectConstructorInterface $constructor) - { - $this->objectConstructor = $constructor; - - return $this; - } - - public function setPropertyNamingStrategy(PropertyNamingStrategyInterface $propertyNamingStrategy) - { - $this->propertyNamingStrategy = $propertyNamingStrategy; - - return $this; - } - - public function setAdvancedNamingStrategy(AdvancedNamingStrategyInterface $advancedNamingStrategy) - { - $this->propertyNamingStrategy = $advancedNamingStrategy; - - return $this; - } - - public function setSerializationVisitor($format, VisitorInterface $visitor) - { - $this->visitorsAdded = true; - $this->serializationVisitors->set($format, $visitor); - - return $this; - } - - public function setDeserializationVisitor($format, VisitorInterface $visitor) - { - $this->visitorsAdded = true; - $this->deserializationVisitors->set($format, $visitor); - - return $this; - } - - public function addDefaultSerializationVisitors() - { - $this->initializePropertyNamingStrategy(); - - $this->visitorsAdded = true; - $this->serializationVisitors->setAll(array( - 'xml' => new XmlSerializationVisitor($this->propertyNamingStrategy, $this->getAccessorStrategy()), - 'yml' => new YamlSerializationVisitor($this->propertyNamingStrategy, $this->getAccessorStrategy()), - 'json' => new JsonSerializationVisitor($this->propertyNamingStrategy, $this->getAccessorStrategy()), - )); - - return $this; - } - - public function addDefaultDeserializationVisitors() - { - $this->initializePropertyNamingStrategy(); - - $this->visitorsAdded = true; - $this->deserializationVisitors->setAll(array( - 'xml' => new XmlDeserializationVisitor($this->propertyNamingStrategy), - 'json' => new JsonDeserializationVisitor($this->propertyNamingStrategy), - )); - - return $this; - } - - /** - * @param Boolean $include Whether to include the metadata from the interfaces - * - * @return SerializerBuilder - */ - public function includeInterfaceMetadata($include) - { - $this->includeInterfaceMetadata = (Boolean)$include; - - return $this; - } - - /** - * Sets a map of namespace prefixes to directories. - * - * This method overrides any previously defined directories. - * - * @param array $namespacePrefixToDirMap - * - * @return SerializerBuilder - * - * @throws InvalidArgumentException When a directory does not exist - */ - public function setMetadataDirs(array $namespacePrefixToDirMap) - { - foreach ($namespacePrefixToDirMap as $dir) { - if (!is_dir($dir)) { - throw new InvalidArgumentException(sprintf('The directory "%s" does not exist.', $dir)); - } - } - - $this->metadataDirs = $namespacePrefixToDirMap; - - return $this; - } - - /** - * Adds a directory where the serializer will look for class metadata. - * - * The namespace prefix will make the names of the actual metadata files a bit shorter. For example, let's assume - * that you have a directory where you only store metadata files for the ``MyApplication\Entity`` namespace. - * - * If you use an empty prefix, your metadata files would need to look like: - * - * ``my-dir/MyApplication.Entity.SomeObject.yml`` - * ``my-dir/MyApplication.Entity.OtherObject.xml`` - * - * If you use ``MyApplication\Entity`` as prefix, your metadata files would need to look like: - * - * ``my-dir/SomeObject.yml`` - * ``my-dir/OtherObject.yml`` - * - * Please keep in mind that you currently may only have one directory per namespace prefix. - * - * @param string $dir The directory where metadata files are located. - * @param string $namespacePrefix An optional prefix if you only store metadata for specific namespaces in this directory. - * - * @return SerializerBuilder - * - * @throws InvalidArgumentException When a directory does not exist - * @throws InvalidArgumentException When a directory has already been registered - */ - public function addMetadataDir($dir, $namespacePrefix = '') - { - if (!is_dir($dir)) { - throw new InvalidArgumentException(sprintf('The directory "%s" does not exist.', $dir)); - } - - if (isset($this->metadataDirs[$namespacePrefix])) { - throw new InvalidArgumentException(sprintf('There is already a directory configured for the namespace prefix "%s". Please use replaceMetadataDir() to override directories.', $namespacePrefix)); - } - - $this->metadataDirs[$namespacePrefix] = $dir; - - return $this; - } - - /** - * Adds a map of namespace prefixes to directories. - * - * @param array $namespacePrefixToDirMap - * - * @return SerializerBuilder - */ - public function addMetadataDirs(array $namespacePrefixToDirMap) - { - foreach ($namespacePrefixToDirMap as $prefix => $dir) { - $this->addMetadataDir($dir, $prefix); - } - - return $this; - } - - /** - * Similar to addMetadataDir(), but overrides an existing entry. - * - * @param string $dir - * @param string $namespacePrefix - * - * @return SerializerBuilder - * - * @throws InvalidArgumentException When a directory does not exist - * @throws InvalidArgumentException When no directory is configured for the ns prefix - */ - public function replaceMetadataDir($dir, $namespacePrefix = '') - { - if (!is_dir($dir)) { - throw new InvalidArgumentException(sprintf('The directory "%s" does not exist.', $dir)); - } - - if (!isset($this->metadataDirs[$namespacePrefix])) { - throw new InvalidArgumentException(sprintf('There is no directory configured for namespace prefix "%s". Please use addMetadataDir() for adding new directories.', $namespacePrefix)); - } - - $this->metadataDirs[$namespacePrefix] = $dir; - - return $this; - } - - public function setMetadataDriverFactory(DriverFactoryInterface $driverFactory) - { - $this->driverFactory = $driverFactory; - - return $this; - } - - /** - * @param SerializationContextFactoryInterface|callable $serializationContextFactory - * - * @return self - */ - public function setSerializationContextFactory($serializationContextFactory) - { - if ($serializationContextFactory instanceof SerializationContextFactoryInterface) { - $this->serializationContextFactory = $serializationContextFactory; - } elseif (is_callable($serializationContextFactory)) { - $this->serializationContextFactory = new CallableSerializationContextFactory( - $serializationContextFactory - ); - } else { - throw new InvalidArgumentException('expected SerializationContextFactoryInterface or callable.'); - } - - return $this; - } - - /** - * @param DeserializationContextFactoryInterface|callable $deserializationContextFactory - * - * @return self - */ - public function setDeserializationContextFactory($deserializationContextFactory) - { - if ($deserializationContextFactory instanceof DeserializationContextFactoryInterface) { - $this->deserializationContextFactory = $deserializationContextFactory; - } elseif (is_callable($deserializationContextFactory)) { - $this->deserializationContextFactory = new CallableDeserializationContextFactory( - $deserializationContextFactory - ); - } else { - throw new InvalidArgumentException('expected DeserializationContextFactoryInterface or callable.'); - } - - return $this; - } - - public function build() - { - $annotationReader = $this->annotationReader; - if (null === $annotationReader) { - $annotationReader = new AnnotationReader(); - - if (null !== $this->cacheDir) { - $this->createDir($this->cacheDir . '/annotations'); - $annotationsCache = new FilesystemCache($this->cacheDir . '/annotations'); - $annotationReader = new CachedReader($annotationReader, $annotationsCache, $this->debug); - } - } - - $metadataDriver = $this->driverFactory->createDriver($this->metadataDirs, $annotationReader); - $metadataFactory = new MetadataFactory($metadataDriver, null, $this->debug); - - $metadataFactory->setIncludeInterfaces($this->includeInterfaceMetadata); - - if (null !== $this->cacheDir) { - $this->createDir($this->cacheDir . '/metadata'); - $metadataFactory->setCache(new FileCache($this->cacheDir . '/metadata')); - } - - if (!$this->handlersConfigured) { - $this->addDefaultHandlers(); - } - - if (!$this->listenersConfigured) { - $this->addDefaultListeners(); - } - - if (!$this->visitorsAdded) { - $this->addDefaultSerializationVisitors(); - $this->addDefaultDeserializationVisitors(); - } - - $serializer = new Serializer( - $metadataFactory, - $this->handlerRegistry, - $this->objectConstructor ?: new UnserializeObjectConstructor(), - $this->serializationVisitors, - $this->deserializationVisitors, - $this->eventDispatcher, - null, - $this->expressionEvaluator - ); - - if (null !== $this->serializationContextFactory) { - $serializer->setSerializationContextFactory($this->serializationContextFactory); - } - - if (null !== $this->deserializationContextFactory) { - $serializer->setDeserializationContextFactory($this->deserializationContextFactory); - } - - return $serializer; - } - - private function initializePropertyNamingStrategy() - { - if (null !== $this->propertyNamingStrategy) { - return; - } - - $this->propertyNamingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy()); - } - - private function createDir($dir) - { - if (is_dir($dir)) { - return; - } - - if (false === @mkdir($dir, 0777, true) && false === is_dir($dir)) { - throw new RuntimeException(sprintf('Could not create directory "%s".', $dir)); - } - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/SerializerInterface.php b/vendor/jms/serializer/src/JMS/Serializer/SerializerInterface.php deleted file mode 100644 index 2eb320d..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/SerializerInterface.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -/** - * Serializer Interface. - * - * @author Johannes M. Schmitt - */ -interface SerializerInterface -{ - /** - * Serializes the given data to the specified output format. - * - * @param object|array|scalar $data - * @param string $format - * @param Context $context - * - * @return string - */ - public function serialize($data, $format, SerializationContext $context = null); - - /** - * Deserializes the given data to the specified type. - * - * @param string $data - * @param string $type - * @param string $format - * @param Context $context - * - * @return object|array|scalar - */ - public function deserialize($data, $type, $format, DeserializationContext $context = null); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerExtension.php b/vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerExtension.php deleted file mode 100644 index b34fcd9..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerExtension.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Twig; - -use JMS\Serializer\SerializationContext; -use JMS\Serializer\SerializerInterface; - -/** - * Serializer helper twig extension - * - * Basically provides access to JMSSerializer from Twig - */ -class SerializerExtension extends \Twig_Extension -{ - protected $serializer; - - public function getName() - { - return 'jms_serializer'; - } - - public function __construct(SerializerInterface $serializer) - { - $this->serializer = $serializer; - } - - public function getFilters() - { - return array( - new \Twig_SimpleFilter('serialize', array($this, 'serialize')), - ); - } - - public function getFunctions() - { - return array( - new \Twig_SimpleFunction('serialization_context', '\JMS\Serializer\SerializationContext::create'), - ); - } - - /** - * @param object $object - * @param string $type - * @param SerializationContext $context - */ - public function serialize($object, $type = 'json', SerializationContext $context = null) - { - return $this->serializer->serialize($object, $type, $context); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerRuntimeExtension.php b/vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerRuntimeExtension.php deleted file mode 100644 index 12a214a..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerRuntimeExtension.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Twig; - -/** - * @author Asmir Mustafic - */ -final class SerializerRuntimeExtension extends \Twig_Extension -{ - - public function getName() - { - return 'jms_serializer'; - } - - public function getFilters() - { - return array( - new \Twig_SimpleFilter('serialize', array(SerializerRuntimeHelper::class, 'serialize')), - ); - } - - public function getFunctions() - { - return array( - new \Twig_SimpleFunction('serialization_context', '\JMS\Serializer\SerializationContext::create'), - ); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerRuntimeHelper.php b/vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerRuntimeHelper.php deleted file mode 100644 index 39286b7..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Twig/SerializerRuntimeHelper.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Twig; - -use JMS\Serializer\SerializationContext; -use JMS\Serializer\SerializerInterface; - -/** - * @author Asmir Mustafic - */ -final class SerializerRuntimeHelper -{ - protected $serializer; - - public function __construct(SerializerInterface $serializer) - { - $this->serializer = $serializer; - } - - /** - * @param $object - * @param string $type - * @param SerializationContext|null $context - * @return string - */ - public function serialize($object, $type = 'json', SerializationContext $context = null) - { - return $this->serializer->serialize($object, $type, $context); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/TypeParser.php b/vendor/jms/serializer/src/JMS/Serializer/TypeParser.php deleted file mode 100644 index b0fe218..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/TypeParser.php +++ /dev/null @@ -1,105 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -/** - * Parses a serializer type. - * - * @author Johannes M. Schmitt - */ -final class TypeParser extends \JMS\Parser\AbstractParser -{ - const T_NAME = 1; - const T_STRING = 2; - const T_OPEN_BRACKET = 3; - const T_CLOSE_BRACKET = 4; - const T_COMMA = 5; - const T_NONE = 6; - - public function __construct() - { - parent::__construct(new \JMS\Parser\SimpleLexer( - '/ - # PHP Class Names - ((?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\\\\)*[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*) - - # Strings - |("(?:[^"]|"")*"|\'(?:[^\']|\'\')*\') - - # Ignore whitespace - |\s* - - # Terminals - |(.) - /x', - array(self::T_NAME => 'T_NAME', self::T_STRING => 'T_STRING', self::T_OPEN_BRACKET => 'T_OPEN_BRACKET', - self::T_CLOSE_BRACKET => 'T_CLOSE_BRACKET', self::T_COMMA => 'T_COMMA', self::T_NONE => 'T_NONE'), - function ($value) { - switch ($value[0]) { - case '"': - case "'": - return array(TypeParser::T_STRING, substr($value, 1, -1)); - - case '<': - return array(TypeParser::T_OPEN_BRACKET, '<'); - - case '>': - return array(TypeParser::T_CLOSE_BRACKET, '>'); - - case ',': - return array(TypeParser::T_COMMA, ','); - - default: - if (preg_match('/^(?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\\\\)*[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $value)) { - return array(TypeParser::T_NAME, $value); - } - - return array(TypeParser::T_NONE, $value); - } - } - )); - } - - /** - * @return array of the format ["name" => string, "params" => array] - */ - protected function parseInternal() - { - $typeName = $this->match(self::T_NAME); - if (!$this->lexer->isNext(self::T_OPEN_BRACKET)) { - return array('name' => $typeName, 'params' => array()); - } - - $this->match(self::T_OPEN_BRACKET); - $params = array(); - do { - if ($this->lexer->isNext(self::T_NAME)) { - $params[] = $this->parseInternal(); - } else if ($this->lexer->isNext(self::T_STRING)) { - $params[] = $this->match(self::T_STRING); - } else { - $this->matchAny(array(self::T_NAME, self::T_STRING)); // Will throw an exception. - } - } while ($this->lexer->isNext(self::T_COMMA) && $this->lexer->moveNext()); - - $this->match(self::T_CLOSE_BRACKET); - - return array('name' => $typeName, 'params' => $params); - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/Util/Writer.php b/vendor/jms/serializer/src/JMS/Serializer/Util/Writer.php deleted file mode 100644 index 1b61623..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/Util/Writer.php +++ /dev/null @@ -1,138 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Util; - -use JMS\Serializer\Exception\RuntimeException; - -/** - * A writer implementation. - * - * This may be used to simplify writing well-formatted code. - * - * @author Johannes M. Schmitt - */ -class Writer -{ - public $indentationSpaces = 4; - public $indentationLevel = 0; - public $content = ''; - public $changeCount = 0; - - private $changes = array(); - - public function indent() - { - $this->indentationLevel += 1; - - return $this; - } - - public function outdent() - { - $this->indentationLevel -= 1; - - if ($this->indentationLevel < 0) { - throw new RuntimeException('The identation level cannot be less than zero.'); - } - - return $this; - } - - /** - * @param string $content - * - * @return Writer - */ - public function writeln($content) - { - $this->write($content . "\n"); - - return $this; - } - - public function revert() - { - $change = array_pop($this->changes); - $this->changeCount -= 1; - $this->content = substr($this->content, 0, -1 * strlen($change)); - } - - /** - * @param string $content - * - * @return Writer - */ - public function write($content) - { - $addition = ''; - - $lines = explode("\n", $content); - for ($i = 0, $c = count($lines); $i < $c; $i++) { - if ($this->indentationLevel > 0 - && !empty($lines[$i]) - && ((empty($addition) && "\n" === substr($this->content, -1)) || "\n" === substr($addition, -1)) - ) { - $addition .= str_repeat(' ', $this->indentationLevel * $this->indentationSpaces); - } - - $addition .= $lines[$i]; - - if ($i + 1 < $c) { - $addition .= "\n"; - } - } - - $this->content .= $addition; - $this->changes[] = $addition; - $this->changeCount += 1; - - return $this; - } - - public function rtrim($preserveNewLines = true) - { - if (!$preserveNewLines) { - $this->content = rtrim($this->content); - - return $this; - } - - $addNl = "\n" === substr($this->content, -1); - $this->content = rtrim($this->content); - - if ($addNl) { - $this->content .= "\n"; - } - - return $this; - } - - public function reset() - { - $this->content = ''; - $this->indentationLevel = 0; - - return $this; - } - - public function getContent() - { - return $this->content; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/VisitorInterface.php b/vendor/jms/serializer/src/JMS/Serializer/VisitorInterface.php deleted file mode 100644 index 7b84800..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/VisitorInterface.php +++ /dev/null @@ -1,141 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - * Interface for visitors. - * - * This contains the minimal set of values that must be supported for any - * output format. - * - * @author Johannes M. Schmitt - */ -interface VisitorInterface -{ - /** - * Allows visitors to convert the input data to a different representation - * before the actual serialization/deserialization process starts. - * - * @param mixed $data - * - * @return mixed - */ - public function prepare($data); - - /** - * @param mixed $data - * @param array $type - * - * @return mixed - */ - public function visitNull($data, array $type, Context $context); - - /** - * @param mixed $data - * @param array $type - * - * @return mixed - */ - public function visitString($data, array $type, Context $context); - - /** - * @param mixed $data - * @param array $type - * - * @return mixed - */ - public function visitBoolean($data, array $type, Context $context); - - /** - * @param mixed $data - * @param array $type - * - * @return mixed - */ - public function visitDouble($data, array $type, Context $context); - - /** - * @param mixed $data - * @param array $type - * - * @return mixed - */ - public function visitInteger($data, array $type, Context $context); - - /** - * @param mixed $data - * @param array $type - * - * @return mixed - */ - public function visitArray($data, array $type, Context $context); - - /** - * Called before the properties of the object are being visited. - * - * @param ClassMetadata $metadata - * @param mixed $data - * @param array $type - * - * @return void - */ - public function startVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context); - - /** - * @param PropertyMetadata $metadata - * @param mixed $data - * - * @return void - */ - public function visitProperty(PropertyMetadata $metadata, $data, Context $context); - - /** - * Called after all properties of the object have been visited. - * - * @param ClassMetadata $metadata - * @param mixed $data - * @param array $type - * - * @return mixed - */ - public function endVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context); - - /** - * Called before serialization/deserialization starts. - * - * @param GraphNavigator $navigator - * - * @return void - */ - public function setNavigator(GraphNavigator $navigator); - - /** - * @deprecated use Context::getNavigator/Context::accept instead - * @return GraphNavigator - */ - public function getNavigator(); - - /** - * @return object|array|scalar - */ - public function getResult(); -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/XmlDeserializationVisitor.php b/vendor/jms/serializer/src/JMS/Serializer/XmlDeserializationVisitor.php deleted file mode 100644 index 0fe23b3..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/XmlDeserializationVisitor.php +++ /dev/null @@ -1,450 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Exception\InvalidArgumentException; -use JMS\Serializer\Exception\LogicException; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\Exception\XmlErrorException; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Naming\AdvancedNamingStrategyInterface; - -class XmlDeserializationVisitor extends AbstractVisitor implements NullAwareVisitorInterface -{ - private $objectStack; - private $metadataStack; - private $objectMetadataStack; - private $currentObject; - private $currentMetadata; - private $result; - private $navigator; - private $disableExternalEntities = true; - private $doctypeWhitelist = array(); - - public function enableExternalEntities() - { - $this->disableExternalEntities = false; - } - - public function setNavigator(GraphNavigator $navigator) - { - $this->navigator = $navigator; - $this->objectStack = new \SplStack; - $this->metadataStack = new \SplStack; - $this->objectMetadataStack = new \SplStack; - $this->result = null; - } - - public function getNavigator() - { - return $this->navigator; - } - - public function prepare($data) - { - $data = $this->emptyStringToSpaceCharacter($data); - - $previous = libxml_use_internal_errors(true); - libxml_clear_errors(); - - $previousEntityLoaderState = libxml_disable_entity_loader($this->disableExternalEntities); - - if (false !== stripos($data, 'getDomDocumentTypeEntitySubset($data); - if (!in_array($internalSubset, $this->doctypeWhitelist, true)) { - throw new InvalidArgumentException(sprintf( - 'The document type "%s" is not allowed. If it is safe, you may add it to the whitelist configuration.', - $internalSubset - )); - } - } - - $doc = simplexml_load_string($data); - - libxml_use_internal_errors($previous); - libxml_disable_entity_loader($previousEntityLoaderState); - - if (false === $doc) { - throw new XmlErrorException(libxml_get_last_error()); - } - - return $doc; - } - - private function emptyStringToSpaceCharacter($data) - { - return $data === '' ? ' ' : (string)$data; - } - - public function visitNull($data, array $type, Context $context) - { - return null; - } - - public function visitString($data, array $type, Context $context) - { - $data = (string)$data; - - if (null === $this->result) { - $this->result = $data; - } - - return $data; - } - - public function visitBoolean($data, array $type, Context $context) - { - $data = (string)$data; - - if ('true' === $data || '1' === $data) { - $data = true; - } elseif ('false' === $data || '0' === $data) { - $data = false; - } else { - throw new RuntimeException(sprintf('Could not convert data to boolean. Expected "true", "false", "1" or "0", but got %s.', json_encode($data))); - } - - if (null === $this->result) { - $this->result = $data; - } - - return $data; - } - - public function visitInteger($data, array $type, Context $context) - { - $data = (integer)$data; - - if (null === $this->result) { - $this->result = $data; - } - - return $data; - } - - public function visitDouble($data, array $type, Context $context) - { - $data = (double)$data; - - if (null === $this->result) { - $this->result = $data; - } - - return $data; - } - - public function visitArray($data, array $type, Context $context) - { - // handle key-value-pairs - if (null !== $this->currentMetadata && $this->currentMetadata->xmlKeyValuePairs) { - if (2 !== count($type['params'])) { - throw new RuntimeException('The array type must be specified as "array" for Key-Value-Pairs.'); - } - $this->revertCurrentMetadata(); - - list($keyType, $entryType) = $type['params']; - - $result = []; - foreach ($data as $key => $v) { - $k = $this->navigator->accept($key, $keyType, $context); - $result[$k] = $this->navigator->accept($v, $entryType, $context); - } - - return $result; - } - - $entryName = null !== $this->currentMetadata && $this->currentMetadata->xmlEntryName ? $this->currentMetadata->xmlEntryName : 'entry'; - $namespace = null !== $this->currentMetadata && $this->currentMetadata->xmlEntryNamespace ? $this->currentMetadata->xmlEntryNamespace : null; - - if ($namespace === null && $this->objectMetadataStack->count()) { - $classMetadata = $this->objectMetadataStack->top(); - $namespace = isset($classMetadata->xmlNamespaces['']) ? $classMetadata->xmlNamespaces[''] : $namespace; - if ($namespace === null) { - $namespaces = $data->getDocNamespaces(); - if (isset($namespaces[''])) { - $namespace = $namespaces['']; - } - } - } - - if (null !== $namespace) { - $prefix = uniqid('ns-'); - $data->registerXPathNamespace($prefix, $namespace); - $nodes = $data->xpath("$prefix:$entryName"); - } else { - $nodes = $data->xpath($entryName); - } - - if (!count($nodes)) { - if (null === $this->result) { - return $this->result = array(); - } - - return array(); - } - - switch (count($type['params'])) { - case 0: - throw new RuntimeException(sprintf('The array type must be specified either as "array", or "array".')); - - case 1: - $result = array(); - - if (null === $this->result) { - $this->result = &$result; - } - - foreach ($nodes as $v) { - $result[] = $this->navigator->accept($v, $type['params'][0], $context); - } - - return $result; - - case 2: - if (null === $this->currentMetadata) { - throw new RuntimeException('Maps are not supported on top-level without metadata.'); - } - - list($keyType, $entryType) = $type['params']; - $result = array(); - if (null === $this->result) { - $this->result = &$result; - } - - $nodes = $data->children($namespace)->$entryName; - foreach ($nodes as $v) { - $attrs = $v->attributes(); - if (!isset($attrs[$this->currentMetadata->xmlKeyAttribute])) { - throw new RuntimeException(sprintf('The key attribute "%s" must be set for each entry of the map.', $this->currentMetadata->xmlKeyAttribute)); - } - - $k = $this->navigator->accept($attrs[$this->currentMetadata->xmlKeyAttribute], $keyType, $context); - $result[$k] = $this->navigator->accept($v, $entryType, $context); - } - - return $result; - - default: - throw new LogicException(sprintf('The array type does not support more than 2 parameters, but got %s.', json_encode($type['params']))); - } - } - - public function startVisitingObject(ClassMetadata $metadata, $object, array $type, Context $context) - { - $this->setCurrentObject($object); - $this->objectMetadataStack->push($metadata); - if (null === $this->result) { - $this->result = $this->currentObject; - } - } - - public function visitProperty(PropertyMetadata $metadata, $data, Context $context) - { - if ($this->namingStrategy instanceof AdvancedNamingStrategyInterface) { - $name = $this->namingStrategy->getPropertyName($metadata, $context); - } else { - $name = $this->namingStrategy->translateName($metadata); - } - - if (!$metadata->type) { - throw new RuntimeException(sprintf('You must define a type for %s::$%s.', $metadata->reflection->class, $metadata->name)); - } - - if ($metadata->xmlAttribute) { - - $attributes = $data->attributes($metadata->xmlNamespace); - if (isset($attributes[$name])) { - $v = $this->navigator->accept($attributes[$name], $metadata->type, $context); - $this->accessor->setValue($this->currentObject, $v, $metadata); - } - - return; - } - - if ($metadata->xmlValue) { - $v = $this->navigator->accept($data, $metadata->type, $context); - $this->accessor->setValue($this->currentObject, $v, $metadata); - - return; - } - - if ($metadata->xmlCollection) { - $enclosingElem = $data; - if (!$metadata->xmlCollectionInline) { - $enclosingElem = $data->children($metadata->xmlNamespace)->$name; - } - - $this->setCurrentMetadata($metadata); - $v = $this->navigator->accept($enclosingElem, $metadata->type, $context); - $this->revertCurrentMetadata(); - $this->accessor->setValue($this->currentObject, $v, $metadata); - - return; - } - - if ($metadata->xmlNamespace) { - $node = $data->children($metadata->xmlNamespace)->$name; - if (!$node->count()) { - return; - } - } else { - - $namespaces = $data->getDocNamespaces(); - - if (isset($namespaces[''])) { - $prefix = uniqid('ns-'); - $data->registerXPathNamespace($prefix, $namespaces['']); - $nodes = $data->xpath('./' . $prefix . ':' . $name); - } else { - $nodes = $data->xpath('./' . $name); - } - if (empty($nodes)) { - return; - } - $node = reset($nodes); - } - - if ($metadata->xmlKeyValuePairs) { - $this->setCurrentMetadata($metadata); - } - - $v = $this->navigator->accept($node, $metadata->type, $context); - - $this->accessor->setValue($this->currentObject, $v, $metadata); - } - - public function endVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - $rs = $this->currentObject; - $this->objectMetadataStack->pop(); - $this->revertCurrentObject(); - - return $rs; - } - - public function setCurrentObject($object) - { - $this->objectStack->push($this->currentObject); - $this->currentObject = $object; - } - - public function getCurrentObject() - { - return $this->currentObject; - } - - public function revertCurrentObject() - { - return $this->currentObject = $this->objectStack->pop(); - } - - public function setCurrentMetadata(PropertyMetadata $metadata) - { - $this->metadataStack->push($this->currentMetadata); - $this->currentMetadata = $metadata; - } - - public function getCurrentMetadata() - { - return $this->currentMetadata; - } - - public function revertCurrentMetadata() - { - return $this->currentMetadata = $this->metadataStack->pop(); - } - - public function getResult() - { - return $this->result; - } - - /** - * @param array $doctypeWhitelist - */ - public function setDoctypeWhitelist(array $doctypeWhitelist) - { - $this->doctypeWhitelist = $doctypeWhitelist; - } - - /** - * @return array - */ - public function getDoctypeWhitelist() - { - return $this->doctypeWhitelist; - } - - /** - * Retrieves internalSubset even in bugfixed php versions - * - * @param \DOMDocumentType $child - * @param string $data - * @return string - */ - private function getDomDocumentTypeEntitySubset($data) - { - $startPos = $endPos = stripos($data, '') { - --$braces; - } - } while ($braces > 0); - - $internalSubset = substr($data, $startPos, $endPos - $startPos); - $internalSubset = str_replace(array("\n", "\r"), '', $internalSubset); - $internalSubset = preg_replace('/\s{2,}/', ' ', $internalSubset); - $internalSubset = str_replace(array("[ ]>"), array('[]>'), $internalSubset); - - return $internalSubset; - } - - /** - * @param mixed $value - * - * @return bool - */ - public function isNull($value) - { - if ($value instanceof \SimpleXMLElement) { - // Workaround for https://bugs.php.net/bug.php?id=75168 and https://github.com/schmittjoh/serializer/issues/817 - // If the "name" is empty means that we are on an not-existent node and subsequent operations on the object will trigger the warning: - // "Node no longer exists" - if ($value->getName() === "") { - // @todo should be "true", but for collections needs a default collection value. maybe something for the 2.0 - return false; - } - - $xsiAttributes = $value->attributes('http://www.w3.org/2001/XMLSchema-instance'); - if (isset($xsiAttributes['nil']) - && ((string) $xsiAttributes['nil'] === 'true' || (string) $xsiAttributes['nil'] === '1') - ) { - return true; - } - } - - return $value === null; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/XmlSerializationVisitor.php b/vendor/jms/serializer/src/JMS/Serializer/XmlSerializationVisitor.php deleted file mode 100644 index feaf942..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/XmlSerializationVisitor.php +++ /dev/null @@ -1,533 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Accessor\AccessorStrategyInterface; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Naming\AdvancedNamingStrategyInterface; -use JMS\Serializer\Naming\PropertyNamingStrategyInterface; - -/** - * XmlSerializationVisitor. - * - * @author Johannes M. Schmitt - */ -class XmlSerializationVisitor extends AbstractVisitor -{ - public $document; - - private $navigator; - private $defaultRootName = 'result'; - private $defaultRootNamespace; - private $defaultVersion = '1.0'; - private $defaultEncoding = 'UTF-8'; - private $stack; - private $metadataStack; - private $currentNode; - private $currentMetadata; - private $hasValue; - private $nullWasVisited; - private $objectMetadataStack; - - /** @var boolean */ - private $formatOutput; - - public function __construct($namingStrategy, AccessorStrategyInterface $accessorStrategy = null) - { - parent::__construct($namingStrategy, $accessorStrategy); - $this->objectMetadataStack = new \SplStack; - $this->formatOutput = true; - } - - public function setDefaultRootName($name, $namespace = null) - { - $this->defaultRootName = $name; - $this->defaultRootNamespace = $namespace; - } - - /** - * @return boolean - */ - public function hasDefaultRootName() - { - return 'result' === $this->defaultRootName; - } - - public function setDefaultVersion($version) - { - $this->defaultVersion = $version; - } - - public function setDefaultEncoding($encoding) - { - $this->defaultEncoding = $encoding; - } - - public function setNavigator(GraphNavigator $navigator) - { - $this->navigator = $navigator; - $this->document = null; - $this->stack = new \SplStack; - $this->metadataStack = new \SplStack; - } - - public function getNavigator() - { - return $this->navigator; - } - - public function visitNull($data, array $type, Context $context) - { - if (null === $this->document) { - $this->document = $this->createDocument(null, null, true); - $node = $this->document->createAttribute('xsi:nil'); - $node->value = 'true'; - $this->currentNode->appendChild($node); - - $this->attachNullNamespace(); - - return; - } - - $node = $this->document->createAttribute('xsi:nil'); - $node->value = 'true'; - $this->attachNullNamespace(); - - return $node; - } - - public function visitString($data, array $type, Context $context) - { - - if (null !== $this->currentMetadata) { - $doCData = $this->currentMetadata->xmlElementCData; - } else { - $doCData = true; - } - - if (null === $this->document) { - $this->document = $this->createDocument(null, null, true); - $this->currentNode->appendChild($doCData ? $this->document->createCDATASection($data) : $this->document->createTextNode((string)$data)); - - return; - } - - return $doCData ? $this->document->createCDATASection($data) : $this->document->createTextNode((string)$data); - } - - public function visitSimpleString($data, array $type, Context $context) - { - if (null === $this->document) { - $this->document = $this->createDocument(null, null, true); - $this->currentNode->appendChild($this->document->createTextNode((string)$data)); - - return; - } - - return $this->document->createTextNode((string)$data); - } - - public function visitBoolean($data, array $type, Context $context) - { - if (null === $this->document) { - $this->document = $this->createDocument(null, null, true); - $this->currentNode->appendChild($this->document->createTextNode($data ? 'true' : 'false')); - - return; - } - - return $this->document->createTextNode($data ? 'true' : 'false'); - } - - public function visitInteger($data, array $type, Context $context) - { - return $this->visitNumeric($data, $type); - } - - public function visitDouble($data, array $type, Context $context) - { - return $this->visitNumeric($data, $type); - } - - public function visitArray($data, array $type, Context $context) - { - if (null === $this->document) { - $this->document = $this->createDocument(null, null, true); - } - - $entryName = (null !== $this->currentMetadata && null !== $this->currentMetadata->xmlEntryName) ? $this->currentMetadata->xmlEntryName : 'entry'; - $keyAttributeName = (null !== $this->currentMetadata && null !== $this->currentMetadata->xmlKeyAttribute) ? $this->currentMetadata->xmlKeyAttribute : null; - $namespace = (null !== $this->currentMetadata && null !== $this->currentMetadata->xmlEntryNamespace) ? $this->currentMetadata->xmlEntryNamespace : null; - - foreach ($data as $k => $v) { - - if (null === $v && $context->shouldSerializeNull() !== true) { - continue; - } - - $tagName = (null !== $this->currentMetadata && $this->currentMetadata->xmlKeyValuePairs && $this->isElementNameValid($k)) ? $k : $entryName; - - $entryNode = $this->createElement($tagName, $namespace); - $this->currentNode->appendChild($entryNode); - $this->setCurrentNode($entryNode); - - if (null !== $keyAttributeName) { - $entryNode->setAttribute($keyAttributeName, (string)$k); - } - - if (null !== $node = $this->navigator->accept($v, $this->getElementType($type), $context)) { - $this->currentNode->appendChild($node); - } - - $this->revertCurrentNode(); - } - } - - public function startVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - $this->objectMetadataStack->push($metadata); - - if (null === $this->document) { - $this->document = $this->createDocument(null, null, false); - if ($metadata->xmlRootName) { - $rootName = $metadata->xmlRootName; - $rootNamespace = $metadata->xmlRootNamespace ?: $this->getClassDefaultNamespace($metadata); - } else { - $rootName = $this->defaultRootName; - $rootNamespace = $this->defaultRootNamespace; - } - - if ($rootNamespace) { - $this->currentNode = $this->document->createElementNS($rootNamespace, $rootName); - } else { - $this->currentNode = $this->document->createElement($rootName); - } - - $this->document->appendChild($this->currentNode); - } - - $this->addNamespaceAttributes($metadata, $this->currentNode); - - $this->hasValue = false; - } - - public function visitProperty(PropertyMetadata $metadata, $object, Context $context) - { - $v = $this->accessor->getValue($object, $metadata); - - if (null === $v && $context->shouldSerializeNull() !== true) { - return; - } - - if ($metadata->xmlAttribute) { - $this->setCurrentMetadata($metadata); - $node = $this->navigator->accept($v, $metadata->type, $context); - $this->revertCurrentMetadata(); - - if (!$node instanceof \DOMCharacterData) { - throw new RuntimeException(sprintf('Unsupported value for XML attribute for %s. Expected character data, but got %s.', $metadata->name, json_encode($v))); - } - if ($this->namingStrategy instanceof AdvancedNamingStrategyInterface) { - $attributeName = $this->namingStrategy->getPropertyName($metadata, $context); - } else { - $attributeName = $this->namingStrategy->translateName($metadata); - } - $this->setAttributeOnNode($this->currentNode, $attributeName, $node->nodeValue, $metadata->xmlNamespace); - - return; - } - - if (($metadata->xmlValue && $this->currentNode->childNodes->length > 0) - || (!$metadata->xmlValue && $this->hasValue) - ) { - throw new RuntimeException(sprintf('If you make use of @XmlValue, all other properties in the class must have the @XmlAttribute annotation. Invalid usage detected in class %s.', $metadata->class)); - } - - if ($metadata->xmlValue) { - $this->hasValue = true; - - $this->setCurrentMetadata($metadata); - $node = $this->navigator->accept($v, $metadata->type, $context); - $this->revertCurrentMetadata(); - - if (!$node instanceof \DOMCharacterData) { - throw new RuntimeException(sprintf('Unsupported value for property %s::$%s. Expected character data, but got %s.', $metadata->reflection->class, $metadata->reflection->name, is_object($node) ? get_class($node) : gettype($node))); - } - - $this->currentNode->appendChild($node); - - return; - } - - if ($metadata->xmlAttributeMap) { - if (!is_array($v)) { - throw new RuntimeException(sprintf('Unsupported value type for XML attribute map. Expected array but got %s.', gettype($v))); - } - - foreach ($v as $key => $value) { - $this->setCurrentMetadata($metadata); - $node = $this->navigator->accept($value, null, $context); - $this->revertCurrentMetadata(); - - if (!$node instanceof \DOMCharacterData) { - throw new RuntimeException(sprintf('Unsupported value for a XML attribute map value. Expected character data, but got %s.', json_encode($v))); - } - - $this->setAttributeOnNode($this->currentNode, $key, $node->nodeValue, $metadata->xmlNamespace); - } - - return; - } - - if ($addEnclosingElement = !$this->isInLineCollection($metadata) && !$metadata->inline) { - if ($this->namingStrategy instanceof AdvancedNamingStrategyInterface) { - $elementName = $this->namingStrategy->getPropertyName($metadata, $context); - } else { - $elementName = $this->namingStrategy->translateName($metadata); - } - - $namespace = null !== $metadata->xmlNamespace - ? $metadata->xmlNamespace - : $this->getClassDefaultNamespace($this->objectMetadataStack->top()); - - $element = $this->createElement($elementName, $namespace); - $this->currentNode->appendChild($element); - $this->setCurrentNode($element); - } - - $this->setCurrentMetadata($metadata); - - if (null !== $node = $this->navigator->accept($v, $metadata->type, $context)) { - $this->currentNode->appendChild($node); - } - - $this->revertCurrentMetadata(); - - if ($addEnclosingElement) { - $this->revertCurrentNode(); - - if ($this->isElementEmpty($element) && ($v === null || $this->isSkippableCollection($metadata) || $this->isSkippableEmptyObject($node, $metadata) || $this->isCircularRef($context, $v))) { - $this->currentNode->removeChild($element); - } - } - - $this->hasValue = false; - } - - private function isInLineCollection(PropertyMetadata $metadata) - { - return $metadata->xmlCollection && $metadata->xmlCollectionInline; - } - - private function isCircularRef(SerializationContext $context, $v) - { - return $context->isVisiting($v); - } - - private function isSkippableEmptyObject($node, PropertyMetadata $metadata) - { - return $node === null && !$metadata->xmlCollection && $metadata->skipWhenEmpty; - } - - private function isSkippableCollection(PropertyMetadata $metadata) - { - return $metadata->xmlCollection && $metadata->xmlCollectionSkipWhenEmpty; - } - - private function isElementEmpty(\DOMElement $element) - { - return !$element->hasChildNodes() && !$element->hasAttributes(); - } - - public function endVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - $this->objectMetadataStack->pop(); - } - - public function getResult() - { - return $this->document->saveXML(); - } - - public function getCurrentNode() - { - return $this->currentNode; - } - - public function getCurrentMetadata() - { - return $this->currentMetadata; - } - - public function getDocument() - { - return $this->document; - } - - public function setCurrentMetadata(PropertyMetadata $metadata) - { - $this->metadataStack->push($this->currentMetadata); - $this->currentMetadata = $metadata; - } - - public function setCurrentNode(\DOMNode $node) - { - $this->stack->push($this->currentNode); - $this->currentNode = $node; - } - - public function revertCurrentNode() - { - return $this->currentNode = $this->stack->pop(); - } - - public function revertCurrentMetadata() - { - return $this->currentMetadata = $this->metadataStack->pop(); - } - - public function createDocument($version = null, $encoding = null, $addRoot = true) - { - $doc = new \DOMDocument($version ?: $this->defaultVersion, $encoding ?: $this->defaultEncoding); - $doc->formatOutput = $this->isFormatOutput(); - - if ($addRoot) { - if ($this->defaultRootNamespace) { - $rootNode = $doc->createElementNS($this->defaultRootNamespace, $this->defaultRootName); - } else { - $rootNode = $doc->createElement($this->defaultRootName); - } - $this->setCurrentNode($rootNode); - $doc->appendChild($rootNode); - } - - return $doc; - } - - public function prepare($data) - { - $this->nullWasVisited = false; - - return $data; - } - - private function visitNumeric($data, array $type) - { - if (null === $this->document) { - $this->document = $this->createDocument(null, null, true); - $this->currentNode->appendChild($textNode = $this->document->createTextNode((string)$data)); - - return $textNode; - } - - return $this->document->createTextNode((string)$data); - } - - /** - * Checks that the name is a valid XML element name. - * - * @param string $name - * - * @return boolean - */ - private function isElementNameValid($name) - { - return $name && false === strpos($name, ' ') && preg_match('#^[\pL_][\pL0-9._-]*$#ui', $name); - } - - private function attachNullNamespace() - { - if (!$this->nullWasVisited) { - $this->document->documentElement->setAttributeNS( - 'http://www.w3.org/2000/xmlns/', - 'xmlns:xsi', - 'http://www.w3.org/2001/XMLSchema-instance' - ); - $this->nullWasVisited = true; - } - } - - /** - * Adds namespace attributes to the XML root element - * - * @param \JMS\Serializer\Metadata\ClassMetadata $metadata - * @param \DOMElement $element - */ - private function addNamespaceAttributes(ClassMetadata $metadata, \DOMElement $element) - { - foreach ($metadata->xmlNamespaces as $prefix => $uri) { - $attribute = 'xmlns'; - if ($prefix !== '') { - $attribute .= ':' . $prefix; - } elseif ($element->namespaceURI === $uri) { - continue; - } - $element->setAttributeNS('http://www.w3.org/2000/xmlns/', $attribute, $uri); - } - } - - private function createElement($tagName, $namespace = null) - { - if (null === $namespace) { - return $this->document->createElement($tagName); - } - if ($this->currentNode->isDefaultNamespace($namespace)) { - return $this->document->createElementNS($namespace, $tagName); - } - if (!($prefix = $this->currentNode->lookupPrefix($namespace)) && !($prefix = $this->document->lookupPrefix($namespace))) { - $prefix = 'ns-' . substr(sha1($namespace), 0, 8); - } - return $this->document->createElementNS($namespace, $prefix . ':' . $tagName); - } - - private function setAttributeOnNode(\DOMElement $node, $name, $value, $namespace = null) - { - if (null !== $namespace) { - if (!$prefix = $node->lookupPrefix($namespace)) { - $prefix = 'ns-' . substr(sha1($namespace), 0, 8); - } - $node->setAttributeNS($namespace, $prefix . ':' . $name, $value); - } else { - $node->setAttribute($name, $value); - } - } - - private function getClassDefaultNamespace(ClassMetadata $metadata) - { - return (isset($metadata->xmlNamespaces['']) ? $metadata->xmlNamespaces[''] : null); - } - - /** - * @return bool - */ - public function isFormatOutput() - { - return $this->formatOutput; - } - - /** - * @param bool $formatOutput - */ - public function setFormatOutput($formatOutput) - { - $this->formatOutput = (boolean)$formatOutput; - } -} diff --git a/vendor/jms/serializer/src/JMS/Serializer/YamlSerializationVisitor.php b/vendor/jms/serializer/src/JMS/Serializer/YamlSerializationVisitor.php deleted file mode 100644 index 52b0677..0000000 --- a/vendor/jms/serializer/src/JMS/Serializer/YamlSerializationVisitor.php +++ /dev/null @@ -1,223 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer; - -use JMS\Serializer\Accessor\AccessorStrategyInterface; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Naming\AdvancedNamingStrategyInterface; -use JMS\Serializer\Naming\PropertyNamingStrategyInterface; -use JMS\Serializer\Util\Writer; -use Symfony\Component\Yaml\Inline; - -/** - * Serialization Visitor for the YAML format. - * - * @see http://www.yaml.org/spec/ - * @author Johannes M. Schmitt - */ -class YamlSerializationVisitor extends AbstractVisitor -{ - public $writer; - - private $navigator; - private $stack; - private $metadataStack; - private $currentMetadata; - - public function __construct($namingStrategy, AccessorStrategyInterface $accessorStrategy = null) - { - parent::__construct($namingStrategy, $accessorStrategy); - - $this->writer = new Writer(); - } - - public function setNavigator(GraphNavigator $navigator) - { - $this->navigator = $navigator; - $this->writer->reset(); - $this->stack = new \SplStack; - $this->metadataStack = new \SplStack; - } - - public function visitNull($data, array $type, Context $context) - { - if ('' === $this->writer->content) { - $this->writer->writeln('null'); - } - - return 'null'; - } - - public function visitString($data, array $type, Context $context) - { - $v = Inline::dump($data); - - if ('' === $this->writer->content) { - $this->writer->writeln($v); - } - - return $v; - } - - /** - * @param array $data - * @param array $type - */ - public function visitArray($data, array $type, Context $context) - { - $isHash = isset($type['params'][1]); - - $count = $this->writer->changeCount; - $isList = (isset($type['params'][0]) && !isset($type['params'][1])) - || array_keys($data) === range(0, count($data) - 1); - - foreach ($data as $k => $v) { - if (null === $v && $context->shouldSerializeNull() !== true) { - continue; - } - - if ($isList && !$isHash) { - $this->writer->writeln('-'); - } else { - $this->writer->writeln(Inline::dump($k) . ':'); - } - - $this->writer->indent(); - - if (null !== $v = $this->navigator->accept($v, $this->getElementType($type), $context)) { - $this->writer - ->rtrim(false) - ->writeln(' ' . $v); - } - - $this->writer->outdent(); - } - - if ($count === $this->writer->changeCount && isset($type['params'][1])) { - $this->writer - ->rtrim(false) - ->writeln(' {}'); - } elseif (empty($data)) { - $this->writer - ->rtrim(false) - ->writeln(' []'); - } - } - - public function visitBoolean($data, array $type, Context $context) - { - $v = $data ? 'true' : 'false'; - - if ('' === $this->writer->content) { - $this->writer->writeln($v); - } - - return $v; - } - - public function visitDouble($data, array $type, Context $context) - { - $v = (string)$data; - - if ('' === $this->writer->content) { - $this->writer->writeln($v); - } - - return $v; - } - - public function visitInteger($data, array $type, Context $context) - { - $v = (string)$data; - - if ('' === $this->writer->content) { - $this->writer->writeln($v); - } - - return $v; - } - - public function startVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - } - - public function visitProperty(PropertyMetadata $metadata, $data, Context $context) - { - $v = $this->accessor->getValue($data, $metadata); - - if (null === $v && $context->shouldSerializeNull() !== true) { - return; - } - - if ($this->namingStrategy instanceof AdvancedNamingStrategyInterface) { - $name = $this->namingStrategy->getPropertyName($metadata, $context); - } else { - $name = $this->namingStrategy->translateName($metadata); - } - - if (!$metadata->inline) { - $this->writer - ->writeln(Inline::dump($name) . ':') - ->indent(); - } - - $this->setCurrentMetadata($metadata); - - $count = $this->writer->changeCount; - - if (null !== $v = $this->navigator->accept($v, $metadata->type, $context)) { - $this->writer - ->rtrim(false) - ->writeln(' ' . $v); - } elseif ($count === $this->writer->changeCount && !$metadata->inline) { - $this->writer->revert(); - } - - if (!$metadata->inline) { - $this->writer->outdent(); - } - $this->revertCurrentMetadata(); - } - - public function endVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - { - } - - public function setCurrentMetadata(PropertyMetadata $metadata) - { - $this->metadataStack->push($this->currentMetadata); - $this->currentMetadata = $metadata; - } - - public function revertCurrentMetadata() - { - return $this->currentMetadata = $this->metadataStack->pop(); - } - - public function getNavigator() - { - return $this->navigator; - } - - public function getResult() - { - return $this->writer->getContent(); - } -} diff --git a/vendor/jms/serializer/tests/Exclusion/DisjunctExclusionStrategyTest.php b/vendor/jms/serializer/tests/Exclusion/DisjunctExclusionStrategyTest.php deleted file mode 100644 index 1f70f9b..0000000 --- a/vendor/jms/serializer/tests/Exclusion/DisjunctExclusionStrategyTest.php +++ /dev/null @@ -1,161 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Exclusion; - -use JMS\Serializer\Exclusion\DisjunctExclusionStrategy; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\StaticPropertyMetadata; -use JMS\Serializer\SerializationContext; - -class DisjunctExclusionStrategyTest extends \PHPUnit_Framework_TestCase -{ - public function testShouldSkipClassShortCircuiting() - { - $metadata = new ClassMetadata('stdClass'); - $context = SerializationContext::create(); - - $strat = new DisjunctExclusionStrategy(array( - $first = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - $last = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - )); - - $first->expects($this->once()) - ->method('shouldSkipClass') - ->with($metadata, $context) - ->will($this->returnValue(true)); - - $last->expects($this->never()) - ->method('shouldSkipClass'); - - $this->assertTrue($strat->shouldSkipClass($metadata, $context)); - } - - public function testShouldSkipClassDisjunctBehavior() - { - $metadata = new ClassMetadata('stdClass'); - $context = SerializationContext::create(); - - $strat = new DisjunctExclusionStrategy(array( - $first = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - $last = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - )); - - $first->expects($this->once()) - ->method('shouldSkipClass') - ->with($metadata, $context) - ->will($this->returnValue(false)); - - $last->expects($this->once()) - ->method('shouldSkipClass') - ->with($metadata, $context) - ->will($this->returnValue(true)); - - $this->assertTrue($strat->shouldSkipClass($metadata, $context)); - } - - public function testShouldSkipClassReturnsFalseIfNoPredicateMatched() - { - $metadata = new ClassMetadata('stdClass'); - $context = SerializationContext::create(); - - $strat = new DisjunctExclusionStrategy(array( - $first = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - $last = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - )); - - $first->expects($this->once()) - ->method('shouldSkipClass') - ->with($metadata, $context) - ->will($this->returnValue(false)); - - $last->expects($this->once()) - ->method('shouldSkipClass') - ->with($metadata, $context) - ->will($this->returnValue(false)); - - $this->assertFalse($strat->shouldSkipClass($metadata, $context)); - } - - public function testShouldSkipPropertyShortCircuiting() - { - $metadata = new StaticPropertyMetadata('stdClass', 'foo', 'bar'); - $context = SerializationContext::create(); - - $strat = new DisjunctExclusionStrategy(array( - $first = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - $last = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - )); - - $first->expects($this->once()) - ->method('shouldSkipProperty') - ->with($metadata, $context) - ->will($this->returnValue(true)); - - $last->expects($this->never()) - ->method('shouldSkipProperty'); - - $this->assertTrue($strat->shouldSkipProperty($metadata, $context)); - } - - public function testShouldSkipPropertyDisjunct() - { - $metadata = new StaticPropertyMetadata('stdClass', 'foo', 'bar'); - $context = SerializationContext::create(); - - $strat = new DisjunctExclusionStrategy(array( - $first = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - $last = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - )); - - $first->expects($this->once()) - ->method('shouldSkipProperty') - ->with($metadata, $context) - ->will($this->returnValue(false)); - - $last->expects($this->once()) - ->method('shouldSkipProperty') - ->with($metadata, $context) - ->will($this->returnValue(true)); - - $this->assertTrue($strat->shouldSkipProperty($metadata, $context)); - } - - public function testShouldSkipPropertyReturnsFalseIfNoPredicateMatches() - { - $metadata = new StaticPropertyMetadata('stdClass', 'foo', 'bar'); - $context = SerializationContext::create(); - - $strat = new DisjunctExclusionStrategy(array( - $first = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - $last = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(), - )); - - $first->expects($this->once()) - ->method('shouldSkipProperty') - ->with($metadata, $context) - ->will($this->returnValue(false)); - - $last->expects($this->once()) - ->method('shouldSkipProperty') - ->with($metadata, $context) - ->will($this->returnValue(false)); - - $this->assertFalse($strat->shouldSkipProperty($metadata, $context)); - } -} diff --git a/vendor/jms/serializer/tests/Exclusion/ExpressionLanguageExclusionStrategyTest.php b/vendor/jms/serializer/tests/Exclusion/ExpressionLanguageExclusionStrategyTest.php deleted file mode 100644 index 02245a7..0000000 --- a/vendor/jms/serializer/tests/Exclusion/ExpressionLanguageExclusionStrategyTest.php +++ /dev/null @@ -1,75 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Exclusion; - -use JMS\Serializer\Exclusion\ExpressionLanguageExclusionStrategy; -use JMS\Serializer\Expression\ExpressionEvaluator; -use JMS\Serializer\Metadata\StaticPropertyMetadata; -use JMS\Serializer\SerializationContext; - -/** - * @author Asmir Mustafic - */ -class ExpressionLanguageExclusionStrategyTest extends \PHPUnit_Framework_TestCase -{ - private $visitedObject; - private $context; - private $expressionEvaluator; - private $exclusionStrategy; - - public function setUp() - { - $this->visitedObject = new \stdClass(); - - $this->context = $this->getMockBuilder(SerializationContext::class)->getMock(); - $this->context->method('getObject')->willReturn($this->visitedObject); - - $this->expressionEvaluator = $this->getMockBuilder(ExpressionEvaluator::class) - ->disableOriginalConstructor() - ->getMock(); - - $this->exclusionStrategy = new ExpressionLanguageExclusionStrategy($this->expressionEvaluator); - } - - public function testExpressionLanguageExclusionWorks() - { - $metadata = new StaticPropertyMetadata('stdClass', 'prop', 'propVal'); - $metadata->excludeIf = 'foo'; - - $this->expressionEvaluator->expects($this->once()) - ->method('evaluate') - ->with('foo', array( - 'context' => $this->context, - 'property_metadata' => $metadata, - 'object' => $this->visitedObject, - )) - ->willReturn(true); - - $this->assertSame(true, $this->exclusionStrategy->shouldSkipProperty($metadata, $this->context)); - } - - public function testExpressionLanguageSkipsWhenNoExpression() - { - $metadata = new StaticPropertyMetadata('stdClass', 'prop', 'propVal'); - - $this->expressionEvaluator->expects($this->never())->method('evaluate'); - - $this->assertSame(false, $this->exclusionStrategy->shouldSkipProperty($metadata, $this->context)); - } -} diff --git a/vendor/jms/serializer/tests/Exclusion/GroupsExclusionStrategyTest.php b/vendor/jms/serializer/tests/Exclusion/GroupsExclusionStrategyTest.php deleted file mode 100644 index f073b11..0000000 --- a/vendor/jms/serializer/tests/Exclusion/GroupsExclusionStrategyTest.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Exclusion; - -use JMS\Serializer\Exclusion\GroupsExclusionStrategy; -use JMS\Serializer\Metadata\StaticPropertyMetadata; -use JMS\Serializer\SerializationContext; - -class GroupsExclusionStrategyTest extends \PHPUnit_Framework_TestCase -{ - /** - * @dataProvider getExclusionRules - * @param array $propertyGroups - * @param array $groups - * @param $exclude - */ - public function testUninitializedContextIsWorking(array $propertyGroups, array $groups, $exclude) - { - $metadata = new StaticPropertyMetadata('stdClass', 'prop', 'propVal'); - $metadata->groups = $propertyGroups; - - $strat = new GroupsExclusionStrategy($groups); - $this->assertEquals($strat->shouldSkipProperty($metadata, SerializationContext::create()), $exclude); - } - - public function getExclusionRules() - { - return [ - [['foo'], ['foo'], false], - [['foo'], [], true], - [[], ['foo'], true], - [['foo'], ['bar'], true], - [['bar'], ['foo'], true], - - [['foo', GroupsExclusionStrategy::DEFAULT_GROUP], [], false], - [['foo', 'bar'], [], true], - [['foo', 'bar'], [GroupsExclusionStrategy::DEFAULT_GROUP], true], - [['foo', 'bar'], ['foo'], false], - - [['foo', GroupsExclusionStrategy::DEFAULT_GROUP], ['test'], true], - [['foo', GroupsExclusionStrategy::DEFAULT_GROUP, 'test'], ['test'], false], - - [['foo'], [GroupsExclusionStrategy::DEFAULT_GROUP], true], - [[GroupsExclusionStrategy::DEFAULT_GROUP], [], false], - [[], [GroupsExclusionStrategy::DEFAULT_GROUP], false], - [[GroupsExclusionStrategy::DEFAULT_GROUP], [GroupsExclusionStrategy::DEFAULT_GROUP], false], - [[GroupsExclusionStrategy::DEFAULT_GROUP, 'foo'], [GroupsExclusionStrategy::DEFAULT_GROUP], false], - [[GroupsExclusionStrategy::DEFAULT_GROUP], [GroupsExclusionStrategy::DEFAULT_GROUP, 'foo'], false], - [['foo'], [GroupsExclusionStrategy::DEFAULT_GROUP, 'foo'], false], - ]; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/AccessorOrderChild.php b/vendor/jms/serializer/tests/Fixtures/AccessorOrderChild.php deleted file mode 100644 index 273b8b9..0000000 --- a/vendor/jms/serializer/tests/Fixtures/AccessorOrderChild.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** @Serializer\AccessorOrder("custom", custom = {"c", "d", "a", "b"}) */ -class AccessorOrderChild extends AccessorOrderParent -{ - private $c = 'c', $d = 'd'; -} diff --git a/vendor/jms/serializer/tests/Fixtures/AccessorOrderMethod.php b/vendor/jms/serializer/tests/Fixtures/AccessorOrderMethod.php deleted file mode 100644 index 2277ff9..0000000 --- a/vendor/jms/serializer/tests/Fixtures/AccessorOrderMethod.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** @Serializer\AccessorOrder("custom", custom = {"method", "b", "a"}) */ -class AccessorOrderMethod -{ - private $b = 'b', $a = 'a'; - - /** - * @Serializer\VirtualProperty - * @Serializer\SerializedName("foo") - * - * @return string - */ - public function getMethod() - { - return 'c'; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/AccessorOrderParent.php b/vendor/jms/serializer/tests/Fixtures/AccessorOrderParent.php deleted file mode 100644 index 7b2d850..0000000 --- a/vendor/jms/serializer/tests/Fixtures/AccessorOrderParent.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** @Serializer\AccessorOrder("alphabetical") */ -class AccessorOrderParent -{ - private $b = 'b', $a = 'a'; -} diff --git a/vendor/jms/serializer/tests/Fixtures/AccessorSetter.php b/vendor/jms/serializer/tests/Fixtures/AccessorSetter.php deleted file mode 100644 index 95d4529..0000000 --- a/vendor/jms/serializer/tests/Fixtures/AccessorSetter.php +++ /dev/null @@ -1,108 +0,0 @@ -") - * @Serializer\Accessor(setter="setCollectionDifferent") - * @Serializer\XmlList(inline=false) - */ - protected $collection; - - /** - * @return \stdClass - */ - public function getElement() - { - return $this->element; - } - - /** - * @param AccessorSetterElement $element - */ - public function setElementDifferent(AccessorSetterElement $element) - { - $this->element = new \stdClass(); - $this->element->element = $element; - } - - /** - * @return array - */ - public function getCollection() - { - return $this->collection; - } - - /** - * @param array $collection - */ - public function setCollectionDifferent($collection) - { - $this->collection = array_combine($collection, $collection); - } -} - -class AccessorSetterElement -{ - /** - * @var string - * @Serializer\Type("string") - * @Serializer\Accessor(setter="setAttributeDifferent") - * @Serializer\XmlAttribute - */ - protected $attribute; - - /** - * @var string - * @Serializer\Type("string") - * @Serializer\Accessor(setter="setElementDifferent") - * @Serializer\XmlValue - */ - protected $element; - - /** - * @return string - */ - public function getAttribute() - { - return $this->attribute; - } - - /** - * @param string $attribute - */ - public function setAttributeDifferent($attribute) - { - $this->attribute = $attribute . "-different"; - } - - - /** - * @param string $element - */ - public function setElementDifferent($element) - { - $this->element = $element . "-different"; - } - - /** - * @return string - */ - public function getElement() - { - return $this->element; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/AllExcludedObject.php b/vendor/jms/serializer/tests/Fixtures/AllExcludedObject.php deleted file mode 100644 index f5a313a..0000000 --- a/vendor/jms/serializer/tests/Fixtures/AllExcludedObject.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\ExclusionPolicy; -use JMS\Serializer\Annotation\Expose; - -/** - * @ExclusionPolicy("all") - * - * @author Johannes M. Schmitt - */ -class AllExcludedObject -{ - private $foo = 'foo'; - - /** - * @Expose - */ - private $bar = 'bar'; -} diff --git a/vendor/jms/serializer/tests/Fixtures/Article.php b/vendor/jms/serializer/tests/Fixtures/Article.php deleted file mode 100644 index 8ef1afe..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Article.php +++ /dev/null @@ -1,70 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\HandlerCallback; -use JMS\Serializer\Context; -use JMS\Serializer\JsonDeserializationVisitor; -use JMS\Serializer\JsonSerializationVisitor; -use JMS\Serializer\XmlDeserializationVisitor; -use JMS\Serializer\XmlSerializationVisitor; -use JMS\Serializer\YamlSerializationVisitor; -use Symfony\Component\Yaml\Inline; - -class Article -{ - public $element; - public $value; - - /** @HandlerCallback("xml", direction = "serialization") */ - public function serializeToXml(XmlSerializationVisitor $visitor, $data, Context $context) - { - if (null === $visitor->document) { - $visitor->document = $visitor->createDocument(null, null, false); - } - - $visitor->document->appendChild($visitor->document->createElement($this->element, $this->value)); - } - - /** @HandlerCallback("json", direction = "serialization") */ - public function serializeToJson(JsonSerializationVisitor $visitor) - { - $visitor->setRoot(array($this->element => $this->value)); - } - - /** @HandlerCallback("yml", direction = "serialization") */ - public function serializeToYml(YamlSerializationVisitor $visitor) - { - $visitor->writer->writeln(Inline::dump($this->element) . ': ' . Inline::dump($this->value)); - } - - /** @HandlerCallback("xml", direction = "deserialization") */ - public function deserializeFromXml(XmlDeserializationVisitor $visitor, \SimpleXMLElement $data) - { - $this->element = $data->getName(); - $this->value = (string)$data; - } - - /** @HandlerCallback("json", direction = "deserialization") */ - public function deserializeFromJson(JsonDeserializationVisitor $visitor, array $data) - { - $this->element = key($data); - $this->value = reset($data); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Author.php b/vendor/jms/serializer/tests/Fixtures/Author.php deleted file mode 100644 index 4171761..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Author.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; - -class Author -{ - /** - * @Type("string") - * @SerializedName("full_name") - */ - private $name; - - public function __construct($name) - { - $this->name = $name; - } - - public function getName() - { - return $this->name; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/AuthorExpressionAccess.php b/vendor/jms/serializer/tests/Fixtures/AuthorExpressionAccess.php deleted file mode 100644 index 4969023..0000000 --- a/vendor/jms/serializer/tests/Fixtures/AuthorExpressionAccess.php +++ /dev/null @@ -1,59 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\VirtualProperty("firstName", exp="object.getFirstName()", options={@Serializer\SerializedName("my_first_name")}) - */ -class AuthorExpressionAccess -{ - private $id; - /** - * @Serializer\Exclude() - */ - private $firstName; - - /** - * @Serializer\Exclude() - */ - private $lastName; - - public function __construct($id, $firstName, $lastName) - { - $this->id = $id; - $this->firstName = $firstName; - $this->lastName = $lastName; - } - - public function getFirstName() - { - return $this->firstName; - } - - /** - * @Serializer\VirtualProperty() - */ - public function getLastName() - { - return $this->lastName; - } - -} diff --git a/vendor/jms/serializer/tests/Fixtures/AuthorList.php b/vendor/jms/serializer/tests/Fixtures/AuthorList.php deleted file mode 100644 index 642bef8..0000000 --- a/vendor/jms/serializer/tests/Fixtures/AuthorList.php +++ /dev/null @@ -1,94 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** - * An array-acting object that holds many author instances. - */ -class AuthorList implements \IteratorAggregate, \Countable, \ArrayAccess -{ - /** - * @Serializer\Type("array") - * @var array - */ - protected $authors = array(); - - /** - * @param Author $author - */ - public function add(Author $author) - { - $this->authors[] = $author; - } - - /** - * @see IteratorAggregate - */ - public function getIterator() - { - return new \ArrayIterator($this->authors); - } - - /** - * @see Countable - */ - public function count() - { - return count($this->authors); - } - - /** - * @see ArrayAccess - */ - public function offsetExists($offset) - { - return isset($this->authors[$offset]); - } - - /** - * @see ArrayAccess - */ - public function offsetGet($offset) - { - return isset($this->authors[$offset]) ? $this->authors[$offset] : null; - } - - /** - * @see ArrayAccess - */ - public function offsetSet($offset, $value) - { - if (null === $offset) { - $this->authors[] = $value; - } else { - $this->authors[$offset] = $value; - } - } - - /** - * @see ArrayAccess - */ - public function offsetUnset($offset) - { - unset($this->authors[$offset]); - } - -} diff --git a/vendor/jms/serializer/tests/Fixtures/AuthorReadOnly.php b/vendor/jms/serializer/tests/Fixtures/AuthorReadOnly.php deleted file mode 100644 index d9bc482..0000000 --- a/vendor/jms/serializer/tests/Fixtures/AuthorReadOnly.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Accessor; -use JMS\Serializer\Annotation\ReadOnly; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlRoot; - -/** @XmlRoot("author") */ -class AuthorReadOnly -{ - /** - * @ReadOnly - * @SerializedName("id") - */ - private $id; - - /** - * @Type("string") - * @SerializedName("full_name") - * @Accessor("getName") - */ - private $name; - - public function __construct($id, $name) - { - $this->id = $id; - $this->name = $name; - } - - public function getId() - { - return $this->id; - } - - public function getName() - { - return $this->name; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/AuthorReadOnlyPerClass.php b/vendor/jms/serializer/tests/Fixtures/AuthorReadOnlyPerClass.php deleted file mode 100644 index 360b22f..0000000 --- a/vendor/jms/serializer/tests/Fixtures/AuthorReadOnlyPerClass.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Accessor; -use JMS\Serializer\Annotation\ReadOnly; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("author") - * @ReadOnly - */ -class AuthorReadOnlyPerClass -{ - /** - * @ReadOnly - * @SerializedName("id") - */ - private $id; - - /** - * @Type("string") - * @SerializedName("full_name") - * @Accessor("getName") - * @ReadOnly(false) - */ - private $name; - - public function __construct($id, $name) - { - $this->id = $id; - $this->name = $name; - } - - public function getId() - { - return $this->id; - } - - public function getName() - { - return $this->name; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/BlogPost.php b/vendor/jms/serializer/tests/Fixtures/BlogPost.php deleted file mode 100644 index b496a91..0000000 --- a/vendor/jms/serializer/tests/Fixtures/BlogPost.php +++ /dev/null @@ -1,159 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use Doctrine\Common\Collections\ArrayCollection; -use JMS\Serializer\Annotation\Groups; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlMap; -use JMS\Serializer\Annotation\XmlNamespace; -use JMS\Serializer\Annotation\XmlRoot; -use PhpCollection\Map; -use PhpCollection\Sequence; - -/** - * @XmlRoot("blog-post") - * @XmlNamespace(uri="http://example.com/namespace") - * @XmlNamespace(uri="http://schemas.google.com/g/2005", prefix="gd") - * @XmlNamespace(uri="http://www.w3.org/2005/Atom", prefix="atom") - * @XmlNamespace(uri="http://purl.org/dc/elements/1.1/", prefix="dc") - */ -class BlogPost -{ - /** - * @Type("string") - * @XmlElement(cdata=false) - * @Groups({"comments","post"}) - */ - private $id = 'what_a_nice_id'; - - /** - * @Type("string") - * @Groups({"comments","post"}) - * @XmlElement(namespace="http://purl.org/dc/elements/1.1/"); - */ - private $title; - - /** - * @Type("DateTime") - * @XmlAttribute - */ - private $createdAt; - - /** - * @Type("boolean") - * @SerializedName("is_published") - * @XmlAttribute - * @Groups({"post"}) - */ - private $published; - - /** - * @Type("bool") - * @SerializedName("is_reviewed") - * @XmlAttribute - * @Groups({"post"}) - */ - private $reviewed; - - /** - * @Type("string") - * @XmlAttribute(namespace="http://schemas.google.com/g/2005") - * @Groups({"post"}) - */ - private $etag; - - /** - * @Type("ArrayCollection") - * @XmlList(inline=true, entry="comment") - * @Groups({"comments"}) - */ - private $comments; - - /** - * @Type("PhpCollection\Sequence") - * @XmlList(inline=true, entry="comment2") - * @Groups({"comments"}) - */ - private $comments2; - - /** - * @Type("PhpCollection\Map") - * @XmlMap(keyAttribute = "key") - */ - private $metadata; - - /** - * @Type("JMS\Serializer\Tests\Fixtures\Author") - * @Groups({"post"}) - * @XmlElement(namespace="http://www.w3.org/2005/Atom") - */ - private $author; - - /** - * @Type("JMS\Serializer\Tests\Fixtures\Publisher") - */ - private $publisher; - - /** - * @Type("array") - * @XmlList(inline=true, entry="tag", namespace="http://purl.org/dc/elements/1.1/"); - */ - private $tag; - - public function __construct($title, Author $author, \DateTime $createdAt, Publisher $publisher) - { - $this->title = $title; - $this->author = $author; - $this->publisher = $publisher; - $this->published = false; - $this->reviewed = false; - $this->comments = new ArrayCollection(); - $this->comments2 = new Sequence(); - $this->metadata = new Map(); - $this->metadata->set('foo', 'bar'); - $this->createdAt = $createdAt; - $this->etag = sha1($this->createdAt->format(\DateTime::ISO8601)); - } - - public function setPublished() - { - $this->published = true; - } - - public function getMetadata() - { - return $this->metadata; - } - - public function addComment(Comment $comment) - { - $this->comments->add($comment); - $this->comments2->add($comment); - } - - public function addTag(Tag $tag) - { - $this->tag[] = $tag; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/CircularReferenceChild.php b/vendor/jms/serializer/tests/Fixtures/CircularReferenceChild.php deleted file mode 100644 index c31f1b4..0000000 --- a/vendor/jms/serializer/tests/Fixtures/CircularReferenceChild.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - -class CircularReferenceChild -{ - /** @Type("string") */ - private $name; - - /** @Type("JMS\Serializer\Tests\Fixtures\CircularReferenceParent") */ - private $parent; - - public function __construct($name, CircularReferenceParent $parent) - { - $this->name = $name; - $this->parent = $parent; - } - - public function getName() - { - return $this->name; - } - - public function getParent() - { - return $this->parent; - } - - public function setParent(CircularReferenceParent $parent) - { - $this->parent = $parent; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/CircularReferenceParent.php b/vendor/jms/serializer/tests/Fixtures/CircularReferenceParent.php deleted file mode 100644 index 329e509..0000000 --- a/vendor/jms/serializer/tests/Fixtures/CircularReferenceParent.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use Doctrine\Common\Collections\ArrayCollection; -use JMS\Serializer\Annotation\PostDeserialize; -use JMS\Serializer\Annotation\Type; - -/** No annotation */ -class CircularReferenceParent -{ - /** @Type("array") */ - protected $collection = array(); - - /** @Type("ArrayCollection") */ - private $anotherCollection; - - public function __construct() - { - $this->collection[] = new CircularReferenceChild('child1', $this); - $this->collection[] = new CircularReferenceChild('child2', $this); - - $this->anotherCollection = new ArrayCollection(); - $this->anotherCollection->add(new CircularReferenceChild('child1', $this)); - $this->anotherCollection->add(new CircularReferenceChild('child2', $this)); - } - - /** @PostDeserialize */ - private function afterDeserialization() - { - if (!$this->collection) { - $this->collection = array(); - } - foreach ($this->collection as $v) { - $v->setParent($this); - } - - if (!$this->anotherCollection) { - $this->anotherCollection = new ArrayCollection(); - } - foreach ($this->anotherCollection as $v) { - $v->setParent($this); - } - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Comment.php b/vendor/jms/serializer/tests/Fixtures/Comment.php deleted file mode 100644 index 9c06157..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Comment.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - -class Comment -{ - /** - * @Type("JMS\Serializer\Tests\Fixtures\Author") - */ - private $author; - - /** - * @Type("string") - */ - private $text; - - public function __construct(Author $author = null, $text) - { - $this->author = $author; - $this->text = $text; - } - - public function getAuthor() - { - return $this->author; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ContextualNamingStrategy.php b/vendor/jms/serializer/tests/Fixtures/ContextualNamingStrategy.php deleted file mode 100644 index befa0bf..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ContextualNamingStrategy.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Context; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Naming\AdvancedNamingStrategyInterface; - -/** - * Class ContextualNamingStrategy - * - * Only use this class for testing purpose - */ -class ContextualNamingStrategy implements AdvancedNamingStrategyInterface -{ - public function getPropertyName(PropertyMetadata $property, Context $context) - { - if ($context->getDirection() == GraphNavigator::DIRECTION_SERIALIZATION) { - return strtoupper($property->name); - } - return ucfirst($property->name); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/CurrencyAwareOrder.php b/vendor/jms/serializer/tests/Fixtures/CurrencyAwareOrder.php deleted file mode 100644 index b4b0bc7..0000000 --- a/vendor/jms/serializer/tests/Fixtures/CurrencyAwareOrder.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlRoot; - -/** @XmlRoot("order") */ -class CurrencyAwareOrder -{ - /** @Type("JMS\Serializer\Tests\Fixtures\CurrencyAwarePrice") */ - private $cost; - - public function __construct(CurrencyAwarePrice $price = null) - { - $this->cost = $price ?: new CurrencyAwarePrice(5); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/CurrencyAwarePrice.php b/vendor/jms/serializer/tests/Fixtures/CurrencyAwarePrice.php deleted file mode 100644 index 654022e..0000000 --- a/vendor/jms/serializer/tests/Fixtures/CurrencyAwarePrice.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** @Serializer\XmlRoot("price") */ -class CurrencyAwarePrice -{ - /** - * @Serializer\XmlAttribute - * @Serializer\Type("string") - */ - private $currency; - - /** - * @Serializer\XmlValue - * @Serializer\Type("double") - */ - private $amount; - - public function __construct($amount, $currency = 'EUR') - { - $this->currency = $currency; - $this->amount = $amount; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/CustomDeserializationObject.php b/vendor/jms/serializer/tests/Fixtures/CustomDeserializationObject.php deleted file mode 100644 index 3a37e49..0000000 --- a/vendor/jms/serializer/tests/Fixtures/CustomDeserializationObject.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - -class CustomDeserializationObject -{ - /** - * @Type("string") - */ - public $someProperty; - - public function __construct($value) - { - $this->someProperty = $value; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/DateTimeArraysObject.php b/vendor/jms/serializer/tests/Fixtures/DateTimeArraysObject.php deleted file mode 100644 index 4e59f57..0000000 --- a/vendor/jms/serializer/tests/Fixtures/DateTimeArraysObject.php +++ /dev/null @@ -1,60 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - - -class DateTimeArraysObject -{ - /** - * @var \DateTime[] - * @Type("array") - */ - private $arrayWithDefaultDateTime; - - /** - * @var \DateTime[] - * @Type("array>") - */ - private $arrayWithFormattedDateTime; - - - function __construct($arrayWithDefaultDateTime, $arrayWithFormattedDateTime) - { - $this->arrayWithDefaultDateTime = $arrayWithDefaultDateTime; - $this->arrayWithFormattedDateTime = $arrayWithFormattedDateTime; - } - - /** - * @return \DateTime[] - */ - public function getArrayWithDefaultDateTime() - { - return $this->arrayWithDefaultDateTime; - } - - /** - * @return \DateTime[] - */ - public function getArrayWithFormattedDateTime() - { - return $this->arrayWithFormattedDateTime; - } - -} diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/Car.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/Car.php deleted file mode 100644 index 3b2ed3d..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/Car.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -class Car extends Vehicle implements VehicleInterface -{ -} diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/Moped.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/Moped.php deleted file mode 100644 index d6867b2..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/Moped.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -class Moped extends Vehicle implements VehicleInterface -{ -} diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlAttributeDiscriminatorChild.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlAttributeDiscriminatorChild.php deleted file mode 100644 index 2a39644..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlAttributeDiscriminatorChild.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -class ObjectWithXmlAttributeDiscriminatorChild extends ObjectWithXmlAttributeDiscriminatorParent -{ -} \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlAttributeDiscriminatorParent.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlAttributeDiscriminatorParent.php deleted file mode 100644 index 8aeded6..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlAttributeDiscriminatorParent.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\Discriminator(field = "type", map = { - * "child": "JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlAttributeDiscriminatorChild" - * }) - * @Serializer\XmlDiscriminator(attribute=true, cdata=false) - */ -class ObjectWithXmlAttributeDiscriminatorParent -{ - -} \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNamespaceDiscriminatorChild.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNamespaceDiscriminatorChild.php deleted file mode 100644 index 2ffd428..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNamespaceDiscriminatorChild.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -class ObjectWithXmlNamespaceDiscriminatorChild extends ObjectWithXmlNamespaceDiscriminatorParent -{ -} diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNamespaceDiscriminatorParent.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNamespaceDiscriminatorParent.php deleted file mode 100644 index ca433a4..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNamespaceDiscriminatorParent.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\Discriminator(field = "type", map = { - * "child": "JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNamespaceDiscriminatorChild" - * }) - * @Serializer\XmlDiscriminator(namespace="http://example.com/", cdata=false) - * @Serializer\XmlNamespace(prefix="foo", uri="http://example.com/") - */ -class ObjectWithXmlNamespaceDiscriminatorParent -{ - -} diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNotCDataDiscriminatorChild.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNotCDataDiscriminatorChild.php deleted file mode 100644 index e45af7b..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNotCDataDiscriminatorChild.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -class ObjectWithXmlNotCDataDiscriminatorChild extends ObjectWithXmlNotCDataDiscriminatorParent -{ -} diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNotCDataDiscriminatorParent.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNotCDataDiscriminatorParent.php deleted file mode 100644 index b57d568..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/ObjectWithXmlNotCDataDiscriminatorParent.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\Discriminator(field = "type", map = { - * "child": "JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNotCDataDiscriminatorChild" - * }) - * @Serializer\XmlDiscriminator(cdata=false) - */ -class ObjectWithXmlNotCDataDiscriminatorParent -{ - -} diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/Vehicle.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/Vehicle.php deleted file mode 100644 index 6c6e223..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/Vehicle.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\Discriminator(field = "type", map = { - * "car": "JMS\Serializer\Tests\Fixtures\Discriminator\Car", - * "moped": "JMS\Serializer\Tests\Fixtures\Discriminator\Moped", - * }) - */ -abstract class Vehicle -{ - /** @Serializer\Type("integer") */ - public $km; - - public function __construct($km) - { - $this->km = (integer)$km; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Discriminator/VehicleInterface.php b/vendor/jms/serializer/tests/Fixtures/Discriminator/VehicleInterface.php deleted file mode 100644 index 1fe39e5..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Discriminator/VehicleInterface.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Discriminator; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\Discriminator(field = "type", map = { - * "car": "JMS\Serializer\Tests\Fixtures\Discriminator\Car", - * "moped": "JMS\Serializer\Tests\Fixtures\Discriminator\Moped", - * }) - */ -interface VehicleInterface -{ -} diff --git a/vendor/jms/serializer/tests/Fixtures/DiscriminatorGroup/Car.php b/vendor/jms/serializer/tests/Fixtures/DiscriminatorGroup/Car.php deleted file mode 100644 index 01a10bb..0000000 --- a/vendor/jms/serializer/tests/Fixtures/DiscriminatorGroup/Car.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\DiscriminatorGroup; - -class Car extends Vehicle -{ -} diff --git a/vendor/jms/serializer/tests/Fixtures/DiscriminatorGroup/Vehicle.php b/vendor/jms/serializer/tests/Fixtures/DiscriminatorGroup/Vehicle.php deleted file mode 100644 index 857be1e..0000000 --- a/vendor/jms/serializer/tests/Fixtures/DiscriminatorGroup/Vehicle.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\DiscriminatorGroup; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\Discriminator(field = "type", groups={"foo"}, map = { - * "car": "JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Car" - * }) - */ -abstract class Vehicle -{ - /** - * @Serializer\Type("integer") - * @Serializer\Groups({"foo"}) - */ - public $km; - - public function __construct($km) - { - $this->km = (integer)$km; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Doctrine/Author.php b/vendor/jms/serializer/tests/Fixtures/Doctrine/Author.php deleted file mode 100644 index bf2c2a0..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Doctrine/Author.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Doctrine; - -use Doctrine\ORM\Mapping as ORM; -use JMS\Serializer\Annotation\SerializedName; - -/** @ORM\Entity */ -class Author -{ - /** - * @ORM\Id @ORM\Column(type="integer") - */ - protected $id; - - /** - * @ORM\Column(type="string") - * @SerializedName("full_name") - */ - private $name; - - public function __construct($name, $id = null) - { - $this->name = $name; - $this->id = $id; - } - - public function getName() - { - return $this->name; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Doctrine/BlogPost.php b/vendor/jms/serializer/tests/Fixtures/Doctrine/BlogPost.php deleted file mode 100644 index 8a493fa..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Doctrine/BlogPost.php +++ /dev/null @@ -1,117 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Doctrine; - -use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\ORM\Mapping as ORM; -use JMS\Serializer\Annotation as Serializer; -use JMS\Serializer\Annotation\Groups; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @ORM\Entity - * @XmlRoot("blog-post") - */ -class BlogPost -{ - /** - * @ORM\Id @ORM\Column(type="guid") @ORM\GeneratedValue(strategy="UUID") - */ - protected $id; - - /** - * @ORM\Column(type="string") - * @Groups({"comments","post"}) - */ - private $title; - - /** - * @ORM\Column(type="some_custom_type") - */ - protected $slug; - - /** - * @ORM\Column(type="datetime") - * @XmlAttribute - */ - private $createdAt; - - /** - * @ORM\Column(type="boolean") - * @Type("integer") - * This boolean to integer conversion is one of the few changes between this - * and the standard BlogPost class. It's used to test the override behavior - * of the DoctrineTypeDriver so notice it, but please don't change it. - * - * @SerializedName("is_published") - * @Groups({"post"}) - * @XmlAttribute - */ - private $published; - - /** - * @ORM\OneToMany(targetEntity="Comment", mappedBy="blogPost") - * @XmlList(inline=true, entry="comment") - * @Groups({"comments"}) - */ - private $comments; - - /** - * @ORM\OneToOne(targetEntity="Author") - * @Groups({"post"}) - */ - private $author; - - /** - * @ORM\Column(type="integer") - * @Serializer\Exclude() - */ - private $ref; - - public function __construct($title, Author $author, \DateTime $createdAt) - { - $this->title = $title; - $this->author = $author; - $this->published = false; - $this->comments = new ArrayCollection(); - $this->createdAt = $createdAt; - } - - public function setPublished() - { - $this->published = true; - } - - public function addComment(Comment $comment) - { - $this->comments->add($comment); - } - - /** - * @Serializer\VirtualProperty() - */ - public function getRef() - { - return $this->ref; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Doctrine/Comment.php b/vendor/jms/serializer/tests/Fixtures/Doctrine/Comment.php deleted file mode 100644 index 8885ac1..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Doctrine/Comment.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\Doctrine; - -use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\ORM\Mapping as ORM; - -/** @ORM\Entity */ -class Comment -{ - /** - * @ORM\Id @ORM\Column(type="integer") - */ - protected $id; - - /** - * @ORM\Column(type="Author") - */ - private $author; - - /** @ORM\ManyToOne(targetEntity="BlogPost") */ - private $blogPost; - - /** - * @ORM\Column(type="string") - */ - private $text; - - public function __construct(Author $author, $text) - { - $this->author = $author; - $this->text = $text; - $this->blogPost = new ArrayCollection(); - } - - public function getAuthor() - { - return $this->author; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/AbstractModel.php b/vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/AbstractModel.php deleted file mode 100644 index d6994e4..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/AbstractModel.php +++ /dev/null @@ -1,10 +0,0 @@ -teacher = $teacher; - $this->students = new ArrayCollection($students); - } - - public function getId() - { - return $this->id; - } - - public function getTeacher() - { - return $this->teacher; - } - - public function getStudents() - { - return $this->students; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/Organization.php b/vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/Organization.php deleted file mode 100644 index 1c386b4..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Doctrine/SingleTableInheritance/Organization.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\DoctrinePHPCR; - -use Doctrine\ODM\PHPCR\Mapping\Annotations as PHPCRODM; -use JMS\Serializer\Annotation\SerializedName; - -/** @PHPCRODM\Document */ -class Author -{ - /** - * @PHPCRODM\Id() - */ - protected $id; - - /** - * @PHPCRODM\Field(type="string") - * @SerializedName("full_name") - */ - private $name; - - public function __construct($name) - { - $this->name = $name; - } - - public function getName() - { - return $this->name; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/DoctrinePHPCR/BlogPost.php b/vendor/jms/serializer/tests/Fixtures/DoctrinePHPCR/BlogPost.php deleted file mode 100644 index 2ae4f63..0000000 --- a/vendor/jms/serializer/tests/Fixtures/DoctrinePHPCR/BlogPost.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\DoctrinePHPCR; - -use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\ODM\PHPCR\Mapping\Annotations as PHPCRODM; -use JMS\Serializer\Annotation\Groups; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @PHPCRODM\Document - * @XmlRoot("blog-post") - */ -class BlogPost -{ - /** - * @PHPCRODM\Id() - */ - protected $id; - - /** - * @PHPCRODM\Field(type="string") - * @Groups({"comments","post"}) - */ - private $title; - - /** - * @PHPCRODM\Field(type="string") - */ - protected $slug; - - /** - * @PHPCRODM\Field(type="date") - * @XmlAttribute - */ - private $createdAt; - - /** - * @PHPCRODM\Field(type="boolean") - * @Type("integer") - * This boolean to integer conversion is one of the few changes between this - * and the standard BlogPost class. It's used to test the override behavior - * of the DoctrineTypeDriver so notice it, but please don't change it. - * - * @SerializedName("is_published") - * @Groups({"post"}) - * @XmlAttribute - */ - private $published; - - /** - * @PHPCRODM\ReferenceMany(targetDocument="Comment", property="blogPost") - * @XmlList(inline=true, entry="comment") - * @Groups({"comments"}) - */ - private $comments; - - /** - * @PHPCRODM\ReferenceOne(targetDocument="Author") - * @Groups({"post"}) - */ - private $author; - - public function __construct($title, Author $author, \DateTime $createdAt) - { - $this->title = $title; - $this->author = $author; - $this->published = false; - $this->comments = new ArrayCollection(); - $this->createdAt = $createdAt; - } - - public function setPublished() - { - $this->published = true; - } - - public function addComment(Comment $comment) - { - $this->comments->add($comment); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/DoctrinePHPCR/Comment.php b/vendor/jms/serializer/tests/Fixtures/DoctrinePHPCR/Comment.php deleted file mode 100644 index ac195cf..0000000 --- a/vendor/jms/serializer/tests/Fixtures/DoctrinePHPCR/Comment.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures\DoctrinePHPCR; - -use Doctrine\Common\Collections\ArrayCollection; -use Doctrine\ODM\PHPCR\Mapping\Annotations as PHPCRODM; - -/** @PHPCRODM\Document */ -class Comment -{ - /** - * @PHPCRODM\Id() - */ - protected $id; - - /** - * @PHPCRODM\ReferenceOne(targetDocument="Author") - */ - private $author; - - /** @PHPCRODM\ReferenceOne(targetDocument="BlogPost") */ - private $blogPost; - - /** - * @PHPCRODM\Field(type="string") - */ - private $text; - - public function __construct(Author $author, $text) - { - $this->author = $author; - $this->text = $text; - $this->blogPost = new ArrayCollection(); - } - - public function getAuthor() - { - return $this->author; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ExcludePublicAccessor.php b/vendor/jms/serializer/tests/Fixtures/ExcludePublicAccessor.php deleted file mode 100644 index 3224d3f..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ExcludePublicAccessor.php +++ /dev/null @@ -1,50 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\AccessType; -use JMS\Serializer\Annotation\Exclude; -use JMS\Serializer\Annotation\ReadOnly; - -/** - */ - -/** - * @AccessType("public_method") - * @ReadOnly - */ -class ExcludePublicAccessor -{ - /** - * @Exclude - * - * @var mixed - */ - private $iShallNotBeAccessed; - - /** - * @var int - */ - private $id = 1; - - public function getId() - { - return $this->id; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ExclusionStrategy/AlwaysExcludeExclusionStrategy.php b/vendor/jms/serializer/tests/Fixtures/ExclusionStrategy/AlwaysExcludeExclusionStrategy.php deleted file mode 100644 index 184a0e7..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ExclusionStrategy/AlwaysExcludeExclusionStrategy.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - -class Garage -{ - /** - * @Type("array") - */ - public $vehicles; - - public function __construct($vehicles) - { - $this->vehicles = $vehicles; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/GetSetObject.php b/vendor/jms/serializer/tests/Fixtures/GetSetObject.php deleted file mode 100644 index 2094f3e..0000000 --- a/vendor/jms/serializer/tests/Fixtures/GetSetObject.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\AccessType; -use JMS\Serializer\Annotation\Exclude; -use JMS\Serializer\Annotation\ReadOnly; -use JMS\Serializer\Annotation\Type; - -/** @AccessType("public_method") */ -class GetSetObject -{ - /** @AccessType("property") @Type("integer") */ - private $id = 1; - - /** @Type("string") */ - private $name = 'Foo'; - - /** - * @ReadOnly - */ - private $readOnlyProperty = 42; - - /** - * This property should be exlcluded - * @Exclude() - */ - private $excludedProperty; - - public function getId() - { - throw new \RuntimeException('This should not be called.'); - } - - public function getName() - { - return 'Johannes'; - } - - public function setName($name) - { - $this->name = $name; - } - - public function getReadOnlyProperty() - { - return $this->readOnlyProperty; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/GroupsObject.php b/vendor/jms/serializer/tests/Fixtures/GroupsObject.php deleted file mode 100644 index c3b1f8b..0000000 --- a/vendor/jms/serializer/tests/Fixtures/GroupsObject.php +++ /dev/null @@ -1,57 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Groups; -use JMS\Serializer\Annotation\Type; - -/** blablub */ -class GroupsObject -{ - /** - * @Groups({"foo"}) - * @Type("string") - */ - private $foo; - - /** - * @Groups({"foo","bar"}) - * @Type("string") - */ - private $foobar; - - /** - * @Groups({"bar", "Default"}) - * @Type("string") - */ - private $bar; - - /** - * @Type("string") - */ - private $none; - - public function __construct() - { - $this->foo = "foo"; - $this->bar = "bar"; - $this->foobar = "foobar"; - $this->none = "none"; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/GroupsTrim.php b/vendor/jms/serializer/tests/Fixtures/GroupsTrim.php deleted file mode 100644 index e25d418..0000000 --- a/vendor/jms/serializer/tests/Fixtures/GroupsTrim.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\Groups; - -class GroupsTrim -{ - /** - * @var int - */ - private $amount; - - /** - * @var string - */ - private $currency; - - public function __construct($amount, $currency) - { - $this->amount = (int) $amount; - $this->currency = $currency; - } - - public function getAmount() - { - return $this->amount; - } - - public function getCurrency() - { - return $this->currency; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/GroupsUser.php b/vendor/jms/serializer/tests/Fixtures/GroupsUser.php deleted file mode 100644 index 534df65..0000000 --- a/vendor/jms/serializer/tests/Fixtures/GroupsUser.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Groups; - -class GroupsUser -{ - private $name; - - /** - * @Groups({"nickname_group"}) - */ - private $nickname = 'nickname'; - - /** - * @Groups({"manager_group"}) - */ - private $manager; - - /** - * @Groups({"friends_group"}) - */ - private $friends; - - public function __construct($name, GroupsUser $manager = null, array $friends = array()) - { - $this->name = $name; - $this->manager = $manager; - $this->friends = $friends; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/IndexedCommentsBlogPost.php b/vendor/jms/serializer/tests/Fixtures/IndexedCommentsBlogPost.php deleted file mode 100644 index b23bf3e..0000000 --- a/vendor/jms/serializer/tests/Fixtures/IndexedCommentsBlogPost.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Accessor; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlMap; -use JMS\Serializer\Annotation\XmlRoot; - -/** @XmlRoot("post") */ -class IndexedCommentsBlogPost -{ - /** - * @XmlMap(keyAttribute="author-name", inline=true, entry="comments") - * @Accessor(getter="getCommentsIndexedByAuthor") - */ - private $comments = array(); - - public function __construct() - { - $author = new Author('Foo'); - $this->comments[] = new Comment($author, 'foo'); - $this->comments[] = new Comment($author, 'bar'); - } - - public function getCommentsIndexedByAuthor() - { - $indexedComments = array(); - foreach ($this->comments as $comment) { - $authorName = $comment->getAuthor()->getName(); - - if (!isset($indexedComments[$authorName])) { - $indexedComments[$authorName] = new IndexedCommentsList(); - } - - $indexedComments[$authorName]->addComment($comment); - } - - return $indexedComments; - } -} - -class IndexedCommentsList -{ - /** @XmlList(inline=true, entry="comment") */ - private $comments = array(); - - /** @XmlAttribute */ - private $count = 0; - - public function addComment(Comment $comment) - { - $this->comments[] = $comment; - $this->count += 1; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/InitializedBlogPostConstructor.php b/vendor/jms/serializer/tests/Fixtures/InitializedBlogPostConstructor.php deleted file mode 100644 index 8955458..0000000 --- a/vendor/jms/serializer/tests/Fixtures/InitializedBlogPostConstructor.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Construction\UnserializeObjectConstructor; -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\VisitorInterface; - -class InitializedBlogPostConstructor extends UnserializeObjectConstructor -{ - public function construct(VisitorInterface $visitor, ClassMetadata $metadata, $data, array $type, DeserializationContext $context) - { - if ($type['name'] !== 'JMS\Serializer\Tests\Fixtures\BlogPost') { - return parent::construct($visitor, $metadata, $data, $type); - } - - return new BlogPost('This is a nice title.', new Author('Foo Bar'), new \DateTime('2011-07-30 00:00', new \DateTimeZone('UTC')), new Publisher('Bar Foo')); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/InitializedObjectConstructor.php b/vendor/jms/serializer/tests/Fixtures/InitializedObjectConstructor.php deleted file mode 100644 index b2a0e75..0000000 --- a/vendor/jms/serializer/tests/Fixtures/InitializedObjectConstructor.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Construction\ObjectConstructorInterface; -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\VisitorInterface; - -/** - * Object constructor that allows deserialization into already constructed - * objects passed through the deserialization context - */ -class InitializedObjectConstructor implements ObjectConstructorInterface -{ - private $fallbackConstructor; - - /** - * Constructor. - * - * @param ObjectConstructorInterface $fallbackConstructor Fallback object constructor - */ - public function __construct(ObjectConstructorInterface $fallbackConstructor) - { - $this->fallbackConstructor = $fallbackConstructor; - } - - /** - * {@inheritdoc} - */ - public function construct(VisitorInterface $visitor, ClassMetadata $metadata, $data, array $type, DeserializationContext $context) - { - if ($context->attributes->containsKey('target') && $context->getDepth() === 1) { - return $context->attributes->get('target')->get(); - } - - return $this->fallbackConstructor->construct($visitor, $metadata, $data, $type, $context); - } - -} diff --git a/vendor/jms/serializer/tests/Fixtures/InlineChild.php b/vendor/jms/serializer/tests/Fixtures/InlineChild.php deleted file mode 100644 index 2121da9..0000000 --- a/vendor/jms/serializer/tests/Fixtures/InlineChild.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - -class InlineChild -{ - /** - * @Type("string") - */ - public $a = 'a'; - - /** - * @Type("string") - */ - public $b = 'b'; -} diff --git a/vendor/jms/serializer/tests/Fixtures/InlineChildEmpty.php b/vendor/jms/serializer/tests/Fixtures/InlineChildEmpty.php deleted file mode 100644 index 04eda30..0000000 --- a/vendor/jms/serializer/tests/Fixtures/InlineChildEmpty.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -class InlineChildEmpty -{ - -} diff --git a/vendor/jms/serializer/tests/Fixtures/InlineChildWithGroups.php b/vendor/jms/serializer/tests/Fixtures/InlineChildWithGroups.php deleted file mode 100644 index ceb592b..0000000 --- a/vendor/jms/serializer/tests/Fixtures/InlineChildWithGroups.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; -use JMS\Serializer\Annotation\Type; - -class InlineChildWithGroups -{ - /** - * @Type("string") - * @Serializer\Groups({"a"}) - */ - public $a = 'a'; - - /** - * @Type("string") - * @Serializer\Groups({"b"}) - */ - public $b = 'b'; -} diff --git a/vendor/jms/serializer/tests/Fixtures/InlineParent.php b/vendor/jms/serializer/tests/Fixtures/InlineParent.php deleted file mode 100644 index 39b71a6..0000000 --- a/vendor/jms/serializer/tests/Fixtures/InlineParent.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; -use JMS\Serializer\Annotation\Type; - -/** @Serializer\AccessorOrder("alphabetical") */ -class InlineParent -{ - /** - * @Type("string") - */ - private $c = 'c'; - - /** - * @Type("string") - */ - private $d = 'd'; - - /** - * @Serializer\Inline - */ - private $child; - - public function __construct($child = null) - { - $this->child = $child ?: new InlineChild(); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Input.php b/vendor/jms/serializer/tests/Fixtures/Input.php deleted file mode 100644 index a052ba3..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Input.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\XmlRoot("input") - */ -class Input -{ - /** - * @Serializer\XmlAttributeMap - */ - private $attributes; - - public function __construct($attributes = null) - { - $this->attributes = $attributes ?: array( - 'type' => 'text', - 'name' => 'firstname', - 'value' => 'Adrien', - ); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/InvalidGroupsObject.php b/vendor/jms/serializer/tests/Fixtures/InvalidGroupsObject.php deleted file mode 100644 index 737a167..0000000 --- a/vendor/jms/serializer/tests/Fixtures/InvalidGroupsObject.php +++ /dev/null @@ -1,31 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Groups; -use JMS\Serializer\Annotation\Type; - -class InvalidGroupsObject -{ - /** - * @Groups({"foo, bar"}) - * @Type("string") - */ - private $foo; -} diff --git a/vendor/jms/serializer/tests/Fixtures/InvalidUsageOfXmlValue.php b/vendor/jms/serializer/tests/Fixtures/InvalidUsageOfXmlValue.php deleted file mode 100644 index 4001433..0000000 --- a/vendor/jms/serializer/tests/Fixtures/InvalidUsageOfXmlValue.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\XmlValue; - -/** Dummy */ -class InvalidUsageOfXmlValue -{ - /** @XmlValue */ - private $value = 'bar'; - - private $element = 'foo'; -} diff --git a/vendor/jms/serializer/tests/Fixtures/Log.php b/vendor/jms/serializer/tests/Fixtures/Log.php deleted file mode 100644 index 69a8717..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Log.php +++ /dev/null @@ -1,55 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlMap; -use JMS\Serializer\Annotation\XmlRoot; - -/** @XmlRoot("log") */ -class Log -{ - /** - * @SerializedName("author_list") - * @XmlMap - * @Type("AuthorList") - */ - private $authors; - - /** - * @XmlList(inline=true, entry = "comment") - * @Type("array") - */ - private $comments; - - public function __construct() - { - $this->authors = new AuthorList(); - $this->authors->add(new Author('Johannes Schmitt')); - $this->authors->add(new Author('John Doe')); - - $author = new Author('Foo Bar'); - $this->comments = array(); - $this->comments[] = new Comment($author, 'foo'); - $this->comments[] = new Comment($author, 'bar'); - $this->comments[] = new Comment($author, 'baz'); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/MaxDepth/Gh236Bar.php b/vendor/jms/serializer/tests/Fixtures/MaxDepth/Gh236Bar.php deleted file mode 100644 index ab08c13..0000000 --- a/vendor/jms/serializer/tests/Fixtures/MaxDepth/Gh236Bar.php +++ /dev/null @@ -1,19 +0,0 @@ -a = new Gh236Bar(); - $this->a->inner = new Gh236Bar(); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/MultilineGroupsFormat.php b/vendor/jms/serializer/tests/Fixtures/MultilineGroupsFormat.php deleted file mode 100644 index 05490b6..0000000 --- a/vendor/jms/serializer/tests/Fixtures/MultilineGroupsFormat.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\Groups; - -class MultilineGroupsFormat -{ - /** - * @var int - */ - private $amount; - - /** - * @var string - */ - private $currency; - - public function __construct($amount, $currency) - { - $this->amount = (int) $amount; - $this->currency = $currency; - } - - public function getAmount() - { - return $this->amount; - } - - public function getCurrency() - { - return $this->currency; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/NamedDateTimeArraysObject.php b/vendor/jms/serializer/tests/Fixtures/NamedDateTimeArraysObject.php deleted file mode 100644 index 7c21578..0000000 --- a/vendor/jms/serializer/tests/Fixtures/NamedDateTimeArraysObject.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlKeyValuePairs; - - -class NamedDateTimeArraysObject -{ - /** - * @var \DateTime[] - * @Type("array>") - * @XmlKeyValuePairs - */ - private $namedArrayWithFormattedDate; - - function __construct($namedArrayWithFormattedDate) - { - $this->namedArrayWithFormattedDate = $namedArrayWithFormattedDate; - } - - /** - * @return \DateTime[] - */ - public function getNamedArrayWithFormattedDate() - { - return $this->namedArrayWithFormattedDate; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/NamedDateTimeImmutableArraysObject.php b/vendor/jms/serializer/tests/Fixtures/NamedDateTimeImmutableArraysObject.php deleted file mode 100644 index d0174c6..0000000 --- a/vendor/jms/serializer/tests/Fixtures/NamedDateTimeImmutableArraysObject.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlKeyValuePairs; - -class NamedDateTimeImmutableArraysObject -{ - /** - * @var \DateTime[] - * @Type("array>") - * @XmlKeyValuePairs - */ - private $namedArrayWithFormattedDate; - - function __construct($namedArrayWithFormattedDate) - { - $this->namedArrayWithFormattedDate = $namedArrayWithFormattedDate; - } - - /** - * @return \DateTimeImmutable[] - */ - public function getNamedArrayWithFormattedDate() - { - return $this->namedArrayWithFormattedDate; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Node.php b/vendor/jms/serializer/tests/Fixtures/Node.php deleted file mode 100644 index 0de749c..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Node.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -class Node -{ - /** - * @Serializer\MaxDepth(2) - */ - public $children; - - public $foo = 'bar'; - - public function __construct($children = array()) - { - $this->children = $children; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithAbsentXmlListNode.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithAbsentXmlListNode.php deleted file mode 100644 index 739c643..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithAbsentXmlListNode.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -class ObjectWithAbsentXmlListNode -{ - /** - * @Serializer\XmlList(inline=false, entry="comment", skipWhenEmpty=true) - * @Serializer\Type("array") - */ - public $absent; - /** - * @Serializer\XmlList(inline=false, entry="comment", skipWhenEmpty=false) - * @Serializer\Type("array") - */ - public $present; - - /** - * @Serializer\XmlList(inline=false, entry="comment") - * @Serializer\Type("array") - */ - public $skipDefault; - - /** - * @Serializer\XmlList(inline=false, namespace="http://www.example.com") - * @Serializer\Type("array") - */ - public $absentAndNs; -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyArrayAndHash.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyArrayAndHash.php deleted file mode 100644 index 6376b82..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyArrayAndHash.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -class ObjectWithEmptyArrayAndHash -{ - /** - * @Serializer\Type("array") - * @Serializer\SkipWhenEmpty() - */ - private $hash = array(); - /** - * @Serializer\Type("array") - * @Serializer\SkipWhenEmpty() - */ - private $array = array(); - - /** - * @Serializer\SkipWhenEmpty() - */ - private $object = array(); - - public function __construct() - { - $this->object = new InlineChildEmpty(); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyHash.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyHash.php deleted file mode 100644 index 032b6d0..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyHash.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -class ObjectWithEmptyHash -{ - /** - * @Serializer\Type("array") - * @Serializer\XmlList(skipWhenEmpty=false) - */ - private $hash = array(); -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyNullableAndEmptyArrays.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyNullableAndEmptyArrays.php deleted file mode 100644 index b8a0b17..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithEmptyNullableAndEmptyArrays.php +++ /dev/null @@ -1,80 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -class ObjectWithEmptyNullableAndEmptyArrays -{ - /** - * @Serializer\XmlList(inline = true, entry = "comment") - * @Serializer\Type("array") - */ - public $null_inline = null; - - /** - * @Serializer\XmlList(inline = true, entry = "comment") - * @Serializer\Type("array") - */ - public $empty_inline = []; - - - /** - * @Serializer\XmlList(inline = true, entry = "comment") - * @Serializer\Type("array") - */ - public $not_empty_inline = ['not_empty_inline']; - - /** - * @Serializer\XmlList(inline = false, entry = "comment") - * @Serializer\Type("array") - */ - public $null_not_inline = null; - - /** - * @Serializer\XmlList(inline = false, entry = "comment") - * @Serializer\Type("array") - */ - public $empty_not_inline = []; - - /** - * @Serializer\XmlList(inline = false, entry = "comment", skipWhenEmpty=false) - * @Serializer\Type("array") - */ - public $not_empty_not_inline = ['not_empty_not_inline']; - - /** - * @Serializer\XmlList(inline = false, entry = "comment", skipWhenEmpty=false) - * @Serializer\Type("array") - */ - public $null_not_inline_skip = null; - - /** - * @Serializer\XmlList(inline = false, entry = "comment", skipWhenEmpty=false) - * @Serializer\Type("array") - */ - public $empty_not_inline_skip = []; - - - /** - * @Serializer\XmlList(inline = false, entry = "comment", skipWhenEmpty=false) - * @Serializer\Type("array") - */ - public $not_empty_not_inline_skip = ['not_empty_not_inline_skip']; -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithExpressionVirtualPropertiesAndExcludeAll.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithExpressionVirtualPropertiesAndExcludeAll.php deleted file mode 100644 index 8c9ab76..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithExpressionVirtualPropertiesAndExcludeAll.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\ExclusionPolicy; -use JMS\Serializer\Annotation\VirtualProperty; - -/** - * @VirtualProperty( - * "virtualValue", - * exp="object.getVirtualValue()" - * ) - * @ExclusionPolicy("all") - */ -class ObjectWithExpressionVirtualPropertiesAndExcludeAll -{ - - public function getVirtualValue() - { - return 'value'; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithHandlerCallbacks.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithHandlerCallbacks.php deleted file mode 100644 index 3ab9c3d..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithHandlerCallbacks.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\HandlerCallback; -use JMS\Serializer\Annotation\Type; - -class ObjectWithHandlerCallbacks -{ - /** - * @Type("string") - */ - public $name; - - /** - * @HandlerCallback(direction="serialization", format="json") - */ - public function toJson() - { - return $this->name; - } - - /** - * @HandlerCallback(direction="serialization", format="xml") - */ - public function toXml() - { - return $this->name; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithIntListAndIntMap.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithIntListAndIntMap.php deleted file mode 100644 index f5f1e8d..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithIntListAndIntMap.php +++ /dev/null @@ -1,20 +0,0 @@ -") @Serializer\XmlList */ - private $list; - - /** @Serializer\Type("array") @Serializer\XmlMap */ - private $map; - - public function __construct(array $list, array $map) - { - $this->list = $list; - $this->map = $map; - } -} \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithLifecycleCallbacks.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithLifecycleCallbacks.php deleted file mode 100644 index cf1ca5f..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithLifecycleCallbacks.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Exclude; -use JMS\Serializer\Annotation\PostDeserialize; -use JMS\Serializer\Annotation\PostSerialize; -use JMS\Serializer\Annotation\PreSerialize; -use JMS\Serializer\Annotation\Type; - -class ObjectWithLifecycleCallbacks -{ - /** - * @Exclude - */ - private $firstname; - - /** - * @Exclude - */ - private $lastname; - - /** - * @Type("string") - */ - private $name; - - public function __construct($firstname = 'Foo', $lastname = 'Bar') - { - $this->firstname = $firstname; - $this->lastname = $lastname; - } - - /** - * @PreSerialize - */ - private function prepareForSerialization() - { - $this->name = $this->firstname . ' ' . $this->lastname; - } - - /** - * @PostSerialize - */ - private function cleanUpAfterSerialization() - { - $this->name = null; - } - - /** - * @PostDeserialize - */ - private function afterDeserialization() - { - list($this->firstname, $this->lastname) = explode(' ', $this->name); - $this->name = null; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithNamespacesAndList.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithNamespacesAndList.php deleted file mode 100644 index e8cec4c..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithNamespacesAndList.php +++ /dev/null @@ -1,104 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlMap; -use JMS\Serializer\Annotation\XmlNamespace; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("ObjectWithNamespacesAndList", namespace="http://example.com/namespace") - * @XmlNamespace(uri="http://example.com/namespace") - * @XmlNamespace(uri="http://example.com/namespace2", prefix="x") - */ -class ObjectWithNamespacesAndList -{ - /** - * @Type("string") - * @SerializedName("name") - * @XmlElement(namespace="http://example.com/namespace") - */ - public $name; - /** - * @Type("string") - * @SerializedName("name") - * @XmlElement(namespace="http://example.com/namespace2") - */ - public $nameAlternativeB; - - /** - * @Type("array") - * @SerializedName("phones") - * @XmlElement(namespace="http://example.com/namespace2") - * @XmlList(inline = false, entry = "phone", namespace="http://example.com/namespace2") - */ - public $phones; - /** - * @Type("array") - * @SerializedName("addresses") - * @XmlElement(namespace="http://example.com/namespace2") - * @XmlMap(inline = false, entry = "address", keyAttribute = "id", namespace="http://example.com/namespace2") - */ - public $addresses; - - /** - * @Type("array") - * @SerializedName("phones") - * @XmlList(inline = true, entry = "phone", namespace="http://example.com/namespace") - */ - public $phonesAlternativeB; - /** - * @Type("array") - * @SerializedName("addresses") - * @XmlMap(inline = true, entry = "address", keyAttribute = "id", namespace="http://example.com/namespace") - */ - public $addressesAlternativeB; - - /** - * @Type("array") - * @SerializedName("phones") - * @XmlList(inline = true, entry = "phone", namespace="http://example.com/namespace2") - */ - public $phonesAlternativeC; - /** - * @Type("array") - * @SerializedName("addresses") - * @XmlMap(inline = true, entry = "address", keyAttribute = "id", namespace="http://example.com/namespace2") - */ - public $addressesAlternativeC; - - /** - * @Type("array") - * @SerializedName("phones") - * @XmlList(inline = false, entry = "phone") - */ - public $phonesAlternativeD; - /** - * @Type("array") - * @SerializedName("addresses") - * @XmlMap(inline = false, entry = "address", keyAttribute = "id") - */ - public $addressesAlternativeD; - -} - diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithNamespacesAndNestedList.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithNamespacesAndNestedList.php deleted file mode 100644 index 4b342bb..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithNamespacesAndNestedList.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlMap; -use JMS\Serializer\Annotation\XmlNamespace; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("ObjectWithNamespacesAndNestedList", namespace="http://example.com/namespace") - * @XmlNamespace(uri="http://example.com/namespace") - * @XmlNamespace(uri="http://example.com/namespace2", prefix="x") - */ -class ObjectWithNamespacesAndNestedList -{ - /** - * @Type("JMS\Serializer\Tests\Fixtures\PersonCollection") - * @SerializedName("person_collection") - */ - public $personCollection; -} - diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithNullProperty.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithNullProperty.php deleted file mode 100644 index af88db1..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithNullProperty.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - -class ObjectWithNullProperty extends SimpleObject -{ - /** - * @var null - * @Type("string") - */ - private $nullProperty = null; - - /** - * @return null - */ - public function getNullProperty() - { - return $this->nullProperty; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithObjectProperty.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithObjectProperty.php deleted file mode 100644 index ea56a56..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithObjectProperty.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - - -class ObjectWithObjectProperty -{ - /** - * @Type("string") - */ - private $foo; - - /** - * @Type("JMS\Serializer\Tests\Fixtures\Author") - */ - private $author; - - /** - * @return string - */ - public function getFoo() - { - return $this->foo; - } - - /** - * @return \JMS\Serializer\Tests\Fixtures\Author - */ - public function getAuthor() - { - return $this->author; - } - - -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithToString.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithToString.php deleted file mode 100644 index e4df6b9..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithToString.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -class ObjectWithToString -{ - private $input; - - public function __construct($input) - { - $this->input = $input; - } - - public function __toString() - { - return $this->input; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithVersionedVirtualProperties.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithVersionedVirtualProperties.php deleted file mode 100644 index 4a25ad6..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithVersionedVirtualProperties.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Groups; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Since; -use JMS\Serializer\Annotation\Until; -use JMS\Serializer\Annotation\VirtualProperty; - -/** - * dummy comment - */ -class ObjectWithVersionedVirtualProperties -{ - /** - * @Groups({"versions"}) - * @VirtualProperty - * @SerializedName("low") - * @Until("8") - */ - public function getVirualLowValue() - { - return 1; - } - - /** - * @Groups({"versions"}) - * @VirtualProperty - * @SerializedName("high") - * @Since("6") - */ - public function getVirualHighValue() - { - return 8; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualProperties.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualProperties.php deleted file mode 100644 index 36aae98..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualProperties.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\AccessorOrder; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\VirtualProperty; - -/** - * @AccessorOrder("custom", custom = {"prop_name", "existField", "foo" }) - */ -class ObjectWithVirtualProperties -{ - - /** - * @Type("string") - */ - protected $existField = 'value'; - - /** - * - * @VirtualProperty - */ - public function getVirtualValue() - { - return 'value'; - } - - /** - * @VirtualProperty - * @SerializedName("test") - */ - public function getVirtualSerializedValue() - { - return 'other-name'; - } - - /** - * @VirtualProperty - * @Type("integer") - */ - public function getTypedVirtualProperty() - { - return '1'; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualPropertiesAndExcludeAll.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualPropertiesAndExcludeAll.php deleted file mode 100644 index dffca04..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualPropertiesAndExcludeAll.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\ExclusionPolicy; -use JMS\Serializer\Annotation\VirtualProperty; - -/** - * @ExclusionPolicy("all") - */ -class ObjectWithVirtualPropertiesAndExcludeAll -{ - /** - * @VirtualProperty - */ - public function getVirtualValue() - { - return 'value'; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualXmlProperties.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualXmlProperties.php deleted file mode 100644 index 71d5249..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithVirtualXmlProperties.php +++ /dev/null @@ -1,108 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Groups; -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Since; -use JMS\Serializer\Annotation\Until; -use JMS\Serializer\Annotation\VirtualProperty; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlMap; -use JMS\Serializer\Annotation\XmlValue; - -class ObjectWithVirtualXmlProperties -{ - - /** - * - * @VirtualProperty - * @SerializedName("foo") - * @Groups({"attributes"}) - * @XmlAttribute - */ - public function getVirualXmlAttributeValue() - { - return 'bar'; - } - - /** - * - * @VirtualProperty - * @SerializedName("xml-value") - * @Groups({"values"}) - * @XmlValue - */ - public function getVirualXmlValue() - { - return 'xml-value'; - } - - /** - * - * @VirtualProperty - * @SerializedName("list") - * @Groups({"list"}) - * @XmlList(inline = true, entry = "val") - */ - public function getVirualXmlList() - { - return array('One', 'Two'); - } - - /** - * - * @VirtualProperty - * @SerializedName("map") - * @Groups({"map"}) - * @XmlMap(keyAttribute = "key") - */ - public function getVirualXmlMap() - { - return array( - 'key-one' => 'One', - 'key-two' => 'Two' - ); - } - - /** - * - * @VirtualProperty - * @SerializedName("low") - * @Groups({"versions"}) - * @Until("8") - */ - public function getVirualLowValue() - { - return 1; - } - - /** - * @VirtualProperty - * @SerializedName("hight") - * @Groups({"versions"}) - * @Since("8") - */ - public function getVirualHighValue() - { - return 8; - } - -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairs.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairs.php deleted file mode 100644 index 95a3469..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairs.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\XmlKeyValuePairs; - -class ObjectWithXmlKeyValuePairs -{ - /** - * @var array - * @XmlKeyValuePairs - */ - private $array = array( - 'key-one' => 'foo', - 'key-two' => 1, - 'nested-array' => array( - 'bar' => 'foo', - ), - 'without-keys' => array( - 1, - 'test' - ), - 'mixed' => array( - 'test', - 'foo' => 'bar', - '1_foo' => 'bar' - ), - 1 => 'foo' - ); -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairsWithObjectType.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairsWithObjectType.php deleted file mode 100644 index c1ec07d..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairsWithObjectType.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlKeyValuePairs; - -class ObjectWithXmlKeyValuePairsWithObjectType -{ - /** - * @var array - * @Type("array") - * @XmlKeyValuePairs - */ - private $list; - - public function __construct(array $list) - { - $this->list = $list; - } - - public static function create1() - { - return new self( - [ - 'key_first' => ObjectWithXmlKeyValuePairsWithType::create1(), - 'key_second' => ObjectWithXmlKeyValuePairsWithType::create2(), - ] - ); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairsWithType.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairsWithType.php deleted file mode 100644 index f6ebc55..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlKeyValuePairsWithType.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlKeyValuePairs; - -class ObjectWithXmlKeyValuePairsWithType -{ - /** - * @var array - * @Type("array") - * @XmlKeyValuePairs - */ - private $list; - - /** - * @var array - * @Type("array") - */ - private $list2; - - public function __construct(array $list, array $list2 = []) - { - $this->list = $list; - $this->list2 = $list2; - } - - public static function create1() - { - return new self( - [ - 'key-one' => 'foo', - 'key-two' => 'bar', - ] - ); - } - - public static function create2() - { - return new self( - [ - 'key_01' => 'One', - 'key_02' => 'Two', - 'key_03' => 'Three', - ], - [ - 'Four', - ] - ); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespaces.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespaces.php deleted file mode 100644 index 13b1f84..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespaces.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlNamespace; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("test-object", namespace="http://example.com/namespace") - * @XmlNamespace(uri="http://example.com/namespace") - * @XmlNamespace(uri="http://schemas.google.com/g/2005", prefix="gd") - * @XmlNamespace(uri="http://www.w3.org/2005/Atom", prefix="atom") - */ -class ObjectWithXmlNamespaces -{ - /** - * @Type("string") - * @XmlElement(namespace="http://purl.org/dc/elements/1.1/"); - */ - private $title; - - /** - * @Type("DateTime") - * @XmlAttribute - */ - private $createdAt; - - /** - * @Type("string") - * @XmlAttribute(namespace="http://schemas.google.com/g/2005") - */ - private $etag; - - /** - * @Type("string") - * @XmlElement(namespace="http://www.w3.org/2005/Atom") - */ - private $author; - - /** - * @Type("string") - * @XmlAttribute(namespace="http://purl.org/dc/elements/1.1/"); - */ - private $language; - - public function __construct($title, $author, \DateTime $createdAt, $language) - { - $this->title = $title; - $this->author = $author; - $this->createdAt = $createdAt; - $this->language = $language; - $this->etag = sha1($this->createdAt->format(\DateTime::ISO8601)); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectProperty.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectProperty.php deleted file mode 100644 index 95b9cf1..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectProperty.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlNamespace; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("property:test-object", namespace="http://example.com/namespace-property") - * @XmlNamespace(uri="http://example.com/namespace-property", prefix="property") - */ -class ObjectWithXmlNamespacesAndObjectProperty -{ - /** - * @Type("string") - * @XmlElement(namespace="http://example.com/namespace-property"); - */ - private $title; - - /** - * @Type("JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespacesAndObjectPropertyAuthor") - * @XmlElement(namespace="http://example.com/namespace-property") - */ - private $author; - - public function __construct($title, $author) - { - $this->title = $title; - $this->author = $author; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectPropertyAuthor.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectPropertyAuthor.php deleted file mode 100644 index 80e6359..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectPropertyAuthor.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlNamespace; - -/** - * @XmlNamespace(uri="http://example.com/namespace-author") - */ -class ObjectWithXmlNamespacesAndObjectPropertyAuthor -{ - /** - * @Type("string") - * @XmlElement(namespace="http://example.com/namespace-modified"); - */ - private $author; - - /** - * @Type("string") - * @XmlElement(namespace="http://example.com/namespace-author"); - */ - private $info = "hidden-info"; - - /** - * @Type("string") - * @XmlElement(namespace="http://example.com/namespace-property") - */ - private $name; - - public function __construct($name, $author) - { - $this->name = $name; - $this->author = $author; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectPropertyVirtual.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectPropertyVirtual.php deleted file mode 100644 index 7675198..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlNamespacesAndObjectPropertyVirtual.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlNamespace; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("property:test-object", namespace="http://example.com/namespace-property") - * @XmlNamespace(uri="http://example.com/namespace-property", prefix="property") - */ -class ObjectWithXmlNamespacesAndObjectPropertyVirtual -{ - /** - * @Type("string") - * @XmlElement(namespace="http://example.com/namespace-property"); - */ - private $title; - - /** - * @Type("ObjectWithXmlNamespacesAndObjectPropertyAuthorVirtual") - * @XmlElement(namespace="http://example.com/namespace-property") - */ - private $author; - - public function __construct($title, $author) - { - $this->title = $title; - $this->author = $author; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlRootNamespace.php b/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlRootNamespace.php deleted file mode 100644 index bcf5466..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ObjectWithXmlRootNamespace.php +++ /dev/null @@ -1,66 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("test-object", namespace="http://example.com/namespace") - */ -class ObjectWithXmlRootNamespace -{ - /** - * @Type("string") - */ - private $title; - - /** - * @Type("DateTime") - * @XmlAttribute - */ - private $createdAt; - - /** - * @Type("string") - * @XmlAttribute - */ - private $etag; - - /** - * @Type("string") - */ - private $author; - - /** - * @Type("string") - * @XmlAttribute - */ - private $language; - - public function __construct($title, $author, \DateTime $createdAt, $language) - { - $this->title = $title; - $this->author = $author; - $this->createdAt = $createdAt; - $this->language = $language; - $this->etag = sha1($this->createdAt->format(\DateTime::ISO8601)); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Order.php b/vendor/jms/serializer/tests/Fixtures/Order.php deleted file mode 100644 index 2e6900d..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Order.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlRoot; - -/** @XmlRoot("order") */ -class Order -{ - /** @Type("JMS\Serializer\Tests\Fixtures\Price") */ - private $cost; - - public function __construct(Price $price = null) - { - $this->cost = $price ?: new Price(5); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ParentDoNotSkipWithEmptyChild.php b/vendor/jms/serializer/tests/Fixtures/ParentDoNotSkipWithEmptyChild.php deleted file mode 100644 index 7cc30b4..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ParentDoNotSkipWithEmptyChild.php +++ /dev/null @@ -1,36 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -class ParentDoNotSkipWithEmptyChild -{ - private $c = 'c'; - - private $d = 'd'; - - /** - * @var InlineChild - */ - private $child; - - public function __construct($child = null) - { - $this->child = $child ?: new InlineChild(); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/ParentSkipWithEmptyChild.php b/vendor/jms/serializer/tests/Fixtures/ParentSkipWithEmptyChild.php deleted file mode 100644 index 5c05f97..0000000 --- a/vendor/jms/serializer/tests/Fixtures/ParentSkipWithEmptyChild.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -class ParentSkipWithEmptyChild -{ - private $c = 'c'; - - private $d = 'd'; - - /** - * @Serializer\SkipWhenEmpty() - * @var InlineChild - */ - private $child; - - public function __construct($child = null) - { - $this->child = $child ?: new InlineChild(); - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Person.php b/vendor/jms/serializer/tests/Fixtures/Person.php deleted file mode 100644 index 80d9704..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Person.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlRoot; -use JMS\Serializer\Annotation\XmlValue; - -/** - * @XmlRoot("child") - */ -class Person -{ - /** - * @Type("string") - * @XmlValue(cdata=false) - */ - public $name; - - /** - * @Type("int") - * @XmlAttribute - */ - public $age; -} diff --git a/vendor/jms/serializer/tests/Fixtures/PersonCollection.php b/vendor/jms/serializer/tests/Fixtures/PersonCollection.php deleted file mode 100644 index 7ee19a5..0000000 --- a/vendor/jms/serializer/tests/Fixtures/PersonCollection.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use Doctrine\Common\Collections\ArrayCollection; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlList; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("person_collection") - */ -class PersonCollection -{ - /** - * @Type("ArrayCollection") - * @XmlList(entry = "person", inline = true) - */ - public $persons; - - /** - * @Type("string") - */ - public $location; - - public function __construct() - { - $this->persons = new ArrayCollection; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/PersonLocation.php b/vendor/jms/serializer/tests/Fixtures/PersonLocation.php deleted file mode 100644 index a6ec277..0000000 --- a/vendor/jms/serializer/tests/Fixtures/PersonLocation.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("person_location") - */ -class PersonLocation -{ - /** - * @Type("JMS\Serializer\Tests\Fixtures\Person") - */ - public $person; - - /** - * @Type("string") - */ - public $location; -} diff --git a/vendor/jms/serializer/tests/Fixtures/PersonSecret.php b/vendor/jms/serializer/tests/Fixtures/PersonSecret.php deleted file mode 100644 index a2dc13c..0000000 --- a/vendor/jms/serializer/tests/Fixtures/PersonSecret.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\ExclusionPolicy("NONE") - * @Serializer\AccessorOrder("custom",custom = {"name", "gender" ,"age"}) - */ -class PersonSecret -{ - /** - * @Serializer\Type("string") - */ - public $name; - - /** - * @Serializer\Type("string") - * @Serializer\Exclude(if="show_data('gender')") - */ - public $gender; - - /** - * @Serializer\Type("string") - * @Serializer\Expose(if="show_data('age')") - */ - public $age; -} diff --git a/vendor/jms/serializer/tests/Fixtures/PersonSecretMore.php b/vendor/jms/serializer/tests/Fixtures/PersonSecretMore.php deleted file mode 100644 index ef78773..0000000 --- a/vendor/jms/serializer/tests/Fixtures/PersonSecretMore.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\ExclusionPolicy("ALL") - * @Serializer\AccessorOrder("custom",custom = {"name", "gender"}) - */ -class PersonSecretMore -{ - /** - * @Serializer\Type("string") - * @Serializer\Expose() - */ - public $name; - - /** - * @Serializer\Type("string") - * @Serializer\Expose(if="show_data('gender')") - */ - public $gender; -} diff --git a/vendor/jms/serializer/tests/Fixtures/PersonSecretMoreVirtual.php b/vendor/jms/serializer/tests/Fixtures/PersonSecretMoreVirtual.php deleted file mode 100644 index 2f0a64a..0000000 --- a/vendor/jms/serializer/tests/Fixtures/PersonSecretMoreVirtual.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\ExclusionPolicy("ALL") - * @Serializer\AccessorOrder("custom",custom = {"name", "gender"}) - */ -class PersonSecretMoreVirtual -{ - /** - * @Serializer\Type("string") - * @Serializer\Expose() - */ - public $name; - - public $gender; - - /** - * @Serializer\VirtualProperty() - * @Serializer\Type("string") - * @Serializer\Expose(if="show_data('gender')") - */ - public function getGender() - { - return $this->gender; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/PersonSecretVirtual.php b/vendor/jms/serializer/tests/Fixtures/PersonSecretVirtual.php deleted file mode 100644 index 913ff47..0000000 --- a/vendor/jms/serializer/tests/Fixtures/PersonSecretVirtual.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -/** - * @Serializer\ExclusionPolicy("NONE") - * @Serializer\AccessorOrder("custom",custom = {"name", "gender", "age"}) - */ -class PersonSecretVirtual -{ - /** - * @Serializer\Type("string") - */ - public $name; - - /** - * @Serializer\Exclude() - */ - public $gender; - - /** - * @Serializer\Type("string") - * @Serializer\Expose(if="show_data('age')") - */ - public $age; - - /** - * @Serializer\VirtualProperty() - * @Serializer\Type("string") - * @Serializer\Exclude(if="show_data('gender')") - */ - public function getGender() - { - return $this->gender; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/PersonSecretWithVariables.php b/vendor/jms/serializer/tests/Fixtures/PersonSecretWithVariables.php deleted file mode 100644 index 6d81d98..0000000 --- a/vendor/jms/serializer/tests/Fixtures/PersonSecretWithVariables.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; -use JMS\Serializer\Context; -use JMS\Serializer\Metadata\PropertyMetadata; - -/** - */ -class PersonSecretWithVariables -{ - /** - * @Serializer\Type("string") - */ - public $name; - - /** - * @Serializer\Type("string") - * @Serializer\Expose(if="context.getDirection()==2 || object.test(property_metadata, context)") - */ - public $gender; - - - public function test(PropertyMetadata $propertyMetadata, Context $context) - { - return true; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Price.php b/vendor/jms/serializer/tests/Fixtures/Price.php deleted file mode 100644 index f320be3..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Price.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlRoot; -use JMS\Serializer\Annotation\XmlValue; - -/** - * @XmlRoot("price") - */ -class Price -{ - /** - * @Type("float") - * @XmlValue - */ - private $price; - - public function __construct($price) - { - $this->price = $price; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Publisher.php b/vendor/jms/serializer/tests/Fixtures/Publisher.php deleted file mode 100644 index 410229b..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Publisher.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlNamespace; -use JMS\Serializer\Annotation\XmlRoot; - -/** - * @XmlRoot("publisher") - * @XmlNamespace(uri="http://example.com/namespace2", prefix="ns2") - */ -class Publisher -{ - /** - * @Type("string") - * @XmlElement(namespace="http://example.com/namespace2") - * @SerializedName("pub_name") - */ - private $name; - - public function __construct($name) - { - $this->name = $name; - } - - public function getName() - { - return $this->name; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/SimpleClassObject.php b/vendor/jms/serializer/tests/Fixtures/SimpleClassObject.php deleted file mode 100644 index be64cce..0000000 --- a/vendor/jms/serializer/tests/Fixtures/SimpleClassObject.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlAttribute; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlNamespace; - -/** - * @XmlNamespace(prefix="old_foo", uri="http://old.foo.example.org"); - * @XmlNamespace(prefix="foo", uri="http://foo.example.org"); - * @XmlNamespace(prefix="new_foo", uri="http://new.foo.example.org"); - */ -class SimpleClassObject -{ - /** - * @Type("string") - * @XmlAttribute(namespace="http://old.foo.example.org") - */ - public $foo; - - /** - * @Type("string") - * @XmlElement(namespace="http://foo.example.org") - */ - public $bar; - - /** - * @Type("string") - * @XmlElement(namespace="http://new.foo.example.org") - */ - public $moo; - -} diff --git a/vendor/jms/serializer/tests/Fixtures/SimpleObject.php b/vendor/jms/serializer/tests/Fixtures/SimpleObject.php deleted file mode 100644 index 77a9686..0000000 --- a/vendor/jms/serializer/tests/Fixtures/SimpleObject.php +++ /dev/null @@ -1,53 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Type; - -class SimpleObject -{ - /** @Type("string") */ - private $foo; - - /** - * @SerializedName("moo") - * @Type("string") - */ - private $bar; - - /** @Type("string") */ - protected $camelCase = 'boo'; - - public function __construct($foo, $bar) - { - $this->foo = $foo; - $this->bar = $bar; - } - - public function getFoo() - { - return $this->foo; - } - - public function getBar() - { - return $this->bar; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/SimpleObjectProxy.php b/vendor/jms/serializer/tests/Fixtures/SimpleObjectProxy.php deleted file mode 100644 index dffa726..0000000 --- a/vendor/jms/serializer/tests/Fixtures/SimpleObjectProxy.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use Doctrine\Common\Persistence\Proxy; - -class SimpleObjectProxy extends SimpleObject implements Proxy -{ - public $__isInitialized__ = false; - - private $baz = 'baz'; - - public function __load() - { - if (!$this->__isInitialized__) { - $this->camelCase = 'proxy-boo'; - $this->__isInitialized__ = true; - } - } - - public function __isInitialized() - { - return $this->__isInitialized__; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/SimpleSubClassObject.php b/vendor/jms/serializer/tests/Fixtures/SimpleSubClassObject.php deleted file mode 100644 index 27944e4..0000000 --- a/vendor/jms/serializer/tests/Fixtures/SimpleSubClassObject.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; -use JMS\Serializer\Annotation\XmlElement; -use JMS\Serializer\Annotation\XmlNamespace; - -/** - * @XmlNamespace(prefix="old_foo", uri="http://foo.example.org"); - * @XmlNamespace(prefix="foo", uri="http://better.foo.example.org"); - */ -class SimpleSubClassObject - extends SimpleClassObject -{ - - /** - * @Type("string") - * @XmlElement(namespace="http://better.foo.example.org") - */ - public $moo; - - /** - * @Type("string") - * @XmlElement(namespace="http://foo.example.org") - */ - public $baz; - - /** - * @Type("string") - * @XmlElement(namespace="http://new.foo.example.org") - */ - public $qux; - -} diff --git a/vendor/jms/serializer/tests/Fixtures/Tag.php b/vendor/jms/serializer/tests/Fixtures/Tag.php deleted file mode 100644 index a324d20..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Tag.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as JMS; - - -/** - * @JMS\XmlRoot("tag") - * @JMS\XmlNamespace(uri="http://purl.org/dc/elements/1.1/", prefix="dc") - */ -class Tag -{ - - /** - * @JMS\XmlElement(cdata=false) - * @JMS\Type("string") - */ - public $name; - - function __construct($name) - { - $this->name = $name; - } - - -} diff --git a/vendor/jms/serializer/tests/Fixtures/Timestamp.php b/vendor/jms/serializer/tests/Fixtures/Timestamp.php deleted file mode 100755 index 7d3d047..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Timestamp.php +++ /dev/null @@ -1,39 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - -class Timestamp -{ - /** - * @Type("DateTime<'U'>") - */ - private $timestamp; - - public function __construct($timestamp) - { - $this->timestamp = $timestamp; - } - - public function getTimestamp() - { - return $this->timestamp; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/Tree.php b/vendor/jms/serializer/tests/Fixtures/Tree.php deleted file mode 100644 index e5066b8..0000000 --- a/vendor/jms/serializer/tests/Fixtures/Tree.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation as Serializer; - -class Tree -{ - /** - * @Serializer\MaxDepth(10) - */ - public $tree; - - public function __construct($tree) - { - $this->tree = $tree; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/VehicleInterfaceGarage.php b/vendor/jms/serializer/tests/Fixtures/VehicleInterfaceGarage.php deleted file mode 100644 index f816ac8..0000000 --- a/vendor/jms/serializer/tests/Fixtures/VehicleInterfaceGarage.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\Type; - -class VehicleInterfaceGarage -{ - /** - * @Type("array") - */ - public $vehicles; - - public function __construct($vehicles) - { - $this->vehicles = $vehicles; - } -} diff --git a/vendor/jms/serializer/tests/Fixtures/VersionedObject.php b/vendor/jms/serializer/tests/Fixtures/VersionedObject.php deleted file mode 100644 index 9890f4a..0000000 --- a/vendor/jms/serializer/tests/Fixtures/VersionedObject.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Fixtures; - -use JMS\Serializer\Annotation\SerializedName; -use JMS\Serializer\Annotation\Since; -use JMS\Serializer\Annotation\Until; - -class VersionedObject -{ - /** - * @Until("1.0.0") - */ - private $name; - - /** - * @Since("1.0.1") - * @SerializedName("name") - */ - private $name2; - - public function __construct($name, $name2) - { - $this->name = $name; - $this->name2 = $name2; - } -} diff --git a/vendor/jms/serializer/tests/Handler/ArrayCollectionHandlerTest.php b/vendor/jms/serializer/tests/Handler/ArrayCollectionHandlerTest.php deleted file mode 100644 index 4012a07..0000000 --- a/vendor/jms/serializer/tests/Handler/ArrayCollectionHandlerTest.php +++ /dev/null @@ -1,52 +0,0 @@ -getMockBuilder(VisitorInterface::class)->getMock(); - $visitor->method('visitArray')->with(['foo'])->willReturn(['foo']); - - $context = $this->getMockBuilder(SerializationContext::class)->getMock(); - $type = ['name' => 'ArrayCollection', 'params' => []]; - - $collection = new ArrayCollection(['foo']); - - $handler->serializeCollection($visitor, $collection, $type, $context); - } - - public function testSerializeArraySkipByExclusionStrategy() - { - $handler = new ArrayCollectionHandler(false); - - $visitor = $this->getMockBuilder(VisitorInterface::class)->getMock(); - $visitor->method('visitArray')->with([])->willReturn([]); - - $context = $this->getMockBuilder(SerializationContext::class)->getMock(); - - $factoryMock = $this->getMockBuilder(MetadataFactoryInterface::class)->getMock(); - $factoryMock->method('getMetadataForClass')->willReturn(new ClassMetadata(ArrayCollection::class)); - - $context->method('getExclusionStrategy')->willReturn(new AlwaysExcludeExclusionStrategy()); - $context->method('getMetadataFactory')->willReturn($factoryMock); - - - $type = ['name' => 'ArrayCollection', 'params' => []]; - - $collection = new ArrayCollection(['foo']); - - $handler->serializeCollection($visitor, $collection, $type, $context); - } -} diff --git a/vendor/jms/serializer/tests/Handler/DateHandlerTest.php b/vendor/jms/serializer/tests/Handler/DateHandlerTest.php deleted file mode 100644 index 0df3ed1..0000000 --- a/vendor/jms/serializer/tests/Handler/DateHandlerTest.php +++ /dev/null @@ -1,137 +0,0 @@ -handler = new DateHandler(); - $this->timezone = new \DateTimeZone('UTC'); - } - - public function getParams() - { - return [ - [['Y-m-d']], - [['Y-m-d', '', 'Y-m-d|']], - [['Y-m-d', '', 'Y']], - ]; - } - - /** - * @dataProvider getParams - * @param array $params - */ - public function testSerializeDate(array $params) - { - $context = $this->getMockBuilder(SerializationContext::class)->getMock(); - - $visitor = $this->getMockBuilder(VisitorInterface::class)->getMock(); - $visitor->method('visitString')->with('2017-06-18'); - - $datetime = new \DateTime('2017-06-18 14:30:59', $this->timezone); - $type = ['name' => 'DateTime', 'params' => $params]; - $this->handler->serializeDateTime($visitor, $datetime, $type, $context); - } - - public function testTimePartGetsRemoved() - { - $visitor = $this->getMockBuilder(JsonDeserializationVisitor::class) - ->disableOriginalConstructor() - ->getMock(); - - $type = ['name' => 'DateTime', 'params' => ['Y-m-d', '', 'Y-m-d|']]; - $this->assertEquals( - \DateTime::createFromFormat('Y-m-d|', '2017-06-18', $this->timezone), - $this->handler->deserializeDateTimeFromJson($visitor, '2017-06-18', $type) - ); - } - - public function testTimePartGetsPreserved() - { - $visitor = $this->getMockBuilder(JsonDeserializationVisitor::class) - ->disableOriginalConstructor() - ->getMock(); - - $expectedDateTime = \DateTime::createFromFormat('Y-m-d', '2017-06-18', $this->timezone); - // if the test is executed exactly at midnight, it might not detect a possible failure since the time component will be "00:00:00 - // I know, this is a bit paranoid - if ($expectedDateTime->format("H:i:s") === "00:00:00") { - sleep(1); - $expectedDateTime = \DateTime::createFromFormat('Y-m-d', '2017-06-18', $this->timezone); - } - - // no custom deserialization format specified - $type = ['name' => 'DateTime', 'params' => ['Y-m-d']]; - $this->assertEquals( - $expectedDateTime, - $this->handler->deserializeDateTimeFromJson($visitor, '2017-06-18', $type) - ); - - // custom deserialization format specified - $type = ['name' => 'DateTime', 'params' => ['Y-m-d', '', 'Y-m-d']]; - $this->assertEquals( - $expectedDateTime, - $this->handler->deserializeDateTimeFromJson($visitor, '2017-06-18', $type) - ); - } - - public function testTimeZoneGetsPreservedWithUnixTimestamp() - { - $visitor = $this->getMockBuilder(JsonDeserializationVisitor::class) - ->disableOriginalConstructor() - ->getMock(); - - - $timestamp = time(); - $timezone = 'Europe/Brussels'; - $type = ['name' => 'DateTime', 'params' => ['U', $timezone]]; - - $expectedDateTime = \DateTime::createFromFormat('U', $timestamp); - $expectedDateTime->setTimezone(new \DateTimeZone($timezone)); - - $actualDateTime = $this->handler->deserializeDateTimeFromJson($visitor, $timestamp, $type); - - $this->assertEquals( - $expectedDateTime->format(\DateTime::RFC3339), - $actualDateTime->format(\DateTime::RFC3339) - ); - } - - public function testImmutableTimeZoneGetsPreservedWithUnixTimestamp() - { - $visitor = $this->getMockBuilder(JsonDeserializationVisitor::class) - ->disableOriginalConstructor() - ->getMock(); - - - $timestamp = time(); - $timezone = 'Europe/Brussels'; - $type = ['name' => 'DateTimeImmutable', 'params' => ['U', $timezone]]; - - $expectedDateTime = \DateTime::createFromFormat('U', $timestamp); - $expectedDateTime->setTimezone(new \DateTimeZone($timezone)); - - $actualDateTime = $this->handler->deserializeDateTimeImmutableFromJson($visitor, $timestamp, $type); - - $this->assertEquals( - $expectedDateTime->format(\DateTime::RFC3339), - $actualDateTime->format(\DateTime::RFC3339) - ); - } -} diff --git a/vendor/jms/serializer/tests/Handler/FormErrorHandlerTest.php b/vendor/jms/serializer/tests/Handler/FormErrorHandlerTest.php deleted file mode 100644 index 4c44bc0..0000000 --- a/vendor/jms/serializer/tests/Handler/FormErrorHandlerTest.php +++ /dev/null @@ -1,254 +0,0 @@ -handler = new FormErrorHandler(new Translator('en')); - $this->visitor = new JsonSerializationVisitor(new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy())); - $this->dispatcher = new EventDispatcher(); - $this->factory = $this->getMockBuilder('Symfony\Component\Form\FormFactoryInterface')->getMock(); - } - - protected function tearDown() - { - $this->handler = null; - $this->visitor = null; - $this->dispatcher = null; - $this->factory = null; - } - - public function testSerializeEmptyFormError() - { - $form = $this->createForm(); - $json = json_encode($this->handler->serializeFormToJson($this->visitor, $form, array())); - - $this->assertSame('{}', $json); - } - - public function testErrorHandlerWithoutTranslator() - { - $this->handler = new FormErrorHandler(); - $form = $this->createForm(); - $form->addError(new FormError('error!')); - $json = json_encode($this->handler->serializeFormToJson($this->visitor, $form, array())); - - $this->assertSame(json_encode(array( - 'errors' => array( - 'error!', - ), - )), $json); - } - - public function testSerializeHasFormError() - { - $form = $this->createForm(); - $form->addError(new FormError('error!')); - $json = json_encode($this->handler->serializeFormToJson($this->visitor, $form, array())); - - $this->assertSame(json_encode(array( - 'errors' => array( - 'error!', - ), - )), $json); - } - - - public function testSerializeChildElements() - { - $formFactory = Forms::createFormFactory(); - $form = $formFactory->createBuilder() - ->add('child') - ->add('date') - ->getForm(); - - $form->addError(new FormError('error!')); - $form->get('date')->addError(new FormError('child-error')); - - $json = json_encode($this->handler->serializeFormToJson($this->visitor, $form, array())); - - $this->assertSame(json_encode(array( - 'errors' => array( - 'error!', - ), - 'children' => [ - 'child' => new \stdClass(), - 'date' => ['errors' => ['child-error']] - ] - )), $json); - - } - - public function testDefaultTranslationDomain() - { - /** @var Translator|\PHPUnit_Framework_MockObject_MockObject $translator */ - $translator = $this->getMockBuilder('Symfony\Component\Translation\TranslatorInterface')->getMock(); - - $handler = new FormErrorHandler($translator); - - $translator->expects($this->once()) - ->method('trans') - ->with( - $this->equalTo('error!'), - $this->equalTo([]), - $this->equalTo('validators') - ); - - $formError = $this->getMockBuilder('Symfony\Component\Form\FormError')->disableOriginalConstructor()->getMock(); - $formError->expects($this->once())->method('getMessageTemplate')->willReturn('error!'); - $formError->expects($this->once())->method('getMessagePluralization')->willReturn(null); - $formError->expects($this->once())->method('getMessageParameters')->willReturn([]); - - $this->invokeMethod($handler, 'getErrorMessage', [$formError,]); - } - - public function testDefaultTranslationDomainWithPluralTranslation() - { - /** @var Translator|\PHPUnit_Framework_MockObject_MockObject $translator */ - $translator = $this->getMockBuilder('Symfony\Component\Translation\TranslatorInterface')->getMock(); - - $handler = new FormErrorHandler($translator); - - $translator->expects($this->once()) - ->method('transChoice') - ->with( - $this->equalTo('error!'), - $this->equalTo(0), - $this->equalTo([]), - $this->equalTo('validators') - ); - - $formError = $this->getMockBuilder('Symfony\Component\Form\FormError')->disableOriginalConstructor()->getMock(); - $formError->expects($this->once())->method('getMessageTemplate')->willReturn('error!'); - $formError->expects($this->exactly(2))->method('getMessagePluralization')->willReturn(0); - $formError->expects($this->once())->method('getMessageParameters')->willReturn([]); - - $this->invokeMethod($handler, 'getErrorMessage', [$formError,]); - } - - public function testCustomTranslationDomain() - { - /** @var Translator|\PHPUnit_Framework_MockObject_MockObject $translator */ - $translator = $this->getMockBuilder('Symfony\Component\Translation\TranslatorInterface')->getMock(); - - $handler = new FormErrorHandler($translator, 'custom_domain'); - - $translator->expects($this->once()) - ->method('trans') - ->with( - $this->equalTo('error!'), - $this->equalTo([]), - $this->equalTo('custom_domain') - ); - - $formError = $this->getMockBuilder('Symfony\Component\Form\FormError')->disableOriginalConstructor()->getMock(); - $formError->expects($this->once())->method('getMessageTemplate')->willReturn('error!'); - $formError->expects($this->once())->method('getMessagePluralization')->willReturn(null); - $formError->expects($this->once())->method('getMessageParameters')->willReturn([]); - - $this->invokeMethod($handler, 'getErrorMessage', [$formError,]); - } - - public function testCustomTranslationDomainWithPluralTranslation() - { - /** @var Translator|\PHPUnit_Framework_MockObject_MockObject $translator */ - $translator = $this->getMockBuilder('Symfony\Component\Translation\TranslatorInterface')->getMock(); - - $handler = new FormErrorHandler($translator, 'custom_domain'); - - $translator->expects($this->once()) - ->method('transChoice') - ->with( - $this->equalTo('error!'), - $this->equalTo(0), - $this->equalTo([]), - $this->equalTo('custom_domain') - ); - - $formError = $this->getMockBuilder('Symfony\Component\Form\FormError')->disableOriginalConstructor()->getMock(); - $formError->expects($this->once())->method('getMessageTemplate')->willReturn('error!'); - $formError->expects($this->exactly(2))->method('getMessagePluralization')->willReturn(0); - $formError->expects($this->once())->method('getMessageParameters')->willReturn([]); - - $this->invokeMethod($handler, 'getErrorMessage', [$formError,]); - - } - - /** - * @param string $name - * @param EventDispatcherInterface $dispatcher - * @param string $dataClass - * - * @return FormBuilder - */ - protected function getBuilder($name = 'name', EventDispatcherInterface $dispatcher = null, $dataClass = null) - { - return new FormBuilder($name, $dataClass, $dispatcher ?: $this->dispatcher, $this->factory); - } - - /** - * @param string $name - * - * @return \PHPUnit_Framework_MockObject_MockObject - */ - protected function getMockForm($name = 'name') - { - $form = $this->getMockBuilder('Symfony\Component\Form\Test\FormInterface')->getMock(); - $config = $this->getMockBuilder('Symfony\Component\Form\FormConfigInterface')->getMock(); - - $form->expects($this->any()) - ->method('getName') - ->will($this->returnValue($name)); - $form->expects($this->any()) - ->method('getConfig') - ->will($this->returnValue($config)); - - return $form; - } - - protected function createForm() - { - return $this->getBuilder()->getForm(); - } - - protected function invokeMethod($object, $method, array $args = []) - { - $reflectionMethod = new \ReflectionMethod($object, $method); - $reflectionMethod->setAccessible(true); - - return $reflectionMethod->invokeArgs($object, $args); - } -} diff --git a/vendor/jms/serializer/tests/Handler/HandlerRegistryTest.php b/vendor/jms/serializer/tests/Handler/HandlerRegistryTest.php deleted file mode 100644 index 02f0f3a..0000000 --- a/vendor/jms/serializer/tests/Handler/HandlerRegistryTest.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Handler; - -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Handler\HandlerRegistry; - -class HandlerRegistryTest extends \PHPUnit_Framework_TestCase -{ - protected $handlerRegistry; - - protected function setUp() - { - $this->handlerRegistry = $this->createHandlerRegistry(); - } - - public function testRegisteredHandlersCanBeRetrieved() - { - $jsonSerializationHandler = new DummyHandler(); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_SERIALIZATION, '\stdClass', 'json', $jsonSerializationHandler); - - $jsonDeserializationHandler = new DummyHandler(); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_DESERIALIZATION, '\stdClass', 'json', $jsonDeserializationHandler); - - $xmlSerializationHandler = new DummyHandler(); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_SERIALIZATION, '\stdClass', 'xml', $xmlSerializationHandler); - - $xmlDeserializationHandler = new DummyHandler(); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_DESERIALIZATION, '\stdClass', 'xml', $xmlDeserializationHandler); - - $this->assertSame($jsonSerializationHandler, $this->handlerRegistry->getHandler(GraphNavigator::DIRECTION_SERIALIZATION, '\stdClass', 'json')); - $this->assertSame($jsonDeserializationHandler, $this->handlerRegistry->getHandler(GraphNavigator::DIRECTION_DESERIALIZATION, '\stdClass', 'json')); - $this->assertSame($xmlSerializationHandler, $this->handlerRegistry->getHandler(GraphNavigator::DIRECTION_SERIALIZATION, '\stdClass', 'xml')); - $this->assertSame($xmlDeserializationHandler, $this->handlerRegistry->getHandler(GraphNavigator::DIRECTION_DESERIALIZATION, '\stdClass', 'xml')); - } - - protected function createHandlerRegistry() - { - return new HandlerRegistry(); - } -} - -class DummyHandler -{ - public function __call($name, $arguments) - { - } -} diff --git a/vendor/jms/serializer/tests/Handler/LazyHandlerRegistryTest.php b/vendor/jms/serializer/tests/Handler/LazyHandlerRegistryTest.php deleted file mode 100644 index 075bb26..0000000 --- a/vendor/jms/serializer/tests/Handler/LazyHandlerRegistryTest.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Handler; - -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Handler\LazyHandlerRegistry; - -abstract class LazyHandlerRegistryTest extends HandlerRegistryTest -{ - protected $container; - - protected function setUp() - { - $this->container = $this->createContainer(); - - parent::setUp(); - } - - protected function createHandlerRegistry() - { - return new LazyHandlerRegistry($this->container); - } - - public function testRegisteredHandlersCanBeRetrievedWhenBeingDefinedAsServices() - { - $jsonSerializationHandler = new HandlerService(); - $this->registerHandlerService('handler.serialization.json', $jsonSerializationHandler); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_SERIALIZATION, '\stdClass', 'json', array('handler.serialization.json', 'handle')); - - $jsonDeserializationHandler = new HandlerService(); - $this->registerHandlerService('handler.deserialization.json', $jsonDeserializationHandler); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_DESERIALIZATION, '\stdClass', 'json', array('handler.deserialization.json', 'handle')); - - $xmlSerializationHandler = new HandlerService(); - $this->registerHandlerService('handler.serialization.xml', $xmlSerializationHandler); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_SERIALIZATION, '\stdClass', 'xml', array('handler.serialization.xml', 'handle')); - - $xmlDeserializationHandler = new HandlerService(); - $this->registerHandlerService('handler.deserialization.xml', $xmlDeserializationHandler); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_DESERIALIZATION, '\stdClass', 'xml', array('handler.deserialization.xml', 'handle')); - - $this->assertSame(array($jsonSerializationHandler, 'handle'), $this->handlerRegistry->getHandler(GraphNavigator::DIRECTION_SERIALIZATION, '\stdClass', 'json')); - $this->assertSame(array($jsonDeserializationHandler, 'handle'), $this->handlerRegistry->getHandler(GraphNavigator::DIRECTION_DESERIALIZATION, '\stdClass', 'json')); - $this->assertSame(array($xmlSerializationHandler, 'handle'), $this->handlerRegistry->getHandler(GraphNavigator::DIRECTION_SERIALIZATION, '\stdClass', 'xml')); - $this->assertSame(array($xmlDeserializationHandler, 'handle'), $this->handlerRegistry->getHandler(GraphNavigator::DIRECTION_DESERIALIZATION, '\stdClass', 'xml')); - } - - abstract protected function createContainer(); - - abstract protected function registerHandlerService($serviceId, $listener); -} - -class HandlerService -{ - public function handle() - { - } -} diff --git a/vendor/jms/serializer/tests/Handler/LazyHandlerRegistryWithPsr11ContainerTest.php b/vendor/jms/serializer/tests/Handler/LazyHandlerRegistryWithPsr11ContainerTest.php deleted file mode 100644 index dd80c3b..0000000 --- a/vendor/jms/serializer/tests/Handler/LazyHandlerRegistryWithPsr11ContainerTest.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Handler; - -use Psr\Container\ContainerInterface; - -class LazyHandlerRegistryWithPsr11ContainerTest extends LazyHandlerRegistryTest -{ - protected function createContainer() - { - return new Psr11Container(); - } - - protected function registerHandlerService($serviceId, $listener) - { - $this->container->set($serviceId, $listener); - } -} - -class Psr11Container implements ContainerInterface -{ - private $services; - - public function get($id) - { - return $this->services[$id]; - } - - public function has($id) - { - return isset($this->services[$id]); - } - - public function set($id, $service) - { - $this->services[$id] = $service; - } -} diff --git a/vendor/jms/serializer/tests/Handler/LazyHandlerRegistryWithSymfonyContainerTest.php b/vendor/jms/serializer/tests/Handler/LazyHandlerRegistryWithSymfonyContainerTest.php deleted file mode 100644 index 2518864..0000000 --- a/vendor/jms/serializer/tests/Handler/LazyHandlerRegistryWithSymfonyContainerTest.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Handler; - -use Symfony\Component\DependencyInjection\Container; - -class LazyHandlerRegistryWithSymfonyContainerTest extends LazyHandlerRegistryTest -{ - protected function createContainer() - { - return new Container(); - } - - protected function registerHandlerService($serviceId, $listener) - { - $this->container->set($serviceId, $listener); - } -} diff --git a/vendor/jms/serializer/tests/Handler/PropelCollectionHandlerTest.php b/vendor/jms/serializer/tests/Handler/PropelCollectionHandlerTest.php deleted file mode 100644 index 71114ce..0000000 --- a/vendor/jms/serializer/tests/Handler/PropelCollectionHandlerTest.php +++ /dev/null @@ -1,43 +0,0 @@ -serializer = SerializerBuilder::create() - ->addDefaultHandlers()//load PropelCollectionHandler - ->build(); - } - - public function testSerializePropelObjectCollection() - { - $collection = new \PropelObjectCollection(); - $collection->setData(array(new TestSubject('lolo'), new TestSubject('pepe'))); - $json = $this->serializer->serialize($collection, 'json'); - - $data = json_decode($json, true); - - $this->assertCount(2, $data); //will fail if PropelCollectionHandler not loaded - - foreach ($data as $testSubject) { - $this->assertArrayHasKey('name', $testSubject); - } - } -} - -class TestSubject -{ - protected $name; - - public function __construct($name) - { - $this->name = $name; - } -} diff --git a/vendor/jms/serializer/tests/JMS/Serializer/Tests/Fixtures/ObjectWithInlineArray.php b/vendor/jms/serializer/tests/JMS/Serializer/Tests/Fixtures/ObjectWithInlineArray.php deleted file mode 100644 index a14fe32..0000000 --- a/vendor/jms/serializer/tests/JMS/Serializer/Tests/Fixtures/ObjectWithInlineArray.php +++ /dev/null @@ -1,22 +0,0 @@ -") - */ - public $array; - - /** - * @param array $array - */ - public function __construct(array $array) - { - $this->array = $array; - } -} diff --git a/vendor/jms/serializer/tests/Metadata/ClassMetadataTest.php b/vendor/jms/serializer/tests/Metadata/ClassMetadataTest.php deleted file mode 100644 index e1408fe..0000000 --- a/vendor/jms/serializer/tests/Metadata/ClassMetadataTest.php +++ /dev/null @@ -1,168 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Metadata; - -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; - -class ClassMetadataTest extends \PHPUnit_Framework_TestCase -{ - public function getAccessOrderCases() - { - return [ - [array('b', 'a'), array('b', 'a')], - [array('a', 'b'), array('a', 'b')], - [array('b'), array('b', 'a')], - [array('a'), array('a', 'b')], - [array('foo', 'bar'), array('b', 'a')], - ]; - } - - public function testSerialization() - { - $meta = new PropertyMetadata('JMS\Serializer\Tests\Metadata\PropertyMetadataOrder', 'b'); - $restoredMeta = unserialize(serialize($meta)); - $this->assertEquals($meta, $restoredMeta); - } - - /** - * @dataProvider getAccessOrderCases - */ - public function testSetAccessorOrderCustom(array $order, array $expected) - { - $metadata = new ClassMetadata('JMS\Serializer\Tests\Metadata\PropertyMetadataOrder'); - $metadata->addPropertyMetadata(new PropertyMetadata('JMS\Serializer\Tests\Metadata\PropertyMetadataOrder', 'b')); - $metadata->addPropertyMetadata(new PropertyMetadata('JMS\Serializer\Tests\Metadata\PropertyMetadataOrder', 'a')); - $this->assertEquals(array('b', 'a'), array_keys($metadata->propertyMetadata)); - - $metadata->setAccessorOrder(ClassMetadata::ACCESSOR_ORDER_CUSTOM, $order); - $this->assertEquals($expected, array_keys($metadata->propertyMetadata)); - } - - public function testSetAccessorOrderAlphabetical() - { - $metadata = new ClassMetadata('JMS\Serializer\Tests\Metadata\PropertyMetadataOrder'); - $metadata->addPropertyMetadata(new PropertyMetadata('JMS\Serializer\Tests\Metadata\PropertyMetadataOrder', 'b')); - $metadata->addPropertyMetadata(new PropertyMetadata('JMS\Serializer\Tests\Metadata\PropertyMetadataOrder', 'a')); - $this->assertEquals(array('b', 'a'), array_keys($metadata->propertyMetadata)); - - $metadata->setAccessorOrder(ClassMetadata::ACCESSOR_ORDER_ALPHABETICAL); - $this->assertEquals(array('a', 'b'), array_keys($metadata->propertyMetadata)); - } - - /** - * @dataProvider providerPublicMethodData - */ - public function testAccessorTypePublicMethod($property, $getterInit, $setterInit, $getterName, $setterName) - { - $object = new PropertyMetadataPublicMethod(); - - $metadata = new PropertyMetadata(get_class($object), $property); - $metadata->setAccessor(PropertyMetadata::ACCESS_TYPE_PUBLIC_METHOD, $getterInit, $setterInit); - - $this->assertEquals($getterName, $metadata->getter); - $this->assertEquals($setterName, $metadata->setter); - - $metadata->setValue($object, 'x'); - - $this->assertEquals(sprintf('%1$s:%1$s:x', strtoupper($property)), $metadata->getValue($object)); - } - - /** - * @dataProvider providerPublicMethodException - */ - public function testAccessorTypePublicMethodException($getter, $setter, $message) - { - $this->setExpectedException('\JMS\Serializer\Exception\RuntimeException', $message); - - $object = new PropertyMetadataPublicMethod(); - - $metadata = new PropertyMetadata(get_class($object), 'e'); - $metadata->setAccessor(PropertyMetadata::ACCESS_TYPE_PUBLIC_METHOD, $getter, $setter); - } - - public function providerPublicMethodData() - { - return array( - array('a', null, null, 'geta', 'seta'), - array('b', null, null, 'isb', 'setb'), - array('c', null, null, 'hasc', 'setc'), - array('d', 'fetchd', 'saved', 'fetchd', 'saved') - ); - } - - public function providerPublicMethodException() - { - return array( - array(null, null, 'a public getE method, nor a public isE method, nor a public hasE method in class'), - array(null, 'setx', 'a public getE method, nor a public isE method, nor a public hasE method in class'), - array('getx', null, 'no public setE method in class'), - ); - } -} - -class PropertyMetadataOrder -{ - private $b, $a; -} - -class PropertyMetadataPublicMethod -{ - private $a, $b, $c, $d, $e; - - public function getA() - { - return 'A:' . $this->a; - } - - public function setA($a) - { - $this->a = 'A:' . $a; - } - - public function isB() - { - return 'B:' . $this->b; - } - - public function setB($b) - { - $this->b = 'B:' . $b; - } - - public function hasC() - { - return 'C:' . $this->c; - } - - public function setC($c) - { - $this->c = 'C:' . $c; - } - - public function fetchD() - { - return 'D:' . $this->d; - } - - public function saveD($d) - { - $this->d = 'D:' . $d; - } -} diff --git a/vendor/jms/serializer/tests/Metadata/Driver/AnnotationDriverTest.php b/vendor/jms/serializer/tests/Metadata/Driver/AnnotationDriverTest.php deleted file mode 100644 index 419d11e..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/AnnotationDriverTest.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Metadata\Driver; - -use Doctrine\Common\Annotations\AnnotationReader; -use JMS\Serializer\Metadata\Driver\AnnotationDriver; - -class AnnotationDriverTest extends BaseDriverTest -{ - protected function getDriver() - { - return new AnnotationDriver(new AnnotationReader()); - } -} diff --git a/vendor/jms/serializer/tests/Metadata/Driver/BaseDriverTest.php b/vendor/jms/serializer/tests/Metadata/Driver/BaseDriverTest.php deleted file mode 100644 index eac5628..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/BaseDriverTest.php +++ /dev/null @@ -1,496 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Metadata\Driver; - -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\ExpressionPropertyMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\Metadata\VirtualPropertyMetadata; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlAttributeDiscriminatorChild; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlAttributeDiscriminatorParent; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNamespaceDiscriminatorChild; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNamespaceDiscriminatorParent; -use JMS\Serializer\Tests\Fixtures\ParentSkipWithEmptyChild; -use Metadata\Driver\DriverInterface; - -abstract class BaseDriverTest extends \PHPUnit_Framework_TestCase -{ - public function testLoadBlogPostMetadata() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost')); - - $this->assertNotNull($m); - $this->assertEquals('blog-post', $m->xmlRootName); - $this->assertCount(4, $m->xmlNamespaces); - $this->assertArrayHasKey('', $m->xmlNamespaces); - $this->assertEquals('http://example.com/namespace', $m->xmlNamespaces['']); - $this->assertArrayHasKey('gd', $m->xmlNamespaces); - $this->assertEquals('http://schemas.google.com/g/2005', $m->xmlNamespaces['gd']); - $this->assertArrayHasKey('atom', $m->xmlNamespaces); - $this->assertEquals('http://www.w3.org/2005/Atom', $m->xmlNamespaces['atom']); - $this->assertArrayHasKey('dc', $m->xmlNamespaces); - $this->assertEquals('http://purl.org/dc/elements/1.1/', $m->xmlNamespaces['dc']); - - $p = new PropertyMetadata($m->name, 'id'); - $p->type = array('name' => 'string', 'params' => array()); - $p->groups = array("comments", "post"); - $p->xmlElementCData = false; - $this->assertEquals($p, $m->propertyMetadata['id']); - - $p = new PropertyMetadata($m->name, 'title'); - $p->type = array('name' => 'string', 'params' => array()); - $p->groups = array("comments", "post"); - $p->xmlNamespace = "http://purl.org/dc/elements/1.1/"; - $this->assertEquals($p, $m->propertyMetadata['title']); - - $p = new PropertyMetadata($m->name, 'createdAt'); - $p->type = array('name' => 'DateTime', 'params' => array()); - $p->xmlAttribute = true; - $this->assertEquals($p, $m->propertyMetadata['createdAt']); - - $p = new PropertyMetadata($m->name, 'published'); - $p->type = array('name' => 'boolean', 'params' => array()); - $p->serializedName = 'is_published'; - $p->xmlAttribute = true; - $p->groups = array("post"); - $this->assertEquals($p, $m->propertyMetadata['published']); - - $p = new PropertyMetadata($m->name, 'etag'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlAttribute = true; - $p->groups = array("post"); - $p->xmlNamespace = "http://schemas.google.com/g/2005"; - $this->assertEquals($p, $m->propertyMetadata['etag']); - - $p = new PropertyMetadata($m->name, 'comments'); - $p->type = array('name' => 'ArrayCollection', 'params' => array(array('name' => 'JMS\Serializer\Tests\Fixtures\Comment', 'params' => array()))); - $p->xmlCollection = true; - $p->xmlCollectionInline = true; - $p->xmlEntryName = 'comment'; - $p->groups = array("comments"); - $this->assertEquals($p, $m->propertyMetadata['comments']); - - $p = new PropertyMetadata($m->name, 'author'); - $p->type = array('name' => 'JMS\Serializer\Tests\Fixtures\Author', 'params' => array()); - $p->groups = array("post"); - $p->xmlNamespace = 'http://www.w3.org/2005/Atom'; - $this->assertEquals($p, $m->propertyMetadata['author']); - - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\Price')); - $this->assertNotNull($m); - - $p = new PropertyMetadata($m->name, 'price'); - $p->type = array('name' => 'float', 'params' => array()); - $p->xmlValue = true; - $this->assertEquals($p, $m->propertyMetadata['price']); - } - - public function testXMLListAbsentNode() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\ObjectWithAbsentXmlListNode')); - - $this->assertArrayHasKey('absent', $m->propertyMetadata); - $this->assertArrayHasKey('present', $m->propertyMetadata); - $this->assertArrayHasKey('skipDefault', $m->propertyMetadata); - - $this->assertTrue($m->propertyMetadata['absent']->xmlCollectionSkipWhenEmpty); - $this->assertTrue($m->propertyMetadata['skipDefault']->xmlCollectionSkipWhenEmpty); - $this->assertFalse($m->propertyMetadata['present']->xmlCollectionSkipWhenEmpty); - } - - public function testVirtualProperty() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\ObjectWithVirtualProperties')); - - $this->assertArrayHasKey('existField', $m->propertyMetadata); - $this->assertArrayHasKey('virtualValue', $m->propertyMetadata); - $this->assertArrayHasKey('virtualSerializedValue', $m->propertyMetadata); - $this->assertArrayHasKey('typedVirtualProperty', $m->propertyMetadata); - - $this->assertEquals($m->propertyMetadata['virtualSerializedValue']->serializedName, 'test', 'Serialized name is missing'); - - $p = new VirtualPropertyMetadata($m->name, 'virtualValue'); - $p->getter = 'getVirtualValue'; - - $this->assertEquals($p, $m->propertyMetadata['virtualValue']); - } - - public function testXmlKeyValuePairs() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\ObjectWithXmlKeyValuePairs')); - - $this->assertArrayHasKey('array', $m->propertyMetadata); - $this->assertTrue($m->propertyMetadata['array']->xmlKeyValuePairs); - } - - public function testExpressionVirtualPropertyWithExcludeAll() - { - $a = new \JMS\Serializer\Tests\Fixtures\ObjectWithExpressionVirtualPropertiesAndExcludeAll(); - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass($a));; - - $this->assertArrayHasKey('virtualValue', $m->propertyMetadata); - - $p = new ExpressionPropertyMetadata($m->name, 'virtualValue', 'object.getVirtualValue()'); - $this->assertEquals($p, $m->propertyMetadata['virtualValue']); - } - - public function testVirtualPropertyWithExcludeAll() - { - $a = new \JMS\Serializer\Tests\Fixtures\ObjectWithVirtualPropertiesAndExcludeAll(); - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass($a)); - - $this->assertArrayHasKey('virtualValue', $m->propertyMetadata); - - $p = new VirtualPropertyMetadata($m->name, 'virtualValue'); - $p->getter = 'getVirtualValue'; - - $this->assertEquals($p, $m->propertyMetadata['virtualValue']); - } - - public function testReadOnlyDefinedBeforeGetterAndSetter() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\AuthorReadOnly')); - - $this->assertNotNull($m); - } - - public function testExpressionVirtualProperty() - { - /** @var $m ClassMetadata */ - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\AuthorExpressionAccess')); - - $keys = array_keys($m->propertyMetadata); - $this->assertEquals(['firstName', 'lastName', 'id'], $keys); - } - - public function testLoadDiscriminator() - { - /** @var $m ClassMetadata */ - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\Discriminator\Vehicle')); - - $this->assertNotNull($m); - $this->assertEquals('type', $m->discriminatorFieldName); - $this->assertEquals($m->name, $m->discriminatorBaseClass); - $this->assertEquals( - array( - 'car' => 'JMS\Serializer\Tests\Fixtures\Discriminator\Car', - 'moped' => 'JMS\Serializer\Tests\Fixtures\Discriminator\Moped', - ), - $m->discriminatorMap - ); - } - - public function testLoadXmlDiscriminator() - { - /** @var $m ClassMetadata */ - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass(ObjectWithXmlAttributeDiscriminatorParent::class)); - - $this->assertNotNull($m); - $this->assertEquals('type', $m->discriminatorFieldName); - $this->assertEquals($m->name, $m->discriminatorBaseClass); - $this->assertEquals( - array( - 'child' => ObjectWithXmlAttributeDiscriminatorChild::class, - ), - $m->discriminatorMap - ); - $this->assertTrue($m->xmlDiscriminatorAttribute); - $this->assertFalse($m->xmlDiscriminatorCData); - } - - public function testLoadXmlDiscriminatorWithNamespaces() - { - /** @var $m ClassMetadata */ - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass(ObjectWithXmlNamespaceDiscriminatorParent::class)); - - $this->assertNotNull($m); - $this->assertEquals('type', $m->discriminatorFieldName); - $this->assertEquals($m->name, $m->discriminatorBaseClass); - $this->assertEquals( - array( - 'child' => ObjectWithXmlNamespaceDiscriminatorChild::class, - ), - $m->discriminatorMap - ); - $this->assertEquals('http://example.com/', $m->xmlDiscriminatorNamespace); - } - - public function testLoadDiscriminatorWithGroup() - { - /** @var $m ClassMetadata */ - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Vehicle')); - - $this->assertNotNull($m); - $this->assertEquals('type', $m->discriminatorFieldName); - $this->assertEquals(array('foo'), $m->discriminatorGroups); - $this->assertEquals($m->name, $m->discriminatorBaseClass); - $this->assertEquals( - array( - 'car' => 'JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Car' - ), - $m->discriminatorMap - ); - } - - public function testSkipWhenEmptyOption() - { - /** @var $m ClassMetadata */ - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass(ParentSkipWithEmptyChild::class)); - - $this->assertNotNull($m); - - $this->assertInstanceOf(PropertyMetadata::class, $m->propertyMetadata['c']); - $this->assertInstanceOf(PropertyMetadata::class, $m->propertyMetadata['d']); - $this->assertInstanceOf(PropertyMetadata::class, $m->propertyMetadata['child']); - $this->assertFalse($m->propertyMetadata['c']->skipWhenEmpty); - $this->assertFalse($m->propertyMetadata['d']->skipWhenEmpty); - $this->assertTrue($m->propertyMetadata['child']->skipWhenEmpty); - } - - public function testLoadDiscriminatorSubClass() - { - /** @var $m ClassMetadata */ - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\Discriminator\Car')); - - $this->assertNotNull($m); - $this->assertNull($m->discriminatorValue); - $this->assertNull($m->discriminatorBaseClass); - $this->assertNull($m->discriminatorFieldName); - $this->assertEquals(array(), $m->discriminatorMap); - } - - public function testLoadXmlObjectWithNamespacesMetadata() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespaces')); - $this->assertNotNull($m); - $this->assertEquals('test-object', $m->xmlRootName); - $this->assertEquals('http://example.com/namespace', $m->xmlRootNamespace); - $this->assertCount(3, $m->xmlNamespaces); - $this->assertArrayHasKey('', $m->xmlNamespaces); - $this->assertEquals('http://example.com/namespace', $m->xmlNamespaces['']); - $this->assertArrayHasKey('gd', $m->xmlNamespaces); - $this->assertEquals('http://schemas.google.com/g/2005', $m->xmlNamespaces['gd']); - $this->assertArrayHasKey('atom', $m->xmlNamespaces); - $this->assertEquals('http://www.w3.org/2005/Atom', $m->xmlNamespaces['atom']); - - $p = new PropertyMetadata($m->name, 'title'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://purl.org/dc/elements/1.1/"; - $this->assertEquals($p, $m->propertyMetadata['title']); - - $p = new PropertyMetadata($m->name, 'createdAt'); - $p->type = array('name' => 'DateTime', 'params' => array()); - $p->xmlAttribute = true; - $this->assertEquals($p, $m->propertyMetadata['createdAt']); - - $p = new PropertyMetadata($m->name, 'etag'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlAttribute = true; - $p->xmlNamespace = "http://schemas.google.com/g/2005"; - $this->assertEquals($p, $m->propertyMetadata['etag']); - - $p = new PropertyMetadata($m->name, 'author'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlAttribute = false; - $p->xmlNamespace = "http://www.w3.org/2005/Atom"; - $this->assertEquals($p, $m->propertyMetadata['author']); - - $p = new PropertyMetadata($m->name, 'language'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlAttribute = true; - $p->xmlNamespace = "http://purl.org/dc/elements/1.1/"; - $this->assertEquals($p, $m->propertyMetadata['language']); - } - - public function testMaxDepth() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\Node')); - - $this->assertEquals(2, $m->propertyMetadata['children']->maxDepth); - } - - public function testPersonCData() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\Person')); - - $this->assertNotNull($m); - $this->assertFalse($m->propertyMetadata['name']->xmlElementCData); - } - - public function testXmlNamespaceInheritanceMetadata() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\SimpleClassObject')); - $this->assertNotNull($m); - $this->assertCount(3, $m->xmlNamespaces); - $this->assertArrayHasKey('old_foo', $m->xmlNamespaces); - $this->assertEquals('http://old.foo.example.org', $m->xmlNamespaces['old_foo']); - $this->assertArrayHasKey('foo', $m->xmlNamespaces); - $this->assertEquals('http://foo.example.org', $m->xmlNamespaces['foo']); - $this->assertArrayHasKey('new_foo', $m->xmlNamespaces); - $this->assertEquals('http://new.foo.example.org', $m->xmlNamespaces['new_foo']); - $this->assertCount(3, $m->propertyMetadata); - - $p = new PropertyMetadata($m->name, 'foo'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://old.foo.example.org"; - $p->xmlAttribute = true; - $this->assertEquals($p, $m->propertyMetadata['foo']); - - $p = new PropertyMetadata($m->name, 'bar'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://foo.example.org"; - $this->assertEquals($p, $m->propertyMetadata['bar']); - - $p = new PropertyMetadata($m->name, 'moo'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://new.foo.example.org"; - $this->assertEquals($p, $m->propertyMetadata['moo']); - - - $subm = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\SimpleSubClassObject')); - $this->assertNotNull($subm); - $this->assertCount(2, $subm->xmlNamespaces); - $this->assertArrayHasKey('old_foo', $subm->xmlNamespaces); - $this->assertEquals('http://foo.example.org', $subm->xmlNamespaces['old_foo']); - $this->assertArrayHasKey('foo', $subm->xmlNamespaces); - $this->assertEquals('http://better.foo.example.org', $subm->xmlNamespaces['foo']); - $this->assertCount(3, $subm->propertyMetadata); - - $p = new PropertyMetadata($subm->name, 'moo'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://better.foo.example.org"; - $this->assertEquals($p, $subm->propertyMetadata['moo']); - - $p = new PropertyMetadata($subm->name, 'baz'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://foo.example.org"; - $this->assertEquals($p, $subm->propertyMetadata['baz']); - - $p = new PropertyMetadata($subm->name, 'qux'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://new.foo.example.org"; - $this->assertEquals($p, $subm->propertyMetadata['qux']); - - $m->merge($subm); - $this->assertNotNull($m); - $this->assertCount(3, $m->xmlNamespaces); - $this->assertArrayHasKey('old_foo', $m->xmlNamespaces); - $this->assertEquals('http://foo.example.org', $m->xmlNamespaces['old_foo']); - $this->assertArrayHasKey('foo', $m->xmlNamespaces); - $this->assertEquals('http://better.foo.example.org', $m->xmlNamespaces['foo']); - $this->assertArrayHasKey('new_foo', $m->xmlNamespaces); - $this->assertEquals('http://new.foo.example.org', $m->xmlNamespaces['new_foo']); - $this->assertCount(5, $m->propertyMetadata); - - $p = new PropertyMetadata($m->name, 'foo'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://old.foo.example.org"; - $p->xmlAttribute = true; - $p->class = 'JMS\Serializer\Tests\Fixtures\SimpleClassObject'; - $this->assetMetadataEquals($p, $m->propertyMetadata['foo']); - - $p = new PropertyMetadata($m->name, 'bar'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://foo.example.org"; - $p->class = 'JMS\Serializer\Tests\Fixtures\SimpleClassObject'; - $this->assetMetadataEquals($p, $m->propertyMetadata['bar']); - - $p = new PropertyMetadata($m->name, 'moo'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://better.foo.example.org"; - $this->assetMetadataEquals($p, $m->propertyMetadata['moo']); - - $p = new PropertyMetadata($m->name, 'baz'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://foo.example.org"; - $this->assetMetadataEquals($p, $m->propertyMetadata['baz']); - - $p = new PropertyMetadata($m->name, 'qux'); - $p->type = array('name' => 'string', 'params' => array()); - $p->xmlNamespace = "http://new.foo.example.org"; - $this->assetMetadataEquals($p, $m->propertyMetadata['qux']); - } - - private function assetMetadataEquals(PropertyMetadata $expected, PropertyMetadata $actual) - { - $expectedVars = get_object_vars($expected); - $actualVars = get_object_vars($actual); - - $expectedReflection = (array)$expectedVars['reflection']; - $actualReflection = (array)$actualVars['reflection']; - - // HHVM bug with class property - unset($expectedVars['reflection'], $actualVars['reflection']); - $this->assertEquals($expectedVars, $actualVars); - - // HHVM bug with class property - if (isset($expectedReflection['info']) || isset($actualReflection['info'])) { - $expectedReflection['class'] = $expectedReflection['info']['class']; - $actualReflection['class'] = $actualReflection['info']['class']; - } - - $this->assertEquals($expectedReflection, $actualReflection); - } - - public function testHandlerCallbacks() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\ObjectWithHandlerCallbacks')); - - $this->assertEquals('toJson', $m->handlerCallbacks[GraphNavigator::DIRECTION_SERIALIZATION]['json']); - $this->assertEquals('toXml', $m->handlerCallbacks[GraphNavigator::DIRECTION_SERIALIZATION]['xml']); - } - - public function testExclusionIf() - { - $class = 'JMS\Serializer\Tests\Fixtures\PersonSecret'; - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass($class)); - - $p = new PropertyMetadata($class, 'name'); - $p->type = array('name' => 'string', 'params' => array()); - $this->assertEquals($p, $m->propertyMetadata['name']); - - $p = new PropertyMetadata($class, 'gender'); - $p->type = array('name' => 'string', 'params' => array()); - $p->excludeIf = "show_data('gender')"; - $this->assertEquals($p, $m->propertyMetadata['gender']); - - $p = new PropertyMetadata($class, 'age'); - $p->type = array('name' => 'string', 'params' => array()); - $p->excludeIf = "!(show_data('age'))"; - $this->assertEquals($p, $m->propertyMetadata['age']); - } - - public function testExcludePropertyNoPublicAccessorException() - { - $first = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\ExcludePublicAccessor')); - - if ($this instanceof PhpDriverTest) { - return; - } - $this->assertArrayHasKey('id', $first->propertyMetadata); - $this->assertArrayNotHasKey('iShallNotBeAccessed', $first->propertyMetadata); - } - - - /** - * @return DriverInterface - */ - abstract protected function getDriver(); -} diff --git a/vendor/jms/serializer/tests/Metadata/Driver/DoctrineDriverTest.php b/vendor/jms/serializer/tests/Metadata/Driver/DoctrineDriverTest.php deleted file mode 100644 index db02608..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/DoctrineDriverTest.php +++ /dev/null @@ -1,162 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Metadata\Driver; - -use Doctrine\Common\Annotations\AnnotationReader; -use Doctrine\ORM\Configuration; -use Doctrine\ORM\EntityManager; -use Doctrine\ORM\Mapping\Driver\AnnotationDriver as DoctrineDriver; -use JMS\Serializer\Metadata\Driver\AnnotationDriver; -use JMS\Serializer\Metadata\Driver\DoctrineTypeDriver; - -class DoctrineDriverTest extends \PHPUnit_Framework_TestCase -{ - public function getMetadata() - { - $refClass = new \ReflectionClass('JMS\Serializer\Tests\Fixtures\Doctrine\BlogPost'); - $metadata = $this->getDoctrineDriver()->loadMetadataForClass($refClass); - - return $metadata; - } - - public function testTypelessPropertyIsGivenTypeFromDoctrineMetadata() - { - $metadata = $this->getMetadata(); - - $this->assertEquals( - array('name' => 'DateTime', 'params' => array()), - $metadata->propertyMetadata['createdAt']->type - ); - } - - public function testSingleValuedAssociationIsProperlyHinted() - { - $metadata = $this->getMetadata(); - $this->assertEquals( - array('name' => 'JMS\Serializer\Tests\Fixtures\Doctrine\Author', 'params' => array()), - $metadata->propertyMetadata['author']->type - ); - } - - public function testMultiValuedAssociationIsProperlyHinted() - { - $metadata = $this->getMetadata(); - - $this->assertEquals( - array('name' => 'ArrayCollection', 'params' => array( - array('name' => 'JMS\Serializer\Tests\Fixtures\Doctrine\Comment', 'params' => array())) - ), - $metadata->propertyMetadata['comments']->type - ); - } - - public function testTypeGuessByDoctrineIsOverwrittenByDelegateDriver() - { - $metadata = $this->getMetadata(); - - // This would be guessed as boolean but we've overriden it to integer - $this->assertEquals( - array('name' => 'integer', 'params' => array()), - $metadata->propertyMetadata['published']->type - ); - } - - public function testUnknownDoctrineTypeDoesNotResultInAGuess() - { - $metadata = $this->getMetadata(); - $this->assertNull($metadata->propertyMetadata['slug']->type); - } - - public function testNonDoctrineEntityClassIsNotModified() - { - // Note: Using regular BlogPost fixture here instead of Doctrine fixture - // because it has no Doctrine metadata. - $refClass = new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost'); - - $plainMetadata = $this->getAnnotationDriver()->loadMetadataForClass($refClass); - $doctrineMetadata = $this->getDoctrineDriver()->loadMetadataForClass($refClass); - - // Do not compare timestamps - if (abs($doctrineMetadata->createdAt - $plainMetadata->createdAt) < 2) { - $plainMetadata->createdAt = $doctrineMetadata->createdAt; - } - - $this->assertEquals($plainMetadata, $doctrineMetadata); - } - - public function testExcludePropertyNoPublicAccessorException() - { - $first = $this->getAnnotationDriver() - ->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\ExcludePublicAccessor')); - - $this->assertArrayHasKey('id', $first->propertyMetadata); - $this->assertArrayNotHasKey('iShallNotBeAccessed', $first->propertyMetadata); - } - - public function testVirtualPropertiesAreNotModified() - { - $doctrineMetadata = $this->getMetadata(); - $this->assertNull($doctrineMetadata->propertyMetadata['ref']->type); - } - - public function testGuidPropertyIsGivenStringType() - { - $metadata = $this->getMetadata(); - - $this->assertEquals( - array('name' => 'string', 'params' => array()), - $metadata->propertyMetadata['id']->type - ); - } - - protected function getEntityManager() - { - $config = new Configuration(); - $config->setProxyDir(sys_get_temp_dir() . '/JMSDoctrineTestProxies'); - $config->setProxyNamespace('JMS\Tests\Proxies'); - $config->setMetadataDriverImpl( - new DoctrineDriver(new AnnotationReader(), __DIR__ . '/../../Fixtures/Doctrine') - ); - - $conn = array( - 'driver' => 'pdo_sqlite', - 'memory' => true, - ); - - return EntityManager::create($conn, $config); - } - - public function getAnnotationDriver() - { - return new AnnotationDriver(new AnnotationReader()); - } - - protected function getDoctrineDriver() - { - $registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock(); - $registry->expects($this->atLeastOnce()) - ->method('getManagerForClass') - ->will($this->returnValue($this->getEntityManager())); - - return new DoctrineTypeDriver( - $this->getAnnotationDriver(), - $registry - ); - } -} diff --git a/vendor/jms/serializer/tests/Metadata/Driver/DoctrinePHPCRDriverTest.php b/vendor/jms/serializer/tests/Metadata/Driver/DoctrinePHPCRDriverTest.php deleted file mode 100644 index 05ab43d..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/DoctrinePHPCRDriverTest.php +++ /dev/null @@ -1,127 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Metadata\Driver; - -use Doctrine\Common\Annotations\AnnotationReader; -use Doctrine\ODM\PHPCR\Configuration; -use Doctrine\ODM\PHPCR\DocumentManager; -use Doctrine\ODM\PHPCR\Mapping\Driver\AnnotationDriver as DoctrinePHPCRDriver; -use JMS\Serializer\Metadata\Driver\AnnotationDriver; -use JMS\Serializer\Metadata\Driver\DoctrinePHPCRTypeDriver; - -class DoctrinePHPCRDriverTest extends \PHPUnit_Framework_TestCase -{ - public function getMetadata() - { - $refClass = new \ReflectionClass('JMS\Serializer\Tests\Fixtures\DoctrinePHPCR\BlogPost'); - $metadata = $this->getDoctrinePHPCRDriver()->loadMetadataForClass($refClass); - - return $metadata; - } - - public function testTypelessPropertyIsGivenTypeFromDoctrineMetadata() - { - $metadata = $this->getMetadata(); - $this->assertEquals( - array('name' => 'DateTime', 'params' => array()), - $metadata->propertyMetadata['createdAt']->type - ); - } - - public function testSingleValuedAssociationIsProperlyHinted() - { - $metadata = $this->getMetadata(); - $this->assertEquals( - array('name' => 'JMS\Serializer\Tests\Fixtures\DoctrinePHPCR\Author', 'params' => array()), - $metadata->propertyMetadata['author']->type - ); - } - - public function testMultiValuedAssociationIsProperlyHinted() - { - $metadata = $this->getMetadata(); - - $this->assertEquals( - array('name' => 'ArrayCollection', 'params' => array( - array('name' => 'JMS\Serializer\Tests\Fixtures\DoctrinePHPCR\Comment', 'params' => array())) - ), - $metadata->propertyMetadata['comments']->type - ); - } - - public function testTypeGuessByDoctrineIsOverwrittenByDelegateDriver() - { - $metadata = $this->getMetadata(); - - // This would be guessed as boolean but we've overridden it to integer - $this->assertEquals( - array('name' => 'integer', 'params' => array()), - $metadata->propertyMetadata['published']->type - ); - } - - public function testNonDoctrineDocumentClassIsNotModified() - { - // Note: Using regular BlogPost fixture here instead of Doctrine fixture - // because it has no Doctrine metadata. - $refClass = new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost'); - - $plainMetadata = $this->getAnnotationDriver()->loadMetadataForClass($refClass); - $doctrineMetadata = $this->getDoctrinePHPCRDriver()->loadMetadataForClass($refClass); - - // Do not compare timestamps - if (abs($doctrineMetadata->createdAt - $plainMetadata->createdAt) < 2) { - $plainMetadata->createdAt = $doctrineMetadata->createdAt; - } - - $this->assertEquals($plainMetadata, $doctrineMetadata); - } - - protected function getDocumentManager() - { - $config = new Configuration(); - $config->setProxyDir(sys_get_temp_dir() . '/JMSDoctrineTestProxies'); - $config->setProxyNamespace('JMS\Tests\Proxies'); - $config->setMetadataDriverImpl( - new DoctrinePHPCRDriver(new AnnotationReader(), __DIR__ . '/../../Fixtures/DoctrinePHPCR') - ); - - $session = $this->getMockBuilder('PHPCR\SessionInterface')->getMock(); - - return DocumentManager::create($session, $config); - } - - public function getAnnotationDriver() - { - return new AnnotationDriver(new AnnotationReader()); - } - - protected function getDoctrinePHPCRDriver() - { - $registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock(); - $registry->expects($this->atLeastOnce()) - ->method('getManagerForClass') - ->will($this->returnValue($this->getDocumentManager())); - - return new DoctrinePHPCRTypeDriver( - $this->getAnnotationDriver(), - $registry - ); - } -} diff --git a/vendor/jms/serializer/tests/Metadata/Driver/NullDriverTest.php b/vendor/jms/serializer/tests/Metadata/Driver/NullDriverTest.php deleted file mode 100644 index f55b07f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/NullDriverTest.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Metadata\Driver; - -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\Driver\NullDriver; - -class NullDriverTest extends \PHPUnit_Framework_TestCase -{ - public function testReturnsValidMetadata() - { - $driver = new NullDriver(); - - $metadata = $driver->loadMetadataForClass(new \ReflectionClass('stdClass')); - - $this->assertInstanceOf(ClassMetadata::class, $metadata); - $this->assertCount(0, $metadata->propertyMetadata); - } -} diff --git a/vendor/jms/serializer/tests/Metadata/Driver/PhpDriverTest.php b/vendor/jms/serializer/tests/Metadata/Driver/PhpDriverTest.php deleted file mode 100644 index 5bfeffe..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/PhpDriverTest.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Metadata\Driver; - -use JMS\Serializer\Metadata\Driver\PhpDriver; -use Metadata\Driver\FileLocator; - -class PhpDriverTest extends BaseDriverTest -{ - protected function getDriver() - { - return new PhpDriver(new FileLocator(array( - 'JMS\Serializer\Tests\Fixtures' => __DIR__ . '/php', - ))); - } -} diff --git a/vendor/jms/serializer/tests/Metadata/Driver/XmlDriverTest.php b/vendor/jms/serializer/tests/Metadata/Driver/XmlDriverTest.php deleted file mode 100644 index 1cf3570..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/XmlDriverTest.php +++ /dev/null @@ -1,112 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Metadata\Driver; - -use JMS\Serializer\Metadata\Driver\XmlDriver; -use JMS\Serializer\Metadata\PropertyMetadata; -use Metadata\Driver\FileLocator; - -class XmlDriverTest extends BaseDriverTest -{ - /** - * @expectedException JMS\Serializer\Exception\XmlErrorException - * @expectedExceptionMessage [FATAL] Start tag expected, '<' not found - */ - public function testInvalidXml() - { - $driver = $this->getDriver(); - - $ref = new \ReflectionMethod($driver, 'loadMetadataFromFile'); - $ref->setAccessible(true); - $ref->invoke($driver, new \ReflectionClass('stdClass'), __DIR__ . '/xml/invalid.xml'); - } - - public function testBlogPostExcludeAllStrategy() - { - $m = $this->getDriver('exclude_all')->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost')); - - $this->assertArrayHasKey('title', $m->propertyMetadata); - - $excluded = array('createdAt', 'published', 'comments', 'author'); - foreach ($excluded as $key) { - $this->assertArrayNotHasKey($key, $m->propertyMetadata); - } - } - - public function testBlogPostExcludeNoneStrategy() - { - $m = $this->getDriver('exclude_none')->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost')); - - $this->assertArrayNotHasKey('title', $m->propertyMetadata); - - $excluded = array('createdAt', 'published', 'comments', 'author'); - foreach ($excluded as $key) { - $this->assertArrayHasKey($key, $m->propertyMetadata); - } - } - - public function testBlogPostCaseInsensitive() - { - $m = $this->getDriver('case')->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost')); - - $p = new PropertyMetadata($m->name, 'title'); - $p->type = array('name' => 'string', 'params' => array()); - $this->assertEquals($p, $m->propertyMetadata['title']); - } - - public function testAccessorAttributes() - { - $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\GetSetObject')); - - $p = new PropertyMetadata($m->name, 'name'); - $p->type = array('name' => 'string', 'params' => array()); - $p->getter = 'getTrimmedName'; - $p->setter = 'setCapitalizedName'; - - $this->assertEquals($p, $m->propertyMetadata['name']); - } - - public function testGroupsTrim() - { - $first = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\GroupsTrim')); - - $this->assertArrayHasKey('amount', $first->propertyMetadata); - $this->assertArraySubset(['first.test.group', 'second.test.group'], $first->propertyMetadata['currency']->groups); - } - - public function testMultilineGroups() - { - $first = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\MultilineGroupsFormat')); - - $this->assertArrayHasKey('amount', $first->propertyMetadata); - $this->assertArraySubset(['first.test.group', 'second.test.group'], $first->propertyMetadata['currency']->groups); - } - - protected function getDriver() - { - $append = ''; - if (func_num_args() == 1) { - $append = '/' . func_get_arg(0); - } - - return new XmlDriver(new FileLocator(array( - 'JMS\Serializer\Tests\Fixtures' => __DIR__ . '/xml' . $append, - ))); - } -} diff --git a/vendor/jms/serializer/tests/Metadata/Driver/YamlDriverTest.php b/vendor/jms/serializer/tests/Metadata/Driver/YamlDriverTest.php deleted file mode 100644 index df332f3..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/YamlDriverTest.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Metadata\Driver; - -use JMS\Serializer\Metadata\Driver\YamlDriver; -use JMS\Serializer\Metadata\PropertyMetadata; -use Metadata\Driver\FileLocator; - -class YamlDriverTest extends BaseDriverTest -{ - public function testAccessorOrderIsInferred() - { - $m = $this->getDriverForSubDir('accessor_inferred')->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\Person')); - $this->assertEquals(array('age', 'name'), array_keys($m->propertyMetadata)); - } - - public function testShortExposeSyntax() - { - $m = $this->getDriverForSubDir('short_expose')->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\Person')); - - $this->assertArrayHasKey('name', $m->propertyMetadata); - $this->assertArrayNotHasKey('age', $m->propertyMetadata); - } - - public function testBlogPost() - { - $m = $this->getDriverForSubDir('exclude_all')->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost')); - - $this->assertArrayHasKey('title', $m->propertyMetadata); - - $excluded = array('createdAt', 'published', 'comments', 'author'); - foreach ($excluded as $key) { - $this->assertArrayNotHasKey($key, $m->propertyMetadata); - } - } - - public function testBlogPostExcludeNoneStrategy() - { - $m = $this->getDriverForSubDir('exclude_none')->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost')); - - $this->assertArrayNotHasKey('title', $m->propertyMetadata); - - $excluded = array('createdAt', 'published', 'comments', 'author'); - foreach ($excluded as $key) { - $this->assertArrayHasKey($key, $m->propertyMetadata); - } - } - - public function testBlogPostCaseInsensitive() - { - $m = $this->getDriverForSubDir('case')->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost')); - - $p = new PropertyMetadata($m->name, 'title'); - $p->type = array('name' => 'string', 'params' => array()); - $this->assertEquals($p, $m->propertyMetadata['title']); - } - - public function testBlogPostAccessor() - { - $m = $this->getDriverForSubDir('accessor')->loadMetadataForClass(new \ReflectionClass('JMS\Serializer\Tests\Fixtures\BlogPost')); - - $this->assertArrayHasKey('title', $m->propertyMetadata); - - $p = new PropertyMetadata($m->name, 'title'); - $p->getter = 'getOtherTitle'; - $p->setter = 'setOtherTitle'; - $this->assertEquals($p, $m->propertyMetadata['title']); - } - - private function getDriverForSubDir($subDir = null) - { - return new YamlDriver(new FileLocator(array( - 'JMS\Serializer\Tests\Fixtures' => __DIR__ . '/yml' . ($subDir ? '/' . $subDir : ''), - ))); - } - - protected function getDriver() - { - return $this->getDriverForSubDir(); - } -} diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/AuthorExpressionAccess.php b/vendor/jms/serializer/tests/Metadata/Driver/php/AuthorExpressionAccess.php deleted file mode 100644 index ac76613..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/AuthorExpressionAccess.php +++ /dev/null @@ -1,19 +0,0 @@ -addPropertyMetadata($p); - -$p = new VirtualPropertyMetadata('JMS\Serializer\Tests\Fixtures\AuthorExpressionAccess', 'getLastName'); -$metadata->addPropertyMetadata($p); - -$p = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\AuthorExpressionAccess', 'id'); -$metadata->addPropertyMetadata($p); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/AuthorReadOnly.php b/vendor/jms/serializer/tests/Metadata/Driver/php/AuthorReadOnly.php deleted file mode 100644 index d323d6e..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/AuthorReadOnly.php +++ /dev/null @@ -1,7 +0,0 @@ -xmlRootName = 'blog-post'; - -$metadata->registerNamespace('http://example.com/namespace'); -$metadata->registerNamespace('http://schemas.google.com/g/2005', 'gd'); -$metadata->registerNamespace('http://www.w3.org/2005/Atom', 'atom'); -$metadata->registerNamespace('http://purl.org/dc/elements/1.1/', 'dc'); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'id'); -$pMetadata->setType('string'); -$pMetadata->groups = array('comments', 'post'); -$pMetadata->xmlElementCData = false; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'title'); -$pMetadata->setType('string'); -$pMetadata->groups = array('comments', 'post'); -$pMetadata->xmlNamespace = "http://purl.org/dc/elements/1.1/"; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'createdAt'); -$pMetadata->setType('DateTime'); -$pMetadata->xmlAttribute = true; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'published'); -$pMetadata->setType('boolean'); -$pMetadata->serializedName = 'is_published'; -$pMetadata->groups = array('post'); -$pMetadata->xmlAttribute = true; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'etag'); -$pMetadata->setType('string'); -$pMetadata->groups = array('post'); -$pMetadata->xmlAttribute = true; -$pMetadata->xmlNamespace = 'http://schemas.google.com/g/2005'; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'comments'); -$pMetadata->setType('ArrayCollection'); -$pMetadata->xmlCollection = true; -$pMetadata->xmlCollectionInline = true; -$pMetadata->xmlEntryName = 'comment'; -$pMetadata->groups = array('comments'); - -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'author'); -$pMetadata->setType('JMS\Serializer\Tests\Fixtures\Author'); -$pMetadata->groups = array('post'); -$pMetadata->xmlNamespace = 'http://www.w3.org/2005/Atom'; - -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.Car.php b/vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.Car.php deleted file mode 100644 index a3b07b5..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.Car.php +++ /dev/null @@ -1,7 +0,0 @@ -setDiscriminator('type', array( - 'child' => 'JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlAttributeDiscriminatorChild' -)); -$metadata->xmlDiscriminatorAttribute = true; -$metadata->xmlDiscriminatorCData = false; -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.php b/vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.php deleted file mode 100644 index a10ee1f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.php +++ /dev/null @@ -1,11 +0,0 @@ -setDiscriminator('type', array( - 'child' => 'JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNamespaceDiscriminatorChild' -)); -$metadata->xmlDiscriminatorNamespace = 'http://example.com/'; - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.Vehicle.php b/vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.Vehicle.php deleted file mode 100644 index 9267162..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/Discriminator.Vehicle.php +++ /dev/null @@ -1,16 +0,0 @@ -setDiscriminator('type', array( - 'car' => 'JMS\Serializer\Tests\Fixtures\Discriminator\Car', - 'moped' => 'JMS\Serializer\Tests\Fixtures\Discriminator\Moped', -)); - -$km = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\Discriminator\Vehicle', 'km'); -$km->setType('integer'); -$metadata->addPropertyMetadata($km); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/DiscriminatorGroup.Vehicle.php b/vendor/jms/serializer/tests/Metadata/Driver/php/DiscriminatorGroup.Vehicle.php deleted file mode 100644 index 792d93f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/DiscriminatorGroup.Vehicle.php +++ /dev/null @@ -1,15 +0,0 @@ -setDiscriminator('type', array( - 'car' => 'JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Car', -), array('foo')); - -$km = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Vehicle', 'km'); -$km->setType('integer'); -$metadata->addPropertyMetadata($km); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/Node.php b/vendor/jms/serializer/tests/Metadata/Driver/php/Node.php deleted file mode 100644 index 782c9ab..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/Node.php +++ /dev/null @@ -1,12 +0,0 @@ -maxDepth = 2; -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithAbsentXmlListNode.php b/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithAbsentXmlListNode.php deleted file mode 100644 index d8a8e20..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithAbsentXmlListNode.php +++ /dev/null @@ -1,22 +0,0 @@ -xmlCollectionSkipWhenEmpty = true; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata($className, 'present'); -$pMetadata->xmlCollectionSkipWhenEmpty = false; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata($className, 'skipDefault'); -$metadata->addPropertyMetadata($pMetadata); - - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithExpressionVirtualPropertiesAndExcludeAll.php b/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithExpressionVirtualPropertiesAndExcludeAll.php deleted file mode 100644 index 691e3d4..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithExpressionVirtualPropertiesAndExcludeAll.php +++ /dev/null @@ -1,13 +0,0 @@ -addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithHandlerCallbacks.php b/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithHandlerCallbacks.php deleted file mode 100644 index 5edaa0c..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithHandlerCallbacks.php +++ /dev/null @@ -1,16 +0,0 @@ -type = 'string'; -$metadata->addPropertyMetadata($pMetadata); - -$metadata->addHandlerCallback(GraphNavigator::DIRECTION_SERIALIZATION, 'json', 'toJson'); -$metadata->addHandlerCallback(GraphNavigator::DIRECTION_SERIALIZATION, 'xml', 'toXml'); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithVirtualProperties.php b/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithVirtualProperties.php deleted file mode 100644 index db14578..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithVirtualProperties.php +++ /dev/null @@ -1,28 +0,0 @@ -addPropertyMetadata($pMetadata); - -$pMetadata = new VirtualPropertyMetadata($className, 'virtualValue'); -$pMetadata->getter = 'getVirtualValue'; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new VirtualPropertyMetadata($className, 'virtualSerializedValue'); -$pMetadata->getter = 'getVirtualSerializedValue'; -$pMetadata->serializedName = 'test'; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new VirtualPropertyMetadata($className, 'typedVirtualProperty'); -$pMetadata->getter = 'getTypedVirtualProperty'; -$pMetadata->setType('integer'); -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithVirtualPropertiesAndExcludeAll.php b/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithVirtualPropertiesAndExcludeAll.php deleted file mode 100644 index a3f2ef6..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithVirtualPropertiesAndExcludeAll.php +++ /dev/null @@ -1,14 +0,0 @@ -getter = 'getVirtualValue'; -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithXmlKeyValuePairs.php b/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithXmlKeyValuePairs.php deleted file mode 100644 index ca1115b..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithXmlKeyValuePairs.php +++ /dev/null @@ -1,13 +0,0 @@ -xmlKeyValuePairs = true; -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithXmlNamespaces.php b/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithXmlNamespaces.php deleted file mode 100644 index a240070..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/ObjectWithXmlNamespaces.php +++ /dev/null @@ -1,41 +0,0 @@ -xmlRootName = 'test-object'; -$metadata->xmlRootNamespace = 'http://example.com/namespace'; - -$metadata->registerNamespace('http://example.com/namespace'); -$metadata->registerNamespace('http://schemas.google.com/g/2005', 'gd'); -$metadata->registerNamespace('http://www.w3.org/2005/Atom', 'atom'); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespaces', 'title'); -$pMetadata->setType('string'); -$pMetadata->xmlNamespace = "http://purl.org/dc/elements/1.1/"; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespaces', 'createdAt'); -$pMetadata->setType('DateTime'); -$pMetadata->xmlAttribute = true; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespaces', 'etag'); -$pMetadata->setType('string'); -$pMetadata->xmlAttribute = true; -$pMetadata->xmlNamespace = 'http://schemas.google.com/g/2005'; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespaces', 'author'); -$pMetadata->setType('string'); -$pMetadata->xmlNamespace = 'http://www.w3.org/2005/Atom'; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespaces', 'language'); -$pMetadata->setType('string'); -$pMetadata->xmlAttribute = true; -$pMetadata->xmlNamespace = 'http://purl.org/dc/elements/1.1/'; -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/ParentSkipWithEmptyChild.php b/vendor/jms/serializer/tests/Metadata/Driver/php/ParentSkipWithEmptyChild.php deleted file mode 100644 index 537430f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/ParentSkipWithEmptyChild.php +++ /dev/null @@ -1,19 +0,0 @@ -name, 'c'); -$metadata->addPropertyMetadata($pMeta); - -$pMeta = new PropertyMetadata($metadata->name, 'd'); -$metadata->addPropertyMetadata($pMeta); - -$pMeta = new PropertyMetadata($metadata->name, 'child'); -$pMeta->skipWhenEmpty = true; - -$metadata->addPropertyMetadata($pMeta); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/Person.php b/vendor/jms/serializer/tests/Metadata/Driver/php/Person.php deleted file mode 100644 index 1de706f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/Person.php +++ /dev/null @@ -1,20 +0,0 @@ -xmlRootName = 'child'; - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\Person', 'name'); -$pMetadata->setType('string'); -$pMetadata->xmlValue = true; -$pMetadata->xmlElementCData = false; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\Person', 'age'); -$pMetadata->setType('integer'); -$pMetadata->xmlAttribute = true; -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/PersonSecret.php b/vendor/jms/serializer/tests/Metadata/Driver/php/PersonSecret.php deleted file mode 100644 index 065ea45..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/PersonSecret.php +++ /dev/null @@ -1,22 +0,0 @@ -setType('string'); -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\PersonSecret', 'gender'); -$pMetadata->setType('string'); -$pMetadata->excludeIf = "show_data('gender')"; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\PersonSecret', 'age'); -$pMetadata->setType('string'); -$pMetadata->excludeIf = "!(show_data('age'))"; -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/Price.php b/vendor/jms/serializer/tests/Metadata/Driver/php/Price.php deleted file mode 100644 index 541bcd8..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/Price.php +++ /dev/null @@ -1,13 +0,0 @@ -setType('float'); -$pMetadata->xmlValue = true; -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/SimpleClassObject.php b/vendor/jms/serializer/tests/Metadata/Driver/php/SimpleClassObject.php deleted file mode 100644 index 8baf68a..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/SimpleClassObject.php +++ /dev/null @@ -1,28 +0,0 @@ -registerNamespace('http://foo.example.org', 'foo'); -$metadata->registerNamespace('http://old.foo.example.org', 'old_foo'); -$metadata->registerNamespace('http://new.foo.example.org', 'new_foo'); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\SimpleClassObject', 'foo'); -$pMetadata->setType('string'); -$pMetadata->xmlNamespace = "http://old.foo.example.org"; -$pMetadata->xmlAttribute = true; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\SimpleClassObject', 'bar'); -$pMetadata->setType('string'); -$pMetadata->xmlNamespace = "http://foo.example.org"; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\SimpleClassObject', 'moo'); -$pMetadata->setType('string'); -$pMetadata->xmlNamespace = "http://new.foo.example.org"; -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/php/SimpleSubClassObject.php b/vendor/jms/serializer/tests/Metadata/Driver/php/SimpleSubClassObject.php deleted file mode 100644 index ed75085..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/php/SimpleSubClassObject.php +++ /dev/null @@ -1,26 +0,0 @@ -registerNamespace('http://better.foo.example.org', 'foo'); -$metadata->registerNamespace('http://foo.example.org', 'old_foo'); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\SimpleSubClassObject', 'moo'); -$pMetadata->setType('string'); -$pMetadata->xmlNamespace = "http://better.foo.example.org"; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\SimpleSubClassObject', 'baz'); -$pMetadata->setType('string'); -$pMetadata->xmlNamespace = "http://foo.example.org"; -$metadata->addPropertyMetadata($pMetadata); - -$pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\SimpleSubClassObject', 'qux'); -$pMetadata->setType('string'); -$pMetadata->xmlNamespace = "http://new.foo.example.org"; -$metadata->addPropertyMetadata($pMetadata); - -return $metadata; \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorExpressionAccess.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorExpressionAccess.xml deleted file mode 100644 index 426ed6f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorExpressionAccess.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorReadOnly.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorReadOnly.xml deleted file mode 100644 index d145ced..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorReadOnly.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorReadOnlyPerClass.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorReadOnlyPerClass.xml deleted file mode 100644 index b7a140f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/AuthorReadOnlyPerClass.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/BlogPost.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/BlogPost.xml deleted file mode 100644 index 98fb667..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/BlogPost.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - ]]> - - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Car.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Car.xml deleted file mode 100644 index 638d67b..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Car.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Moped.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Moped.xml deleted file mode 100644 index b46eca1..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Moped.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.ObjectWithXmlAttributeDiscriminatorParent.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.ObjectWithXmlAttributeDiscriminatorParent.xml deleted file mode 100644 index 5a5ac6e..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.ObjectWithXmlAttributeDiscriminatorParent.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlAttributeDiscriminatorChild - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.xml deleted file mode 100644 index ff021cc..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNamespaceDiscriminatorChild - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Vehicle.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Vehicle.xml deleted file mode 100644 index 252c5a3..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/Discriminator.Vehicle.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - JMS\Serializer\Tests\Fixtures\Discriminator\Car - JMS\Serializer\Tests\Fixtures\Discriminator\Moped - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/DiscriminatorGroup.Vehicle.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/DiscriminatorGroup.Vehicle.xml deleted file mode 100644 index 4b40bbb..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/DiscriminatorGroup.Vehicle.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Car - - foo - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/ExcludePublicAccessor.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/ExcludePublicAccessor.xml deleted file mode 100644 index 4580ca5..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/ExcludePublicAccessor.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/GetSetObject.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/GetSetObject.xml deleted file mode 100644 index 1835a5b..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/GetSetObject.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/GroupsTrim.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/GroupsTrim.xml deleted file mode 100644 index 1d00553..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/GroupsTrim.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/MultilineGroupsFormat.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/MultilineGroupsFormat.xml deleted file mode 100644 index 18fee08..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/MultilineGroupsFormat.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - first.test.group - - - - - first.test.group - second.test.group - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/Node.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/Node.xml deleted file mode 100644 index fd4162c..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/Node.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithAbsentXmlListNode.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithAbsentXmlListNode.xml deleted file mode 100644 index 5ebeb9a..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithAbsentXmlListNode.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - array - - - - array - - - - array - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithExpressionVirtualPropertiesAndExcludeAll.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithExpressionVirtualPropertiesAndExcludeAll.xml deleted file mode 100644 index 0219cbe..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithExpressionVirtualPropertiesAndExcludeAll.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithHandlerCallbacks.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithHandlerCallbacks.xml deleted file mode 100644 index 1420290..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithHandlerCallbacks.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithVirtualProperties.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithVirtualProperties.xml deleted file mode 100644 index 9f65def..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithVirtualProperties.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithVirtualPropertiesAndExcludeAll.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithVirtualPropertiesAndExcludeAll.xml deleted file mode 100644 index 8128445..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithVirtualPropertiesAndExcludeAll.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithXmlKeyValuePairs.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithXmlKeyValuePairs.xml deleted file mode 100644 index 6cabc2c..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithXmlKeyValuePairs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithXmlNamespaces.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithXmlNamespaces.xml deleted file mode 100644 index c9a0b5f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/ObjectWithXmlNamespaces.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/ParentSkipWithEmptyChild.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/ParentSkipWithEmptyChild.xml deleted file mode 100644 index 30b8643..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/ParentSkipWithEmptyChild.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/Person.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/Person.xml deleted file mode 100644 index a723e7b..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/Person.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/PersonSecret.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/PersonSecret.xml deleted file mode 100644 index 141f795..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/PersonSecret.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/Price.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/Price.xml deleted file mode 100644 index 1e6c31f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/Price.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/SimpleClassObject.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/SimpleClassObject.xml deleted file mode 100644 index bdd1711..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/SimpleClassObject.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/SimpleSubClassObject.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/SimpleSubClassObject.xml deleted file mode 100644 index 8acd396..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/SimpleSubClassObject.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/case/BlogPost.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/case/BlogPost.xml deleted file mode 100644 index 663ccd6..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/case/BlogPost.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/exclude_all/BlogPost.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/exclude_all/BlogPost.xml deleted file mode 100644 index a0e77c5..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/exclude_all/BlogPost.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/exclude_none/BlogPost.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/exclude_none/BlogPost.xml deleted file mode 100644 index e0394ee..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/exclude_none/BlogPost.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/xml/invalid.xml b/vendor/jms/serializer/tests/Metadata/Driver/xml/invalid.xml deleted file mode 100644 index 619d54a..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/xml/invalid.xml +++ /dev/null @@ -1 +0,0 @@ -This contains no valid XML markup. \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorExpressionAccess.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorExpressionAccess.yml deleted file mode 100644 index 9d65e62..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorExpressionAccess.yml +++ /dev/null @@ -1,11 +0,0 @@ -JMS\Serializer\Tests\Fixtures\AuthorExpressionAccess: - xml_root_name: author - properties: - id: - expose: true - virtual_properties: - firstName: - exp: object.getFirstName() - getLastName: - expose: true - diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorReadOnly.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorReadOnly.yml deleted file mode 100644 index 07859d2..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorReadOnly.yml +++ /dev/null @@ -1,10 +0,0 @@ -JMS\Serializer\Tests\Fixtures\AuthorReadOnly: - xml_root_name: author - properties: - id: - read_only: true - name: - serialized_name: full_name - access_type: public_method - accessor_getter: getName - read_only: true diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorReadOnlyPerClass.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorReadOnlyPerClass.yml deleted file mode 100644 index 95f87ee..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/AuthorReadOnlyPerClass.yml +++ /dev/null @@ -1,11 +0,0 @@ -JMS\Serializer\Tests\Fixtures\AuthorReadOnlyPerClass: - xml_root_name: author - read_only: true - properties: - id: - - name: - serialized_name: full_name - access_type: public_method - accessor_getter: getName - read_only: false diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/BlogPost.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/BlogPost.yml deleted file mode 100644 index bb9ff7f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/BlogPost.yml +++ /dev/null @@ -1,43 +0,0 @@ -JMS\Serializer\Tests\Fixtures\BlogPost: - xml_root_name: blog-post - xml_namespaces: - "": http://example.com/namespace - gd: http://schemas.google.com/g/2005 - atom: http://www.w3.org/2005/Atom - dc: http://purl.org/dc/elements/1.1/ - properties: - id: - type: string - groups: [comments, post] - xml_element: - cdata: false - title: - type: string - groups: [comments, post] - xml_element: - namespace: http://purl.org/dc/elements/1.1/ - createdAt: - type: DateTime - xml_attribute: true - published: - type: boolean - serialized_name: is_published - xml_attribute: true - groups: [post] - etag: - type: string - groups: [post] - xml_attribute: true - xml_element: - namespace: http://schemas.google.com/g/2005 - comments: - type: ArrayCollection - groups: [comments] - xml_list: - inline: true - entry_name: comment - author: - type: JMS\Serializer\Tests\Fixtures\Author - groups: [post] - xml_element: - namespace: http://www.w3.org/2005/Atom diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Car.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Car.yml deleted file mode 100644 index 9f0fcba..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Car.yml +++ /dev/null @@ -1 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Discriminator\Car: { } \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Moped.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Moped.yml deleted file mode 100644 index d52a81d..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Moped.yml +++ /dev/null @@ -1 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Discriminator\Moped: { } \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.ObjectWithXmlAttributeDiscriminatorParent.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.ObjectWithXmlAttributeDiscriminatorParent.yml deleted file mode 100644 index ba572c5..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.ObjectWithXmlAttributeDiscriminatorParent.yml +++ /dev/null @@ -1,8 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlAttributeDiscriminatorParent: - discriminator: - field_name: type - map: - child: JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlAttributeDiscriminatorChild - xml_attribute: true - xml_element: - cdata: false \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.yml deleted file mode 100644 index e04a81d..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.ObjectWithXmlNamespaceDiscriminatorParent.yml +++ /dev/null @@ -1,7 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNamespaceDiscriminatorParent: - discriminator: - field_name: type - map: - child: JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNamespaceDiscriminatorChild - xml_element: - namespace: http://example.com/ diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Vehicle.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Vehicle.yml deleted file mode 100644 index bcd5dc9..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/Discriminator.Vehicle.yml +++ /dev/null @@ -1,10 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Discriminator\Vehicle: - discriminator: - field_name: type - map: - car: JMS\Serializer\Tests\Fixtures\Discriminator\Car - moped: JMS\Serializer\Tests\Fixtures\Discriminator\Moped - - properties: - km: - type: integer \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/DiscriminatorGroup.Vehicle.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/DiscriminatorGroup.Vehicle.yml deleted file mode 100644 index 6d1ad8d..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/DiscriminatorGroup.Vehicle.yml +++ /dev/null @@ -1,10 +0,0 @@ -JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Vehicle: - discriminator: - field_name: type - map: - car: JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Car - groups: [foo] - - properties: - km: - type: integer diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/ExcludePublicAccessor.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/ExcludePublicAccessor.yml deleted file mode 100644 index acf04f3..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/ExcludePublicAccessor.yml +++ /dev/null @@ -1,6 +0,0 @@ -JMS\Serializer\Tests\Fixtures\ExcludePublicAccessor: - access_type: public_method - read_only: false - properties: - iShallNotBeAccessed: - exclude: true diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/Node.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/Node.yml deleted file mode 100644 index c4651fd..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/Node.yml +++ /dev/null @@ -1,4 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Node: - properties: - children: - max_depth: 2 diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithAbsentXmlListNode.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithAbsentXmlListNode.yml deleted file mode 100644 index fd4d8e6..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithAbsentXmlListNode.yml +++ /dev/null @@ -1,14 +0,0 @@ -JMS\Serializer\Tests\Fixtures\ObjectWithAbsentXmlListNode: - properties: - absent: - type: array - xml_list: - skip_when_empty: true - present: - type: array - xml_list: - skip_when_empty: false - skipDefault: - type: array - xml_list: - inline: false diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithExpressionVirtualPropertiesAndExcludeAll.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithExpressionVirtualPropertiesAndExcludeAll.yml deleted file mode 100644 index 4b7efd0..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithExpressionVirtualPropertiesAndExcludeAll.yml +++ /dev/null @@ -1,5 +0,0 @@ -JMS\Serializer\Tests\Fixtures\ObjectWithExpressionVirtualPropertiesAndExcludeAll: - exclusion_policy: all - virtual_properties: - virtualValue: - exp: object.getVirtualValue() diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithHandlerCallbacks.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithHandlerCallbacks.yml deleted file mode 100644 index 6c5ad76..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithHandlerCallbacks.yml +++ /dev/null @@ -1,8 +0,0 @@ -JMS\Serializer\Tests\Fixtures\ObjectWithHandlerCallbacks: - properties: - name: - type: string - handler_callbacks: - serialization: - xml: toXml - json: toJson diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithVirtualProperties.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithVirtualProperties.yml deleted file mode 100644 index 9f6a04d..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithVirtualProperties.yml +++ /dev/null @@ -1,10 +0,0 @@ -JMS\Serializer\Tests\Fixtures\ObjectWithVirtualProperties: - properties: - existField: - type: string - virtual_properties: - getVirtualValue: ~ - getVirtualSerializedValue: - serialized_name: test - getTypedVirtualProperty: - type: integer diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithVirtualPropertiesAndExcludeAll.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithVirtualPropertiesAndExcludeAll.yml deleted file mode 100644 index 7351bf7..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithVirtualPropertiesAndExcludeAll.yml +++ /dev/null @@ -1,4 +0,0 @@ -JMS\Serializer\Tests\Fixtures\ObjectWithVirtualPropertiesAndExcludeAll: - exclusion_policy: all - virtual_properties: - getVirtualValue: ~ \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithXmlKeyValuePairs.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithXmlKeyValuePairs.yml deleted file mode 100644 index 2195b67..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithXmlKeyValuePairs.yml +++ /dev/null @@ -1,5 +0,0 @@ -JMS\Serializer\Tests\Fixtures\ObjectWithXmlKeyValuePairs: - properties: - array: - type: array - xml_key_value_pairs: true diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithXmlNamespaces.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithXmlNamespaces.yml deleted file mode 100644 index 3e340d1..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/ObjectWithXmlNamespaces.yml +++ /dev/null @@ -1,29 +0,0 @@ -JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespaces: - xml_root_name: test-object - xml_root_namespace: http://example.com/namespace - xml_namespaces: - "": http://example.com/namespace - gd: http://schemas.google.com/g/2005 - atom: http://www.w3.org/2005/Atom - properties: - title: - type: string - xml_element: - namespace: http://purl.org/dc/elements/1.1/ - createdAt: - type: DateTime - xml_attribute: true - etag: - type: string - xml_attribute: true - xml_element: - namespace: http://schemas.google.com/g/2005 - author: - type: string - xml_element: - namespace: http://www.w3.org/2005/Atom - language: - type: string - xml_attribute: true - xml_element: - namespace: http://purl.org/dc/elements/1.1/ diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/ParentSkipWithEmptyChild.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/ParentSkipWithEmptyChild.yml deleted file mode 100644 index daf228b..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/ParentSkipWithEmptyChild.yml +++ /dev/null @@ -1,8 +0,0 @@ -JMS\Serializer\Tests\Fixtures\ParentSkipWithEmptyChild: - properties: - c: - type: string - d: - type: string - child: - skip_when_empty: true diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/Person.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/Person.yml deleted file mode 100644 index c98e865..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/Person.yml +++ /dev/null @@ -1,11 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Person: - xml_root_name: child - properties: - name: - type: string - xml_value: true - xml_element: - cdata: false - age: - type: integer - xml_attribute: true diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/PersonSecret.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/PersonSecret.yml deleted file mode 100644 index 88a6f55..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/PersonSecret.yml +++ /dev/null @@ -1,10 +0,0 @@ -JMS\Serializer\Tests\Fixtures\PersonSecret: - properties: - name: - type: string - gender: - type: string - exclude_if: "show_data('gender')" - age: - type: string - expose_if: "show_data('age')" diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/Price.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/Price.yml deleted file mode 100644 index 678d53e..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/Price.yml +++ /dev/null @@ -1,5 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Price: - properties: - price: - type: float - xml_value: true diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/SimpleClassObject.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/SimpleClassObject.yml deleted file mode 100644 index 6097134..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/SimpleClassObject.yml +++ /dev/null @@ -1,19 +0,0 @@ -JMS\Serializer\Tests\Fixtures\SimpleClassObject: - xml_namespaces: - foo: http://foo.example.org - old_foo: http://old.foo.example.org - new_foo: http://new.foo.example.org - properties: - foo: - type: string - xml_attribute: true - xml_element: - namespace: http://old.foo.example.org - bar: - type: string - xml_element: - namespace: http://foo.example.org - moo: - type: string - xml_element: - namespace: http://new.foo.example.org \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/SimpleSubClassObject.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/SimpleSubClassObject.yml deleted file mode 100644 index d99c7b1..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/SimpleSubClassObject.yml +++ /dev/null @@ -1,17 +0,0 @@ -JMS\Serializer\Tests\Fixtures\SimpleSubClassObject: - xml_namespaces: - foo: http://better.foo.example.org - old_foo: http://foo.example.org - properties: - moo: - type: string - xml_element: - namespace: http://better.foo.example.org - baz: - type: string - xml_element: - namespace: http://foo.example.org - qux: - type: string - xml_element: - namespace: http://new.foo.example.org \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/accessor/BlogPost.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/accessor/BlogPost.yml deleted file mode 100644 index 9b57d39..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/accessor/BlogPost.yml +++ /dev/null @@ -1,7 +0,0 @@ -JMS\Serializer\Tests\Fixtures\BlogPost: - xml_root_name: blog-post - properties: - title: - accessor: - getter: getOtherTitle - setter: setOtherTitle diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/accessor_inferred/Person.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/accessor_inferred/Person.yml deleted file mode 100644 index 933e03f..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/accessor_inferred/Person.yml +++ /dev/null @@ -1,6 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Person: - custom_accessor_order: ["age", "name"] - - properties: - age: ~ - name: ~ diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/case/BlogPost.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/case/BlogPost.yml deleted file mode 100644 index 4cc2f8a..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/case/BlogPost.yml +++ /dev/null @@ -1,7 +0,0 @@ -JMS\Serializer\Tests\Fixtures\BlogPost: - xml_root_name: blog-post - exclusion_policy: all - properties: - title: - type: string - expose: TRUE diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/exclude_all/BlogPost.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/exclude_all/BlogPost.yml deleted file mode 100644 index 419cb7e..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/exclude_all/BlogPost.yml +++ /dev/null @@ -1,7 +0,0 @@ -JMS\Serializer\Tests\Fixtures\BlogPost: - xml_root_name: blog-post - exclusion_policy: ALL - properties: - title: - type: string - expose: true diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/exclude_none/BlogPost.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/exclude_none/BlogPost.yml deleted file mode 100644 index 7067cf8..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/exclude_none/BlogPost.yml +++ /dev/null @@ -1,7 +0,0 @@ -JMS\Serializer\Tests\Fixtures\BlogPost: - xml_root_name: blog-post - exclusion_policy: NONE - properties: - title: - type: string - exclude: true diff --git a/vendor/jms/serializer/tests/Metadata/Driver/yml/short_expose/Person.yml b/vendor/jms/serializer/tests/Metadata/Driver/yml/short_expose/Person.yml deleted file mode 100644 index 4ab55be..0000000 --- a/vendor/jms/serializer/tests/Metadata/Driver/yml/short_expose/Person.yml +++ /dev/null @@ -1,4 +0,0 @@ -JMS\Serializer\Tests\Fixtures\Person: - exclusion_policy: ALL - properties: - name: ~ diff --git a/vendor/jms/serializer/tests/Serializer/ArrayTest.php b/vendor/jms/serializer/tests/Serializer/ArrayTest.php deleted file mode 100644 index 9fb3bc8..0000000 --- a/vendor/jms/serializer/tests/Serializer/ArrayTest.php +++ /dev/null @@ -1,123 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use Doctrine\Common\Annotations\AnnotationReader; -use JMS\Serializer\Construction\UnserializeObjectConstructor; -use JMS\Serializer\Handler\HandlerRegistry; -use JMS\Serializer\JsonDeserializationVisitor; -use JMS\Serializer\JsonSerializationVisitor; -use JMS\Serializer\Metadata\Driver\AnnotationDriver; -use JMS\Serializer\Naming\CamelCaseNamingStrategy; -use JMS\Serializer\Naming\SerializedNameAnnotationStrategy; -use JMS\Serializer\Serializer; -use JMS\Serializer\Tests\Fixtures\Author; -use JMS\Serializer\Tests\Fixtures\AuthorList; -use JMS\Serializer\Tests\Fixtures\Order; -use JMS\Serializer\Tests\Fixtures\Price; -use Metadata\MetadataFactory; -use PhpCollection\Map; - -class ArrayTest extends \PHPUnit_Framework_TestCase -{ - protected $serializer; - - public function setUp() - { - $namingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy()); - - $this->serializer = new Serializer( - new MetadataFactory(new AnnotationDriver(new AnnotationReader())), - new HandlerRegistry(), - new UnserializeObjectConstructor(), - new Map(array('json' => new JsonSerializationVisitor($namingStrategy))), - new Map(array('json' => new JsonDeserializationVisitor($namingStrategy))) - ); - } - - public function testToArray() - { - $order = new Order(new Price(5)); - - $expected = array( - 'cost' => array( - 'price' => 5 - ) - ); - - $result = $this->serializer->toArray($order); - - $this->assertEquals($expected, $result); - } - - /** - * @dataProvider scalarValues - */ - public function testToArrayWithScalar($input) - { - $this->setExpectedException('JMS\Serializer\Exception\RuntimeException', sprintf( - 'The input data of type "%s" did not convert to an array, but got a result of type "%s".', - gettype($input), - gettype($input) - )); - $result = $this->serializer->toArray($input); - - $this->assertEquals(array($input), $result); - } - - public function scalarValues() - { - return array( - array(42), - array(3.14159), - array('helloworld'), - array(true), - ); - } - - public function testFromArray() - { - $data = array( - 'cost' => array( - 'price' => 2.5 - ) - ); - - $expected = new Order(new Price(2.5)); - $result = $this->serializer->fromArray($data, 'JMS\Serializer\Tests\Fixtures\Order'); - - $this->assertEquals($expected, $result); - } - - public function testToArrayReturnsArrayObjectAsArray() - { - $result = $this->serializer->toArray(new Author(null)); - - $this->assertSame(array(), $result); - } - - public function testToArrayConversNestedArrayObjects() - { - $list = new AuthorList(); - $list->add(new Author(null)); - - $result = $this->serializer->toArray($list); - $this->assertSame(array('authors' => array(array())), $result); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/BaseSerializationTest.php b/vendor/jms/serializer/tests/Serializer/BaseSerializationTest.php deleted file mode 100644 index 04badf5..0000000 --- a/vendor/jms/serializer/tests/Serializer/BaseSerializationTest.php +++ /dev/null @@ -1,1456 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use Doctrine\Common\Annotations\AnnotationReader; -use Doctrine\Common\Collections\ArrayCollection; -use JMS\Serializer\Accessor\DefaultAccessorStrategy; -use JMS\Serializer\Accessor\ExpressionAccessorStrategy; -use JMS\Serializer\Construction\UnserializeObjectConstructor; -use JMS\Serializer\Context; -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\EventDispatcher\EventDispatcher; -use JMS\Serializer\EventDispatcher\Subscriber\DoctrineProxySubscriber; -use JMS\Serializer\Exclusion\DepthExclusionStrategy; -use JMS\Serializer\Exclusion\GroupsExclusionStrategy; -use JMS\Serializer\Expression\ExpressionEvaluator; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Handler\ArrayCollectionHandler; -use JMS\Serializer\Handler\ConstraintViolationHandler; -use JMS\Serializer\Handler\DateHandler; -use JMS\Serializer\Handler\FormErrorHandler; -use JMS\Serializer\Handler\HandlerRegistry; -use JMS\Serializer\Handler\PhpCollectionHandler; -use JMS\Serializer\Handler\StdClassHandler; -use JMS\Serializer\JsonDeserializationVisitor; -use JMS\Serializer\JsonSerializationVisitor; -use JMS\Serializer\Metadata\Driver\AnnotationDriver; -use JMS\Serializer\Naming\CamelCaseNamingStrategy; -use JMS\Serializer\Naming\SerializedNameAnnotationStrategy; -use JMS\Serializer\SerializationContext; -use JMS\Serializer\Serializer; -use JMS\Serializer\Tests\Fixtures\AccessorOrderChild; -use JMS\Serializer\Tests\Fixtures\AccessorOrderMethod; -use JMS\Serializer\Tests\Fixtures\AccessorOrderParent; -use JMS\Serializer\Tests\Fixtures\Article; -use JMS\Serializer\Tests\Fixtures\Author; -use JMS\Serializer\Tests\Fixtures\AuthorExpressionAccess; -use JMS\Serializer\Tests\Fixtures\AuthorList; -use JMS\Serializer\Tests\Fixtures\AuthorReadOnly; -use JMS\Serializer\Tests\Fixtures\AuthorReadOnlyPerClass; -use JMS\Serializer\Tests\Fixtures\BlogPost; -use JMS\Serializer\Tests\Fixtures\CircularReferenceParent; -use JMS\Serializer\Tests\Fixtures\Comment; -use JMS\Serializer\Tests\Fixtures\CurrencyAwareOrder; -use JMS\Serializer\Tests\Fixtures\CurrencyAwarePrice; -use JMS\Serializer\Tests\Fixtures\CustomDeserializationObject; -use JMS\Serializer\Tests\Fixtures\DateTimeArraysObject; -use JMS\Serializer\Tests\Fixtures\Discriminator\Car; -use JMS\Serializer\Tests\Fixtures\Discriminator\Moped; -use JMS\Serializer\Tests\Fixtures\Garage; -use JMS\Serializer\Tests\Fixtures\GetSetObject; -use JMS\Serializer\Tests\Fixtures\GroupsObject; -use JMS\Serializer\Tests\Fixtures\GroupsUser; -use JMS\Serializer\Tests\Fixtures\IndexedCommentsBlogPost; -use JMS\Serializer\Tests\Fixtures\InitializedBlogPostConstructor; -use JMS\Serializer\Tests\Fixtures\InitializedObjectConstructor; -use JMS\Serializer\Tests\Fixtures\InlineChild; -use JMS\Serializer\Tests\Fixtures\InlineChildEmpty; -use JMS\Serializer\Tests\Fixtures\InlineChildWithGroups; -use JMS\Serializer\Tests\Fixtures\InlineParent; -use JMS\Serializer\Tests\Fixtures\Input; -use JMS\Serializer\Tests\Fixtures\InvalidGroupsObject; -use JMS\Serializer\Tests\Fixtures\Log; -use JMS\Serializer\Tests\Fixtures\MaxDepth\Gh236Foo; -use JMS\Serializer\Tests\Fixtures\NamedDateTimeArraysObject; -use JMS\Serializer\Tests\Fixtures\NamedDateTimeImmutableArraysObject; -use JMS\Serializer\Tests\Fixtures\Node; -use JMS\Serializer\Tests\Fixtures\ObjectWithEmptyHash; -use JMS\Serializer\Tests\Fixtures\ObjectWithEmptyNullableAndEmptyArrays; -use JMS\Serializer\Tests\Fixtures\ObjectWithIntListAndIntMap; -use JMS\Serializer\Tests\Fixtures\ObjectWithLifecycleCallbacks; -use JMS\Serializer\Tests\Fixtures\ObjectWithNullProperty; -use JMS\Serializer\Tests\Fixtures\ObjectWithVersionedVirtualProperties; -use JMS\Serializer\Tests\Fixtures\ObjectWithVirtualProperties; -use JMS\Serializer\Tests\Fixtures\Order; -use JMS\Serializer\Tests\Fixtures\ParentDoNotSkipWithEmptyChild; -use JMS\Serializer\Tests\Fixtures\ParentSkipWithEmptyChild; -use JMS\Serializer\Tests\Fixtures\PersonSecret; -use JMS\Serializer\Tests\Fixtures\PersonSecretMore; -use JMS\Serializer\Tests\Fixtures\PersonSecretMoreVirtual; -use JMS\Serializer\Tests\Fixtures\PersonSecretVirtual; -use JMS\Serializer\Tests\Fixtures\Price; -use JMS\Serializer\Tests\Fixtures\Publisher; -use JMS\Serializer\Tests\Fixtures\SimpleObject; -use JMS\Serializer\Tests\Fixtures\SimpleObjectProxy; -use JMS\Serializer\Tests\Fixtures\Tag; -use JMS\Serializer\Tests\Fixtures\Timestamp; -use JMS\Serializer\Tests\Fixtures\Tree; -use JMS\Serializer\Tests\Fixtures\VehicleInterfaceGarage; -use JMS\Serializer\VisitorInterface; -use JMS\Serializer\XmlDeserializationVisitor; -use JMS\Serializer\XmlSerializationVisitor; -use JMS\Serializer\YamlSerializationVisitor; -use Metadata\MetadataFactory; -use PhpCollection\Map; -use PhpCollection\Sequence; -use Symfony\Component\ExpressionLanguage\ExpressionFunction; -use Symfony\Component\ExpressionLanguage\ExpressionLanguage; -use Symfony\Component\Form\Form; -use Symfony\Component\Form\FormError; -use Symfony\Component\Form\FormFactoryBuilder; -use Symfony\Component\Translation\IdentityTranslator; -use Symfony\Component\Translation\MessageSelector; -use Symfony\Component\Validator\ConstraintViolation; -use Symfony\Component\Validator\ConstraintViolationList; - -abstract class BaseSerializationTest extends \PHPUnit_Framework_TestCase -{ - protected $factory; - - /** - * @var EventDispatcher - */ - protected $dispatcher; - - /** @var Serializer */ - protected $serializer; - protected $handlerRegistry; - protected $serializationVisitors; - protected $deserializationVisitors; - protected $objectConstructor; - - public function testSerializeNullArray() - { - $arr = array('foo' => 'bar', 'baz' => null, null); - - $this->assertEquals( - $this->getContent('nullable'), - $this->serializer->serialize($arr, $this->getFormat(), SerializationContext::create()->setSerializeNull(true)) - ); - } - - public function testSerializeNullArrayExcludingNulls() - { - $arr = array('foo' => 'bar', 'baz' => null, null); - - $this->assertEquals( - $this->getContent('nullable_skip'), - $this->serializer->serialize($arr, $this->getFormat(), SerializationContext::create()->setSerializeNull(false)) - ); - } - - public function testSerializeNullObject() - { - $obj = new ObjectWithNullProperty('foo', 'bar'); - - $this->assertEquals( - $this->getContent('simple_object_nullable'), - $this->serializer->serialize($obj, $this->getFormat(), SerializationContext::create()->setSerializeNull(true)) - ); - } - - public function testDeserializeNullObject() - { - if (!$this->hasDeserializer()) { - $this->markTestSkipped(sprintf('No deserializer available for format `%s`', $this->getFormat())); - } - - $obj = new ObjectWithNullProperty('foo', 'bar'); - - /** @var ObjectWithNullProperty $dObj */ - $dObj = $this->serializer->deserialize( - $this->getContent('simple_object_nullable'), - ObjectWithNullProperty::class, - $this->getFormat() - ); - - $this->assertEquals($obj, $dObj); - $this->assertNull($dObj->getNullProperty()); - } - - /** - * @dataProvider getTypes - */ - public function testNull($type) - { - $this->assertEquals($this->getContent('null'), $this->serialize(null), $type); - - if ($this->hasDeserializer()) { - $this->assertEquals(null, $this->deserialize($this->getContent('null'), $type)); - } - } - - public function getTypes() - { - return array( - array('NULL'), - array('integer'), - array('double'), - array('float'), - array('string'), - array('DateTime'), - ); - } - - public function testString() - { - $this->assertEquals($this->getContent('string'), $this->serialize('foo')); - - if ($this->hasDeserializer()) { - $this->assertEquals('foo', $this->deserialize($this->getContent('string'), 'string')); - } - } - - /** - * @expectedException \JMS\Serializer\Exception\ExpressionLanguageRequiredException - * @expectedExceptionMessage To use conditional exclude/expose in JMS\Serializer\Tests\Fixtures\PersonSecret you must configure the expression language. - */ - public function testExpressionExclusionNotConfigured() - { - $person = new PersonSecret(); - $person->gender = 'f'; - $person->name = 'mike'; - $this->serialize($person); - } - - - public function testExpressionExclusionConfiguredWithDisjunctStrategy() - { - $person = new PersonSecret(); - $person->gender = 'f'; - $person->name = 'mike'; - - $language = new ExpressionLanguage(); - $language->addFunction(new ExpressionFunction('show_data', function () { - return "true"; - }, function () { - return true; - })); - - $serializer = new Serializer($this->factory, $this->handlerRegistry, $this->objectConstructor, $this->serializationVisitors, $this->deserializationVisitors, $this->dispatcher, null, new ExpressionEvaluator($language)); - - $this->assertEquals($this->getContent('person_secret_hide'), $serializer->serialize($person, $this->getFormat())); - } - - public function expressionFunctionProvider() - { - $person = new PersonSecret(); - $person->gender = 'f'; - $person->name = 'mike'; - - $personMoreSecret = new PersonSecretMore(); - $personMoreSecret->gender = 'f'; - $personMoreSecret->name = 'mike'; - - $personVirtual = new PersonSecretVirtual(); - $personVirtual->gender = 'f'; - $personVirtual->name = 'mike'; - - $personMoreSecretVirtual = new PersonSecretMoreVirtual(); - $personMoreSecretVirtual->gender = 'f'; - $personMoreSecretVirtual->name = 'mike'; - - $showGender = new ExpressionFunction('show_data', function () { - return "true"; - }, function () { - return true; - }); - - $hideGender = new ExpressionFunction('show_data', function () { - return "false"; - }, function () { - return false; - }); - - return [ - [ - $person, - $showGender, - 'person_secret_hide' - ], - [ - $person, - $hideGender, - 'person_secret_show' - ], - [ - $personMoreSecret, - $showGender, - 'person_secret_show' - ], - [ - $personMoreSecret, - $hideGender, - 'person_secret_hide' - ], - [ - $personVirtual, - $showGender, - 'person_secret_hide' - ], - [ - $personVirtual, - $hideGender, - 'person_secret_show' - ], - [ - $personMoreSecretVirtual, - $showGender, - 'person_secret_show' - ], - [ - $personMoreSecretVirtual, - $hideGender, - 'person_secret_hide' - ] - ]; - } - - /** - * @dataProvider expressionFunctionProvider - * @param PersonSecret|PersonSecretMore $person - * @param ExpressionFunction $function - * @param $json - */ - public function testExpressionExclusion($person, ExpressionFunction $function, $json) - { - $language = new ExpressionLanguage(); - $language->addFunction($function); - - $serializer = new Serializer($this->factory, $this->handlerRegistry, $this->objectConstructor, $this->serializationVisitors, $this->deserializationVisitors, $this->dispatcher, null, new ExpressionEvaluator($language)); - $this->assertEquals($this->getContent($json), $serializer->serialize($person, $this->getFormat())); - } - - /** - * @dataProvider getBooleans - */ - public function testBooleans($strBoolean, $boolean) - { - $this->assertEquals($this->getContent('boolean_' . $strBoolean), $this->serialize($boolean)); - - if ($this->hasDeserializer()) { - $this->assertSame($boolean, $this->deserialize($this->getContent('boolean_' . $strBoolean), 'boolean')); - } - } - - public function getBooleans() - { - return array(array('true', true), array('false', false)); - } - - /** - * @dataProvider getNumerics - */ - public function testNumerics($key, $value, $type) - { - $this->assertEquals($this->getContent($key), $this->serialize($value)); - - if ($this->hasDeserializer()) { - $this->assertEquals($value, $this->deserialize($this->getContent($key), $type)); - } - } - - public function getNumerics() - { - return array( - array('integer', 1, 'integer'), - array('float', 4.533, 'double'), - array('float', 4.533, 'float'), - array('float_trailing_zero', 1.0, 'double'), - array('float_trailing_zero', 1.0, 'float'), - ); - } - - public function testSimpleObject() - { - $this->assertEquals($this->getContent('simple_object'), $this->serialize($obj = new SimpleObject('foo', 'bar'))); - - if ($this->hasDeserializer()) { - $this->assertEquals($obj, $this->deserialize($this->getContent('simple_object'), get_class($obj))); - } - } - - public function testArrayStrings() - { - $data = array('foo', 'bar'); - $this->assertEquals($this->getContent('array_strings'), $this->serialize($data)); - - if ($this->hasDeserializer()) { - $this->assertEquals($data, $this->deserialize($this->getContent('array_strings'), 'array')); - } - } - - public function testArrayBooleans() - { - $data = array(true, false); - $this->assertEquals($this->getContent('array_booleans'), $this->serialize($data)); - - if ($this->hasDeserializer()) { - $this->assertEquals($data, $this->deserialize($this->getContent('array_booleans'), 'array')); - } - } - - public function testArrayIntegers() - { - $data = array(1, 3, 4); - $this->assertEquals($this->getContent('array_integers'), $this->serialize($data)); - - if ($this->hasDeserializer()) { - $this->assertEquals($data, $this->deserialize($this->getContent('array_integers'), 'array')); - } - } - - public function testArrayEmpty() - { - if ('xml' === $this->getFormat()) { - $this->markTestSkipped('XML can\'t be tested for empty array'); - } - - $data = array('array' => []); - $this->assertEquals($this->getContent('array_empty'), $this->serialize($data)); - - if ($this->hasDeserializer()) { - $this->assertEquals($data, $this->deserialize($this->getContent('array_empty'), 'array')); - } - } - - public function testArrayFloats() - { - $data = array(1.34, 3.0, 6.42); - $this->assertEquals($this->getContent('array_floats'), $this->serialize($data)); - - if ($this->hasDeserializer()) { - $this->assertEquals($data, $this->deserialize($this->getContent('array_floats'), 'array')); - } - } - - public function testArrayObjects() - { - $data = array(new SimpleObject('foo', 'bar'), new SimpleObject('baz', 'boo')); - $this->assertEquals($this->getContent('array_objects'), $this->serialize($data)); - - if ($this->hasDeserializer()) { - $this->assertEquals($data, $this->deserialize($this->getContent('array_objects'), 'array')); - } - } - - public function testArrayListAndMapDifference() - { - $arrayData = array(0 => 1, 2 => 2, 3 => 3); // Misses key 1 - $data = new ObjectWithIntListAndIntMap($arrayData, $arrayData); - - $this->assertEquals($this->getContent('array_list_and_map_difference'), $this->serialize($data)); - } - - public function testDateTimeArrays() - { - $data = array( - new \DateTime('2047-01-01 12:47:47', new \DateTimeZone('UTC')), - new \DateTime('2016-12-05 00:00:00', new \DateTimeZone('UTC')) - ); - - $object = new DateTimeArraysObject($data, $data); - $serializedObject = $this->serialize($object); - - $this->assertEquals($this->getContent('array_datetimes_object'), $serializedObject); - - if ($this->hasDeserializer()) { - /** @var DateTimeArraysObject $deserializedObject */ - $deserializedObject = $this->deserialize($this->getContent('array_datetimes_object'), 'Jms\Serializer\Tests\Fixtures\DateTimeArraysObject'); - - /** deserialized object has a default timezone set depending on user's timezone settings. That's why we manually set the UTC timezone on the DateTime objects. */ - foreach ($deserializedObject->getArrayWithDefaultDateTime() as $dateTime) { - $dateTime->setTimezone(new \DateTimeZone('UTC')); - } - - foreach ($deserializedObject->getArrayWithFormattedDateTime() as $dateTime) { - $dateTime->setTimezone(new \DateTimeZone('UTC')); - } - - $this->assertEquals($object, $deserializedObject); - } - } - - public function testNamedDateTimeArrays() - { - $data = array( - new \DateTime('2047-01-01 12:47:47', new \DateTimeZone('UTC')), - new \DateTime('2016-12-05 00:00:00', new \DateTimeZone('UTC')) - ); - - $object = new NamedDateTimeArraysObject(array('testdate1' => $data[0], 'testdate2' => $data[1])); - $serializedObject = $this->serialize($object); - - $this->assertEquals($this->getContent('array_named_datetimes_object'), $serializedObject); - - if ($this->hasDeserializer()) { - - // skip XML deserialization - if ($this->getFormat() === 'xml') { - return; - } - - /** @var NamedDateTimeArraysObject $deserializedObject */ - $deserializedObject = $this->deserialize($this->getContent('array_named_datetimes_object'), 'Jms\Serializer\Tests\Fixtures\NamedDateTimeArraysObject'); - - /** deserialized object has a default timezone set depending on user's timezone settings. That's why we manually set the UTC timezone on the DateTime objects. */ - foreach ($deserializedObject->getNamedArrayWithFormattedDate() as $dateTime) { - $dateTime->setTimezone(new \DateTimeZone('UTC')); - } - - $this->assertEquals($object, $deserializedObject); - } - } - - /** - * @group datetime - */ - public function testNamedDateTimeImmutableArrays() - { - $data = array( - new \DateTimeImmutable('2047-01-01 12:47:47', new \DateTimeZone('UTC')), - new \DateTimeImmutable('2016-12-05 00:00:00', new \DateTimeZone('UTC')) - ); - - $object = new NamedDateTimeImmutableArraysObject(array('testdate1' => $data[0], 'testdate2' => $data[1])); - $serializedObject = $this->serialize($object); - - $this->assertEquals($this->getContent('array_named_datetimeimmutables_object'), $serializedObject); - - if ($this->hasDeserializer()) { - - if ('xml' == $this->getFormat()) { - $this->markTestSkipped("XML deserialization does not support key-val pairs mode"); - } - /** @var NamedDateTimeArraysObject $deserializedObject */ - $deserializedObject = $this->deserialize($this->getContent('array_named_datetimeimmutables_object'), 'Jms\Serializer\Tests\Fixtures\NamedDateTimeImmutableArraysObject'); - - /** deserialized object has a default timezone set depending on user's timezone settings. That's why we manually set the UTC timezone on the DateTime objects. */ - foreach ($deserializedObject->getNamedArrayWithFormattedDate() as $dateTime) { - $dateTime->setTimezone(new \DateTimeZone('UTC')); - } - - $this->assertEquals($object, $deserializedObject); - } - } - - - public function testArrayMixed() - { - $this->assertEquals($this->getContent('array_mixed'), $this->serialize(array('foo', 1, true, new SimpleObject('foo', 'bar'), array(1, 3, true)))); - } - - /** - * @dataProvider getDateTime - * @group datetime - */ - public function testDateTime($key, $value, $type) - { - $this->assertEquals($this->getContent($key), $this->serialize($value)); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent($key), $type); - - $this->assertTrue(is_object($deserialized)); - $this->assertEquals(get_class($value), get_class($deserialized)); - $this->assertEquals($value->getTimestamp(), $deserialized->getTimestamp()); - } - } - - public function getDateTime() - { - return array( - array('date_time', new \DateTime('2011-08-30 00:00', new \DateTimeZone('UTC')), 'DateTime'), - ); - } - - /** - * @dataProvider getDateTimeImmutable - * @group datetime - */ - public function testDateTimeImmutable($key, $value, $type) - { - $this->assertEquals($this->getContent($key), $this->serialize($value)); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent($key), $type); - - $this->assertTrue(is_object($deserialized)); - $this->assertEquals(get_class($value), get_class($deserialized)); - $this->assertEquals($value->getTimestamp(), $deserialized->getTimestamp()); - } - } - - public function getDateTimeImmutable() - { - return array( - array('date_time_immutable', new \DateTimeImmutable('2011-08-30 00:00', new \DateTimeZone('UTC')), 'DateTimeImmutable'), - ); - } - - public function testTimestamp() - { - $value = new Timestamp(new \DateTime('2016-02-11 00:00:00', new \DateTimeZone('UTC'))); - $this->assertEquals($this->getContent('timestamp'), $this->serialize($value)); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('timestamp'), Timestamp::class); - $this->assertEquals($value, $deserialized); - $this->assertEquals($value->getTimestamp()->getTimestamp(), $deserialized->getTimestamp()->getTimestamp()); - - $deserialized = $this->deserialize($this->getContent('timestamp_prev'), Timestamp::class); - $this->assertEquals($value, $deserialized); - $this->assertEquals($value->getTimestamp()->getTimestamp(), $deserialized->getTimestamp()->getTimestamp()); - } - } - - public function testDateInterval() - { - $duration = new \DateInterval('PT45M'); - - $this->assertEquals($this->getContent('date_interval'), $this->serializer->serialize($duration, $this->getFormat())); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('date_interval'), \DateInterval::class); - $this->assertEquals($duration, $deserialized); - $this->assertEquals($duration->i, $deserialized->i); - } - } - - public function testBlogPost() - { - $post = new BlogPost('This is a nice title.', $author = new Author('Foo Bar'), new \DateTime('2011-07-30 00:00', new \DateTimeZone('UTC')), new Publisher('Bar Foo')); - $post->addComment($comment = new Comment($author, 'foo')); - - $post->addTag($tag1 = New Tag("tag1")); - $post->addTag($tag2 = New Tag("tag2")); - - $this->assertEquals($this->getContent('blog_post'), $this->serialize($post)); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('blog_post'), get_class($post)); - $this->assertEquals('2011-07-30T00:00:00+0000', $this->getField($deserialized, 'createdAt')->format(\DateTime::ISO8601)); - $this->assertAttributeEquals('This is a nice title.', 'title', $deserialized); - $this->assertAttributeSame(false, 'published', $deserialized); - $this->assertAttributeSame(false, 'reviewed', $deserialized); - $this->assertAttributeSame('1edf9bf60a32d89afbb85b2be849e3ceed5f5b10', 'etag', $deserialized); - $this->assertAttributeEquals(new ArrayCollection(array($comment)), 'comments', $deserialized); - $this->assertAttributeEquals(new Sequence(array($comment)), 'comments2', $deserialized); - $this->assertAttributeEquals($author, 'author', $deserialized); - $this->assertAttributeEquals(array($tag1, $tag2), 'tag', $deserialized); - } - } - - public function testDeserializingNull() - { - $objectConstructor = new InitializedBlogPostConstructor(); - $this->serializer = new Serializer($this->factory, $this->handlerRegistry, $objectConstructor, $this->serializationVisitors, $this->deserializationVisitors, $this->dispatcher); - - $post = new BlogPost('This is a nice title.', $author = new Author('Foo Bar'), new \DateTime('2011-07-30 00:00', new \DateTimeZone('UTC')), new Publisher('Bar Foo')); - - $this->setField($post, 'author', null); - $this->setField($post, 'publisher', null); - - $this->assertEquals($this->getContent('blog_post_unauthored'), $this->serialize($post, SerializationContext::create()->setSerializeNull(true))); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('blog_post_unauthored'), get_class($post), DeserializationContext::create()->setSerializeNull(true)); - - $this->assertEquals('2011-07-30T00:00:00+0000', $this->getField($deserialized, 'createdAt')->format(\DateTime::ISO8601)); - $this->assertAttributeEquals('This is a nice title.', 'title', $deserialized); - $this->assertAttributeSame(false, 'published', $deserialized); - $this->assertAttributeSame(false, 'reviewed', $deserialized); - $this->assertAttributeEquals(new ArrayCollection(), 'comments', $deserialized); - $this->assertEquals(null, $this->getField($deserialized, 'author')); - } - } - - public function testExpressionAuthor() - { - $namingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy()); - - $evaluator = new ExpressionEvaluator(new ExpressionLanguage()); - $accessor = new ExpressionAccessorStrategy($evaluator, new DefaultAccessorStrategy()); - - $this->serializationVisitors = new Map(array( - 'json' => new JsonSerializationVisitor($namingStrategy, $accessor), - 'xml' => new XmlSerializationVisitor($namingStrategy, $accessor), - 'yml' => new YamlSerializationVisitor($namingStrategy, $accessor), - )); - - $serializer = new Serializer($this->factory, $this->handlerRegistry, $this->objectConstructor, $this->serializationVisitors, $this->deserializationVisitors, $this->dispatcher, null, $evaluator); - - $author = new AuthorExpressionAccess(123, "Ruud", "Kamphuis"); - $this->assertEquals($this->getContent('author_expression'), $serializer->serialize($author, $this->getFormat())); - } - - /** - * @expectedException \JMS\Serializer\Exception\ExpressionLanguageRequiredException - * @expectedExceptionMessage The property firstName on JMS\Serializer\Tests\Fixtures\AuthorExpressionAccess requires the expression accessor strategy to be enabled. - */ - public function testExpressionAccessorStrategNotEnabled() - { - $author = new AuthorExpressionAccess(123, "Ruud", "Kamphuis"); - $this->assertEquals($this->getContent('author_expression'), $this->serialize($author)); - } - - public function testReadOnly() - { - $author = new AuthorReadOnly(123, 'Ruud Kamphuis'); - $this->assertEquals($this->getContent('readonly'), $this->serialize($author)); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('readonly'), get_class($author)); - $this->assertNull($this->getField($deserialized, 'id')); - $this->assertEquals('Ruud Kamphuis', $this->getField($deserialized, 'name')); - } - } - - public function testReadOnlyClass() - { - $author = new AuthorReadOnlyPerClass(123, 'Ruud Kamphuis'); - $this->assertEquals($this->getContent('readonly'), $this->serialize($author)); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('readonly'), get_class($author)); - $this->assertNull($this->getField($deserialized, 'id')); - $this->assertEquals('Ruud Kamphuis', $this->getField($deserialized, 'name')); - } - } - - public function testPrice() - { - $price = new Price(3); - $this->assertEquals($this->getContent('price'), $this->serialize($price)); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('price'), get_class($price)); - $this->assertEquals(3, $this->getField($deserialized, 'price')); - } - } - - public function testOrder() - { - $order = new Order(new Price(12.34)); - $this->assertEquals($this->getContent('order'), $this->serialize($order)); - - if ($this->hasDeserializer()) { - $this->assertEquals($order, $this->deserialize($this->getContent('order'), get_class($order))); - } - } - - public function testCurrencyAwarePrice() - { - $price = new CurrencyAwarePrice(2.34); - $this->assertEquals($this->getContent('currency_aware_price'), $this->serialize($price)); - - if ($this->hasDeserializer()) { - $this->assertEquals($price, $this->deserialize($this->getContent('currency_aware_price'), get_class($price))); - } - } - - public function testOrderWithCurrencyAwarePrice() - { - $order = new CurrencyAwareOrder(new CurrencyAwarePrice(1.23)); - $this->assertEquals($this->getContent('order_with_currency_aware_price'), $this->serialize($order)); - - if ($this->hasDeserializer()) { - $this->assertEquals($order, $this->deserialize($this->getContent('order_with_currency_aware_price'), get_class($order))); - } - } - - /** - * @group handlerCallback - */ - public function testArticle() - { - $article = new Article(); - $article->element = 'custom'; - $article->value = 'serialized'; - - $result = $this->serialize($article); - $this->assertEquals($this->getContent('article'), $result); - - if ($this->hasDeserializer()) { - $this->assertEquals($article, $this->deserialize($result, 'JMS\Serializer\Tests\Fixtures\Article')); - } - } - - public function testInline() - { - $inline = new InlineParent(); - - $result = $this->serialize($inline); - $this->assertEquals($this->getContent('inline'), $result); - - // no deserialization support - } - - public function testInlineEmptyChild() - { - $inline = new InlineParent(new InlineChildEmpty()); - - $result = $this->serialize($inline); - $this->assertEquals($this->getContent('inline_child_empty'), $result); - - // no deserialization support - } - - public function testEmptyChild() - { - // by empty object - $inline = new ParentDoNotSkipWithEmptyChild(new InlineChildEmpty()); - $this->assertEquals($this->getContent('empty_child'), $this->serialize($inline)); - - // by nulls - $inner = new InlineChild(); - $inner->a = null; - $inner->b = null; - $inline = new ParentDoNotSkipWithEmptyChild($inner); - $this->assertEquals($this->getContent('empty_child'), $this->serialize($inline)); - - // by exclusion strategy - $context = SerializationContext::create()->setGroups(['Default']); - $inline = new ParentDoNotSkipWithEmptyChild(new InlineChildWithGroups()); - $this->assertEquals($this->getContent('empty_child'), $this->serialize($inline, $context)); - } - - public function testSkipEmptyChild() - { - // by empty object - $inline = new ParentSkipWithEmptyChild(new InlineChildEmpty()); - $this->assertEquals($this->getContent('empty_child_skip'), $this->serialize($inline)); - - // by nulls - $inner = new InlineChild(); - $inner->a = null; - $inner->b = null; - $inline = new ParentSkipWithEmptyChild($inner); - $this->assertEquals($this->getContent('empty_child_skip'), $this->serialize($inline)); - - // by exclusion strategy - $context = SerializationContext::create()->setGroups(['Default']); - $inline = new ParentSkipWithEmptyChild(new InlineChildWithGroups()); - $this->assertEquals($this->getContent('empty_child_skip'), $this->serialize($inline, $context)); - } - - /** - * @group log - */ - public function testLog() - { - $this->assertEquals($this->getContent('log'), $this->serialize($log = new Log())); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('log'), get_class($log)); - $this->assertEquals($log, $deserialized); - } - } - - public function testCircularReference() - { - $object = new CircularReferenceParent(); - $this->assertEquals($this->getContent('circular_reference'), $this->serialize($object)); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('circular_reference'), get_class($object)); - - $col = $this->getField($deserialized, 'collection'); - $this->assertEquals(2, count($col)); - $this->assertEquals('child1', $col[0]->getName()); - $this->assertEquals('child2', $col[1]->getName()); - $this->assertSame($deserialized, $col[0]->getParent()); - $this->assertSame($deserialized, $col[1]->getParent()); - - $col = $this->getField($deserialized, 'anotherCollection'); - $this->assertEquals(2, count($col)); - $this->assertEquals('child1', $col[0]->getName()); - $this->assertEquals('child2', $col[1]->getName()); - $this->assertSame($deserialized, $col[0]->getParent()); - $this->assertSame($deserialized, $col[1]->getParent()); - } - } - - public function testLifecycleCallbacks() - { - $object = new ObjectWithLifecycleCallbacks(); - $this->assertEquals($this->getContent('lifecycle_callbacks'), $this->serialize($object)); - $this->assertAttributeSame(null, 'name', $object); - - if ($this->hasDeserializer()) { - $deserialized = $this->deserialize($this->getContent('lifecycle_callbacks'), get_class($object)); - $this->assertEquals($object, $deserialized); - } - } - - public function testFormErrors() - { - $errors = array( - new FormError('This is the form error'), - new FormError('Another error') - ); - - $this->assertEquals($this->getContent('form_errors'), $this->serialize($errors)); - } - - public function testNestedFormErrors() - { - $dispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface')->getMock(); - - $formConfigBuilder = new \Symfony\Component\Form\FormConfigBuilder('foo', null, $dispatcher); - $formConfigBuilder->setCompound(true); - $formConfigBuilder->setDataMapper($this->getMockBuilder('Symfony\Component\Form\DataMapperInterface')->getMock()); - $fooConfig = $formConfigBuilder->getFormConfig(); - - $form = new Form($fooConfig); - $form->addError(new FormError('This is the form error')); - - $formConfigBuilder = new \Symfony\Component\Form\FormConfigBuilder('bar', null, $dispatcher); - $barConfig = $formConfigBuilder->getFormConfig(); - $child = new Form($barConfig); - $child->addError(new FormError('Error of the child form')); - $form->add($child); - - $this->assertEquals($this->getContent('nested_form_errors'), $this->serialize($form)); - } - - public function testFormErrorsWithNonFormComponents() - { - if (!class_exists('Symfony\Component\Form\Extension\Core\Type\SubmitType')) { - $this->markTestSkipped('Not using Symfony Form >= 2.3 with submit type'); - } - - $dispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface')->getMock(); - - $factoryBuilder = new FormFactoryBuilder(); - $factoryBuilder->addType(new \Symfony\Component\Form\Extension\Core\Type\SubmitType); - $factoryBuilder->addType(new \Symfony\Component\Form\Extension\Core\Type\ButtonType); - $factory = $factoryBuilder->getFormFactory(); - - $formConfigBuilder = new \Symfony\Component\Form\FormConfigBuilder('foo', null, $dispatcher); - $formConfigBuilder->setFormFactory($factory); - $formConfigBuilder->setCompound(true); - $formConfigBuilder->setDataMapper($this->getMockBuilder('Symfony\Component\Form\DataMapperInterface')->getMock()); - $fooConfig = $formConfigBuilder->getFormConfig(); - - $form = new Form($fooConfig); - $form->add('save', \Symfony\Component\Form\Extension\Core\Type\SubmitType::class); - - try { - $this->serialize($form); - } catch (\Exception $e) { - $this->assertTrue(false, 'Serialization should not throw an exception'); - } - } - - public function testConstraintViolation() - { - $violation = new ConstraintViolation('Message of violation', 'Message of violation', array(), null, 'foo', null); - - $this->assertEquals($this->getContent('constraint_violation'), $this->serialize($violation)); - } - - public function testConstraintViolationList() - { - $violations = new ConstraintViolationList(); - $violations->add(new ConstraintViolation('Message of violation', 'Message of violation', array(), null, 'foo', null)); - $violations->add(new ConstraintViolation('Message of another violation', 'Message of another violation', array(), null, 'bar', null)); - - $this->assertEquals($this->getContent('constraint_violation_list'), $this->serialize($violations)); - } - - public function testDoctrineProxy() - { - if (!class_exists('Doctrine\ORM\Version')) { - $this->markTestSkipped('Doctrine is not available.'); - } - - $object = new SimpleObjectProxy('foo', 'bar'); - - $this->assertEquals($this->getContent('orm_proxy'), $this->serialize($object)); - } - - public function testInitializedDoctrineProxy() - { - if (!class_exists('Doctrine\ORM\Version')) { - $this->markTestSkipped('Doctrine is not available.'); - } - - $object = new SimpleObjectProxy('foo', 'bar'); - $object->__load(); - - $this->assertEquals($this->getContent('orm_proxy'), $this->serialize($object)); - } - - public function testCustomAccessor() - { - $post = new IndexedCommentsBlogPost(); - - $this->assertEquals($this->getContent('custom_accessor'), $this->serialize($post)); - } - - public function testMixedAccessTypes() - { - $object = new GetSetObject(); - - $this->assertEquals($this->getContent('mixed_access_types'), $this->serialize($object)); - - if ($this->hasDeserializer()) { - $object = $this->deserialize($this->getContent('mixed_access_types'), 'JMS\Serializer\Tests\Fixtures\GetSetObject'); - $this->assertAttributeEquals(1, 'id', $object); - $this->assertAttributeEquals('Johannes', 'name', $object); - $this->assertAttributeEquals(42, 'readOnlyProperty', $object); - } - } - - public function testAccessorOrder() - { - $this->assertEquals($this->getContent('accessor_order_child'), $this->serialize(new AccessorOrderChild())); - $this->assertEquals($this->getContent('accessor_order_parent'), $this->serialize(new AccessorOrderParent())); - $this->assertEquals($this->getContent('accessor_order_methods'), $this->serialize(new AccessorOrderMethod())); - } - - public function testGroups() - { - $groupsObject = new GroupsObject(); - - $this->assertEquals($this->getContent('groups_all'), $this->serializer->serialize($groupsObject, $this->getFormat())); - - $this->assertEquals( - $this->getContent('groups_foo'), - $this->serializer->serialize($groupsObject, $this->getFormat(), SerializationContext::create()->setGroups(array('foo'))) - ); - - $this->assertEquals( - $this->getContent('groups_foobar'), - $this->serializer->serialize($groupsObject, $this->getFormat(), SerializationContext::create()->setGroups(array('foo', 'bar'))) - ); - - $this->assertEquals( - $this->getContent('groups_all'), - $this->serializer->serialize($groupsObject, $this->getFormat()) - ); - - $this->assertEquals( - $this->getContent('groups_default'), - $this->serializer->serialize($groupsObject, $this->getFormat(), SerializationContext::create()->setGroups(array(GroupsExclusionStrategy::DEFAULT_GROUP))) - ); - - $this->assertEquals( - $this->getContent('groups_default'), - $this->serializer->serialize($groupsObject, $this->getFormat(), SerializationContext::create()->setGroups(array(GroupsExclusionStrategy::DEFAULT_GROUP))) - ); - } - - public function testAdvancedGroups() - { - $adrien = new GroupsUser( - 'John', - new GroupsUser( - 'John Manager', - null, - array( - new GroupsUser( - 'John Manager friend 1', - new GroupsUser('John Manager friend 1 manager') - ), - new GroupsUser('John Manager friend 2'), - ) - ), - array( - new GroupsUser( - 'John friend 1', - new GroupsUser('John friend 1 manager') - ), - new GroupsUser( - 'John friend 2', - new GroupsUser('John friend 2 manager') - ) - ) - ); - - $this->assertEquals( - $this->getContent('groups_advanced'), - $this->serializer->serialize( - $adrien, - $this->getFormat(), - SerializationContext::create()->setGroups(array( - GroupsExclusionStrategy::DEFAULT_GROUP, - 'manager_group', - 'friends_group', - - 'manager' => array( - GroupsExclusionStrategy::DEFAULT_GROUP, - 'friends_group', - - 'friends' => array('nickname_group'), - ), - 'friends' => array( - 'manager_group' - ) - )) - ) - ); - } - - /** - * @expectedException JMS\Serializer\Exception\InvalidArgumentException - * @expectedExceptionMessage Invalid group name "foo, bar" on "JMS\Serializer\Tests\Fixtures\InvalidGroupsObject->foo", did you mean to create multiple groups? - */ - public function testInvalidGroupName() - { - $groupsObject = new InvalidGroupsObject(); - - $this->serializer->serialize($groupsObject, $this->getFormat()); - } - - public function testVirtualProperty() - { - $this->assertEquals($this->getContent('virtual_properties'), $this->serialize(new ObjectWithVirtualProperties())); - } - - public function testVirtualVersions() - { - $this->assertEquals( - $this->getContent('virtual_properties_low'), - $this->serialize(new ObjectWithVersionedVirtualProperties(), SerializationContext::create()->setVersion(2)) - ); - - $this->assertEquals( - $this->getContent('virtual_properties_all'), - $this->serialize(new ObjectWithVersionedVirtualProperties(), SerializationContext::create()->setVersion(7)) - ); - - $this->assertEquals( - $this->getContent('virtual_properties_high'), - $this->serialize(new ObjectWithVersionedVirtualProperties(), SerializationContext::create()->setVersion(9)) - ); - } - - public function testCustomHandler() - { - if (!$this->hasDeserializer()) { - return; - } - - $handler = function () { - return new CustomDeserializationObject('customly_unserialized_value'); - }; - - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_DESERIALIZATION, 'CustomDeserializationObject', $this->getFormat(), $handler); - - $serialized = $this->serializer->serialize(new CustomDeserializationObject('sometext'), $this->getFormat()); - $object = $this->serializer->deserialize($serialized, 'CustomDeserializationObject', $this->getFormat()); - $this->assertEquals('customly_unserialized_value', $object->someProperty); - } - - public function testInput() - { - $this->assertEquals($this->getContent('input'), $this->serializer->serialize(new Input(), $this->getFormat())); - } - - public function testObjectWithEmptyHash() - { - $this->assertEquals($this->getContent('hash_empty'), $this->serializer->serialize(new ObjectWithEmptyHash(), $this->getFormat())); - } - - /** - * @group null - */ - public function testSerializeObjectWhenNull() - { - $this->assertEquals( - $this->getContent('object_when_null'), - $this->serialize(new Comment(null, 'foo'), SerializationContext::create()->setSerializeNull(false)) - ); - - $this->assertEquals( - $this->getContent('object_when_null_and_serialized'), - $this->serialize(new Comment(null, 'foo'), SerializationContext::create()->setSerializeNull(true)) - ); - } - - /** - * @group polymorphic - */ - public function testPolymorphicObjectsWithGroup() - { - $context = SerializationContext::create(); - $context->setGroups(array("foo")); - - $this->assertEquals( - $this->getContent('car'), - $this->serialize(new \JMS\Serializer\Tests\Fixtures\DiscriminatorGroup\Car(5), $context) - ); - } - - /** - * @group polymorphic - */ - public function testPolymorphicObjects() - { - $this->assertEquals( - $this->getContent('car'), - $this->serialize(new Car(5)) - ); - - if ($this->hasDeserializer()) { - $this->assertEquals( - new Car(5), - $this->deserialize( - $this->getContent('car'), - 'JMS\Serializer\Tests\Fixtures\Discriminator\Car' - ), - 'Class is resolved correctly when concrete sub-class is used.' - ); - - $this->assertEquals( - new Car(5), - $this->deserialize( - $this->getContent('car'), - 'JMS\Serializer\Tests\Fixtures\Discriminator\Vehicle' - ), - 'Class is resolved correctly when least supertype is used.' - ); - - $this->assertEquals( - new Car(5), - $this->deserialize( - $this->getContent('car_without_type'), - 'JMS\Serializer\Tests\Fixtures\Discriminator\Car' - ), - 'Class is resolved correctly when concrete sub-class is used and no type is defined.' - ); - } - } - - /** - * @group polymorphic - */ - public function testNestedPolymorphicObjects() - { - $garage = new Garage(array(new Car(3), new Moped(1))); - $this->assertEquals( - $this->getContent('garage'), - $this->serialize($garage) - ); - - if ($this->hasDeserializer()) { - $this->assertEquals( - $garage, - $this->deserialize( - $this->getContent('garage'), - 'JMS\Serializer\Tests\Fixtures\Garage' - ) - ); - } - } - - /** - * @group polymorphic - */ - public function testNestedPolymorphicInterfaces() - { - $garage = new VehicleInterfaceGarage(array(new Car(3), new Moped(1))); - $this->assertEquals( - $this->getContent('garage'), - $this->serialize($garage) - ); - - if ($this->hasDeserializer()) { - $this->assertEquals( - $garage, - $this->deserialize( - $this->getContent('garage'), - 'JMS\Serializer\Tests\Fixtures\VehicleInterfaceGarage' - ) - ); - } - } - - /** - * @group polymorphic - * @expectedException LogicException - */ - public function testPolymorphicObjectsInvalidDeserialization() - { - if (!$this->hasDeserializer()) { - throw new \LogicException('No deserializer'); - } - - $this->deserialize( - $this->getContent('car_without_type'), - 'JMS\Serializer\Tests\Fixtures\Discriminator\Vehicle' - ); - } - - public function testDepthExclusionStrategy() - { - $context = SerializationContext::create() - ->addExclusionStrategy(new DepthExclusionStrategy()); - - $data = new Tree( - new Node(array( - new Node(array( - new Node(array( - new Node(array( - new Node(), - )), - )), - )), - )) - ); - - $this->assertEquals($this->getContent('tree'), $this->serializer->serialize($data, $this->getFormat(), $context)); - } - - public function testMaxDepthWithSkippableObject() - { - $data = new Gh236Foo(); - - $context = SerializationContext::create()->enableMaxDepthChecks(); - $serialized = $this->serialize($data, $context); - - $this->assertEquals($this->getContent('maxdepth_skippabe_object'), $serialized); - } - - public function testDeserializingIntoExistingObject() - { - if (!$this->hasDeserializer()) { - return; - } - - $objectConstructor = new InitializedObjectConstructor(new UnserializeObjectConstructor()); - $serializer = new Serializer( - $this->factory, $this->handlerRegistry, $objectConstructor, - $this->serializationVisitors, $this->deserializationVisitors, $this->dispatcher - ); - - $order = new Order(new Price(12)); - - $context = new DeserializationContext(); - $context->attributes->set('target', $order); - - $deseralizedOrder = $serializer->deserialize( - $this->getContent('order'), - get_class($order), - $this->getFormat(), - $context - ); - - $this->assertSame($order, $deseralizedOrder); - $this->assertEquals(new Order(new Price(12.34)), $deseralizedOrder); - $this->assertAttributeInstanceOf('JMS\Serializer\Tests\Fixtures\Price', 'cost', $deseralizedOrder); - } - - public function testObjectWithNullableArrays() - { - $object = new ObjectWithEmptyNullableAndEmptyArrays(); - $this->assertEquals($this->getContent('nullable_arrays'), $this->serializer->serialize($object, $this->getFormat())); - } - - abstract protected function getContent($key); - - abstract protected function getFormat(); - - protected function hasDeserializer() - { - return true; - } - - protected function serialize($data, Context $context = null) - { - return $this->serializer->serialize($data, $this->getFormat(), $context); - } - - protected function deserialize($content, $type, Context $context = null) - { - return $this->serializer->deserialize($content, $type, $this->getFormat(), $context); - } - - protected function setUp() - { - $this->factory = new MetadataFactory(new AnnotationDriver(new AnnotationReader())); - - $this->handlerRegistry = new HandlerRegistry(); - $this->handlerRegistry->registerSubscribingHandler(new ConstraintViolationHandler()); - $this->handlerRegistry->registerSubscribingHandler(new StdClassHandler()); - $this->handlerRegistry->registerSubscribingHandler(new DateHandler()); - $this->handlerRegistry->registerSubscribingHandler(new FormErrorHandler(new IdentityTranslator(new MessageSelector()))); - $this->handlerRegistry->registerSubscribingHandler(new PhpCollectionHandler()); - $this->handlerRegistry->registerSubscribingHandler(new ArrayCollectionHandler()); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_SERIALIZATION, 'AuthorList', $this->getFormat(), - function (VisitorInterface $visitor, $object, array $type, Context $context) { - return $visitor->visitArray(iterator_to_array($object), $type, $context); - } - ); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_DESERIALIZATION, 'AuthorList', $this->getFormat(), - function (VisitorInterface $visitor, $data, $type, Context $context) { - $type = array( - 'name' => 'array', - 'params' => array( - array('name' => 'integer', 'params' => array()), - array('name' => 'JMS\Serializer\Tests\Fixtures\Author', 'params' => array()), - ), - ); - - $elements = $visitor->getNavigator()->accept($data, $type, $context); - $list = new AuthorList(); - foreach ($elements as $author) { - $list->add($author); - } - - return $list; - } - ); - - $this->dispatcher = new EventDispatcher(); - $this->dispatcher->addSubscriber(new DoctrineProxySubscriber()); - - $namingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy()); - $this->objectConstructor = new UnserializeObjectConstructor(); - $this->serializationVisitors = new Map(array( - 'json' => new JsonSerializationVisitor($namingStrategy), - 'xml' => new XmlSerializationVisitor($namingStrategy), - 'yml' => new YamlSerializationVisitor($namingStrategy), - )); - $this->deserializationVisitors = new Map(array( - 'json' => new JsonDeserializationVisitor($namingStrategy), - 'xml' => new XmlDeserializationVisitor($namingStrategy), - )); - - $this->serializer = new Serializer($this->factory, $this->handlerRegistry, $this->objectConstructor, $this->serializationVisitors, $this->deserializationVisitors, $this->dispatcher); - } - - protected function getField($obj, $name) - { - $ref = new \ReflectionProperty($obj, $name); - $ref->setAccessible(true); - - return $ref->getValue($obj); - } - - private function setField($obj, $name, $value) - { - $ref = new \ReflectionProperty($obj, $name); - $ref->setAccessible(true); - $ref->setValue($obj, $value); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/ContextTest.php b/vendor/jms/serializer/tests/Serializer/ContextTest.php deleted file mode 100644 index da504c5..0000000 --- a/vendor/jms/serializer/tests/Serializer/ContextTest.php +++ /dev/null @@ -1,201 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Metadata\PropertyMetadata; -use JMS\Serializer\SerializationContext; -use JMS\Serializer\SerializerBuilder; -use JMS\Serializer\Tests\Fixtures\InlineChild; -use JMS\Serializer\Tests\Fixtures\Node; - -class ContextTest extends \PHPUnit_Framework_TestCase -{ - public function testSerializationContextPathAndDepth() - { - $object = new Node(array( - new Node(), - new Node(array( - new Node() - )), - )); - $objects = array($object, $object->children[0], $object->children[1], $object->children[1]->children[0]); - - $self = $this; - - $exclusionStrategy = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(); - $exclusionStrategy->expects($this->any()) - ->method('shouldSkipClass') - ->with($this->anything(), $this->callback(function (SerializationContext $context) use ($self, $objects) { - $expectedDepth = $expectedPath = null; - - if ($context->getObject() === $objects[0]) { - $expectedDepth = 1; - $expectedPath = 'JMS\Serializer\Tests\Fixtures\Node'; - } elseif ($context->getObject() === $objects[1]) { - $expectedDepth = 2; - $expectedPath = 'JMS\Serializer\Tests\Fixtures\Node -> JMS\Serializer\Tests\Fixtures\Node'; - } elseif ($context->getObject() === $objects[2]) { - $expectedDepth = 2; - $expectedPath = 'JMS\Serializer\Tests\Fixtures\Node -> JMS\Serializer\Tests\Fixtures\Node'; - } elseif ($context->getObject() === $objects[3]) { - $expectedDepth = 3; - $expectedPath = 'JMS\Serializer\Tests\Fixtures\Node -> JMS\Serializer\Tests\Fixtures\Node -> JMS\Serializer\Tests\Fixtures\Node'; - } - - $self->assertEquals($expectedDepth, $context->getDepth(), 'shouldSkipClass depth'); - $self->assertEquals($expectedPath, $context->getPath(), 'shouldSkipClass path'); - - return true; - })) - ->will($this->returnValue(false)); - - $exclusionStrategy->expects($this->any()) - ->method('shouldSkipProperty') - ->with($this->anything(), $this->callback(function (SerializationContext $context) use ($self, $objects) { - $expectedDepth = $expectedPath = null; - - if ($context->getObject() === $objects[0]) { - $expectedDepth = 1; - $expectedPath = 'JMS\Serializer\Tests\Fixtures\Node'; - } elseif ($context->getObject() === $objects[1]) { - $expectedDepth = 2; - $expectedPath = 'JMS\Serializer\Tests\Fixtures\Node -> JMS\Serializer\Tests\Fixtures\Node'; - } elseif ($context->getObject() === $objects[2]) { - $expectedDepth = 2; - $expectedPath = 'JMS\Serializer\Tests\Fixtures\Node -> JMS\Serializer\Tests\Fixtures\Node'; - } elseif ($context->getObject() === $objects[3]) { - $expectedDepth = 3; - $expectedPath = 'JMS\Serializer\Tests\Fixtures\Node -> JMS\Serializer\Tests\Fixtures\Node -> JMS\Serializer\Tests\Fixtures\Node'; - } - - $self->assertEquals($expectedDepth, $context->getDepth(), 'shouldSkipProperty depth'); - $self->assertEquals($expectedPath, $context->getPath(), 'shouldSkipProperty path'); - - return true; - })) - ->will($this->returnValue(false)); - - $serializer = SerializerBuilder::create()->build(); - - $serializer->serialize($object, 'json', SerializationContext::create()->addExclusionStrategy($exclusionStrategy)); - } - - public function testSerializationMetadataStack() - { - $object = new Node(array( - $child = new InlineChild(), - )); - $self = $this; - - $exclusionStrategy = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(); - $exclusionStrategy->expects($this->any()) - ->method('shouldSkipClass') - ->will($this->returnCallback(function (ClassMetadata $classMetadata, SerializationContext $context) use ($self, $object, $child) { - $stack = $context->getMetadataStack(); - - if ($object === $context->getObject()) { - $self->assertEquals(0, $stack->count()); - } - - if ($child === $context->getObject()) { - $self->assertEquals(2, $stack->count()); - $self->assertEquals('JMS\Serializer\Tests\Fixtures\Node', $stack[1]->name); - $self->assertEquals('children', $stack[0]->name); - } - - return false; - })); - - $exclusionStrategy->expects($this->any()) - ->method('shouldSkipProperty') - ->will($this->returnCallback(function (PropertyMetadata $propertyMetadata, SerializationContext $context) use ($self, $object, $child) { - $stack = $context->getMetadataStack(); - - if ('JMS\Serializer\Tests\Fixtures\Node' === $propertyMetadata->class && $propertyMetadata->name === 'children') { - $self->assertEquals(1, $stack->count()); - $self->assertEquals('JMS\Serializer\Tests\Fixtures\Node', $stack[0]->name); - } - - if ('JMS\Serializer\Tests\Fixtures\InlineChild' === $propertyMetadata->class) { - $self->assertEquals(3, $stack->count()); - $self->assertEquals('JMS\Serializer\Tests\Fixtures\Node', $stack[2]->name); - $self->assertEquals('children', $stack[1]->name); - $self->assertEquals('JMS\Serializer\Tests\Fixtures\InlineChild', $stack[0]->name); - } - - return false; - })); - - $serializer = SerializerBuilder::create()->build(); - $serializer->serialize($object, 'json', SerializationContext::create()->addExclusionStrategy($exclusionStrategy)); - } - - public function getScalars() - { - return array( - array("string"), - array(5), - array(5.5), - array(array()) - ); - } - - /** - * @dataProvider getScalars - */ - public function testCanVisitScalars($scalar) - { - $context = SerializationContext::create(); - - $context->startVisiting($scalar); - $this->assertFalse($context->isVisiting($scalar)); - $context->stopVisiting($scalar); - } - - public function testInitialTypeCompatibility() - { - $context = SerializationContext::create(); - $context->setInitialType('foo'); - $this->assertEquals('foo', $context->getInitialType()); - $this->assertEquals('foo', $context->attributes->get('initial_type')->get()); - - $context = SerializationContext::create(); - $context->attributes->set('initial_type', 'foo'); - $this->assertEquals('foo', $context->getInitialType()); - } - - public function testSerializeNullOption() - { - $context = SerializationContext::create(); - $this->assertNull($context->shouldSerializeNull()); - - $context->setSerializeNull(false); - $this->assertFalse($context->shouldSerializeNull()); - - $context->setSerializeNull(true); - $this->assertTrue($context->shouldSerializeNull()); - - $context->setSerializeNull("foo"); - $this->assertTrue($context->shouldSerializeNull()); - - $context->setSerializeNull("0"); - $this->assertFalse($context->shouldSerializeNull()); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/DateIntervalFormatTest.php b/vendor/jms/serializer/tests/Serializer/DateIntervalFormatTest.php deleted file mode 100644 index 1a624ac..0000000 --- a/vendor/jms/serializer/tests/Serializer/DateIntervalFormatTest.php +++ /dev/null @@ -1,47 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use JMS\Serializer\Handler\DateHandler; - -class DateIntervalFormatTest extends \PHPUnit_Framework_TestCase -{ - public function testFormat() - { - $dtf = new DateHandler(); - - $iso8601DateIntervalString = $dtf->format(new \DateInterval('P0D')); - $this->assertEquals($iso8601DateIntervalString, 'P0DT0S'); - - $iso8601DateIntervalString = $dtf->format(new \DateInterval('P0DT0S')); - $this->assertEquals($iso8601DateIntervalString, 'P0DT0S'); - - $iso8601DateIntervalString = $dtf->format(new \DateInterval('PT45M')); - - $this->assertEquals($iso8601DateIntervalString, 'PT45M'); - - $iso8601DateIntervalString = $dtf->format(new \DateInterval('P2YT45M')); - - $this->assertEquals($iso8601DateIntervalString, 'P2YT45M'); - - $iso8601DateIntervalString = $dtf->format(new \DateInterval('P2Y4DT6H8M16S')); - - $this->assertEquals($iso8601DateIntervalString, 'P2Y4DT6H8M16S'); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/Doctrine/IntegrationTest.php b/vendor/jms/serializer/tests/Serializer/Doctrine/IntegrationTest.php deleted file mode 100644 index 93306ce..0000000 --- a/vendor/jms/serializer/tests/Serializer/Doctrine/IntegrationTest.php +++ /dev/null @@ -1,203 +0,0 @@ -serializer->serialize($school, 'json'); - $this->assertEquals('{"type":"school"}', $json); - - $deserialized = $this->serializer->deserialize($json, Organization::class, 'json'); - $this->assertEquals($school, $deserialized); - } - - public function testDiscriminatorIsInferredForGenericBaseClass() - { - $student = new Student(); - $json = $this->serializer->serialize($student, 'json'); - $this->assertEquals('{"type":"student"}', $json); - - $deserialized = $this->serializer->deserialize($json, Person::class, 'json'); - $this->assertEquals($student, $deserialized); - } - - public function testDiscriminatorIsInferredFromDoctrine() - { - /** @var EntityManager $em */ - $em = $this->registry->getManager(); - - $student1 = new Student(); - $student2 = new Student(); - $teacher = new Teacher(); - $class = new Clazz($teacher, array($student1, $student2)); - - $em->persist($student1); - $em->persist($student2); - $em->persist($teacher); - $em->persist($class); - $em->flush(); - $em->clear(); - - $reloadedClass = $em->find(get_class($class), $class->getId()); - $this->assertNotSame($class, $reloadedClass); - - $json = $this->serializer->serialize($reloadedClass, 'json'); - $this->assertEquals('{"id":1,"teacher":{"id":1,"type":"teacher"},"students":[{"id":2,"type":"student"},{"id":3,"type":"student"}]}', $json); - } - - protected function setUp() - { - $connection = $this->createConnection(); - $entityManager = $this->createEntityManager($connection); - - $this->registry = $registry = new SimpleManagerRegistry( - function ($id) use ($connection, $entityManager) { - switch ($id) { - case 'default_connection': - return $connection; - - case 'default_manager': - return $entityManager; - - default: - throw new \RuntimeException(sprintf('Unknown service id "%s".', $id)); - } - } - ); - - $this->serializer = SerializerBuilder::create() - ->setMetadataDriverFactory(new CallbackDriverFactory( - function (array $metadataDirs, Reader $annotationReader) use ($registry) { - $defaultFactory = new DefaultDriverFactory(); - - return new DoctrineTypeDriver($defaultFactory->createDriver($metadataDirs, $annotationReader), $registry); - } - )) - ->build(); - - $this->prepareDatabase(); - } - - private function prepareDatabase() - { - /** @var EntityManager $em */ - $em = $this->registry->getManager(); - - $tool = new SchemaTool($em); - $tool->createSchema($em->getMetadataFactory()->getAllMetadata()); - } - - private function createConnection() - { - $con = DriverManager::getConnection(array( - 'driver' => 'pdo_sqlite', - 'memory' => true, - )); - - return $con; - } - - private function createEntityManager(Connection $con) - { - $cfg = new Configuration(); - $cfg->setMetadataDriverImpl(new AnnotationDriver(new AnnotationReader(), array( - __DIR__ . '/../../Fixtures/Doctrine/SingleTableInheritance', - ))); - $cfg->setAutoGenerateProxyClasses(true); - $cfg->setProxyNamespace('JMS\Serializer\DoctrineProxy'); - $cfg->setProxyDir(sys_get_temp_dir() . '/serializer-test-proxies'); - - $em = EntityManager::create($con, $cfg); - - return $em; - } -} - -class SimpleManagerRegistry extends AbstractManagerRegistry -{ - private $services = array(); - private $serviceCreator; - - public function __construct($serviceCreator, $name = 'anonymous', array $connections = array('default' => 'default_connection'), array $managers = array('default' => 'default_manager'), $defaultConnection = null, $defaultManager = null, $proxyInterface = 'Doctrine\Common\Persistence\Proxy') - { - if (null === $defaultConnection) { - $defaultConnection = key($connections); - } - if (null === $defaultManager) { - $defaultManager = key($managers); - } - - parent::__construct($name, $connections, $managers, $defaultConnection, $defaultManager, $proxyInterface); - - if (!is_callable($serviceCreator)) { - throw new \InvalidArgumentException('$serviceCreator must be a valid callable.'); - } - $this->serviceCreator = $serviceCreator; - } - - public function getService($name) - { - if (isset($this->services[$name])) { - return $this->services[$name]; - } - - return $this->services[$name] = call_user_func($this->serviceCreator, $name); - } - - public function resetService($name) - { - unset($this->services[$name]); - } - - public function getAliasNamespace($alias) - { - foreach (array_keys($this->getManagers()) as $name) { - $manager = $this->getManager($name); - - if ($manager instanceof EntityManager) { - try { - return $manager->getConfiguration()->getEntityNamespace($alias); - } catch (ORMException $ex) { - // Probably mapped by another entity manager, or invalid, just ignore this here. - } - } else { - throw new \LogicException(sprintf('Unsupported manager type "%s".', get_class($manager))); - } - } - - throw new \RuntimeException(sprintf('The namespace alias "%s" is not known to any manager.', $alias)); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/Doctrine/ObjectConstructorTest.php b/vendor/jms/serializer/tests/Serializer/Doctrine/ObjectConstructorTest.php deleted file mode 100644 index d89dafd..0000000 --- a/vendor/jms/serializer/tests/Serializer/Doctrine/ObjectConstructorTest.php +++ /dev/null @@ -1,313 +0,0 @@ -registry->getManager(); - - $author = new Author('John', 5); - $em->persist($author); - $em->flush(); - $em->clear(); - - $fallback = $this->getMockBuilder(ObjectConstructorInterface::class)->getMock(); - - $type = array('name' => Author::class, 'params' => array()); - $class = new ClassMetadata(Author::class); - - $constructor = new DoctrineObjectConstructor($this->registry, $fallback); - $authorFetched = $constructor->construct($this->visitor, $class, ['id' => 5], $type, $this->context); - - $this->assertEquals($author, $authorFetched); - } - - public function testFindManagedEntity() - { - $em = $this->registry->getManager(); - - $author = new Author('John', 5); - $em->persist($author); - $em->flush(); - - $fallback = $this->getMockBuilder(ObjectConstructorInterface::class)->getMock(); - - $type = array('name' => Author::class, 'params' => array()); - $class = new ClassMetadata(Author::class); - - $constructor = new DoctrineObjectConstructor($this->registry, $fallback); - $authorFetched = $constructor->construct($this->visitor, $class, ['id' => 5], $type, $this->context); - - $this->assertSame($author, $authorFetched); - } - - public function testMissingAuthor() - { - $fallback = $this->getMockBuilder(ObjectConstructorInterface::class)->getMock(); - - $type = array('name' => Author::class, 'params' => array()); - $class = new ClassMetadata(Author::class); - - $constructor = new DoctrineObjectConstructor($this->registry, $fallback); - $author = $constructor->construct($this->visitor, $class, ['id' => 5], $type, $this->context); - $this->assertNull($author); - } - - public function testMissingAuthorFallback() - { - $author = new Author('John'); - - $fallback = $this->getMockBuilder(ObjectConstructorInterface::class)->getMock(); - $fallback->expects($this->once())->method('construct')->willReturn($author); - - $type = array('name' => Author::class, 'params' => array()); - $class = new ClassMetadata(Author::class); - - $constructor = new DoctrineObjectConstructor($this->registry, $fallback, DoctrineObjectConstructor::ON_MISSING_FALLBACK); - $authorFetched = $constructor->construct($this->visitor, $class, ['id' => 5], $type, $this->context); - $this->assertSame($author, $authorFetched); - } - - public function testMissingNotManaged() - { - $author = new \JMS\Serializer\Tests\Fixtures\DoctrinePHPCR\Author('foo'); - - $fallback = $this->getMockBuilder(ObjectConstructorInterface::class)->getMock(); - $fallback->expects($this->once())->method('construct')->willReturn($author); - - $type = array('name' => Author::class, 'params' => array()); - $class = new ClassMetadata(Author::class); - - $constructor = new DoctrineObjectConstructor($this->registry, $fallback, DoctrineObjectConstructor::ON_MISSING_FALLBACK); - $authorFetched = $constructor->construct($this->visitor, $class, ['id' => 5], $type, $this->context); - $this->assertSame($author, $authorFetched); - } - - public function testReference() - { - $em = $this->registry->getManager(); - - $author = new Author('John', 5); - $em->persist($author); - $em->flush(); - - $fallback = $this->getMockBuilder(ObjectConstructorInterface::class)->getMock(); - - $type = array('name' => Author::class, 'params' => array()); - $class = new ClassMetadata(Author::class); - - $constructor = new DoctrineObjectConstructor($this->registry, $fallback, DoctrineObjectConstructor::ON_MISSING_FALLBACK); - $authorFetched = $constructor->construct($this->visitor, $class, 5, $type, $this->context); - $this->assertSame($author, $authorFetched); - } - - /** - * @expectedException \JMS\Serializer\Exception\ObjectConstructionException - */ - public function testMissingAuthorException() - { - $fallback = $this->getMockBuilder(ObjectConstructorInterface::class)->getMock(); - - $type = array('name' => Author::class, 'params' => array()); - $class = new ClassMetadata(Author::class); - - $constructor = new DoctrineObjectConstructor($this->registry, $fallback, DoctrineObjectConstructor::ON_MISSING_EXCEPTION); - $constructor->construct($this->visitor, $class, ['id' => 5], $type, $this->context); - } - - /** - * @expectedException \JMS\Serializer\Exception\InvalidArgumentException - */ - public function testInvalidArg() - { - $fallback = $this->getMockBuilder(ObjectConstructorInterface::class)->getMock(); - - $type = array('name' => Author::class, 'params' => array()); - $class = new ClassMetadata(Author::class); - - $constructor = new DoctrineObjectConstructor($this->registry, $fallback, 'foo'); - $constructor->construct($this->visitor, $class, ['id' => 5], $type, $this->context); - } - - public function testMissingData() - { - $author = new Author('John'); - - $fallback = $this->getMockBuilder(ObjectConstructorInterface::class)->getMock(); - $fallback->expects($this->once())->method('construct')->willReturn($author); - - $type = array('name' => Author::class, 'params' => array()); - $class = new ClassMetadata(Author::class); - - $constructor = new DoctrineObjectConstructor($this->registry, $fallback, 'foo'); - $authorFetched = $constructor->construct($this->visitor, $class, ['foo' => 5], $type, $this->context); - $this->assertSame($author, $authorFetched); - } - - protected function setUp() - { - $this->visitor = $this->getMockBuilder('JMS\Serializer\VisitorInterface')->getMock(); - $this->context = $this->getMockBuilder('JMS\Serializer\DeserializationContext')->getMock(); - - $connection = $this->createConnection(); - $entityManager = $this->createEntityManager($connection); - - $this->registry = $registry = new SimpleBaseManagerRegistry( - function ($id) use ($connection, $entityManager) { - switch ($id) { - case 'default_connection': - return $connection; - - case 'default_manager': - return $entityManager; - - default: - throw new \RuntimeException(sprintf('Unknown service id "%s".', $id)); - } - } - ); - - $this->serializer = SerializerBuilder::create() - ->setMetadataDriverFactory(new CallbackDriverFactory( - function (array $metadataDirs, Reader $annotationReader) use ($registry) { - $defaultFactory = new DefaultDriverFactory(); - - return new DoctrineTypeDriver($defaultFactory->createDriver($metadataDirs, $annotationReader), $registry); - } - )) - ->build(); - - $this->prepareDatabase(); - } - - private function prepareDatabase() - { - /** @var EntityManager $em */ - $em = $this->registry->getManager(); - - $tool = new SchemaTool($em); - $tool->createSchema($em->getMetadataFactory()->getAllMetadata()); - } - - private function createConnection() - { - $con = DriverManager::getConnection(array( - 'driver' => 'pdo_sqlite', - 'memory' => true, - )); - - return $con; - } - - private function createEntityManager(Connection $con) - { - $cfg = new Configuration(); - $cfg->setMetadataDriverImpl(new AnnotationDriver(new AnnotationReader(), array( - __DIR__ . '/../../Fixtures/Doctrine', - ))); - $cfg->setAutoGenerateProxyClasses(true); - $cfg->setProxyNamespace('JMS\Serializer\DoctrineProxy'); - $cfg->setProxyDir(sys_get_temp_dir() . '/serializer-test-proxies'); - - $em = EntityManager::create($con, $cfg); - - return $em; - } -} - -\Doctrine\DBAL\Types\Type::addType('Author', 'Doctrine\DBAL\Types\StringType'); -\Doctrine\DBAL\Types\Type::addType('some_custom_type', 'Doctrine\DBAL\Types\StringType'); - -class SimpleBaseManagerRegistry extends AbstractManagerRegistry -{ - private $services = array(); - private $serviceCreator; - - public function __construct($serviceCreator, $name = 'anonymous', array $connections = array('default' => 'default_connection'), array $managers = array('default' => 'default_manager'), $defaultConnection = null, $defaultManager = null, $proxyInterface = 'Doctrine\Common\Persistence\Proxy') - { - if (null === $defaultConnection) { - $defaultConnection = key($connections); - } - if (null === $defaultManager) { - $defaultManager = key($managers); - } - - parent::__construct($name, $connections, $managers, $defaultConnection, $defaultManager, $proxyInterface); - - if (!is_callable($serviceCreator)) { - throw new \InvalidArgumentException('$serviceCreator must be a valid callable.'); - } - $this->serviceCreator = $serviceCreator; - } - - public function getService($name) - { - if (isset($this->services[$name])) { - return $this->services[$name]; - } - - return $this->services[$name] = call_user_func($this->serviceCreator, $name); - } - - public function resetService($name) - { - unset($this->services[$name]); - } - - public function getAliasNamespace($alias) - { - foreach (array_keys($this->getManagers()) as $name) { - $manager = $this->getManager($name); - - if ($manager instanceof EntityManager) { - try { - return $manager->getConfiguration()->getEntityNamespace($alias); - } catch (ORMException $ex) { - // Probably mapped by another entity manager, or invalid, just ignore this here. - } - } else { - throw new \LogicException(sprintf('Unsupported manager type "%s".', get_class($manager))); - } - } - - throw new \RuntimeException(sprintf('The namespace alias "%s" is not known to any manager.', $alias)); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/EventDispatcher/EventDispatcherTest.php b/vendor/jms/serializer/tests/Serializer/EventDispatcher/EventDispatcherTest.php deleted file mode 100644 index ac8b086..0000000 --- a/vendor/jms/serializer/tests/Serializer/EventDispatcher/EventDispatcherTest.php +++ /dev/null @@ -1,212 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer\EventDispatcher; - -use JMS\Serializer\EventDispatcher\Event; -use JMS\Serializer\EventDispatcher\EventDispatcher; -use JMS\Serializer\EventDispatcher\EventDispatcherInterface; -use JMS\Serializer\EventDispatcher\EventSubscriberInterface; -use JMS\Serializer\EventDispatcher\ObjectEvent; - -class EventDispatcherTest extends \PHPUnit_Framework_TestCase -{ - /** - * @var EventDispatcher - */ - protected $dispatcher; - protected $event; - - public function testHasListeners() - { - $this->assertFalse($this->dispatcher->hasListeners('foo', 'Foo', 'json')); - $this->dispatcher->addListener('foo', function () { - }); - $this->assertTrue($this->dispatcher->hasListeners('foo', 'Foo', 'json')); - - $this->assertFalse($this->dispatcher->hasListeners('bar', 'Bar', 'json')); - $this->dispatcher->addListener('bar', function () { - }, 'Foo'); - $this->assertFalse($this->dispatcher->hasListeners('bar', 'Bar', 'json')); - $this->dispatcher->addListener('bar', function () { - }, 'Bar', 'xml'); - $this->assertFalse($this->dispatcher->hasListeners('bar', 'Bar', 'json')); - $this->dispatcher->addListener('bar', function () { - }, null, 'json'); - $this->assertTrue($this->dispatcher->hasListeners('bar', 'Baz', 'json')); - $this->assertTrue($this->dispatcher->hasListeners('bar', 'Bar', 'json')); - - $this->assertFalse($this->dispatcher->hasListeners('baz', 'Bar', 'xml')); - $this->dispatcher->addListener('baz', function () { - }, 'Bar'); - $this->assertTrue($this->dispatcher->hasListeners('baz', 'Bar', 'xml')); - $this->assertTrue($this->dispatcher->hasListeners('baz', 'bAr', 'xml')); - } - - public function testDispatch() - { - $a = new MockListener(); - $this->dispatcher->addListener('foo', array($a, 'foo')); - $this->dispatch('bar'); - $a->_verify('Listener is not called for other event.'); - - $b = new MockListener(); - $this->dispatcher->addListener('pre', array($b, 'bar'), 'Bar'); - $this->dispatcher->addListener('pre', array($b, 'foo'), 'Foo'); - $this->dispatcher->addListener('pre', array($b, 'all')); - - $b->bar($this->event, 'pre', 'bar', 'json', $this->dispatcher); - $b->all($this->event, 'pre', 'bar', 'json', $this->dispatcher); - $b->foo($this->event, 'pre', 'foo', 'json', $this->dispatcher); - $b->all($this->event, 'pre', 'foo', 'json', $this->dispatcher); - $b->_replay(); - $this->dispatch('pre', 'Bar'); - $this->dispatch('pre', 'Foo'); - $b->_verify(); - } - - public function testListenerCanStopPropagation() - { - $listener1 = false; - $listener2 = false; - - $this->dispatcher->addListener('pre', function (Event $event) use (&$listener1) { - $event->stopPropagation(); - $listener1 = true; - }); - - $this->dispatcher->addListener('pre', function () use (&$listener2) { - $listener2 = true; - }); - - $this->dispatch('pre'); - - $this->assertTrue($listener1); - $this->assertFalse($listener2); - } - - public function testListenerCanDispatchEvent() - { - $listener1 = false; - $listener2 = false; - $listener3 = false; - - $this->dispatcher->addListener('pre', function (Event $event, $eventName, $loweredClass, $format, EventDispatcherInterface $dispatcher) use (&$listener1) { - $listener1 = true; - - $event = new Event($event->getContext(), $event->getType()); - - $this->assertSame('pre', $eventName); - $this->assertSame('json', $format); - $this->assertSame('foo', $loweredClass); - - $dispatcher->dispatch('post', 'Blah', 'xml', $event); - }); - - $this->dispatcher->addListener('pre', function () use (&$listener2) { - $listener2 = true; - }); - - $this->dispatcher->addListener('post', function (Event $event, $eventName, $loweredClass, $format, EventDispatcherInterface $dispatcher) use (&$listener3) { - $listener3 = true; - - $this->assertSame('post', $eventName); - $this->assertSame('xml', $format); - $this->assertSame('blah', $loweredClass); - }); - - $this->dispatch('pre'); - - $this->assertTrue($listener1); - $this->assertTrue($listener2); - $this->assertTrue($listener3); - } - - public function testAddSubscriber() - { - $subscriber = new MockSubscriber(); - MockSubscriber::$events = array( - array('event' => 'foo.bar_baz', 'format' => 'foo'), - array('event' => 'bar', 'method' => 'bar', 'class' => 'foo'), - ); - - $this->dispatcher->addSubscriber($subscriber); - $this->assertAttributeEquals(array( - 'foo.bar_baz' => array( - array(array($subscriber, 'onfoobarbaz'), null, 'foo'), - ), - 'bar' => array( - array(array($subscriber, 'bar'), 'foo', null), - ), - ), 'listeners', $this->dispatcher); - } - - protected function setUp() - { - $this->dispatcher = $this->createEventDispatcher(); - $this->event = new ObjectEvent($this->getMockBuilder('JMS\Serializer\Context')->getMock(), new \stdClass(), array('name' => 'foo', 'params' => array())); - } - - protected function createEventDispatcher() - { - return new EventDispatcher(); - } - - protected function dispatch($eventName, $class = 'Foo', $format = 'json', Event $event = null) - { - $this->dispatcher->dispatch($eventName, $class, $format, $event ?: $this->event); - } -} - -class MockSubscriber implements EventSubscriberInterface -{ - public static $events = array(); - - public static function getSubscribedEvents() - { - return self::$events; - } -} - -class MockListener -{ - private $expected = array(); - private $actual = array(); - private $wasReplayed = false; - - public function __call($method, array $args = array()) - { - if (!$this->wasReplayed) { - $this->expected[] = array($method, $args); - - return; - } - - $this->actual[] = array($method, $args); - } - - public function _replay() - { - $this->wasReplayed = true; - } - - public function _verify($message = null) - { - \PHPUnit_Framework_Assert::assertSame($this->expected, $this->actual, $message); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherTest.php b/vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherTest.php deleted file mode 100644 index ca39259..0000000 --- a/vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherTest.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer\EventDispatcher; - -use JMS\Serializer\EventDispatcher\LazyEventDispatcher; - -abstract class LazyEventDispatcherTest extends EventDispatcherTest -{ - protected $container; - - protected function setUp() - { - $this->container = $this->createContainer(); - - parent::setUp(); - } - - public function testHasListenersWithListenerAsService() - { - $a = new MockListener(); - $this->registerListenerService('a', $a); - - $this->assertFalse($this->dispatcher->hasListeners('foo', 'Foo', 'json')); - $this->dispatcher->addListener('foo', ['a', 'foo']); - $this->assertTrue($this->dispatcher->hasListeners('foo', 'Foo', 'json')); - } - - public function testDispatchWithListenerAsService() - { - $a = new MockListener(); - $this->registerListenerService('a', $a); - - $this->dispatcher->addListener('foo', ['a', 'foo']); - $this->dispatch('bar'); - $a->_verify('Listener is not called for other event.'); - - $b = new MockListener(); - $this->registerListenerService('b', $b); - - $this->dispatcher->addListener('pre', array('b', 'bar'), 'Bar'); - $this->dispatcher->addListener('pre', array('b', 'foo'), 'Foo'); - $this->dispatcher->addListener('pre', array('b', 'all')); - - $b->bar($this->event, 'pre', 'bar', 'json', $this->dispatcher); - $b->all($this->event, 'pre', 'bar', 'json', $this->dispatcher); - $b->foo($this->event, 'pre', 'foo', 'json', $this->dispatcher); - $b->all($this->event, 'pre', 'foo', 'json', $this->dispatcher); - $b->_replay(); - $this->dispatch('pre', 'Bar'); - $this->dispatch('pre', 'Foo'); - $b->_verify(); - } - - protected function createEventDispatcher() - { - return new LazyEventDispatcher($this->container); - } - - abstract protected function createContainer(); - - abstract protected function registerListenerService($serviceId, MockListener $listener); -} diff --git a/vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherWithPsr11ContainerTest.php b/vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherWithPsr11ContainerTest.php deleted file mode 100644 index 03833b8..0000000 --- a/vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherWithPsr11ContainerTest.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer\EventDispatcher; - -use Psr\Container\ContainerInterface; - -class LazyEventDispatcherWithPsr11ContainerTest extends LazyEventDispatcherTest -{ - protected function createContainer() - { - return new Psr11Container(); - } - - protected function registerListenerService($serviceId, MockListener $listener) - { - $this->container->set($serviceId, $listener); - } -} - -class Psr11Container implements ContainerInterface -{ - private $services; - - public function get($id) - { - return $this->services[$id]; - } - - public function has($id) - { - return isset($this->services[$id]); - } - - public function set($id, $service) - { - $this->services[$id] = $service; - } -} diff --git a/vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherWithSymfonyContainerTest.php b/vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherWithSymfonyContainerTest.php deleted file mode 100644 index 66cb276..0000000 --- a/vendor/jms/serializer/tests/Serializer/EventDispatcher/LazyEventDispatcherWithSymfonyContainerTest.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer\EventDispatcher; - -use Symfony\Component\DependencyInjection\Container; - -class LazyEventDispatcherWithSymfonyContainerTest extends LazyEventDispatcherTest -{ - protected function createContainer() - { - return new Container(); - } - - protected function registerListenerService($serviceId, MockListener $listener) - { - $this->container->set($serviceId, $listener); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/DoctrineProxySubscriberTest.php b/vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/DoctrineProxySubscriberTest.php deleted file mode 100644 index ebb3796..0000000 --- a/vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/DoctrineProxySubscriberTest.php +++ /dev/null @@ -1,157 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer\EventDispatcher\Subscriber; - -use JMS\Serializer\EventDispatcher\EventDispatcher; -use JMS\Serializer\EventDispatcher\PreSerializeEvent; -use JMS\Serializer\EventDispatcher\Subscriber\DoctrineProxySubscriber; -use JMS\Serializer\Metadata\ClassMetadata; -use JMS\Serializer\Tests\Fixtures\ExclusionStrategy\AlwaysExcludeExclusionStrategy; -use JMS\Serializer\Tests\Fixtures\SimpleObject; -use JMS\Serializer\Tests\Fixtures\SimpleObjectProxy; -use JMS\Serializer\VisitorInterface; -use Metadata\MetadataFactoryInterface; - -class DoctrineProxySubscriberTest extends \PHPUnit_Framework_TestCase -{ - /** @var VisitorInterface */ - private $visitor; - - /** @var DoctrineProxySubscriber */ - private $subscriber; - - /** - * @var EventDispatcher - */ - private $dispatcher; - - public function testRewritesProxyClassName() - { - $event = $this->createEvent($obj = new SimpleObjectProxy('a', 'b'), array('name' => get_class($obj), 'params' => array())); - $this->subscriber->onPreSerialize($event); - - $this->assertEquals(array('name' => get_parent_class($obj), 'params' => array()), $event->getType()); - $this->assertTrue($obj->__isInitialized()); - } - - public function testDoesNotRewriteCustomType() - { - $event = $this->createEvent($obj = new SimpleObjectProxy('a', 'b'), array('name' => 'FakedName', 'params' => array())); - $this->subscriber->onPreSerialize($event); - - $this->assertEquals(array('name' => 'FakedName', 'params' => array()), $event->getType()); - $this->assertTrue($obj->__isInitialized()); - } - - public function testProxyLoadingCanBeSkippedForVirtualTypes() - { - $subscriber = new DoctrineProxySubscriber(true); - - $event = $this->createEvent($obj = new SimpleObjectProxy('a', 'b'), array('name' => 'FakedName', 'params' => array())); - $subscriber->onPreSerialize($event); - - $this->assertEquals(array('name' => 'FakedName', 'params' => array()), $event->getType()); - $this->assertFalse($obj->__isInitialized()); - } - - public function testProxyLoadingCanBeSkippedByExclusionStrategy() - { - $subscriber = new DoctrineProxySubscriber(false, false); - - $factoryMock = $this->getMockBuilder(MetadataFactoryInterface::class)->getMock(); - $factoryMock->method('getMetadataForClass')->willReturn(new ClassMetadata(SimpleObject::class)); - - $this->visitor->method('getExclusionStrategy')->willReturn(new AlwaysExcludeExclusionStrategy()); - $this->visitor->method('getMetadataFactory')->willReturn($factoryMock); - - $event = $this->createEvent($obj = new SimpleObjectProxy('a', 'b'), array('name' => SimpleObjectProxy::class, 'params' => array())); - $subscriber->onPreSerialize($event); - $this->assertFalse($obj->__isInitialized()); - - // virtual types are still initialized - $event = $this->createEvent($obj = new SimpleObjectProxy('a', 'b'), array('name' => 'FakeName', 'params' => array())); - $subscriber->onPreSerialize($event); - $this->assertTrue($obj->__isInitialized()); - } - - public function testEventTriggeredOnRealClassName() - { - $proxy = new SimpleObjectProxy('foo', 'bar'); - - $realClassEventTriggered1 = false; - $this->dispatcher->addListener('serializer.pre_serialize', function () use (&$realClassEventTriggered1) { - $realClassEventTriggered1 = true; - }, get_parent_class($proxy)); - - $event = $this->createEvent($proxy, array('name' => get_class($proxy), 'params' => array())); - $this->dispatcher->dispatch('serializer.pre_serialize', get_class($proxy), 'json', $event); - - $this->assertTrue($realClassEventTriggered1); - } - - public function testListenersCanChangeType() - { - $proxy = new SimpleObjectProxy('foo', 'bar'); - - $realClassEventTriggered1 = false; - $this->dispatcher->addListener('serializer.pre_serialize', function (PreSerializeEvent $event) use (&$realClassEventTriggered1) { - $event->setType('foo', ['bar']); - }, get_parent_class($proxy)); - - $event = $this->createEvent($proxy, array('name' => get_class($proxy), 'params' => array())); - $this->dispatcher->dispatch('serializer.pre_serialize', get_class($proxy), 'json', $event); - - $this->assertSame(['name' => 'foo', 'params' => ['bar']], $event->getType()); - } - - public function testListenersDoNotChangeTypeOnProxiesAndVirtualTypes() - { - $proxy = new SimpleObjectProxy('foo', 'bar'); - - $event = $this->createEvent($proxy, ['name' => 'foo', 'params' => []]); - $this->dispatcher->dispatch('serializer.pre_serialize', get_class($proxy), 'json', $event); - - $this->assertSame(['name' => 'foo', 'params' => []], $event->getType()); - } - - public function testOnPreSerializeMaintainsParams() - { - $object = new SimpleObjectProxy('foo', 'bar'); - $type = ['name' => SimpleObjectProxy::class, 'params' => ['baz']]; - - $event = $this->createEvent($object, $type); - $this->subscriber->onPreSerialize($event); - - $this->assertSame(['name' => SimpleObject::class, 'params' => ['baz']], $event->getType()); - } - - protected function setUp() - { - $this->subscriber = new DoctrineProxySubscriber(); - $this->visitor = $this->getMockBuilder('JMS\Serializer\Context')->getMock(); - - $this->dispatcher = new EventDispatcher(); - $this->dispatcher->addSubscriber($this->subscriber); - } - - private function createEvent($object, array $type) - { - return new PreSerializeEvent($this->visitor, $object, $type); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/SymfonyValidatorSubscriberTest.php b/vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/SymfonyValidatorSubscriberTest.php deleted file mode 100644 index 0dbb227..0000000 --- a/vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/SymfonyValidatorSubscriberTest.php +++ /dev/null @@ -1,108 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer\EventDispatcher\Subscriber; - -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\EventDispatcher\EventDispatcher; -use JMS\Serializer\EventDispatcher\ObjectEvent; -use JMS\Serializer\EventDispatcher\Subscriber\SymfonyValidatorSubscriber; -use JMS\Serializer\SerializerBuilder; -use Symfony\Component\Validator\ConstraintViolation; -use Symfony\Component\Validator\ConstraintViolationList; - -class SymfonyValidatorSubscriberTest extends \PHPUnit_Framework_TestCase -{ - private $validator; - - /** @var SymfonyValidatorSubscriber */ - private $subscriber; - - public function testValidate() - { - $obj = new \stdClass; - - $this->validator->expects($this->once()) - ->method('validate') - ->with($obj, array('foo')) - ->will($this->returnValue(new ConstraintViolationList())); - - $context = DeserializationContext::create()->setAttribute('validation_groups', array('foo')); - - $this->subscriber->onPostDeserialize(new ObjectEvent($context, $obj, array())); - } - - /** - * @expectedException JMS\Serializer\Exception\ValidationFailedException - * @expectedExceptionMessage Validation failed with 1 error(s). - */ - public function testValidateThrowsExceptionWhenListIsNotEmpty() - { - $obj = new \stdClass; - - $this->validator->expects($this->once()) - ->method('validate') - ->with($obj, array('foo')) - ->will($this->returnValue(new ConstraintViolationList(array(new ConstraintViolation('foo', 'foo', array(), 'a', 'b', 'c'))))); - - $context = DeserializationContext::create()->setAttribute('validation_groups', array('foo')); - - $this->subscriber->onPostDeserialize(new ObjectEvent($context, $obj, array())); - } - - public function testValidatorIsNotCalledWhenNoGroupsAreSet() - { - $this->validator->expects($this->never()) - ->method('validate'); - - $this->subscriber->onPostDeserialize(new ObjectEvent(DeserializationContext::create(), new \stdClass, array())); - } - - public function testValidationIsOnlyPerformedOnRootObject() - { - $this->validator->expects($this->once()) - ->method('validate') - ->with($this->isInstanceOf('JMS\Serializer\Tests\Fixtures\AuthorList'), array('Foo')) - ->will($this->returnValue(new ConstraintViolationList())); - - $subscriber = $this->subscriber; - $list = SerializerBuilder::create() - ->configureListeners(function (EventDispatcher $dispatcher) use ($subscriber) { - $dispatcher->addSubscriber($subscriber); - }) - ->build() - ->deserialize( - '{"authors":[{"full_name":"foo"},{"full_name":"bar"}]}', - 'JMS\Serializer\Tests\Fixtures\AuthorList', - 'json', - DeserializationContext::create()->setAttribute('validation_groups', array('Foo')) - ); - - $this->assertCount(2, $list); - } - - protected function setUp() - { - if (!interface_exists('Symfony\Component\Validator\ValidatorInterface')) { - $this->markTestSkipped('Symfony\Component\Validator\ValidatorInterface is not available'); - } - - $this->validator = $this->getMockBuilder('Symfony\Component\Validator\ValidatorInterface')->getMock(); - $this->subscriber = new SymfonyValidatorSubscriber($this->validator); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/SymfonyValidatorValidatorSubscriberTest.php b/vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/SymfonyValidatorValidatorSubscriberTest.php deleted file mode 100644 index 747e247..0000000 --- a/vendor/jms/serializer/tests/Serializer/EventDispatcher/Subscriber/SymfonyValidatorValidatorSubscriberTest.php +++ /dev/null @@ -1,109 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer\EventDispatcher\Subscriber; - -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\EventDispatcher\EventDispatcher; -use JMS\Serializer\EventDispatcher\ObjectEvent; -use JMS\Serializer\EventDispatcher\Subscriber\SymfonyValidatorSubscriber; -use JMS\Serializer\EventDispatcher\Subscriber\SymfonyValidatorValidatorSubscriber; -use JMS\Serializer\SerializerBuilder; -use Symfony\Component\Validator\ConstraintViolation; -use Symfony\Component\Validator\ConstraintViolationList; - -class SymfonyValidatorValidatorSubscriberTest extends \PHPUnit_Framework_TestCase -{ - private $validator; - - /** @var SymfonyValidatorSubscriber */ - private $subscriber; - - public function testValidate() - { - $obj = new \stdClass; - - $this->validator->expects($this->once()) - ->method('validate') - ->with($obj, null, array('foo')) - ->will($this->returnValue(new ConstraintViolationList())); - - $context = DeserializationContext::create()->setAttribute('validation_groups', array('foo')); - - $this->subscriber->onPostDeserialize(new ObjectEvent($context, $obj, array())); - } - - /** - * @expectedException \JMS\Serializer\Exception\ValidationFailedException - * @expectedExceptionMessage Validation failed with 1 error(s). - */ - public function testValidateThrowsExceptionWhenListIsNotEmpty() - { - $obj = new \stdClass; - - $this->validator->expects($this->once()) - ->method('validate') - ->with($obj, null, array('foo')) - ->will($this->returnValue(new ConstraintViolationList(array(new ConstraintViolation('foo', 'foo', array(), 'a', 'b', 'c'))))); - - $context = DeserializationContext::create()->setAttribute('validation_groups', array('foo')); - - $this->subscriber->onPostDeserialize(new ObjectEvent($context, $obj, array())); - } - - public function testValidatorIsNotCalledWhenNoGroupsAreSet() - { - $this->validator->expects($this->never()) - ->method('validate'); - - $this->subscriber->onPostDeserialize(new ObjectEvent(DeserializationContext::create(), new \stdClass, array())); - } - - public function testValidationIsOnlyPerformedOnRootObject() - { - $this->validator->expects($this->once()) - ->method('validate') - ->with($this->isInstanceOf('JMS\Serializer\Tests\Fixtures\AuthorList'), null, array('Foo')) - ->will($this->returnValue(new ConstraintViolationList())); - - $subscriber = $this->subscriber; - $list = SerializerBuilder::create() - ->configureListeners(function (EventDispatcher $dispatcher) use ($subscriber) { - $dispatcher->addSubscriber($subscriber); - }) - ->build() - ->deserialize( - '{"authors":[{"full_name":"foo"},{"full_name":"bar"}]}', - 'JMS\Serializer\Tests\Fixtures\AuthorList', - 'json', - DeserializationContext::create()->setAttribute('validation_groups', array('Foo')) - ); - - $this->assertCount(2, $list); - } - - protected function setUp() - { - if (!interface_exists('Symfony\Component\Validator\Validator\ValidatorInterface')) { - $this->markTestSkipped('Symfony\Component\Validator\Validator\ValidatorInterface ^2.6|^3.0 is not available'); - } - - $this->validator = $this->getMockBuilder('Symfony\Component\Validator\Validator\ValidatorInterface')->getMock(); - $this->subscriber = new SymfonyValidatorValidatorSubscriber($this->validator); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/GraphNavigatorTest.php b/vendor/jms/serializer/tests/Serializer/GraphNavigatorTest.php deleted file mode 100644 index 4bd9aa9..0000000 --- a/vendor/jms/serializer/tests/Serializer/GraphNavigatorTest.php +++ /dev/null @@ -1,177 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use Doctrine\Common\Annotations\AnnotationReader; -use JMS\Serializer\Construction\UnserializeObjectConstructor; -use JMS\Serializer\EventDispatcher\EventDispatcher; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Handler\HandlerRegistry; -use JMS\Serializer\Handler\SubscribingHandlerInterface; -use JMS\Serializer\Metadata\Driver\AnnotationDriver; -use Metadata\MetadataFactory; - -class GraphNavigatorTest extends \PHPUnit_Framework_TestCase -{ - private $metadataFactory; - private $handlerRegistry; - private $objectConstructor; - private $dispatcher; - private $navigator; - private $context; - - /** - * @expectedException JMS\Serializer\Exception\RuntimeException - * @expectedExceptionMessage Resources are not supported in serialized data. - */ - public function testResourceThrowsException() - { - $this->context->expects($this->any()) - ->method('getDirection') - ->will($this->returnValue(GraphNavigator::DIRECTION_SERIALIZATION)); - - $this->navigator->accept(STDIN, null, $this->context); - } - - public function testNavigatorPassesInstanceOnSerialization() - { - $object = new SerializableClass; - $metadata = $this->metadataFactory->getMetadataForClass(get_class($object)); - - $self = $this; - $context = $this->context; - $exclusionStrategy = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(); - $exclusionStrategy->expects($this->once()) - ->method('shouldSkipClass') - ->will($this->returnCallback(function ($passedMetadata, $passedContext) use ($metadata, $context, $self) { - $self->assertSame($metadata, $passedMetadata); - $self->assertSame($context, $passedContext); - })); - $exclusionStrategy->expects($this->once()) - ->method('shouldSkipProperty') - ->will($this->returnCallback(function ($propertyMetadata, $passedContext) use ($context, $metadata, $self) { - $self->assertSame($metadata->propertyMetadata['foo'], $propertyMetadata); - $self->assertSame($context, $passedContext); - })); - - $this->context->expects($this->once()) - ->method('getExclusionStrategy') - ->will($this->returnValue($exclusionStrategy)); - - $this->context->expects($this->any()) - ->method('getDirection') - ->will($this->returnValue(GraphNavigator::DIRECTION_SERIALIZATION)); - - $this->context->expects($this->any()) - ->method('getVisitor') - ->will($this->returnValue($this->getMockBuilder('JMS\Serializer\VisitorInterface')->getMock())); - - $this->navigator = new GraphNavigator($this->metadataFactory, $this->handlerRegistry, $this->objectConstructor, $this->dispatcher); - $this->navigator->accept($object, null, $this->context); - } - - public function testNavigatorPassesNullOnDeserialization() - { - $class = __NAMESPACE__ . '\SerializableClass'; - $metadata = $this->metadataFactory->getMetadataForClass($class); - - $context = $this->context; - $exclusionStrategy = $this->getMockBuilder('JMS\Serializer\Exclusion\ExclusionStrategyInterface')->getMock(); - $exclusionStrategy->expects($this->once()) - ->method('shouldSkipClass') - ->with($metadata, $this->callback(function ($navigatorContext) use ($context) { - return $navigatorContext === $context; - })); - - $exclusionStrategy->expects($this->once()) - ->method('shouldSkipProperty') - ->with($metadata->propertyMetadata['foo'], $this->callback(function ($navigatorContext) use ($context) { - return $navigatorContext === $context; - })); - - $this->context->expects($this->once()) - ->method('getExclusionStrategy') - ->will($this->returnValue($exclusionStrategy)); - - $this->context->expects($this->any()) - ->method('getDirection') - ->will($this->returnValue(GraphNavigator::DIRECTION_DESERIALIZATION)); - - $this->context->expects($this->any()) - ->method('getVisitor') - ->will($this->returnValue($this->getMockBuilder('JMS\Serializer\VisitorInterface')->getMock())); - - $this->navigator = new GraphNavigator($this->metadataFactory, $this->handlerRegistry, $this->objectConstructor, $this->dispatcher); - $this->navigator->accept('random', array('name' => $class, 'params' => array()), $this->context); - } - - public function testNavigatorChangeTypeOnSerialization() - { - $object = new SerializableClass; - $typeName = 'JsonSerializable'; - - $this->dispatcher->addListener('serializer.pre_serialize', function ($event) use ($typeName) { - $type = $event->getType(); - $type['name'] = $typeName; - $event->setType($type['name'], $type['params']); - }); - - $this->handlerRegistry->registerSubscribingHandler(new TestSubscribingHandler()); - - $this->context->expects($this->any()) - ->method('getDirection') - ->will($this->returnValue(GraphNavigator::DIRECTION_SERIALIZATION)); - - $this->context->expects($this->any()) - ->method('getVisitor') - ->will($this->returnValue($this->getMockBuilder('JMS\Serializer\VisitorInterface')->getMock())); - - $this->navigator = new GraphNavigator($this->metadataFactory, $this->handlerRegistry, $this->objectConstructor, $this->dispatcher); - $this->navigator->accept($object, null, $this->context); - } - - protected function setUp() - { - $this->context = $this->getMockBuilder('JMS\Serializer\Context')->getMock(); - $this->dispatcher = new EventDispatcher(); - $this->handlerRegistry = new HandlerRegistry(); - $this->objectConstructor = new UnserializeObjectConstructor(); - - $this->metadataFactory = new MetadataFactory(new AnnotationDriver(new AnnotationReader())); - $this->navigator = new GraphNavigator($this->metadataFactory, $this->handlerRegistry, $this->objectConstructor, $this->dispatcher); - } -} - -class SerializableClass -{ - public $foo = 'bar'; -} - -class TestSubscribingHandler implements SubscribingHandlerInterface -{ - public static function getSubscribingMethods() - { - return array(array( - 'type' => 'JsonSerializable', - 'format' => 'foo', - 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, - 'method' => 'serialize' - )); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/JsonSerializationTest.php b/vendor/jms/serializer/tests/Serializer/JsonSerializationTest.php deleted file mode 100644 index 431955a..0000000 --- a/vendor/jms/serializer/tests/Serializer/JsonSerializationTest.php +++ /dev/null @@ -1,437 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use JMS\Serializer\Context; -use JMS\Serializer\EventDispatcher\Event; -use JMS\Serializer\EventDispatcher\EventSubscriberInterface; -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\SerializationContext; -use JMS\Serializer\Tests\Fixtures\Author; -use JMS\Serializer\Tests\Fixtures\AuthorList; -use JMS\Serializer\Tests\Fixtures\ObjectWithEmptyArrayAndHash; -use JMS\Serializer\Tests\Fixtures\ObjectWithInlineArray; -use JMS\Serializer\Tests\Fixtures\Tag; -use JMS\Serializer\VisitorInterface; - -class JsonSerializationTest extends BaseSerializationTest -{ - protected function getContent($key) - { - static $outputs = array(); - - if (!$outputs) { - $outputs['readonly'] = '{"id":123,"full_name":"Ruud Kamphuis"}'; - $outputs['string'] = '"foo"'; - $outputs['boolean_true'] = 'true'; - $outputs['boolean_false'] = 'false'; - $outputs['integer'] = '1'; - $outputs['float'] = '4.533'; - $outputs['float_trailing_zero'] = '1'; - $outputs['simple_object'] = '{"foo":"foo","moo":"bar","camel_case":"boo"}'; - $outputs['circular_reference'] = '{"collection":[{"name":"child1"},{"name":"child2"}],"another_collection":[{"name":"child1"},{"name":"child2"}]}'; - $outputs['array_strings'] = '["foo","bar"]'; - $outputs['array_booleans'] = '[true,false]'; - $outputs['array_integers'] = '[1,3,4]'; - $outputs['array_empty'] = '{"array":[]}'; - $outputs['array_floats'] = '[1.34,3,6.42]'; - $outputs['array_objects'] = '[{"foo":"foo","moo":"bar","camel_case":"boo"},{"foo":"baz","moo":"boo","camel_case":"boo"}]'; - $outputs['array_list_and_map_difference'] = '{"list":[1,2,3],"map":{"0":1,"2":2,"3":3}}'; - $outputs['array_mixed'] = '["foo",1,true,{"foo":"foo","moo":"bar","camel_case":"boo"},[1,3,true]]'; - $outputs['array_datetimes_object'] = '{"array_with_default_date_time":["2047-01-01T12:47:47+0000","2016-12-05T00:00:00+0000"],"array_with_formatted_date_time":["01.01.2047 12:47:47","05.12.2016 00:00:00"]}'; - $outputs['array_named_datetimes_object'] = '{"named_array_with_formatted_date":{"testdate1":"01.01.2047 12:47:47","testdate2":"05.12.2016 00:00:00"}}'; - $outputs['array_datetimes_object'] = '{"array_with_default_date_time":["2047-01-01T12:47:47+0000","2016-12-05T00:00:00+0000"],"array_with_formatted_date_time":["01.01.2047 12:47:47","05.12.2016 00:00:00"]}'; - $outputs['array_named_datetimes_object'] = '{"named_array_with_formatted_date":{"testdate1":"01.01.2047 12:47:47","testdate2":"05.12.2016 00:00:00"}}'; - $outputs['array_named_datetimeimmutables_object'] = '{"named_array_with_formatted_date":{"testdate1":"01.01.2047 12:47:47","testdate2":"05.12.2016 00:00:00"}}'; - $outputs['blog_post'] = '{"id":"what_a_nice_id","title":"This is a nice title.","created_at":"2011-07-30T00:00:00+0000","is_published":false,"is_reviewed":false,"etag":"1edf9bf60a32d89afbb85b2be849e3ceed5f5b10","comments":[{"author":{"full_name":"Foo Bar"},"text":"foo"}],"comments2":[{"author":{"full_name":"Foo Bar"},"text":"foo"}],"metadata":{"foo":"bar"},"author":{"full_name":"Foo Bar"},"publisher":{"pub_name":"Bar Foo"},"tag":[{"name":"tag1"},{"name":"tag2"}]}'; - $outputs['blog_post_unauthored'] = '{"id":"what_a_nice_id","title":"This is a nice title.","created_at":"2011-07-30T00:00:00+0000","is_published":false,"is_reviewed":false,"etag":"1edf9bf60a32d89afbb85b2be849e3ceed5f5b10","comments":[],"comments2":[],"metadata":{"foo":"bar"},"author":null,"publisher":null,"tag":null}'; - $outputs['price'] = '{"price":3}'; - $outputs['currency_aware_price'] = '{"currency":"EUR","amount":2.34}'; - $outputs['order'] = '{"cost":{"price":12.34}}'; - $outputs['order_with_currency_aware_price'] = '{"cost":{"currency":"EUR","amount":1.23}}'; - $outputs['log'] = '{"author_list":[{"full_name":"Johannes Schmitt"},{"full_name":"John Doe"}],"comments":[{"author":{"full_name":"Foo Bar"},"text":"foo"},{"author":{"full_name":"Foo Bar"},"text":"bar"},{"author":{"full_name":"Foo Bar"},"text":"baz"}]}'; - $outputs['lifecycle_callbacks'] = '{"name":"Foo Bar"}'; - $outputs['form_errors'] = '["This is the form error","Another error"]'; - $outputs['nested_form_errors'] = '{"errors":["This is the form error"],"children":{"bar":{"errors":["Error of the child form"]}}}'; - $outputs['constraint_violation'] = '{"property_path":"foo","message":"Message of violation"}'; - $outputs['constraint_violation_list'] = '[{"property_path":"foo","message":"Message of violation"},{"property_path":"bar","message":"Message of another violation"}]'; - $outputs['article'] = '{"custom":"serialized"}'; - $outputs['orm_proxy'] = '{"foo":"foo","moo":"bar","camel_case":"proxy-boo"}'; - $outputs['custom_accessor'] = '{"comments":{"Foo":{"comments":[{"author":{"full_name":"Foo"},"text":"foo"},{"author":{"full_name":"Foo"},"text":"bar"}],"count":2}}}'; - $outputs['mixed_access_types'] = '{"id":1,"name":"Johannes","read_only_property":42}'; - $outputs['accessor_order_child'] = '{"c":"c","d":"d","a":"a","b":"b"}'; - $outputs['accessor_order_parent'] = '{"a":"a","b":"b"}'; - $outputs['accessor_order_methods'] = '{"foo":"c","b":"b","a":"a"}'; - $outputs['inline'] = '{"c":"c","a":"a","b":"b","d":"d"}'; - $outputs['inline_child_empty'] = '{"c":"c","d":"d"}'; - $outputs['empty_child'] = '{"c":"c","d":"d","child":{}}'; - $outputs['empty_child_skip'] = '{"c":"c","d":"d"}'; - $outputs['groups_all'] = '{"foo":"foo","foobar":"foobar","bar":"bar","none":"none"}'; - $outputs['groups_foo'] = '{"foo":"foo","foobar":"foobar"}'; - $outputs['groups_foobar'] = '{"foo":"foo","foobar":"foobar","bar":"bar"}'; - $outputs['groups_default'] = '{"bar":"bar","none":"none"}'; - $outputs['groups_advanced'] = '{"name":"John","manager":{"name":"John Manager","friends":[{"nickname":"nickname"},{"nickname":"nickname"}]},"friends":[{"manager":{"name":"John friend 1 manager"}},{"manager":{"name":"John friend 2 manager"}}]}'; - $outputs['virtual_properties'] = '{"exist_field":"value","virtual_value":"value","test":"other-name","typed_virtual_property":1}'; - $outputs['virtual_properties_low'] = '{"low":1}'; - $outputs['virtual_properties_high'] = '{"high":8}'; - $outputs['virtual_properties_all'] = '{"low":1,"high":8}'; - $outputs['nullable'] = '{"foo":"bar","baz":null,"0":null}'; - $outputs['nullable_skip'] = '{"foo":"bar"}'; - $outputs['person_secret_show'] = '{"name":"mike","gender":"f"}'; - $outputs['person_secret_hide'] = '{"name":"mike"}'; - $outputs['null'] = 'null'; - $outputs['simple_object_nullable'] = '{"foo":"foo","moo":"bar","camel_case":"boo","null_property":null}'; - $outputs['input'] = '{"attributes":{"type":"text","name":"firstname","value":"Adrien"}}'; - $outputs['hash_empty'] = '{"hash":{}}'; - $outputs['object_when_null'] = '{"text":"foo"}'; - $outputs['object_when_null_and_serialized'] = '{"author":null,"text":"foo"}'; - $outputs['date_time'] = '"2011-08-30T00:00:00+0000"'; - $outputs['date_time_immutable'] = '"2011-08-30T00:00:00+0000"'; - $outputs['timestamp'] = '{"timestamp":1455148800}'; - $outputs['timestamp_prev'] = '{"timestamp":"1455148800"}'; - $outputs['date_interval'] = '"PT45M"'; - $outputs['car'] = '{"km":5,"type":"car"}'; - $outputs['car_without_type'] = '{"km":5}'; - $outputs['garage'] = '{"vehicles":[{"km":3,"type":"car"},{"km":1,"type":"moped"}]}'; - $outputs['tree'] = '{"tree":{"children":[{"children":[{"children":[],"foo":"bar"}],"foo":"bar"}],"foo":"bar"}}'; - $outputs['nullable_arrays'] = '{"empty_inline":[],"not_empty_inline":["not_empty_inline"],"empty_not_inline":[],"not_empty_not_inline":["not_empty_not_inline"],"empty_not_inline_skip":[],"not_empty_not_inline_skip":["not_empty_not_inline_skip"]}'; - $outputs['object_with_object_property_no_array_to_author'] = '{"foo": "bar", "author": "baz"}'; - $outputs['object_with_object_property'] = '{"foo": "bar", "author": {"full_name": "baz"}}'; - $outputs['author_expression'] = '{"my_first_name":"Ruud","last_name":"Kamphuis","id":123}'; - $outputs['maxdepth_skippabe_object'] = '{"a":{"xxx":"yyy"}}'; - } - - if (!isset($outputs[$key])) { - throw new RuntimeException(sprintf('The key "%s" is not supported.', $key)); - } - - return $outputs[$key]; - } - - public function testSkipEmptyArrayAndHash() - { - $object = new ObjectWithEmptyArrayAndHash(); - - $this->assertEquals('{}', $this->serialize($object)); - } - - public function testAddLinksToOutput() - { - $this->dispatcher->addListener('serializer.post_serialize', function (Event $event) { - $this->assertFalse($event->getVisitor()->hasData('_links')); - }, 'JMS\Serializer\Tests\Fixtures\Author', 'json'); - - $this->dispatcher->addSubscriber(new LinkAddingSubscriber()); - - $this->dispatcher->addListener('serializer.post_serialize', function (Event $event) { - $this->assertTrue($event->getVisitor()->hasData('_links')); - }, 'JMS\Serializer\Tests\Fixtures\Author', 'json'); - - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_SERIALIZATION, 'JMS\Serializer\Tests\Fixtures\AuthorList', 'json', - function (VisitorInterface $visitor, AuthorList $data, array $type, Context $context) { - return $visitor->visitArray(iterator_to_array($data), $type, $context); - } - ); - - $list = new AuthorList(); - $list->add(new Author('foo')); - $list->add(new Author('bar')); - - $this->assertEquals('[{"full_name":"foo","_links":{"details":"http:\/\/foo.bar\/details\/foo","comments":"http:\/\/foo.bar\/details\/foo\/comments"}},{"full_name":"bar","_links":{"details":"http:\/\/foo.bar\/details\/bar","comments":"http:\/\/foo.bar\/details\/bar\/comments"}}]', $this->serialize($list)); - } - - public function testReplaceNameInOutput() - { - $this->dispatcher->addSubscriber(new ReplaceNameSubscriber()); - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_SERIALIZATION, 'JMS\Serializer\Tests\Fixtures\AuthorList', 'json', - function (VisitorInterface $visitor, AuthorList $data, array $type, Context $context) { - return $visitor->visitArray(iterator_to_array($data), $type, $context); - } - ); - - $list = new AuthorList(); - $list->add(new Author('foo')); - $list->add(new Author('bar')); - - $this->assertEquals('[{"full_name":"new name"},{"full_name":"new name"}]', $this->serialize($list)); - } - - /** - * @expectedException RuntimeException - * @expectedExceptionMessage Invalid data "baz"(string), expected "JMS\Serializer\Tests\Fixtures\Author". - */ - public function testDeserializingObjectWithObjectPropertyWithNoArrayToObject() - { - $content = $this->getContent('object_with_object_property_no_array_to_author'); - $object = $this->deserialize($content, 'JMS\Serializer\Tests\Fixtures\ObjectWithObjectProperty'); - $this->assertEquals('bar', $object->getFoo()); - $this->assertInstanceOf('JMS\Serializer\Tests\Fixtures\Author', $object->getAuthor()); - } - - public function testDeserializingObjectWithObjectProperty() - { - $content = $this->getContent('object_with_object_property'); - $object = $this->deserialize($content, 'JMS\Serializer\Tests\Fixtures\ObjectWithObjectProperty'); - $this->assertEquals('bar', $object->getFoo()); - $this->assertInstanceOf('JMS\Serializer\Tests\Fixtures\Author', $object->getAuthor()); - $this->assertEquals('baz', $object->getAuthor()->getName()); - } - - public function getPrimitiveTypes() - { - return array( - array( - 'type' => 'boolean', - 'data' => true, - ), - array( - 'type' => 'boolean', - 'data' => 1, - ), - array( - 'type' => 'integer', - 'data' => 123, - ), - array( - 'type' => 'integer', - 'data' => "123", - ), - array( - 'type' => 'string', - 'data' => "hello", - ), - array( - 'type' => 'string', - 'data' => 123, - ), - array( - 'type' => 'double', - 'data' => 0.1234, - ), - array( - 'type' => 'double', - 'data' => "0.1234", - ), - ); - } - - /** - * @dataProvider getPrimitiveTypes - */ - public function testPrimitiveTypes($primitiveType, $data) - { - $visitor = $this->serializationVisitors->get('json')->get(); - $functionToCall = 'visit' . ucfirst($primitiveType); - $result = $visitor->$functionToCall($data, array(), $this->getMockBuilder('JMS\Serializer\Context')->getMock()); - if ($primitiveType == 'double') { - $primitiveType = 'float'; - } - $this->assertInternalType($primitiveType, $result); - } - - /** - * @group empty-object - */ - public function testSerializeEmptyObject() - { - $this->assertEquals('{}', $this->serialize(new Author(null))); - } - - /** - * @group encoding - * @expectedException RuntimeException - * @expectedExceptionMessage Your data could not be encoded because it contains invalid UTF8 characters. - */ - public function testSerializeWithNonUtf8EncodingWhenDisplayErrorsOff() - { - ini_set('display_errors', 1); - $this->serialize(array('foo' => 'bar', 'bar' => pack("H*", 'c32e'))); - } - - /** - * @group encoding - * @expectedException RuntimeException - * @expectedExceptionMessage Your data could not be encoded because it contains invalid UTF8 characters. - */ - public function testSerializeWithNonUtf8EncodingWhenDisplayErrorsOn() - { - ini_set('display_errors', 0); - $this->serialize(array('foo' => 'bar', 'bar' => pack("H*", 'c32e'))); - } - - public function testSerializeArrayWithEmptyObject() - { - $this->assertEquals('[{}]', $this->serialize(array(new \stdClass()))); - } - - public function testInlineArray() - { - $object = new ObjectWithInlineArray(['a' => 'b', 'c' => 'd']); - - $this->assertEquals('{"a":"b","c":"d"}', $this->serialize($object)); - } - - public function testSerializeRootArrayWithDefinedKeys() - { - $author1 = new Author("Jim"); - $author2 = new Author("Mark"); - - $data = array( - 'jim' => $author1, - 'mark' => $author2, - ); - - $this->assertEquals('{"jim":{"full_name":"Jim"},"mark":{"full_name":"Mark"}}', $this->serializer->serialize($data, $this->getFormat(), SerializationContext::create()->setInitialType('array'))); - $this->assertEquals('[{"full_name":"Jim"},{"full_name":"Mark"}]', $this->serializer->serialize($data, $this->getFormat(), SerializationContext::create()->setInitialType('array'))); - $this->assertEquals('{"jim":{"full_name":"Jim"},"mark":{"full_name":"Mark"}}', $this->serializer->serialize($data, $this->getFormat(), SerializationContext::create()->setInitialType('array'))); - - $data = array( - $author1, - $author2, - ); - $this->assertEquals('[{"full_name":"Jim"},{"full_name":"Mark"}]', $this->serializer->serialize($data, $this->getFormat(), SerializationContext::create()->setInitialType('array'))); - $this->assertEquals('{"0":{"full_name":"Jim"},"1":{"full_name":"Mark"}}', $this->serializer->serialize($data, $this->getFormat(), SerializationContext::create()->setInitialType('array'))); - $this->assertEquals('{"0":{"full_name":"Jim"},"1":{"full_name":"Mark"}}', $this->serializer->serialize($data, $this->getFormat(), SerializationContext::create()->setInitialType('array'))); - } - - public function getTypeHintedArrays() - { - return [ - - [[1, 2], '[1,2]', null], - [['a', 'b'], '["a","b"]', null], - [['a' => 'a', 'b' => 'b'], '{"a":"a","b":"b"}', null], - - [[], '[]', null], - [[], '[]', SerializationContext::create()->setInitialType('array')], - [[], '[]', SerializationContext::create()->setInitialType('array')], - [[], '{}', SerializationContext::create()->setInitialType('array')], - - - [[1, 2], '[1,2]', SerializationContext::create()->setInitialType('array')], - [[1 => 1, 2 => 2], '{"1":1,"2":2}', SerializationContext::create()->setInitialType('array')], - [[1 => 1, 2 => 2], '[1,2]', SerializationContext::create()->setInitialType('array')], - [['a', 'b'], '["a","b"]', SerializationContext::create()->setInitialType('array')], - - [[1 => 'a', 2 => 'b'], '["a","b"]', SerializationContext::create()->setInitialType('array')], - [['a' => 'a', 'b' => 'b'], '["a","b"]', SerializationContext::create()->setInitialType('array')], - - - [[1, 2], '{"0":1,"1":2}', SerializationContext::create()->setInitialType('array')], - [[1, 2], '{"0":1,"1":2}', SerializationContext::create()->setInitialType('array')], - [[1, 2], '{"0":"1","1":"2"}', SerializationContext::create()->setInitialType('array')], - - - [['a', 'b'], '{"0":"a","1":"b"}', SerializationContext::create()->setInitialType('array')], - [['a' => 'a', 'b' => 'b'], '{"a":"a","b":"b"}', SerializationContext::create()->setInitialType('array')], - ]; - } - - /** - * @dataProvider getTypeHintedArrays - * @param array $array - * @param string $expected - * @param SerializationContext|null $context - */ - public function testTypeHintedArraySerialization(array $array, $expected, $context = null) - { - $this->assertEquals($expected, $this->serialize($array, $context)); - } - - public function getTypeHintedArraysAndStdClass() - { - $c1 = new \stdClass(); - $c2 = new \stdClass(); - $c2->foo = 'bar'; - - $tag = new Tag("tag"); - - $c3 = new \stdClass(); - $c3->foo = $tag; - - return [ - - [[$c1], '[{}]', SerializationContext::create()->setInitialType('array')], - - [[$c2], '[{"foo":"bar"}]', SerializationContext::create()->setInitialType('array')], - - [[$tag], '[{"name":"tag"}]', SerializationContext::create()->setInitialType('array')], - - [[$c1], '{"0":{}}', SerializationContext::create()->setInitialType('array')], - [[$c2], '{"0":{"foo":"bar"}}', SerializationContext::create()->setInitialType('array')], - - [[$c3], '{"0":{"foo":{"name":"tag"}}}', SerializationContext::create()->setInitialType('array')], - [[$c3], '[{"foo":{"name":"tag"}}]', SerializationContext::create()->setInitialType('array')], - - [[$tag], '{"0":{"name":"tag"}}', SerializationContext::create()->setInitialType('array')], - ]; - } - - /** - * @dataProvider getTypeHintedArraysAndStdClass - * @param array $array - * @param string $expected - * @param SerializationContext|null $context - */ - public function testTypeHintedArrayAndStdClassSerialization(array $array, $expected, $context = null) - { - $this->assertEquals($expected, $this->serialize($array, $context)); - } - - protected function getFormat() - { - return 'json'; - } -} - -class LinkAddingSubscriber implements EventSubscriberInterface -{ - public function onPostSerialize(Event $event) - { - $author = $event->getObject(); - - $event->getVisitor()->addData('_links', array( - 'details' => 'http://foo.bar/details/' . $author->getName(), - 'comments' => 'http://foo.bar/details/' . $author->getName() . '/comments', - )); - } - - public static function getSubscribedEvents() - { - return array( - array('event' => 'serializer.post_serialize', 'method' => 'onPostSerialize', 'format' => 'json', 'class' => 'JMS\Serializer\Tests\Fixtures\Author'), - ); - } -} - -class ReplaceNameSubscriber implements EventSubscriberInterface -{ - public function onPostSerialize(Event $event) - { - $event->getVisitor()->setData('full_name', 'new name'); - } - - public static function getSubscribedEvents() - { - return array( - array('event' => 'serializer.post_serialize', 'method' => 'onPostSerialize', 'format' => 'json', 'class' => 'JMS\Serializer\Tests\Fixtures\Author'), - ); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/Naming/IdenticalPropertyNamingStrategyTest.php b/vendor/jms/serializer/tests/Serializer/Naming/IdenticalPropertyNamingStrategyTest.php deleted file mode 100644 index b36cb31..0000000 --- a/vendor/jms/serializer/tests/Serializer/Naming/IdenticalPropertyNamingStrategyTest.php +++ /dev/null @@ -1,45 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer\Naming; - -use JMS\Serializer\Naming\IdenticalPropertyNamingStrategy; - -class IdenticalPropertyNamingStrategyTest extends \PHPUnit_Framework_TestCase -{ - public function providePropertyNames() - { - return array( - array('createdAt'), - array('my_field'), - array('identical') - ); - } - - /** - * @dataProvider providePropertyNames - */ - public function testTranslateName($propertyName) - { - $mockProperty = $this->getMockBuilder('JMS\Serializer\Metadata\PropertyMetadata')->disableOriginalConstructor()->getMock(); - $mockProperty->name = $propertyName; - - $strategy = new IdenticalPropertyNamingStrategy(); - $this->assertEquals($propertyName, $strategy->translateName($mockProperty)); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/SerializationContextFactoryTest.php b/vendor/jms/serializer/tests/Serializer/SerializationContextFactoryTest.php deleted file mode 100644 index c9f1af0..0000000 --- a/vendor/jms/serializer/tests/Serializer/SerializationContextFactoryTest.php +++ /dev/null @@ -1,123 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use Doctrine\Common\Annotations\AnnotationReader; -use JMS\Serializer\Construction\UnserializeObjectConstructor; -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\Handler\HandlerRegistry; -use JMS\Serializer\JsonDeserializationVisitor; -use JMS\Serializer\JsonSerializationVisitor; -use JMS\Serializer\Metadata\Driver\AnnotationDriver; -use JMS\Serializer\Naming\CamelCaseNamingStrategy; -use JMS\Serializer\Naming\SerializedNameAnnotationStrategy; -use JMS\Serializer\SerializationContext; -use JMS\Serializer\Serializer; -use Metadata\MetadataFactory; -use PhpCollection\Map; - -class SerializationContextFactoryTest extends \PHPUnit_Framework_TestCase -{ - protected $serializer; - - public function setUp() - { - parent::setUp(); - - $namingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy()); - - $this->serializer = new Serializer( - new MetadataFactory(new AnnotationDriver(new AnnotationReader())), - new HandlerRegistry(), - new UnserializeObjectConstructor(), - new Map(array('json' => new JsonSerializationVisitor($namingStrategy))), - new Map(array('json' => new JsonDeserializationVisitor($namingStrategy))) - ); - } - - public function testSerializeUseProvidedSerializationContext() - { - $contextFactoryMock = $this->getMockForAbstractClass('JMS\\Serializer\\ContextFactory\\SerializationContextFactoryInterface'); - $context = new SerializationContext(); - $context->setSerializeNull(true); - - $contextFactoryMock - ->expects($this->once()) - ->method('createSerializationContext') - ->will($this->returnValue($context)); - - $this->serializer->setSerializationContextFactory($contextFactoryMock); - - $result = $this->serializer->serialize(array('value' => null), 'json'); - - $this->assertEquals('{"value":null}', $result); - } - - public function testDeserializeUseProvidedDeserializationContext() - { - $contextFactoryMock = $this->getMockForAbstractClass('JMS\\Serializer\\ContextFactory\\DeserializationContextFactoryInterface'); - $context = new DeserializationContext(); - - $contextFactoryMock - ->expects($this->once()) - ->method('createDeserializationContext') - ->will($this->returnValue($context)); - - $this->serializer->setDeserializationContextFactory($contextFactoryMock); - - $result = $this->serializer->deserialize('{"value":null}', 'array', 'json'); - - $this->assertEquals(array('value' => null), $result); - } - - public function testToArrayUseProvidedSerializationContext() - { - $contextFactoryMock = $this->getMockForAbstractClass('JMS\\Serializer\\ContextFactory\\SerializationContextFactoryInterface'); - $context = new SerializationContext(); - $context->setSerializeNull(true); - - $contextFactoryMock - ->expects($this->once()) - ->method('createSerializationContext') - ->will($this->returnValue($context)); - - $this->serializer->setSerializationContextFactory($contextFactoryMock); - - $result = $this->serializer->toArray(array('value' => null)); - - $this->assertEquals(array('value' => null), $result); - } - - public function testFromArrayUseProvidedDeserializationContext() - { - $contextFactoryMock = $this->getMockForAbstractClass('JMS\\Serializer\\ContextFactory\\DeserializationContextFactoryInterface'); - $context = new DeserializationContext(); - - $contextFactoryMock - ->expects($this->once()) - ->method('createDeserializationContext') - ->will($this->returnValue($context)); - - $this->serializer->setDeserializationContextFactory($contextFactoryMock); - - $result = $this->serializer->fromArray(array('value' => null), 'array'); - - $this->assertEquals(array('value' => null), $result); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/TypeParserTest.php b/vendor/jms/serializer/tests/Serializer/TypeParserTest.php deleted file mode 100644 index 1572c25..0000000 --- a/vendor/jms/serializer/tests/Serializer/TypeParserTest.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use JMS\Serializer\TypeParser; - -class TypeParserTest extends \PHPUnit_Framework_TestCase -{ - private $parser; - - /** - * @dataProvider getTypes - */ - public function testParse($type, $name, array $params = array()) - { - $this->assertEquals(array('name' => $name, 'params' => $params), $this->parser->parse($type)); - } - - public function getTypes() - { - $types = array(); - $types[] = array('string', 'string'); - $types[] = array('array', 'array', array(array('name' => 'Foo', 'params' => array()))); - $types[] = array('array', 'array', array(array('name' => 'Foo', 'params' => array()), array('name' => 'Bar', 'params' => array()))); - $types[] = array('array', 'array', array(array('name' => 'Foo\Bar', 'params' => array()), array('name' => 'Baz\Boo', 'params' => array()))); - $types[] = array('a,e>', 'a', array(array('name' => 'b', 'params' => array(array('name' => 'c', 'params' => array()), array('name' => 'd', 'params' => array()))), array('name' => 'e', 'params' => array()))); - $types[] = array('Foo', 'Foo'); - $types[] = array('Foo\Bar', 'Foo\Bar'); - $types[] = array('Foo<"asdf asdf">', 'Foo', array('asdf asdf')); - - return $types; - } - - /** - * @expectedException \JMS\Parser\SyntaxErrorException - * @expectedExceptionMessage Expected T_CLOSE_BRACKET, but got end of input. - */ - public function testParamTypeMustEndWithBracket() - { - $this->parser->parse('Fooparser->parse(','); - } - - /** - * @expectedException \JMS\Parser\SyntaxErrorException - * @expectedExceptionMessage Expected any of T_NAME or T_STRING, but got ">" of type T_CLOSE_BRACKET at position 4 (0-based). - */ - public function testEmptyParams() - { - $this->parser->parse('Foo<>'); - } - - /** - * @expectedException \JMS\Parser\SyntaxErrorException - * @expectedExceptionMessage Expected any of T_NAME or T_STRING, but got ">" of type T_CLOSE_BRACKET at position 7 (0-based). - */ - public function testNoTrailingComma() - { - $this->parser->parse('Foo'); - } - - /** - * @expectedException \JMS\Parser\SyntaxErrorException - * @expectedExceptionMessage Expected any of T_NAME or T_STRING, but got "\" of type T_NONE at position 4 (0-based). - */ - public function testLeadingBackslash() - { - $this->parser->parse('Foo<\Bar>'); - } - - protected function setUp() - { - $this->parser = new TypeParser(); - } -} diff --git a/vendor/jms/serializer/tests/Serializer/XmlSerializationTest.php b/vendor/jms/serializer/tests/Serializer/XmlSerializationTest.php deleted file mode 100644 index 49071f2..0000000 --- a/vendor/jms/serializer/tests/Serializer/XmlSerializationTest.php +++ /dev/null @@ -1,581 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use JMS\Serializer\Construction\UnserializeObjectConstructor; -use JMS\Serializer\Context; -use JMS\Serializer\Exception\InvalidArgumentException; -use JMS\Serializer\GraphNavigator; -use JMS\Serializer\Handler\DateHandler; -use JMS\Serializer\Handler\HandlerRegistry; -use JMS\Serializer\Metadata\StaticPropertyMetadata; -use JMS\Serializer\Naming\CamelCaseNamingStrategy; -use JMS\Serializer\Naming\PropertyNamingStrategyInterface; -use JMS\Serializer\Naming\SerializedNameAnnotationStrategy; -use JMS\Serializer\SerializationContext; -use JMS\Serializer\Serializer; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlAttributeDiscriminatorChild; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlAttributeDiscriminatorParent; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNamespaceDiscriminatorChild; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNamespaceDiscriminatorParent; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNotCDataDiscriminatorChild; -use JMS\Serializer\Tests\Fixtures\Discriminator\ObjectWithXmlNotCDataDiscriminatorParent; -use JMS\Serializer\Tests\Fixtures\Input; -use JMS\Serializer\Tests\Fixtures\InvalidUsageOfXmlValue; -use JMS\Serializer\Tests\Fixtures\ObjectWithNamespacesAndList; -use JMS\Serializer\Tests\Fixtures\ObjectWithNamespacesAndNestedList; -use JMS\Serializer\Tests\Fixtures\ObjectWithToString; -use JMS\Serializer\Tests\Fixtures\ObjectWithVirtualXmlProperties; -use JMS\Serializer\Tests\Fixtures\ObjectWithXmlKeyValuePairs; -use JMS\Serializer\Tests\Fixtures\ObjectWithXmlKeyValuePairsWithObjectType; -use JMS\Serializer\Tests\Fixtures\ObjectWithXmlKeyValuePairsWithType; -use JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespaces; -use JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespacesAndObjectProperty; -use JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespacesAndObjectPropertyAuthor; -use JMS\Serializer\Tests\Fixtures\ObjectWithXmlNamespacesAndObjectPropertyVirtual; -use JMS\Serializer\Tests\Fixtures\ObjectWithXmlRootNamespace; -use JMS\Serializer\Tests\Fixtures\Person; -use JMS\Serializer\Tests\Fixtures\PersonCollection; -use JMS\Serializer\Tests\Fixtures\PersonLocation; -use JMS\Serializer\Tests\Fixtures\SimpleClassObject; -use JMS\Serializer\Tests\Fixtures\SimpleObject; -use JMS\Serializer\Tests\Fixtures\SimpleSubClassObject; -use JMS\Serializer\XmlDeserializationVisitor; -use JMS\Serializer\XmlSerializationVisitor; -use PhpCollection\Map; - -class XmlSerializationTest extends BaseSerializationTest -{ - /** - * @expectedException JMS\Serializer\Exception\RuntimeException - */ - public function testInvalidUsageOfXmlValue() - { - $obj = new InvalidUsageOfXmlValue(); - $this->serialize($obj); - } - - - /** - * @dataProvider getXMLBooleans - */ - public function testXMLBooleans($xmlBoolean, $boolean) - { - if ($this->hasDeserializer()) { - $this->assertSame($boolean, $this->deserialize('' . $xmlBoolean . '', 'boolean')); - } - } - - public function getXMLBooleans() - { - return array(array('true', true), array('false', false), array('1', true), array('0', false)); - } - - public function testAccessorSetterDeserialization() - { - /** @var \JMS\Serializer\Tests\Fixtures\AccessorSetter $object */ - $object = $this->deserialize(' - - element - - collectionEntry - - ', - 'JMS\Serializer\Tests\Fixtures\AccessorSetter' - ); - - $this->assertInstanceOf('stdClass', $object->getElement()); - $this->assertInstanceOf('JMS\Serializer\Tests\Fixtures\AccessorSetterElement', $object->getElement()->element); - $this->assertEquals('attribute-different', $object->getElement()->element->getAttribute()); - $this->assertEquals('element-different', $object->getElement()->element->getElement()); - $this->assertEquals(['collectionEntry' => 'collectionEntry'], $object->getCollection()); - } - - public function testPropertyIsObjectWithAttributeAndValue() - { - $personCollection = new PersonLocation; - $person = new Person; - $person->name = 'Matthias Noback'; - $person->age = 28; - $personCollection->person = $person; - $personCollection->location = 'The Netherlands'; - - $this->assertEquals($this->getContent('person_location'), $this->serialize($personCollection)); - } - - public function testPropertyIsCollectionOfObjectsWithAttributeAndValue() - { - $personCollection = new PersonCollection; - $person = new Person; - $person->name = 'Matthias Noback'; - $person->age = 28; - $personCollection->persons->add($person); - $personCollection->location = 'The Netherlands'; - - $this->assertEquals($this->getContent('person_collection'), $this->serialize($personCollection)); - } - - /** - * @expectedException JMS\Serializer\Exception\InvalidArgumentException - * @expectedExceptionMessage The document type "]>" is not allowed. If it is safe, you may add it to the whitelist configuration. - */ - public function testExternalEntitiesAreDisabledByDefault() - { - $this->deserialize(' - - ]> - - &foo; - ', 'stdClass'); - } - - /** - * @expectedException JMS\Serializer\Exception\InvalidArgumentException - * @expectedExceptionMessage The document type "" is not allowed. If it is safe, you may add it to the whitelist configuration. - */ - public function testDocumentTypesAreNotAllowed() - { - $this->deserialize('', 'stdClass'); - } - - public function testWhitelistedDocumentTypesAreAllowed() - { - $this->deserializationVisitors->get('xml')->get()->setDoctypeWhitelist(array( - '', - ']>')); - - $this->serializer->deserialize(' - - ', 'stdClass', 'xml'); - - $this->serializer->deserialize(' - - ]> - ', 'stdClass', 'xml'); - } - - public function testVirtualAttributes() - { - $this->assertEquals( - $this->getContent('virtual_attributes'), - $this->serialize(new ObjectWithVirtualXmlProperties(), SerializationContext::create()->setGroups(array('attributes'))) - ); - } - - public function testVirtualValues() - { - $this->assertEquals( - $this->getContent('virtual_values'), - $this->serialize(new ObjectWithVirtualXmlProperties(), SerializationContext::create()->setGroups(array('values'))) - ); - } - - public function testVirtualXmlList() - { - $this->assertEquals( - $this->getContent('virtual_properties_list'), - $this->serialize(new ObjectWithVirtualXmlProperties(), SerializationContext::create()->setGroups(array('list'))) - ); - } - - public function testVirtualXmlMap() - { - $this->assertEquals( - $this->getContent('virtual_properties_map'), - $this->serialize(new ObjectWithVirtualXmlProperties(), SerializationContext::create()->setGroups(array('map'))) - ); - } - - public function testUnserializeMissingArray() - { - $xml = ''; - $object = $this->serializer->deserialize($xml, 'JMS\Serializer\Tests\Fixtures\ObjectWithAbsentXmlListNode', 'xml'); - $this->assertEquals($object->absentAndNs, array()); - - $xml = ' - - foo - - '; - $object = $this->serializer->deserialize($xml, 'JMS\Serializer\Tests\Fixtures\ObjectWithAbsentXmlListNode', 'xml'); - $this->assertEquals($object->absentAndNs, array("foo")); - } - - public function testObjectWithNamespacesAndList() - { - $object = new ObjectWithNamespacesAndList(); - $object->name = 'name'; - $object->nameAlternativeB = 'nameB'; - - $object->phones = array('111', '222'); - $object->addresses = array('A' => 'Street 1', 'B' => 'Street 2'); - - $object->phonesAlternativeB = array('555', '666'); - $object->addressesAlternativeB = array('A' => 'Street 5', 'B' => 'Street 6'); - - $object->phonesAlternativeC = array('777', '888'); - $object->addressesAlternativeC = array('A' => 'Street 7', 'B' => 'Street 8'); - - $object->phonesAlternativeD = array('999', 'AAA'); - $object->addressesAlternativeD = array('A' => 'Street 9', 'B' => 'Street A'); - - $this->assertEquals( - $this->getContent('object_with_namespaces_and_list'), - $this->serialize($object, SerializationContext::create()) - ); - $this->assertEquals( - $object, - $this->deserialize($this->getContent('object_with_namespaces_and_list'), get_class($object)) - ); - } - - public function testObjectWithNamespaceAndNestedList() - { - $object = new ObjectWithNamespacesAndNestedList(); - $personCollection = new PersonCollection(); - $personA = new Person(); - $personA->age = 11; - $personA->name = 'AAA'; - - $personB = new Person(); - $personB->age = 22; - $personB->name = 'BBB'; - - $personCollection->persons->add($personA); - $personCollection->persons->add($personB); - - $object->personCollection = $personCollection; - - $this->assertEquals( - $this->getContent('object_with_namespaces_and_nested_list'), - $this->serialize($object, SerializationContext::create()) - ); - $this->assertEquals( - $object, - $this->deserialize($this->getContent('object_with_namespaces_and_nested_list'), get_class($object)) - ); - } - - public function testArrayKeyValues() - { - $this->assertEquals($this->getContent('array_key_values'), $this->serializer->serialize(new ObjectWithXmlKeyValuePairs(), 'xml')); - } - - public function testDeserializeArrayKeyValues() - { - $xml = $this->getContent('array_key_values_with_type_1'); - $result = $this->serializer->deserialize($xml, ObjectWithXmlKeyValuePairsWithType::class, 'xml'); - - $this->assertInstanceOf(ObjectWithXmlKeyValuePairsWithType::class, $result); - $this->assertEquals(ObjectWithXmlKeyValuePairsWithType::create1(), $result); - - $xml2 = $this->getContent('array_key_values_with_type_2'); - $result2 = $this->serializer->deserialize($xml2, ObjectWithXmlKeyValuePairsWithType::class, 'xml'); - - $this->assertInstanceOf(ObjectWithXmlKeyValuePairsWithType::class, $result2); - $this->assertEquals(ObjectWithXmlKeyValuePairsWithType::create2(), $result2); - } - - public function testDeserializeTypedAndNestedArrayKeyValues() - { - $xml = $this->getContent('array_key_values_with_nested_type'); - $result = $this->serializer->deserialize($xml, ObjectWithXmlKeyValuePairsWithObjectType::class, 'xml'); - - $this->assertInstanceOf(ObjectWithXmlKeyValuePairsWithObjectType::class, $result); - $this->assertEquals(ObjectWithXmlKeyValuePairsWithObjectType::create1(), $result); - } - - /** - * @dataProvider getDateTime - * @group datetime - */ - public function testDateTimeNoCData($key, $value, $type) - { - $handlerRegistry = new HandlerRegistry(); - $handlerRegistry->registerSubscribingHandler(new DateHandler(\DateTime::ISO8601, 'UTC', false)); - $objectConstructor = new UnserializeObjectConstructor(); - - $serializer = new Serializer($this->factory, $handlerRegistry, $objectConstructor, $this->serializationVisitors, $this->deserializationVisitors); - - $this->assertEquals($this->getContent($key . '_no_cdata'), $serializer->serialize($value, $this->getFormat())); - } - - /** - * @dataProvider getDateTimeImmutable - * @group datetime - */ - public function testDateTimeImmutableNoCData($key, $value, $type) - { - $handlerRegistry = new HandlerRegistry(); - $handlerRegistry->registerSubscribingHandler(new DateHandler(\DateTime::ISO8601, 'UTC', false)); - $objectConstructor = new UnserializeObjectConstructor(); - - $serializer = new Serializer($this->factory, $handlerRegistry, $objectConstructor, $this->serializationVisitors, $this->deserializationVisitors); - - $this->assertEquals($this->getContent($key . '_no_cdata'), $serializer->serialize($value, $this->getFormat())); - } - - /** - * @expectedException JMS\Serializer\Exception\RuntimeException - * @expectedExceptionMessage Unsupported value type for XML attribute map. Expected array but got object - */ - public function testXmlAttributeMapWithoutArray() - { - $attributes = new \ArrayObject(array( - 'type' => 'text', - )); - - $this->serializer->serialize(new Input($attributes), $this->getFormat()); - } - - public function testObjectWithOnlyNamespacesAndList() - { - $object = new ObjectWithNamespacesAndList(); - - $object->phones = array(); - $object->addresses = array(); - - $object->phonesAlternativeB = array(); - $object->addressesAlternativeB = array(); - - $object->phonesAlternativeC = array('777', '888'); - $object->addressesAlternativeC = array('A' => 'Street 7', 'B' => 'Street 8'); - - $object->phonesAlternativeD = array(); - $object->addressesAlternativeD = array(); - - $this->assertEquals( - $this->getContent('object_with_only_namespaces_and_list'), - $this->serialize($object, SerializationContext::create()) - ); - - $deserialized = $this->deserialize($this->getContent('object_with_only_namespaces_and_list'), get_class($object)); - $this->assertEquals($object, $deserialized); - } - - public function testDeserializingNull() - { - $this->markTestSkipped('Not supported in XML.'); - } - - public function testDeserializeWithObjectWithToStringMethod() - { - $input = new ObjectWithToString($this->getContent('simple_object')); - - $object = $this->deserialize($input, SimpleObject::class); - - $this->assertInstanceOf(SimpleObject::class, $object); - } - - public function testObjectWithXmlNamespaces() - { - $object = new ObjectWithXmlNamespaces('This is a nice title.', 'Foo Bar', new \DateTime('2011-07-30 00:00', new \DateTimeZone('UTC')), 'en'); - - $serialized = $this->serialize($object); - $this->assertEquals($this->getContent('object_with_xml_namespaces'), $this->serialize($object)); - - $xml = simplexml_load_string($this->serialize($object)); - $xml->registerXPathNamespace('ns1', "http://purl.org/dc/elements/1.1/"); - $xml->registerXPathNamespace('ns2', "http://schemas.google.com/g/2005"); - $xml->registerXPathNamespace('ns3', "http://www.w3.org/2005/Atom"); - - $this->assertEquals('2011-07-30T00:00:00+0000', $this->xpathFirstToString($xml, './@created_at')); - $this->assertEquals('1edf9bf60a32d89afbb85b2be849e3ceed5f5b10', $this->xpathFirstToString($xml, './@ns2:etag')); - $this->assertEquals('en', $this->xpathFirstToString($xml, './@ns1:language')); - $this->assertEquals('This is a nice title.', $this->xpathFirstToString($xml, './ns1:title')); - $this->assertEquals('Foo Bar', $this->xpathFirstToString($xml, './ns3:author')); - - $deserialized = $this->deserialize($this->getContent('object_with_xml_namespacesalias'), get_class($object)); - $this->assertEquals('2011-07-30T00:00:00+0000', $this->getField($deserialized, 'createdAt')->format(\DateTime::ISO8601)); - $this->assertAttributeEquals('This is a nice title.', 'title', $deserialized); - $this->assertAttributeSame('1edf9bf60a32d89afbb85b2be849e3ceed5f5b10', 'etag', $deserialized); - $this->assertAttributeSame('en', 'language', $deserialized); - $this->assertAttributeEquals('Foo Bar', 'author', $deserialized); - - } - - public function testObjectWithXmlNamespacesAndBackReferencedNamespaces() - { - $author = new ObjectWithXmlNamespacesAndObjectPropertyAuthor('mr', 'smith'); - $object = new ObjectWithXmlNamespacesAndObjectProperty('This is a nice title.', $author); - - $serialized = $this->serialize($object); - $this->assertEquals($this->getContent('object_with_xml_namespaces_and_object_property'), $serialized); - } - - public function testObjectWithXmlNamespacesAndBackReferencedNamespacesWithListeners() - { - $author = new ObjectWithXmlNamespacesAndObjectPropertyAuthor('mr', 'smith'); - $object = new ObjectWithXmlNamespacesAndObjectPropertyVirtual('This is a nice title.', new \stdClass()); - - $this->handlerRegistry->registerHandler(GraphNavigator::DIRECTION_SERIALIZATION, 'ObjectWithXmlNamespacesAndObjectPropertyAuthorVirtual', $this->getFormat(), - function (XmlSerializationVisitor $visitor, $data, $type, Context $context) use ($author) { - $factory = $context->getMetadataFactory(get_class($author)); - $classMetadata = $factory->getMetadataForClass(get_class($author)); - - $metadata = new StaticPropertyMetadata(get_class($author), 'foo', $author); - $metadata->xmlNamespace = $classMetadata->xmlRootNamespace; - $metadata->xmlNamespace = $classMetadata->xmlRootNamespace; - - $visitor->visitProperty($metadata, $author, $context); - } - ); - - $serialized = $this->serialize($object); - $this->assertEquals($this->getContent('object_with_xml_namespaces_and_object_property_virtual'), $serialized); - } - - public function testObjectWithXmlRootNamespace() - { - $object = new ObjectWithXmlRootNamespace('This is a nice title.', 'Foo Bar', new \DateTime('2011-07-30 00:00', new \DateTimeZone('UTC')), 'en'); - $this->assertEquals($this->getContent('object_with_xml_root_namespace'), $this->serialize($object)); - } - - public function testXmlNamespacesInheritance() - { - $object = new SimpleClassObject(); - $object->foo = 'foo'; - $object->bar = 'bar'; - $object->moo = 'moo'; - - $this->assertEquals($this->getContent('simple_class_object'), $this->serialize($object)); - - $childObject = new SimpleSubClassObject(); - $childObject->foo = 'foo'; - $childObject->bar = 'bar'; - $childObject->moo = 'moo'; - $childObject->baz = 'baz'; - $childObject->qux = 'qux'; - - $this->assertEquals($this->getContent('simple_subclass_object'), $this->serialize($childObject)); - } - - public function testWithoutFormatedOutputByXmlSerializationVisitor() - { - $namingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy()); - $xmlVisitor = new XmlSerializationVisitor($namingStrategy); - $xmlVisitor->setFormatOutput(false); - - $visitors = new Map(array( - 'xml' => new XmlSerializationVisitor($namingStrategy), - )); - - $serializer = new Serializer( - $this->factory, - $this->handlerRegistry, - new UnserializeObjectConstructor(), - $visitors, - $this->deserializationVisitors, - $this->dispatcher - ); - - $object = new SimpleClassObject; - $object->foo = 'foo'; - $object->bar = 'bar'; - $object->moo = 'moo'; - - $stringXml = $serializer->serialize($object, $this->getFormat()); - $this->assertXmlStringEqualsXmlString($this->getContent('simple_class_object_minified'), $stringXml); - } - - public function testDiscriminatorAsXmlAttribute() - { - $xml = $this->serialize(new ObjectWithXmlAttributeDiscriminatorChild()); - $this->assertEquals($this->getContent('xml_discriminator_attribute'), $xml); - $this->assertInstanceOf( - ObjectWithXmlAttributeDiscriminatorChild::class, - $this->deserialize( - $xml, - ObjectWithXmlAttributeDiscriminatorParent::class - ) - ); - } - - public function testDiscriminatorAsNotCData() - { - $xml = $this->serialize(new ObjectWithXmlNotCDataDiscriminatorChild()); - $this->assertEquals($this->getContent('xml_discriminator_not_cdata'), $xml); - $this->assertInstanceOf( - ObjectWithXmlNotCDataDiscriminatorChild::class, - $this->deserialize( - $xml, - ObjectWithXmlNotCDataDiscriminatorParent::class - ) - ); - } - - public function testDiscriminatorWithNamespace() - { - $xml = $this->serialize(new ObjectWithXmlNamespaceDiscriminatorChild()); - $this->assertEquals($this->getContent('xml_discriminator_namespace'), $xml); - - $this->assertInstanceOf( - ObjectWithXmlNamespaceDiscriminatorChild::class, - $this->deserialize( - $xml, - ObjectWithXmlNamespaceDiscriminatorParent::class - ) - ); - } - - /** - * @expectedException \JMS\Serializer\Exception\XmlErrorException - */ - public function testDeserializeEmptyString() - { - $this->deserialize('', 'stdClass'); - } - - public function testEvaluatesToNull() - { - $namingStrategy = $this->getMockBuilder(PropertyNamingStrategyInterface::class)->getMock(); - $visitor = new XmlDeserializationVisitor($namingStrategy); - $xsdNilAsTrueElement = simplexml_load_string(''); - $xsdNilAsOneElement = simplexml_load_string(''); - - $this->assertTrue($visitor->isNull($xsdNilAsTrueElement)); - $this->assertTrue($visitor->isNull($xsdNilAsOneElement)); - $this->assertTrue($visitor->isNull(null)); - } - - private function xpathFirstToString(\SimpleXMLElement $xml, $xpath) - { - $nodes = $xml->xpath($xpath); - return (string)reset($nodes); - } - - /** - * @param string $key - */ - protected function getContent($key) - { - if (!file_exists($file = __DIR__ . '/xml/' . $key . '.xml')) { - throw new InvalidArgumentException(sprintf('The key "%s" is not supported.', $key)); - } - - return file_get_contents($file); - } - - protected function getFormat() - { - return 'xml'; - } -} diff --git a/vendor/jms/serializer/tests/Serializer/YamlSerializationTest.php b/vendor/jms/serializer/tests/Serializer/YamlSerializationTest.php deleted file mode 100644 index e623ffe..0000000 --- a/vendor/jms/serializer/tests/Serializer/YamlSerializationTest.php +++ /dev/null @@ -1,124 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Serializer; - -use JMS\Serializer\Exception\RuntimeException; -use JMS\Serializer\SerializationContext; - -class YamlSerializationTest extends BaseSerializationTest -{ - public function testEmptyChild() - { - $this->markTestSkipped('This is not available for the YAML format.'); - } - - public function testSkipEmptyChild() - { - $this->markTestSkipped('This is not available for the YAML format.'); - } - - public function testConstraintViolation() - { - $this->markTestSkipped('This is not available for the YAML format.'); - } - - public function testConstraintViolationList() - { - $this->markTestSkipped('This is not available for the YAML format.'); - } - - public function testFormErrors() - { - $this->markTestSkipped('This is not available for the YAML format.'); - } - - public function testNestedFormErrors() - { - $this->markTestSkipped('This is not available for the YAML format.'); - } - - public function testFormErrorsWithNonFormComponents() - { - $this->markTestSkipped('This is not available for the YAML format.'); - } - - protected function getContent($key) - { - if (!file_exists($file = __DIR__ . '/yml/' . $key . '.yml')) { - throw new RuntimeException(sprintf('The content with key "%s" does not exist.', $key)); - } - - return file_get_contents($file); - } - - public function getTypeHintedArrays() - { - return [ - - [[1, 2], "- 1\n- 2\n", null], - [['a', 'b'], "- a\n- b\n", null], - [['a' => 'a', 'b' => 'b'], "a: a\nb: b\n", null], - - [[], " []\n", null], - [[], " []\n", SerializationContext::create()->setInitialType('array')], - [[], " []\n", SerializationContext::create()->setInitialType('array')], - [[], " {}\n", SerializationContext::create()->setInitialType('array')], - - - [[1, 2], "- 1\n- 2\n", SerializationContext::create()->setInitialType('array')], - [[1 => 1, 2 => 2], "1: 1\n2: 2\n", SerializationContext::create()->setInitialType('array')], - [[1 => 1, 2 => 2], "- 1\n- 2\n", SerializationContext::create()->setInitialType('array')], - [['a', 'b'], "- a\n- b\n", SerializationContext::create()->setInitialType('array')], - - [[1 => 'a', 2 => 'b'], "- a\n- b\n", SerializationContext::create()->setInitialType('array')], - [['a' => 'a', 'b' => 'b'], "- a\n- b\n", SerializationContext::create()->setInitialType('array')], - - - [[1, 2], "0: 1\n1: 2\n", SerializationContext::create()->setInitialType('array')], - [[1, 2], "0: 1\n1: 2\n", SerializationContext::create()->setInitialType('array')], - [[1, 2], "0: 1\n1: 2\n", SerializationContext::create()->setInitialType('array')], - - - [['a', 'b'], "0: a\n1: b\n", SerializationContext::create()->setInitialType('array')], - [['a' => 'a', 'b' => 'b'], "a: a\nb: b\n", SerializationContext::create()->setInitialType('array')], - ]; - } - - /** - * @dataProvider getTypeHintedArrays - * @param array $array - * @param string $expected - * @param SerializationContext|null $context - */ - public function testTypeHintedArraySerialization(array $array, $expected, $context = null) - { - $this->assertEquals($expected, $this->serialize($array, $context)); - } - - - protected function getFormat() - { - return 'yml'; - } - - protected function hasDeserializer() - { - return false; - } -} diff --git a/vendor/jms/serializer/tests/Serializer/xml/accessor_order_child.xml b/vendor/jms/serializer/tests/Serializer/xml/accessor_order_child.xml deleted file mode 100644 index 1dc3df9..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/accessor_order_child.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/accessor_order_methods.xml b/vendor/jms/serializer/tests/Serializer/xml/accessor_order_methods.xml deleted file mode 100644 index 0818c57..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/accessor_order_methods.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/accessor_order_parent.xml b/vendor/jms/serializer/tests/Serializer/xml/accessor_order_parent.xml deleted file mode 100644 index 1fe55f5..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/accessor_order_parent.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_booleans.xml b/vendor/jms/serializer/tests/Serializer/xml/array_booleans.xml deleted file mode 100644 index 2bce419..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_booleans.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - true - false - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_datetimes_object.xml b/vendor/jms/serializer/tests/Serializer/xml/array_datetimes_object.xml deleted file mode 100644 index 648ccbb..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_datetimes_object.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_floats.xml b/vendor/jms/serializer/tests/Serializer/xml/array_floats.xml deleted file mode 100644 index 8a11166..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_floats.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - 1.34 - 3 - 6.42 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_integers.xml b/vendor/jms/serializer/tests/Serializer/xml/array_integers.xml deleted file mode 100644 index 9a9ca15..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_integers.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - 1 - 3 - 4 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_key_values.xml b/vendor/jms/serializer/tests/Serializer/xml/array_key_values.xml deleted file mode 100644 index 91fdfb1..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_key_values.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - 1 - - - - - 1 - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_nested_type.xml b/vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_nested_type.xml deleted file mode 100644 index 7c076c5..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_nested_type.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_type_1.xml b/vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_type_1.xml deleted file mode 100644 index 7b3bfc9..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_type_1.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_type_2.xml b/vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_type_2.xml deleted file mode 100644 index a5a518b..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_key_values_with_type_2.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_list_and_map_difference.xml b/vendor/jms/serializer/tests/Serializer/xml/array_list_and_map_difference.xml deleted file mode 100644 index 557b0ad..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_list_and_map_difference.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - 1 - 2 - 3 - - - 1 - 2 - 3 - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_mixed.xml b/vendor/jms/serializer/tests/Serializer/xml/array_mixed.xml deleted file mode 100644 index 0a4ffa3..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_mixed.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - 1 - true - - - - - - - 1 - 3 - true - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_named_datetimeimmutables_object.xml b/vendor/jms/serializer/tests/Serializer/xml/array_named_datetimeimmutables_object.xml deleted file mode 100644 index 40c13c0..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_named_datetimeimmutables_object.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_named_datetimes_object.xml b/vendor/jms/serializer/tests/Serializer/xml/array_named_datetimes_object.xml deleted file mode 100644 index 40c13c0..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_named_datetimes_object.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_objects.xml b/vendor/jms/serializer/tests/Serializer/xml/array_objects.xml deleted file mode 100644 index ffaf5a9..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_objects.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/array_strings.xml b/vendor/jms/serializer/tests/Serializer/xml/array_strings.xml deleted file mode 100644 index d51496a..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/array_strings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/article.xml b/vendor/jms/serializer/tests/Serializer/xml/article.xml deleted file mode 100644 index a769bc0..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/article.xml +++ /dev/null @@ -1,2 +0,0 @@ - -serialized diff --git a/vendor/jms/serializer/tests/Serializer/xml/author_expression.xml b/vendor/jms/serializer/tests/Serializer/xml/author_expression.xml deleted file mode 100644 index 73068ce..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/author_expression.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - 123 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/blog_post.xml b/vendor/jms/serializer/tests/Serializer/xml/blog_post.xml deleted file mode 100644 index a9471dd..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/blog_post.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - what_a_nice_id - - - - - - - - - - - - - - - - - - - - - - - - tag1 - - - tag2 - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/blog_post_unauthored.xml b/vendor/jms/serializer/tests/Serializer/xml/blog_post_unauthored.xml deleted file mode 100644 index 08ed951..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/blog_post_unauthored.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - <![CDATA[This is a nice title.]]> - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/boolean_false.xml b/vendor/jms/serializer/tests/Serializer/xml/boolean_false.xml deleted file mode 100644 index 4eaf315..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/boolean_false.xml +++ /dev/null @@ -1,2 +0,0 @@ - -false diff --git a/vendor/jms/serializer/tests/Serializer/xml/boolean_true.xml b/vendor/jms/serializer/tests/Serializer/xml/boolean_true.xml deleted file mode 100644 index 15bf5c4..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/boolean_true.xml +++ /dev/null @@ -1,2 +0,0 @@ - -true diff --git a/vendor/jms/serializer/tests/Serializer/xml/car.xml b/vendor/jms/serializer/tests/Serializer/xml/car.xml deleted file mode 100644 index de04116..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/car.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 5 - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/car_without_type.xml b/vendor/jms/serializer/tests/Serializer/xml/car_without_type.xml deleted file mode 100644 index 6ff670b..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/car_without_type.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 5 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/circular_reference.xml b/vendor/jms/serializer/tests/Serializer/xml/circular_reference.xml deleted file mode 100644 index 8507eb4..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/circular_reference.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/constraint_violation.xml b/vendor/jms/serializer/tests/Serializer/xml/constraint_violation.xml deleted file mode 100644 index 0805786..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/constraint_violation.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/constraint_violation_list.xml b/vendor/jms/serializer/tests/Serializer/xml/constraint_violation_list.xml deleted file mode 100644 index a5715a4..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/constraint_violation_list.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/currency_aware_price.xml b/vendor/jms/serializer/tests/Serializer/xml/currency_aware_price.xml deleted file mode 100644 index e97a756..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/currency_aware_price.xml +++ /dev/null @@ -1,2 +0,0 @@ - -2.34 diff --git a/vendor/jms/serializer/tests/Serializer/xml/custom_accessor.xml b/vendor/jms/serializer/tests/Serializer/xml/custom_accessor.xml deleted file mode 100644 index 614196d..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/custom_accessor.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/date_interval.xml b/vendor/jms/serializer/tests/Serializer/xml/date_interval.xml deleted file mode 100644 index a564b6c..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/date_interval.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/date_time.xml b/vendor/jms/serializer/tests/Serializer/xml/date_time.xml deleted file mode 100644 index 00156d4..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/date_time.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/date_time_immutable.xml b/vendor/jms/serializer/tests/Serializer/xml/date_time_immutable.xml deleted file mode 100644 index 00156d4..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/date_time_immutable.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/date_time_immutable_no_cdata.xml b/vendor/jms/serializer/tests/Serializer/xml/date_time_immutable_no_cdata.xml deleted file mode 100644 index b9c36c2..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/date_time_immutable_no_cdata.xml +++ /dev/null @@ -1,2 +0,0 @@ - -2011-08-30T00:00:00+0000 diff --git a/vendor/jms/serializer/tests/Serializer/xml/date_time_no_cdata.xml b/vendor/jms/serializer/tests/Serializer/xml/date_time_no_cdata.xml deleted file mode 100644 index b9c36c2..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/date_time_no_cdata.xml +++ /dev/null @@ -1,2 +0,0 @@ - -2011-08-30T00:00:00+0000 diff --git a/vendor/jms/serializer/tests/Serializer/xml/empty_child.xml b/vendor/jms/serializer/tests/Serializer/xml/empty_child.xml deleted file mode 100644 index c782346..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/empty_child.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/empty_child_skip.xml b/vendor/jms/serializer/tests/Serializer/xml/empty_child_skip.xml deleted file mode 100644 index 4ec8b62..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/empty_child_skip.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/float.xml b/vendor/jms/serializer/tests/Serializer/xml/float.xml deleted file mode 100644 index 70e02f4..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/float.xml +++ /dev/null @@ -1,2 +0,0 @@ - -4.533 diff --git a/vendor/jms/serializer/tests/Serializer/xml/float_trailing_zero.xml b/vendor/jms/serializer/tests/Serializer/xml/float_trailing_zero.xml deleted file mode 100644 index 5b5b635..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/float_trailing_zero.xml +++ /dev/null @@ -1,2 +0,0 @@ - -1 diff --git a/vendor/jms/serializer/tests/Serializer/xml/form_errors.xml b/vendor/jms/serializer/tests/Serializer/xml/form_errors.xml deleted file mode 100644 index 78c8071..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/form_errors.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/garage.xml b/vendor/jms/serializer/tests/Serializer/xml/garage.xml deleted file mode 100644 index 25f486d..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/garage.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - 3 - - - - 1 - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/groups_advanced.xml b/vendor/jms/serializer/tests/Serializer/xml/groups_advanced.xml deleted file mode 100644 index d37c7d1..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/groups_advanced.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/groups_all.xml b/vendor/jms/serializer/tests/Serializer/xml/groups_all.xml deleted file mode 100644 index 4d8c74f..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/groups_all.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/groups_default.xml b/vendor/jms/serializer/tests/Serializer/xml/groups_default.xml deleted file mode 100644 index 2ec803a..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/groups_default.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/groups_foo.xml b/vendor/jms/serializer/tests/Serializer/xml/groups_foo.xml deleted file mode 100644 index 93b4a0d..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/groups_foo.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/groups_foobar.xml b/vendor/jms/serializer/tests/Serializer/xml/groups_foobar.xml deleted file mode 100644 index d922cb6..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/groups_foobar.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/hash_empty.xml b/vendor/jms/serializer/tests/Serializer/xml/hash_empty.xml deleted file mode 100644 index 0ea94e9..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/hash_empty.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/inline.xml b/vendor/jms/serializer/tests/Serializer/xml/inline.xml deleted file mode 100644 index bccba87..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/inline.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/inline_child_empty.xml b/vendor/jms/serializer/tests/Serializer/xml/inline_child_empty.xml deleted file mode 100644 index 4ec8b62..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/inline_child_empty.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/input.xml b/vendor/jms/serializer/tests/Serializer/xml/input.xml deleted file mode 100644 index 3c3f731..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/input.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/integer.xml b/vendor/jms/serializer/tests/Serializer/xml/integer.xml deleted file mode 100644 index 5b5b635..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/integer.xml +++ /dev/null @@ -1,2 +0,0 @@ - -1 diff --git a/vendor/jms/serializer/tests/Serializer/xml/lifecycle_callbacks.xml b/vendor/jms/serializer/tests/Serializer/xml/lifecycle_callbacks.xml deleted file mode 100644 index fe0501f..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/lifecycle_callbacks.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/log.xml b/vendor/jms/serializer/tests/Serializer/xml/log.xml deleted file mode 100644 index f4de814..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/log.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/maxdepth_skippabe_object.xml b/vendor/jms/serializer/tests/Serializer/xml/maxdepth_skippabe_object.xml deleted file mode 100644 index 8d455af..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/maxdepth_skippabe_object.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/mixed_access_types.xml b/vendor/jms/serializer/tests/Serializer/xml/mixed_access_types.xml deleted file mode 100644 index 0badb57..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/mixed_access_types.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - 1 - - 42 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/nested_form_errors.xml b/vendor/jms/serializer/tests/Serializer/xml/nested_form_errors.xml deleted file mode 100644 index 75b467d..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/nested_form_errors.xml +++ /dev/null @@ -1,11 +0,0 @@ - -
- - - - - - - -
- diff --git a/vendor/jms/serializer/tests/Serializer/xml/null.xml b/vendor/jms/serializer/tests/Serializer/xml/null.xml deleted file mode 100644 index 36766ec..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/null.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/nullable.xml b/vendor/jms/serializer/tests/Serializer/xml/nullable.xml deleted file mode 100644 index edc0833..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/nullable.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/nullable_arrays.xml b/vendor/jms/serializer/tests/Serializer/xml/nullable_arrays.xml deleted file mode 100644 index d8c1685..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/nullable_arrays.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/nullable_skip.xml b/vendor/jms/serializer/tests/Serializer/xml/nullable_skip.xml deleted file mode 100644 index 8534731..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/nullable_skip.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_when_null.xml b/vendor/jms/serializer/tests/Serializer/xml/object_when_null.xml deleted file mode 100644 index 3132213..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_when_null.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_when_null_and_serialized.xml b/vendor/jms/serializer/tests/Serializer/xml/object_when_null_and_serialized.xml deleted file mode 100644 index bd83a5c..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_when_null_and_serialized.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_with_namespaces_and_list.xml b/vendor/jms/serializer/tests/Serializer/xml/object_with_namespaces_and_list.xml deleted file mode 100644 index a3022bb..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_with_namespaces_and_list.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - -
-
- - - - - - - - - -
-
-
-
diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_with_namespaces_and_nested_list.xml b/vendor/jms/serializer/tests/Serializer/xml/object_with_namespaces_and_nested_list.xml deleted file mode 100644 index 55110fe..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_with_namespaces_and_nested_list.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - AAA - BBB - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_with_only_namespaces_and_list.xml b/vendor/jms/serializer/tests/Serializer/xml/object_with_only_namespaces_and_list.xml deleted file mode 100644 index 0c0242e..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_with_only_namespaces_and_list.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces.xml b/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces.xml deleted file mode 100644 index 6ff33d9..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces_and_object_property.xml b/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces_and_object_property.xml deleted file mode 100644 index a6eb805..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces_and_object_property.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces_and_object_property_virtual.xml b/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces_and_object_property_virtual.xml deleted file mode 100644 index b1dadc1..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespaces_and_object_property_virtual.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespacesalias.xml b/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespacesalias.xml deleted file mode 100644 index 63a8c74..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_namespacesalias.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_root_namespace.xml b/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_root_namespace.xml deleted file mode 100644 index 9d5cde4..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/object_with_xml_root_namespace.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - <![CDATA[This is a nice title.]]> - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/order.xml b/vendor/jms/serializer/tests/Serializer/xml/order.xml deleted file mode 100644 index ca7c70b..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/order.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 12.34 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/order_with_currency_aware_price.xml b/vendor/jms/serializer/tests/Serializer/xml/order_with_currency_aware_price.xml deleted file mode 100644 index 3ab583f..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/order_with_currency_aware_price.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 1.23 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/orm_proxy.xml b/vendor/jms/serializer/tests/Serializer/xml/orm_proxy.xml deleted file mode 100644 index ecd8c13..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/orm_proxy.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/person_collection.xml b/vendor/jms/serializer/tests/Serializer/xml/person_collection.xml deleted file mode 100644 index 37654cc..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/person_collection.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - Matthias Noback - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/person_location.xml b/vendor/jms/serializer/tests/Serializer/xml/person_location.xml deleted file mode 100644 index fa2aa87..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/person_location.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - Matthias Noback - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/person_secret_hide.xml b/vendor/jms/serializer/tests/Serializer/xml/person_secret_hide.xml deleted file mode 100644 index adf0737..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/person_secret_hide.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/person_secret_show.xml b/vendor/jms/serializer/tests/Serializer/xml/person_secret_show.xml deleted file mode 100644 index 46fe167..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/person_secret_show.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/price.xml b/vendor/jms/serializer/tests/Serializer/xml/price.xml deleted file mode 100644 index 2ee2959..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/price.xml +++ /dev/null @@ -1,2 +0,0 @@ - -3 diff --git a/vendor/jms/serializer/tests/Serializer/xml/readonly.xml b/vendor/jms/serializer/tests/Serializer/xml/readonly.xml deleted file mode 100644 index 1c3ea3b..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/readonly.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 123 - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/simple_class_object.xml b/vendor/jms/serializer/tests/Serializer/xml/simple_class_object.xml deleted file mode 100644 index d58fc70..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/simple_class_object.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/simple_class_object_minified.xml b/vendor/jms/serializer/tests/Serializer/xml/simple_class_object_minified.xml deleted file mode 100644 index ff4fbf5..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/simple_class_object_minified.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/vendor/jms/serializer/tests/Serializer/xml/simple_object.xml b/vendor/jms/serializer/tests/Serializer/xml/simple_object.xml deleted file mode 100644 index 84568d0..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/simple_object.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/simple_object_nullable.xml b/vendor/jms/serializer/tests/Serializer/xml/simple_object_nullable.xml deleted file mode 100644 index 32f07c2..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/simple_object_nullable.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/simple_subclass_object.xml b/vendor/jms/serializer/tests/Serializer/xml/simple_subclass_object.xml deleted file mode 100644 index 6c0ff7d..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/simple_subclass_object.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/string.xml b/vendor/jms/serializer/tests/Serializer/xml/string.xml deleted file mode 100644 index b182540..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/string.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/timestamp.xml b/vendor/jms/serializer/tests/Serializer/xml/timestamp.xml deleted file mode 100755 index a9bf077..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/timestamp.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 1455148800 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/timestamp_prev.xml b/vendor/jms/serializer/tests/Serializer/xml/timestamp_prev.xml deleted file mode 100755 index a9bf077..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/timestamp_prev.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 1455148800 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/tree.xml b/vendor/jms/serializer/tests/Serializer/xml/tree.xml deleted file mode 100644 index 5388f3d..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/tree.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/virtual_attributes.xml b/vendor/jms/serializer/tests/Serializer/xml/virtual_attributes.xml deleted file mode 100644 index 0724013..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/virtual_attributes.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties.xml b/vendor/jms/serializer/tests/Serializer/xml/virtual_properties.xml deleted file mode 100644 index 237655e..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - 1 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_all.xml b/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_all.xml deleted file mode 100644 index 6341cb4..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_all.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 1 - 8 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_high.xml b/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_high.xml deleted file mode 100644 index 30632e8..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_high.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 8 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_list.xml b/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_list.xml deleted file mode 100644 index 06d9842..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_list.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_low.xml b/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_low.xml deleted file mode 100644 index 5cce97a..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_low.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - 1 - diff --git a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_map.xml b/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_map.xml deleted file mode 100644 index f851853..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/virtual_properties_map.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/virtual_values.xml b/vendor/jms/serializer/tests/Serializer/xml/virtual_values.xml deleted file mode 100644 index c37e734..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/virtual_values.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_attribute.xml b/vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_attribute.xml deleted file mode 100644 index 0deec45..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_attribute.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_namespace.xml b/vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_namespace.xml deleted file mode 100644 index d312627..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_namespace.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - child - diff --git a/vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_not_cdata.xml b/vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_not_cdata.xml deleted file mode 100644 index 7037d52..0000000 --- a/vendor/jms/serializer/tests/Serializer/xml/xml_discriminator_not_cdata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - child - diff --git a/vendor/jms/serializer/tests/Serializer/yml/accessor_order_child.yml b/vendor/jms/serializer/tests/Serializer/yml/accessor_order_child.yml deleted file mode 100644 index 4e35702..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/accessor_order_child.yml +++ /dev/null @@ -1,4 +0,0 @@ -c: c -d: d -a: a -b: b diff --git a/vendor/jms/serializer/tests/Serializer/yml/accessor_order_methods.yml b/vendor/jms/serializer/tests/Serializer/yml/accessor_order_methods.yml deleted file mode 100644 index ee822f2..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/accessor_order_methods.yml +++ /dev/null @@ -1,3 +0,0 @@ -foo: c -b: b -a: a diff --git a/vendor/jms/serializer/tests/Serializer/yml/accessor_order_parent.yml b/vendor/jms/serializer/tests/Serializer/yml/accessor_order_parent.yml deleted file mode 100644 index 5422ec2..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/accessor_order_parent.yml +++ /dev/null @@ -1,2 +0,0 @@ -a: a -b: b diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_booleans.yml b/vendor/jms/serializer/tests/Serializer/yml/array_booleans.yml deleted file mode 100644 index 5c72ab2..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_booleans.yml +++ /dev/null @@ -1,2 +0,0 @@ -- true -- false diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_datetimes_object.yml b/vendor/jms/serializer/tests/Serializer/yml/array_datetimes_object.yml deleted file mode 100644 index c5f131d..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_datetimes_object.yml +++ /dev/null @@ -1,6 +0,0 @@ -array_with_default_date_time: - - '2047-01-01T12:47:47+0000' - - '2016-12-05T00:00:00+0000' -array_with_formatted_date_time: - - '01.01.2047 12:47:47' - - '05.12.2016 00:00:00' diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_empty.yml b/vendor/jms/serializer/tests/Serializer/yml/array_empty.yml deleted file mode 100644 index d4def9a..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_empty.yml +++ /dev/null @@ -1 +0,0 @@ -array: [] diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_floats.yml b/vendor/jms/serializer/tests/Serializer/yml/array_floats.yml deleted file mode 100644 index 8255623..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_floats.yml +++ /dev/null @@ -1,3 +0,0 @@ -- 1.34 -- 3 -- 6.42 diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_integers.yml b/vendor/jms/serializer/tests/Serializer/yml/array_integers.yml deleted file mode 100644 index 06c0e53..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_integers.yml +++ /dev/null @@ -1,3 +0,0 @@ -- 1 -- 3 -- 4 diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_list_and_map_difference.yml b/vendor/jms/serializer/tests/Serializer/yml/array_list_and_map_difference.yml deleted file mode 100644 index 05d6fde..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_list_and_map_difference.yml +++ /dev/null @@ -1,8 +0,0 @@ -list: - - 1 - - 2 - - 3 -map: - 0: 1 - 2: 2 - 3: 3 diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_mixed.yml b/vendor/jms/serializer/tests/Serializer/yml/array_mixed.yml deleted file mode 100644 index cd9b7f3..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_mixed.yml +++ /dev/null @@ -1,11 +0,0 @@ -- foo -- 1 -- true -- - foo: foo - moo: bar - camel_case: boo -- - - 1 - - 3 - - true diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_named_datetimeimmutables_object.yml b/vendor/jms/serializer/tests/Serializer/yml/array_named_datetimeimmutables_object.yml deleted file mode 100644 index 287bcd9..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_named_datetimeimmutables_object.yml +++ /dev/null @@ -1,3 +0,0 @@ -named_array_with_formatted_date: - testdate1: '01.01.2047 12:47:47' - testdate2: '05.12.2016 00:00:00' diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_named_datetimes_object.yml b/vendor/jms/serializer/tests/Serializer/yml/array_named_datetimes_object.yml deleted file mode 100644 index 287bcd9..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_named_datetimes_object.yml +++ /dev/null @@ -1,3 +0,0 @@ -named_array_with_formatted_date: - testdate1: '01.01.2047 12:47:47' - testdate2: '05.12.2016 00:00:00' diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_objects.yml b/vendor/jms/serializer/tests/Serializer/yml/array_objects.yml deleted file mode 100644 index b1609d4..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_objects.yml +++ /dev/null @@ -1,8 +0,0 @@ -- - foo: foo - moo: bar - camel_case: boo -- - foo: baz - moo: boo - camel_case: boo diff --git a/vendor/jms/serializer/tests/Serializer/yml/array_strings.yml b/vendor/jms/serializer/tests/Serializer/yml/array_strings.yml deleted file mode 100644 index 59121da..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/array_strings.yml +++ /dev/null @@ -1,2 +0,0 @@ -- foo -- bar diff --git a/vendor/jms/serializer/tests/Serializer/yml/article.yml b/vendor/jms/serializer/tests/Serializer/yml/article.yml deleted file mode 100644 index 267643d..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/article.yml +++ /dev/null @@ -1 +0,0 @@ -custom: serialized diff --git a/vendor/jms/serializer/tests/Serializer/yml/author_expression.yml b/vendor/jms/serializer/tests/Serializer/yml/author_expression.yml deleted file mode 100644 index 335e871..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/author_expression.yml +++ /dev/null @@ -1,3 +0,0 @@ -my_first_name: Ruud -last_name: Kamphuis -id: 123 diff --git a/vendor/jms/serializer/tests/Serializer/yml/blog_post.yml b/vendor/jms/serializer/tests/Serializer/yml/blog_post.yml deleted file mode 100644 index 24d2e9e..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/blog_post.yml +++ /dev/null @@ -1,27 +0,0 @@ -id: what_a_nice_id -title: 'This is a nice title.' -created_at: '2011-07-30T00:00:00+0000' -is_published: false -is_reviewed: false -etag: 1edf9bf60a32d89afbb85b2be849e3ceed5f5b10 -comments: - - - author: - full_name: 'Foo Bar' - text: foo -comments2: - - - author: - full_name: 'Foo Bar' - text: foo -metadata: - foo: bar -author: - full_name: 'Foo Bar' -publisher: - pub_name: 'Bar Foo' -tag: - - - name: tag1 - - - name: tag2 diff --git a/vendor/jms/serializer/tests/Serializer/yml/blog_post_unauthored.yml b/vendor/jms/serializer/tests/Serializer/yml/blog_post_unauthored.yml deleted file mode 100644 index b72061e..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/blog_post_unauthored.yml +++ /dev/null @@ -1,13 +0,0 @@ -id: what_a_nice_id -title: 'This is a nice title.' -created_at: '2011-07-30T00:00:00+0000' -is_published: false -is_reviewed: false -etag: 1edf9bf60a32d89afbb85b2be849e3ceed5f5b10 -comments: [] -comments2: [] -metadata: - foo: bar -author: null -publisher: null -tag: null diff --git a/vendor/jms/serializer/tests/Serializer/yml/boolean_false.yml b/vendor/jms/serializer/tests/Serializer/yml/boolean_false.yml deleted file mode 100644 index c508d53..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/boolean_false.yml +++ /dev/null @@ -1 +0,0 @@ -false diff --git a/vendor/jms/serializer/tests/Serializer/yml/boolean_true.yml b/vendor/jms/serializer/tests/Serializer/yml/boolean_true.yml deleted file mode 100644 index 27ba77d..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/boolean_true.yml +++ /dev/null @@ -1 +0,0 @@ -true diff --git a/vendor/jms/serializer/tests/Serializer/yml/car.yml b/vendor/jms/serializer/tests/Serializer/yml/car.yml deleted file mode 100644 index b2e9c9a..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/car.yml +++ /dev/null @@ -1,2 +0,0 @@ -km: 5 -type: car diff --git a/vendor/jms/serializer/tests/Serializer/yml/car_without_type.yml b/vendor/jms/serializer/tests/Serializer/yml/car_without_type.yml deleted file mode 100644 index 886bbb9..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/car_without_type.yml +++ /dev/null @@ -1 +0,0 @@ -km: 5 diff --git a/vendor/jms/serializer/tests/Serializer/yml/circular_reference.yml b/vendor/jms/serializer/tests/Serializer/yml/circular_reference.yml deleted file mode 100644 index 011b690..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/circular_reference.yml +++ /dev/null @@ -1,10 +0,0 @@ -collection: - - - name: child1 - - - name: child2 -another_collection: - - - name: child1 - - - name: child2 diff --git a/vendor/jms/serializer/tests/Serializer/yml/currency_aware_price.yml b/vendor/jms/serializer/tests/Serializer/yml/currency_aware_price.yml deleted file mode 100644 index 66185f5..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/currency_aware_price.yml +++ /dev/null @@ -1,2 +0,0 @@ -currency: EUR -amount: 2.34 diff --git a/vendor/jms/serializer/tests/Serializer/yml/custom_accessor.yml b/vendor/jms/serializer/tests/Serializer/yml/custom_accessor.yml deleted file mode 100644 index 5eeb1b2..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/custom_accessor.yml +++ /dev/null @@ -1,12 +0,0 @@ -comments: - Foo: - comments: - - - author: - full_name: Foo - text: foo - - - author: - full_name: Foo - text: bar - count: 2 diff --git a/vendor/jms/serializer/tests/Serializer/yml/date_interval.yml b/vendor/jms/serializer/tests/Serializer/yml/date_interval.yml deleted file mode 100644 index e8286c5..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/date_interval.yml +++ /dev/null @@ -1 +0,0 @@ -PT45M diff --git a/vendor/jms/serializer/tests/Serializer/yml/date_time.yml b/vendor/jms/serializer/tests/Serializer/yml/date_time.yml deleted file mode 100644 index a8f98ee..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/date_time.yml +++ /dev/null @@ -1 +0,0 @@ -'2011-08-30T00:00:00+0000' diff --git a/vendor/jms/serializer/tests/Serializer/yml/date_time_immutable.yml b/vendor/jms/serializer/tests/Serializer/yml/date_time_immutable.yml deleted file mode 100644 index a8f98ee..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/date_time_immutable.yml +++ /dev/null @@ -1 +0,0 @@ -'2011-08-30T00:00:00+0000' diff --git a/vendor/jms/serializer/tests/Serializer/yml/float.yml b/vendor/jms/serializer/tests/Serializer/yml/float.yml deleted file mode 100644 index a955e81..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/float.yml +++ /dev/null @@ -1 +0,0 @@ -4.533 diff --git a/vendor/jms/serializer/tests/Serializer/yml/float_trailing_zero.yml b/vendor/jms/serializer/tests/Serializer/yml/float_trailing_zero.yml deleted file mode 100644 index d00491f..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/float_trailing_zero.yml +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/vendor/jms/serializer/tests/Serializer/yml/garage.yml b/vendor/jms/serializer/tests/Serializer/yml/garage.yml deleted file mode 100644 index b32204d..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/garage.yml +++ /dev/null @@ -1,7 +0,0 @@ -vehicles: - - - km: 3 - type: car - - - km: 1 - type: moped diff --git a/vendor/jms/serializer/tests/Serializer/yml/groups_advanced.yml b/vendor/jms/serializer/tests/Serializer/yml/groups_advanced.yml deleted file mode 100644 index fbd7c63..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/groups_advanced.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: John -manager: - name: 'John Manager' - friends: - - - nickname: nickname - - - nickname: nickname -friends: - - - manager: - name: 'John friend 1 manager' - - - manager: - name: 'John friend 2 manager' diff --git a/vendor/jms/serializer/tests/Serializer/yml/groups_all.yml b/vendor/jms/serializer/tests/Serializer/yml/groups_all.yml deleted file mode 100644 index 6504e20..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/groups_all.yml +++ /dev/null @@ -1,4 +0,0 @@ -foo: foo -foobar: foobar -bar: bar -none: none diff --git a/vendor/jms/serializer/tests/Serializer/yml/groups_default.yml b/vendor/jms/serializer/tests/Serializer/yml/groups_default.yml deleted file mode 100644 index c34136a..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/groups_default.yml +++ /dev/null @@ -1,2 +0,0 @@ -bar: bar -none: none diff --git a/vendor/jms/serializer/tests/Serializer/yml/groups_foo.yml b/vendor/jms/serializer/tests/Serializer/yml/groups_foo.yml deleted file mode 100644 index 58a24e6..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/groups_foo.yml +++ /dev/null @@ -1,2 +0,0 @@ -foo: foo -foobar: foobar diff --git a/vendor/jms/serializer/tests/Serializer/yml/groups_foobar.yml b/vendor/jms/serializer/tests/Serializer/yml/groups_foobar.yml deleted file mode 100644 index f50c43e..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/groups_foobar.yml +++ /dev/null @@ -1,3 +0,0 @@ -foo: foo -foobar: foobar -bar: bar diff --git a/vendor/jms/serializer/tests/Serializer/yml/hash_empty.yml b/vendor/jms/serializer/tests/Serializer/yml/hash_empty.yml deleted file mode 100644 index 6ec4ff7..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/hash_empty.yml +++ /dev/null @@ -1 +0,0 @@ -hash: {} diff --git a/vendor/jms/serializer/tests/Serializer/yml/inline.yml b/vendor/jms/serializer/tests/Serializer/yml/inline.yml deleted file mode 100644 index 5b6dfe9..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/inline.yml +++ /dev/null @@ -1,4 +0,0 @@ -c: c -a: a -b: b -d: d diff --git a/vendor/jms/serializer/tests/Serializer/yml/inline_child_empty.yml b/vendor/jms/serializer/tests/Serializer/yml/inline_child_empty.yml deleted file mode 100644 index 606ed68..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/inline_child_empty.yml +++ /dev/null @@ -1,2 +0,0 @@ -c: c -d: d diff --git a/vendor/jms/serializer/tests/Serializer/yml/input.yml b/vendor/jms/serializer/tests/Serializer/yml/input.yml deleted file mode 100644 index 6df3ab0..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/input.yml +++ /dev/null @@ -1,4 +0,0 @@ -attributes: - type: text - name: firstname - value: Adrien diff --git a/vendor/jms/serializer/tests/Serializer/yml/integer.yml b/vendor/jms/serializer/tests/Serializer/yml/integer.yml deleted file mode 100644 index d00491f..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/integer.yml +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/vendor/jms/serializer/tests/Serializer/yml/lifecycle_callbacks.yml b/vendor/jms/serializer/tests/Serializer/yml/lifecycle_callbacks.yml deleted file mode 100644 index 7c302c0..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/lifecycle_callbacks.yml +++ /dev/null @@ -1 +0,0 @@ -name: 'Foo Bar' diff --git a/vendor/jms/serializer/tests/Serializer/yml/log.yml b/vendor/jms/serializer/tests/Serializer/yml/log.yml deleted file mode 100644 index 99d4773..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/log.yml +++ /dev/null @@ -1,18 +0,0 @@ -author_list: - - - full_name: 'Johannes Schmitt' - - - full_name: 'John Doe' -comments: - - - author: - full_name: 'Foo Bar' - text: foo - - - author: - full_name: 'Foo Bar' - text: bar - - - author: - full_name: 'Foo Bar' - text: baz diff --git a/vendor/jms/serializer/tests/Serializer/yml/maxdepth_skippabe_object.yml b/vendor/jms/serializer/tests/Serializer/yml/maxdepth_skippabe_object.yml deleted file mode 100644 index 4c0be60..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/maxdepth_skippabe_object.yml +++ /dev/null @@ -1,2 +0,0 @@ -a: - xxx: yyy diff --git a/vendor/jms/serializer/tests/Serializer/yml/mixed_access_types.yml b/vendor/jms/serializer/tests/Serializer/yml/mixed_access_types.yml deleted file mode 100644 index ef18306..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/mixed_access_types.yml +++ /dev/null @@ -1,3 +0,0 @@ -id: 1 -name: Johannes -read_only_property: 42 diff --git a/vendor/jms/serializer/tests/Serializer/yml/null.yml b/vendor/jms/serializer/tests/Serializer/yml/null.yml deleted file mode 100644 index 19765bd..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/null.yml +++ /dev/null @@ -1 +0,0 @@ -null diff --git a/vendor/jms/serializer/tests/Serializer/yml/nullable.yml b/vendor/jms/serializer/tests/Serializer/yml/nullable.yml deleted file mode 100644 index acb6263..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/nullable.yml +++ /dev/null @@ -1,3 +0,0 @@ -foo: bar -baz: null -0: null diff --git a/vendor/jms/serializer/tests/Serializer/yml/nullable_arrays.yml b/vendor/jms/serializer/tests/Serializer/yml/nullable_arrays.yml deleted file mode 100644 index 4454d39..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/nullable_arrays.yml +++ /dev/null @@ -1,9 +0,0 @@ -empty_inline: [] -not_empty_inline: - - not_empty_inline -empty_not_inline: [] -not_empty_not_inline: - - not_empty_not_inline -empty_not_inline_skip: [] -not_empty_not_inline_skip: - - not_empty_not_inline_skip diff --git a/vendor/jms/serializer/tests/Serializer/yml/nullable_skip.yml b/vendor/jms/serializer/tests/Serializer/yml/nullable_skip.yml deleted file mode 100644 index 20e9ff3..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/nullable_skip.yml +++ /dev/null @@ -1 +0,0 @@ -foo: bar diff --git a/vendor/jms/serializer/tests/Serializer/yml/object_when_null.yml b/vendor/jms/serializer/tests/Serializer/yml/object_when_null.yml deleted file mode 100644 index 10d56bf..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/object_when_null.yml +++ /dev/null @@ -1 +0,0 @@ -text: foo diff --git a/vendor/jms/serializer/tests/Serializer/yml/object_when_null_and_serialized.yml b/vendor/jms/serializer/tests/Serializer/yml/object_when_null_and_serialized.yml deleted file mode 100644 index 119ce0e..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/object_when_null_and_serialized.yml +++ /dev/null @@ -1,2 +0,0 @@ -author: null -text: foo diff --git a/vendor/jms/serializer/tests/Serializer/yml/order.yml b/vendor/jms/serializer/tests/Serializer/yml/order.yml deleted file mode 100644 index e25bd6b..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/order.yml +++ /dev/null @@ -1,2 +0,0 @@ -cost: - price: 12.34 diff --git a/vendor/jms/serializer/tests/Serializer/yml/order_with_currency_aware_price.yml b/vendor/jms/serializer/tests/Serializer/yml/order_with_currency_aware_price.yml deleted file mode 100644 index 4000322..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/order_with_currency_aware_price.yml +++ /dev/null @@ -1,3 +0,0 @@ -cost: - currency: EUR - amount: 1.23 diff --git a/vendor/jms/serializer/tests/Serializer/yml/orm_proxy.yml b/vendor/jms/serializer/tests/Serializer/yml/orm_proxy.yml deleted file mode 100644 index 6f26058..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/orm_proxy.yml +++ /dev/null @@ -1,3 +0,0 @@ -foo: foo -moo: bar -camel_case: proxy-boo diff --git a/vendor/jms/serializer/tests/Serializer/yml/person_secret_hide.yml b/vendor/jms/serializer/tests/Serializer/yml/person_secret_hide.yml deleted file mode 100644 index 710e7dc..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/person_secret_hide.yml +++ /dev/null @@ -1 +0,0 @@ -name: mike diff --git a/vendor/jms/serializer/tests/Serializer/yml/person_secret_show.yml b/vendor/jms/serializer/tests/Serializer/yml/person_secret_show.yml deleted file mode 100644 index f03db3e..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/person_secret_show.yml +++ /dev/null @@ -1,2 +0,0 @@ -name: mike -gender: f diff --git a/vendor/jms/serializer/tests/Serializer/yml/price.yml b/vendor/jms/serializer/tests/Serializer/yml/price.yml deleted file mode 100644 index dc5a58b..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/price.yml +++ /dev/null @@ -1 +0,0 @@ -price: 3 diff --git a/vendor/jms/serializer/tests/Serializer/yml/readonly.yml b/vendor/jms/serializer/tests/Serializer/yml/readonly.yml deleted file mode 100644 index 3c428c3..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/readonly.yml +++ /dev/null @@ -1,2 +0,0 @@ -id: 123 -full_name: 'Ruud Kamphuis' diff --git a/vendor/jms/serializer/tests/Serializer/yml/simple_object.yml b/vendor/jms/serializer/tests/Serializer/yml/simple_object.yml deleted file mode 100644 index 594b289..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/simple_object.yml +++ /dev/null @@ -1,3 +0,0 @@ -foo: foo -moo: bar -camel_case: boo diff --git a/vendor/jms/serializer/tests/Serializer/yml/simple_object_nullable.yml b/vendor/jms/serializer/tests/Serializer/yml/simple_object_nullable.yml deleted file mode 100644 index 126d625..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/simple_object_nullable.yml +++ /dev/null @@ -1,4 +0,0 @@ -foo: foo -moo: bar -camel_case: boo -null_property: null diff --git a/vendor/jms/serializer/tests/Serializer/yml/string.yml b/vendor/jms/serializer/tests/Serializer/yml/string.yml deleted file mode 100644 index 257cc56..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/string.yml +++ /dev/null @@ -1 +0,0 @@ -foo diff --git a/vendor/jms/serializer/tests/Serializer/yml/timestamp.yml b/vendor/jms/serializer/tests/Serializer/yml/timestamp.yml deleted file mode 100755 index b1c38be..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/timestamp.yml +++ /dev/null @@ -1 +0,0 @@ -timestamp: 1455148800 diff --git a/vendor/jms/serializer/tests/Serializer/yml/timestamp_prev.yml b/vendor/jms/serializer/tests/Serializer/yml/timestamp_prev.yml deleted file mode 100755 index 3df27d6..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/timestamp_prev.yml +++ /dev/null @@ -1 +0,0 @@ -timestamp: "1455148800" diff --git a/vendor/jms/serializer/tests/Serializer/yml/tree.yml b/vendor/jms/serializer/tests/Serializer/yml/tree.yml deleted file mode 100644 index 01e8387..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/tree.yml +++ /dev/null @@ -1,10 +0,0 @@ -tree: - children: - - - children: - - - children: - - - foo: bar - foo: bar - foo: bar diff --git a/vendor/jms/serializer/tests/Serializer/yml/virtual_properties.yml b/vendor/jms/serializer/tests/Serializer/yml/virtual_properties.yml deleted file mode 100644 index 7d1c0b2..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/virtual_properties.yml +++ /dev/null @@ -1,4 +0,0 @@ -exist_field: value -virtual_value: value -test: other-name -typed_virtual_property: 1 diff --git a/vendor/jms/serializer/tests/Serializer/yml/virtual_properties_all.yml b/vendor/jms/serializer/tests/Serializer/yml/virtual_properties_all.yml deleted file mode 100644 index 0bcf04b..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/virtual_properties_all.yml +++ /dev/null @@ -1,2 +0,0 @@ -low: 1 -high: 8 diff --git a/vendor/jms/serializer/tests/Serializer/yml/virtual_properties_high.yml b/vendor/jms/serializer/tests/Serializer/yml/virtual_properties_high.yml deleted file mode 100644 index 2be358d..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/virtual_properties_high.yml +++ /dev/null @@ -1 +0,0 @@ -high: 8 diff --git a/vendor/jms/serializer/tests/Serializer/yml/virtual_properties_low.yml b/vendor/jms/serializer/tests/Serializer/yml/virtual_properties_low.yml deleted file mode 100644 index a021172..0000000 --- a/vendor/jms/serializer/tests/Serializer/yml/virtual_properties_low.yml +++ /dev/null @@ -1 +0,0 @@ -low: 1 diff --git a/vendor/jms/serializer/tests/SerializerBuilderTest.php b/vendor/jms/serializer/tests/SerializerBuilderTest.php deleted file mode 100644 index 3e84dc2..0000000 --- a/vendor/jms/serializer/tests/SerializerBuilderTest.php +++ /dev/null @@ -1,299 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests; - -use JMS\Serializer\DeserializationContext; -use JMS\Serializer\Expression\ExpressionEvaluator; -use JMS\Serializer\Handler\HandlerRegistry; -use JMS\Serializer\JsonSerializationVisitor; -use JMS\Serializer\Naming\CamelCaseNamingStrategy; -use JMS\Serializer\SerializationContext; -use JMS\Serializer\SerializerBuilder; -use JMS\Serializer\Tests\Fixtures\ContextualNamingStrategy; -use JMS\Serializer\Tests\Fixtures\Person; -use JMS\Serializer\Tests\Fixtures\PersonSecret; -use JMS\Serializer\Tests\Fixtures\PersonSecretWithVariables; -use Symfony\Component\ExpressionLanguage\ExpressionFunction; -use Symfony\Component\ExpressionLanguage\ExpressionLanguage; -use Symfony\Component\Filesystem\Filesystem; - -class SerializerBuilderTest extends \PHPUnit_Framework_TestCase -{ - /** @var SerializerBuilder */ - private $builder; - private $fs; - private $tmpDir; - - public function testBuildWithoutAnythingElse() - { - $serializer = $this->builder->build(); - - $this->assertEquals('"foo"', $serializer->serialize('foo', 'json')); - $this->assertEquals(' - -', $serializer->serialize('foo', 'xml')); - $this->assertEquals('foo -', $serializer->serialize('foo', 'yml')); - - $this->assertEquals('foo', $serializer->deserialize('"foo"', 'string', 'json')); - $this->assertEquals('foo', $serializer->deserialize('', 'string', 'xml')); - } - - public function testWithCache() - { - $this->assertFileNotExists($this->tmpDir); - - $this->assertSame($this->builder, $this->builder->setCacheDir($this->tmpDir)); - $serializer = $this->builder->build(); - - $this->assertFileExists($this->tmpDir); - $this->assertFileExists($this->tmpDir . '/annotations'); - $this->assertFileExists($this->tmpDir . '/metadata'); - - $factory = $this->getField($serializer, 'factory'); - $this->assertAttributeSame(false, 'debug', $factory); - $this->assertAttributeNotSame(null, 'cache', $factory); - } - - public function testDoesAddDefaultHandlers() - { - $serializer = $this->builder->build(); - - $this->assertEquals('"2020-04-16T00:00:00+0000"', $serializer->serialize(new \DateTime('2020-04-16', new \DateTimeZone('UTC')), 'json')); - } - - public function testDoesNotAddDefaultHandlersWhenExplicitlyConfigured() - { - $this->assertSame($this->builder, $this->builder->configureHandlers(function (HandlerRegistry $registry) { - })); - - $this->assertEquals('{}', $this->builder->build()->serialize(new \DateTime('2020-04-16'), 'json')); - } - - /** - * @expectedException JMS\Serializer\Exception\UnsupportedFormatException - * @expectedExceptionMessage The format "xml" is not supported for serialization. - */ - public function testDoesNotAddOtherVisitorsWhenConfiguredExplicitly() - { - $this->assertSame( - $this->builder, - $this->builder->setSerializationVisitor('json', new JsonSerializationVisitor(new CamelCaseNamingStrategy())) - ); - - $this->builder->build()->serialize('foo', 'xml'); - } - - public function testIncludeInterfaceMetadata() - { - $this->assertFalse( - $this->getIncludeInterfaces($this->builder), - 'Interface metadata are not included by default' - ); - - $this->assertTrue( - $this->getIncludeInterfaces($this->builder->includeInterfaceMetadata(true)), - 'Force including interface metadata' - ); - - $this->assertFalse( - $this->getIncludeInterfaces($this->builder->includeInterfaceMetadata(false)), - 'Force not including interface metadata' - ); - - $this->assertSame( - $this->builder, - $this->builder->includeInterfaceMetadata(true) - ); - } - - public function testSetSerializationContext() - { - $contextFactoryMock = $this->getMockForAbstractClass('JMS\\Serializer\\ContextFactory\\SerializationContextFactoryInterface'); - $context = new SerializationContext(); - $context->setSerializeNull(true); - - $contextFactoryMock - ->expects($this->once()) - ->method('createSerializationContext') - ->will($this->returnValue($context)); - - $this->builder->setSerializationContextFactory($contextFactoryMock); - - $serializer = $this->builder->build(); - - $result = $serializer->serialize(array('value' => null), 'json'); - - $this->assertEquals('{"value":null}', $result); - } - - public function testSetDeserializationContext() - { - $contextFactoryMock = $this->getMockForAbstractClass('JMS\\Serializer\\ContextFactory\\DeserializationContextFactoryInterface'); - $context = new DeserializationContext(); - - $contextFactoryMock - ->expects($this->once()) - ->method('createDeserializationContext') - ->will($this->returnValue($context)); - - $this->builder->setDeserializationContextFactory($contextFactoryMock); - - $serializer = $this->builder->build(); - - $result = $serializer->deserialize('{"value":null}', 'array', 'json'); - - $this->assertEquals(array('value' => null), $result); - } - - public function testSetCallbackSerializationContextWithSerializeNull() - { - $this->builder->setSerializationContextFactory(function () { - return SerializationContext::create() - ->setSerializeNull(true); - }); - - $serializer = $this->builder->build(); - - $result = $serializer->serialize(array('value' => null), 'json'); - - $this->assertEquals('{"value":null}', $result); - } - - public function testSetCallbackSerializationContextWithNotSerializeNull() - { - $this->builder->setSerializationContextFactory(function () { - return SerializationContext::create() - ->setSerializeNull(false); - }); - - $serializer = $this->builder->build(); - - $result = $serializer->serialize(array('value' => null, 'not_null' => 'ok'), 'json'); - - $this->assertEquals('{"not_null":"ok"}', $result); - } - - public function expressionFunctionProvider() - { - return [ - [ - new ExpressionFunction('show_data', function () { - return "true"; - }, function () { - return true; - }), - '{"name":"mike"}' - ], - [ - new ExpressionFunction('show_data', function () { - return "false"; - }, function () { - return false; - }), - '{"name":"mike","gender":"f"}' - ] - ]; - } - - /** - * @dataProvider expressionFunctionProvider - * @param ExpressionFunction $function - * @param $json - */ - public function testExpressionEngine(ExpressionFunction $function, $json) - { - $language = new ExpressionLanguage(); - $language->addFunction($function); - - $this->builder->setExpressionEvaluator(new ExpressionEvaluator($language)); - - $serializer = $this->builder->build(); - - $person = new PersonSecret(); - $person->gender = 'f'; - $person->name = 'mike'; - - $this->assertEquals($json, $serializer->serialize($person, 'json')); - } - - public function testExpressionEngineWhenDeserializing() - { - $language = new ExpressionLanguage(); - $this->builder->setExpressionEvaluator(new ExpressionEvaluator($language)); - - $serializer = $this->builder->build(); - - $person = new PersonSecretWithVariables(); - $person->gender = 'f'; - $person->name = 'mike'; - - $serialized = $serializer->serialize($person, 'json'); - $this->assertEquals('{"name":"mike","gender":"f"}', $serialized); - - $object = $serializer->deserialize($serialized, PersonSecretWithVariables::class, 'json'); - $this->assertEquals($person, $object); - } - - public function testAdvancedNamingStrategy() - { - $this->builder->setAdvancedNamingStrategy(new ContextualNamingStrategy()); - $serializer = $this->builder->build(); - - $person = new Person(); - $person->name = "bar"; - - $json = $serializer->serialize($person, "json"); - $this->assertEquals('{"NAME":"bar"}', $json); - - $json = '{"Name": "bar"}'; - $person = $serializer->deserialize($json, Person::class, "json"); - $this->assertEquals("bar", $person->name); - } - - protected function setUp() - { - $this->builder = SerializerBuilder::create(); - $this->fs = new Filesystem(); - - $this->tmpDir = sys_get_temp_dir() . '/serializer'; - $this->fs->remove($this->tmpDir); - clearstatcache(); - } - - protected function tearDown() - { - $this->fs->remove($this->tmpDir); - } - - private function getField($obj, $name) - { - $ref = new \ReflectionProperty($obj, $name); - $ref->setAccessible(true); - - return $ref->getValue($obj); - } - - private function getIncludeInterfaces(SerializerBuilder $builder) - { - $factory = $this->getField($builder->build(), 'factory'); - - return $this->getField($factory, 'includeInterfaces'); - } -} diff --git a/vendor/jms/serializer/tests/Twig/SerializerExtensionTest.php b/vendor/jms/serializer/tests/Twig/SerializerExtensionTest.php deleted file mode 100644 index 3fdaf79..0000000 --- a/vendor/jms/serializer/tests/Twig/SerializerExtensionTest.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace JMS\Serializer\Tests\Twig; - -use JMS\Serializer\Twig\SerializerExtension; -use JMS\Serializer\Twig\SerializerRuntimeExtension; -use JMS\Serializer\Twig\SerializerRuntimeHelper; - -class SerializerExtensionTest extends \PHPUnit_Framework_TestCase -{ - public function testSerialize() - { - $mockSerializer = $this->getMockBuilder('JMS\Serializer\SerializerInterface')->getMock(); - $obj = new \stdClass(); - $mockSerializer - ->expects($this->once()) - ->method('serialize') - ->with($this->equalTo($obj), $this->equalTo('json')); - $serializerExtension = new SerializerExtension($mockSerializer); - $serializerExtension->serialize($obj); - - $this->assertEquals('jms_serializer', $serializerExtension->getName()); - - $filters = $serializerExtension->getFilters(); - $this->assertInstanceOf('Twig_SimpleFilter', $filters[0]); - $this->assertSame(array($serializerExtension, 'serialize'), $filters[0]->getCallable()); - - $this->assertEquals( - array(new \Twig_SimpleFunction('serialization_context', '\JMS\Serializer\SerializationContext::create')), - $serializerExtension->getFunctions() - ); - } - - public function testRuntimeSerializerHelper() - { - $obj = new \stdClass(); - - $mockSerializer = $this->getMockBuilder('JMS\Serializer\SerializerInterface')->getMock(); - $mockSerializer - ->expects($this->once()) - ->method('serialize') - ->with($this->equalTo($obj), $this->equalTo('json')); - - $serializerExtension = new SerializerRuntimeHelper($mockSerializer); - $serializerExtension->serialize($obj); - } - - public function testRuntimeSerializerExtension() - { - $serializerExtension = new SerializerRuntimeExtension(); - - $this->assertEquals('jms_serializer', $serializerExtension->getName()); - $this->assertEquals( - array(new \Twig_SimpleFilter('serialize', array(SerializerRuntimeHelper::class, 'serialize'))), - $serializerExtension->getFilters() - ); - $this->assertEquals( - array(new \Twig_SimpleFunction('serialization_context', '\JMS\Serializer\SerializationContext::create')), - $serializerExtension->getFunctions() - ); - } -} diff --git a/vendor/jms/serializer/tests/benchmark.php b/vendor/jms/serializer/tests/benchmark.php deleted file mode 100644 index 8f7c09c..0000000 --- a/vendor/jms/serializer/tests/benchmark.php +++ /dev/null @@ -1,63 +0,0 @@ - [output-file]' . PHP_EOL; - exit(1); -} - -list(, $format, $iterations) = $_SERVER['argv']; - -require_once 'bootstrap.php'; - -function benchmark(\Closure $f, $times = 10) -{ - $time = microtime(true); - for ($i = 0; $i < $times; $i++) { - $f(); - } - - return (microtime(true) - $time) / $times; -} - -function createCollection() -{ - $collection = array(); - for ($i = 0; $i < 50; $i++) { - $collection[] = createObject(); - } - - return $collection; -} - -function createObject() -{ - $p = new \JMS\Serializer\Tests\Fixtures\Publisher('bar'); - $post = new \JMS\Serializer\Tests\Fixtures\BlogPost('FooooooooooooooooooooooBAR', new \JMS\Serializer\Tests\Fixtures\Author('Foo'), new \DateTime, $p); - for ($i = 0; $i < 10; $i++) { - $post->addComment(new \JMS\Serializer\Tests\Fixtures\Comment(new \JMS\Serializer\Tests\Fixtures\Author('foo'), 'foobar')); - } - - return $post; -} - -$serializer = \JMS\Serializer\SerializerBuilder::create()->build(); -$collection = createCollection(); -$metrics = array(); -$f = function () use ($serializer, $collection, $format) { - $serializer->serialize($collection, $format); -}; - -// Load all necessary classes into memory. -benchmark($f, 1); - -printf('Benchmarking collection for format "%s".' . PHP_EOL, $format); -$metrics['benchmark-collection-' . $format] = benchmark($f, $iterations); - -$output = json_encode(array('metrics' => $metrics)); - -if (isset($_SERVER['argv'][3])) { - file_put_contents($_SERVER['argv'][3], $output); - echo "Done." . PHP_EOL; -} else { - echo $output . PHP_EOL; -} diff --git a/vendor/jms/serializer/tests/bootstrap.php b/vendor/jms/serializer/tests/bootstrap.php deleted file mode 100644 index 2d18590..0000000 --- a/vendor/jms/serializer/tests/bootstrap.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -use Doctrine\Common\Annotations\AnnotationRegistry; - -call_user_func(function () { - if (!is_file($autoloadFile = __DIR__ . '/../vendor/autoload.php')) { - throw new \RuntimeException('Did not find vendor/autoload.php. Did you run "composer install --dev"?'); - } - - $loader = require $autoloadFile; - $loader->add('JMS\Serializer\Tests', __DIR__); - - AnnotationRegistry::registerLoader('class_exists'); -}); diff --git a/vendor/myclabs/deep-copy/.gitattributes b/vendor/myclabs/deep-copy/.gitattributes deleted file mode 100755 index 8018068..0000000 --- a/vendor/myclabs/deep-copy/.gitattributes +++ /dev/null @@ -1,7 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -*.png binary - -tests/ export-ignore -phpunit.xml.dist export-ignore diff --git a/vendor/myclabs/deep-copy/.gitignore b/vendor/myclabs/deep-copy/.gitignore deleted file mode 100755 index eef72f7..0000000 --- a/vendor/myclabs/deep-copy/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/composer.phar -/composer.lock -/vendor/* diff --git a/vendor/myclabs/deep-copy/.travis.yml b/vendor/myclabs/deep-copy/.travis.yml deleted file mode 100755 index 89dc02a..0000000 --- a/vendor/myclabs/deep-copy/.travis.yml +++ /dev/null @@ -1,40 +0,0 @@ -language: php - -sudo: false - -php: - - '5.6' - - '7.0' - - '7.1' - - nightly - -matrix: - fast_finish: true - include: - - php: '5.6' - env: COMPOSER_FLAGS="--prefer-lowest" - allow_failures: - - php: nightly - -cache: - directories: - - $HOME/.composer/cache/files - -before_install: - - | - if [ "$TRAVIS_PHP_VERSION" = "nightly" ]; then - COMPOSER_FLAGS="$COMPOSER_FLAGS --ignore-platform-reqs" - fi; - -install: - - composer update --no-interaction --no-progress --no-suggest --prefer-dist $COMPOSER_FLAGS - - wget https://github.com/satooshi/php-coveralls/releases/download/v1.0.0/coveralls.phar - -before_script: - - mkdir -p build/logs - -script: - - vendor/bin/phpunit --coverage-clover build/logs/clover.xml - -after_script: - - php coveralls.phar -v diff --git a/vendor/myclabs/deep-copy/LICENSE b/vendor/myclabs/deep-copy/LICENSE deleted file mode 100644 index c3e8350..0000000 --- a/vendor/myclabs/deep-copy/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 My C-Sense - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/myclabs/deep-copy/README.md b/vendor/myclabs/deep-copy/README.md deleted file mode 100644 index 7f010df..0000000 --- a/vendor/myclabs/deep-copy/README.md +++ /dev/null @@ -1,372 +0,0 @@ -# DeepCopy - -DeepCopy helps you create deep copies (clones) of your objects. It is designed to handle cycles in the association graph. - -[![Build Status](https://travis-ci.org/myclabs/DeepCopy.png?branch=master)](https://travis-ci.org/myclabs/DeepCopy) -[![Coverage Status](https://coveralls.io/repos/myclabs/DeepCopy/badge.png?branch=master)](https://coveralls.io/r/myclabs/DeepCopy?branch=master) -[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/myclabs/DeepCopy/badges/quality-score.png?s=2747100c19b275f93a777e3297c6c12d1b68b934)](https://scrutinizer-ci.com/g/myclabs/DeepCopy/) -[![Total Downloads](https://poser.pugx.org/myclabs/deep-copy/downloads.svg)](https://packagist.org/packages/myclabs/deep-copy) - - -## Table of Contents - -1. [How](#how) -1. [Why](#why) - 1. [Using simply `clone`](#using-simply-clone) - 1. [Overridding `__clone()`](#overridding-__clone) - 1. [With `DeepCopy`](#with-deepcopy) -1. [How it works](#how-it-works) -1. [Going further](#going-further) - 1. [Matchers](#matchers) - 1. [Property name](#property-name) - 1. [Specific property](#specific-property) - 1. [Type](#type) - 1. [Filters](#filters) - 1. [`SetNullFilter`](#setnullfilter-filter) - 1. [`KeepFilter`](#keepfilter-filter) - 1. [`DoctrineCollectionFilter`](#doctrinecollectionfilter-filter) - 1. [`DoctrineEmptyCollectionFilter`](#doctrineemptycollectionfilter-filter) - 1. [`DoctrineProxyFilter`](#doctrineproxyfilter-filter) - 1. [`ReplaceFilter`](#replacefilter-type-filter) - 1. [`ShallowCopyFilter`](#doctrinecollectionfilter-type-filter) -1. [Edge cases](#edge-cases) -1. [Contributing](#contributing) - 1. [Tests](#tests) - - -## How? - -Install with Composer: - -```json -composer require myclabs/deep-copy -``` - -Use simply: - -```php -use DeepCopy\DeepCopy; - -$copier = new DeepCopy(); -$myCopy = $copier->copy($myObject); -``` - - -## Why? - -- How do you create copies of your objects? - -```php -$myCopy = clone $myObject; -``` - -- How do you create **deep** copies of your objects (i.e. copying also all the objects referenced in the properties)? - -You use [`__clone()`](http://www.php.net/manual/en/language.oop5.cloning.php#object.clone) and implement the behavior -yourself. - -- But how do you handle **cycles** in the association graph? - -Now you're in for a big mess :( - -![association graph](doc/graph.png) - - -### Using simply `clone` - -![Using clone](doc/clone.png) - - -### Overridding `__clone()` - -![Overridding __clone](doc/deep-clone.png) - - -### With `DeepCopy` - -![With DeepCopy](doc/deep-copy.png) - - -## How it works - -DeepCopy recursively traverses all the object's properties and clones them. To avoid cloning the same object twice it -keeps a hash map of all instances and thus preserves the object graph. - -To use it: - -```php -use function DeepCopy\deep_copy; - -$copy = deep_copy($var); -``` - -Alternatively, you can create your own `DeepCopy` instance to configure it differently for example: - -```php -use DeepCopy\DeepCopy; - -$copier = new DeepCopy(true); - -$copy = $copier->copy($var); -``` - -You may want to roll your own deep copy function: - -```php -namespace Acme; - -use DeepCopy\DeepCopy; - -function deep_copy($var) -{ - static $copier = null; - - if (null === $copier) { - $copier = new DeepCopy(true); - } - - return $copier->copy($var); -} -``` - - -## Going further - -You can add filters to customize the copy process. - -The method to add a filter is `DeepCopy\DeepCopy::addFilter($filter, $matcher)`, -with `$filter` implementing `DeepCopy\Filter\Filter` -and `$matcher` implementing `DeepCopy\Matcher\Matcher`. - -We provide some generic filters and matchers. - - -### Matchers - - - `DeepCopy\Matcher` applies on a object attribute. - - `DeepCopy\TypeMatcher` applies on any element found in graph, including array elements. - - -#### Property name - -The `PropertyNameMatcher` will match a property by its name: - -```php -use DeepCopy\Matcher\PropertyNameMatcher; - -// Will apply a filter to any property of any objects named "id" -$matcher = new PropertyNameMatcher('id'); -``` - - -#### Specific property - -The `PropertyMatcher` will match a specific property of a specific class: - -```php -use DeepCopy\Matcher\PropertyMatcher; - -// Will apply a filter to the property "id" of any objects of the class "MyClass" -$matcher = new PropertyMatcher('MyClass', 'id'); -``` - - -#### Type - -The `TypeMatcher` will match any element by its type (instance of a class or any value that could be parameter of -[gettype()](http://php.net/manual/en/function.gettype.php) function): - -```php -use DeepCopy\TypeMatcher\TypeMatcher; - -// Will apply a filter to any object that is an instance of Doctrine\Common\Collections\Collection -$matcher = new TypeMatcher('Doctrine\Common\Collections\Collection'); -``` - - -### Filters - -- `DeepCopy\Filter` applies a transformation to the object attribute matched by `DeepCopy\Matcher` -- `DeepCopy\TypeFilter` applies a transformation to any element matched by `DeepCopy\TypeMatcher` - - -#### `SetNullFilter` (filter) - -Let's say for example that you are copying a database record (or a Doctrine entity), so you want the copy not to have -any ID: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\SetNullFilter; -use DeepCopy\Matcher\PropertyNameMatcher; - -$object = MyClass::load(123); -echo $object->id; // 123 - -$copier = new DeepCopy(); -$copier->addFilter(new SetNullFilter(), new PropertyNameMatcher('id')); - -$copy = $copier->copy($object); - -echo $copy->id; // null -``` - - -#### `KeepFilter` (filter) - -If you want a property to remain untouched (for example, an association to an object): - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\KeepFilter; -use DeepCopy\Matcher\PropertyMatcher; - -$copier = new DeepCopy(); -$copier->addFilter(new KeepFilter(), new PropertyMatcher('MyClass', 'category')); - -$copy = $copier->copy($object); -// $copy->category has not been touched -``` - - -#### `DoctrineCollectionFilter` (filter) - -If you use Doctrine and want to copy an entity, you will need to use the `DoctrineCollectionFilter`: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\Doctrine\DoctrineCollectionFilter; -use DeepCopy\Matcher\PropertyTypeMatcher; - -$copier = new DeepCopy(); -$copier->addFilter(new DoctrineCollectionFilter(), new PropertyTypeMatcher('Doctrine\Common\Collections\Collection')); - -$copy = $copier->copy($object); -``` - - -#### `DoctrineEmptyCollectionFilter` (filter) - -If you use Doctrine and want to copy an entity who contains a `Collection` that you want to be reset, you can use the -`DoctrineEmptyCollectionFilter` - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\Doctrine\DoctrineEmptyCollectionFilter; -use DeepCopy\Matcher\PropertyMatcher; - -$copier = new DeepCopy(); -$copier->addFilter(new DoctrineEmptyCollectionFilter(), new PropertyMatcher('MyClass', 'myProperty')); - -$copy = $copier->copy($object); - -// $copy->myProperty will return an empty collection -``` - - -#### `DoctrineProxyFilter` (filter) - -If you use Doctrine and use cloning on lazy loaded entities, you might encounter errors mentioning missing fields on a -Doctrine proxy class (...\\\_\_CG\_\_\Proxy). -You can use the `DoctrineProxyFilter` to load the actual entity behind the Doctrine proxy class. -**Make sure, though, to put this as one of your very first filters in the filter chain so that the entity is loaded -before other filters are applied!** - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\Doctrine\DoctrineProxyFilter; -use DeepCopy\Matcher\Doctrine\DoctrineProxyMatcher; - -$copier = new DeepCopy(); -$copier->addFilter(new DoctrineProxyFilter(), new DoctrineProxyMatcher()); - -$copy = $copier->copy($object); - -// $copy should now contain a clone of all entities, including those that were not yet fully loaded. -``` - - -#### `ReplaceFilter` (type filter) - -1. If you want to replace the value of a property: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\Filter\ReplaceFilter; -use DeepCopy\Matcher\PropertyMatcher; - -$copier = new DeepCopy(); -$callback = function ($currentValue) { - return $currentValue . ' (copy)' -}; -$copier->addFilter(new ReplaceFilter($callback), new PropertyMatcher('MyClass', 'title')); - -$copy = $copier->copy($object); - -// $copy->title will contain the data returned by the callback, e.g. 'The title (copy)' -``` - -2. If you want to replace whole element: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\TypeFilter\ReplaceFilter; -use DeepCopy\TypeMatcher\TypeMatcher; - -$copier = new DeepCopy(); -$callback = function (MyClass $myClass) { - return get_class($myClass); -}; -$copier->addTypeFilter(new ReplaceFilter($callback), new TypeMatcher('MyClass')); - -$copy = $copier->copy([new MyClass, 'some string', new MyClass]); - -// $copy will contain ['MyClass', 'some string', 'MyClass'] -``` - - -The `$callback` parameter of the `ReplaceFilter` constructor accepts any PHP callable. - - -#### `ShallowCopyFilter` (type filter) - -Stop *DeepCopy* from recursively copying element, using standard `clone` instead: - -```php -use DeepCopy\DeepCopy; -use DeepCopy\TypeFilter\ShallowCopyFilter; -use DeepCopy\TypeMatcher\TypeMatcher; -use Mockery as m; - -$this->deepCopy = new DeepCopy(); -$this->deepCopy->addTypeFilter( - new ShallowCopyFilter, - new TypeMatcher(m\MockInterface::class) -); - -$myServiceWithMocks = new MyService(m::mock(MyDependency1::class), m::mock(MyDependency2::class)); -// All mocks will be just cloned, not deep copied -``` - - -## Edge cases - -The following structures cannot be deep-copied with PHP Reflection. As a result they are shallow cloned and filters are -not applied. There is two ways for you to handle them: - -- Implement your own `__clone()` method -- Use a filter with a type matcher - - -## Contributing - -DeepCopy is distributed under the MIT license. - - -### Tests - -Running the tests is simple: - -```php -vendor/bin/phpunit -``` diff --git a/vendor/myclabs/deep-copy/composer.json b/vendor/myclabs/deep-copy/composer.json deleted file mode 100644 index d5d3a77..0000000 --- a/vendor/myclabs/deep-copy/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "myclabs/deep-copy", - "type": "library", - "description": "Create deep copies (clones) of your objects", - "keywords": ["clone", "copy", "duplicate", "object", "object graph"], - "license": "MIT", - - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "autoload-dev": { - "psr-4": { - "DeepCopy\\": "fixtures/", - "DeepCopyTest\\": "tests/DeepCopyTest/" - } - }, - - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" - }, - - "config": { - "sort-packages": true - } -} diff --git a/vendor/myclabs/deep-copy/doc/clone.png b/vendor/myclabs/deep-copy/doc/clone.png deleted file mode 100644 index 376afd491257d44a8c3772b0b7b0bd7b6c747086..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12380 zcmdsddpy)z_y3H+sH*yKN#S8~ckxM4S7|e)t&gnvlA(!El zawkGAW5_8nLd1-_j>}+%k;{y`-yS;8d7kI{{XOUTe*gRZ{zxy|XYalCTI>B@Ywxvw zHa9)D>APLuK_HM#7ta4+0fE4X5D4_z25~SlvHAB^@E;Usaqbi(w^4o+{341qG%OZc3(!$BZYHNt<;TJLmM2t?!Sg&z#90?^|W+?cY>oXut0Db^h_j9z$A`*Tvs{+ZgKAZ)Bjk7k#vBZ^VbaA9o+cZo76# z^Sk}cFKI-W2~JO8C2XM*)8T^j7{7EmE3^HnOT(*VWkO+A*44{4ZT6fbo_8bis-r)U zsmdoD1%Z&E65uEhm<%8M6yL{%LLidoSuhA>XH-5M0@2*#EDeD;8N5Y+3FQ9=C)7qI zFLSY3QX3(|=3Vd%{=21cRD_j>W@a$7O5S~OPg`XiHNQ5>$a22UEacad2TTxTWISv^ z1!ti17I9j|WT;ku<<(fqQ37PxRca)w0Xn{cD0v~8msLM-bF?Mxa`0rBLeR`75%Rbe zeCF~n882M^X?7+_O2}YPou= z^G%r6H+@UP+BPMQM%Skx4H>mar-Vg8C-Y>k%z`_{rSaPoM8eXGS$+w9`RUo$xT<14PholFT;BZ2mzOzJSgC90ST5(&GJ>WP`W&o+mpK^yfI4He zFDtGPHg}IccklAEN=|NhCbe*V1@E;LB6X)eR2L@CX1B3l^v=A{b}a1K?caUVHDO6V z4^0dFh{wesQ+7K??wxHP)Xr%Np1@@>w9u2ccgS}K3wpB7E>BVD6$?n?HCLZK4!_~C zx>8(1^PDBvO$)qN`QB~g77Ftp&RKW8a8LEg{ZkuXA9x?id|{$%LMX$Xx1_U^iJ4R; zaZMj3NGG{PL0<5y)=G3rF5OpE>|O`5C8T0N&e6f}~0H?wQJY#nYHFZa{0o5)SgjC9Rhb7DO6 z-EmNejM<|?+4VLN6U0lVgBsPpAeFcclBmc+g5d)dG#@>ZR2>ybp(I5jP84G>M_^4`<-V=4}Q?)o3?;5 zdg%f!{Ww_X7XD6)>nf%DLnMx&rua*2{nbhD33d0`yZ|2yVRKsj zHE(qxuT3d2Lr}p+wT%xS_@<9Epbxt@%fIiS2ejSqn|rT~E;Pv<&^RZ4MVmYQWWRJ( zVqhH1exi@L+EK6C?TjzgUVT5w1u|3i5J(YMMBJfu90tcU#&#U zm@bf-{^TRYNZpp;?Ea=xV$H+BAAco1?7X{f{f`TK+h8mTFbs@-#|^-FHo*$+b1-cI^#|Twn-vq@?^sP?ouTJ-8m<5lG;TUNtMV?o_d3%x9RD#v`fo?la z`xWn;kn!F%zEWe8kpdnEyO~HEt6gVc;2*ObT6>RwU+{BeA8B>DZM>b6;~mTyo6e=L zEQFDknWP*qrsbMz4#{gWSAxre$A%NU_1^dn8Toa!1Ct7Is|LV+jP~1rn+DO&FTp;T zUr0symcEzkos1a6qt-=kgyOh;%&=a&6@9fo-BUqz{FUBxe3Sh35nd2mC#$PXg>tvs zm!X!`^zl&zgQ8(mGM=_(On0d`msRw}Ku*_;^*7JVtn;>SJ)2~#J5kQ79K+YP1wPYf zG(JDGCT^R2K4*Dxv2S%nQ2}$R+4!5sWbLP4$WbWOF?)vA_hk_anL<9ghjd~t3Y5?t zmj57`%6QI-&`ZuMu2JI{Ub(F;%O>*Zl02$H&`Zqf;+wA-{4kswxLO%v&C8BSs0>;f zP@oU5BF}x>?jC?^4}qPO^`7`Bsb89MBsV9 zwKM-2-=EhBE(^8r=Lm@SF{(CJ@PFC(X%OZwN76DJDue9)qb%!sNUwUM;*zR_Sx8WOml#9fdYZ9}mM{HY0YnN_oBc5)sD9qp$Q!m<62j zOK6`3`M~ld@y7CUJZxAQIHG-6hhJJK+P}vSZbqoL%v9i|PSJ*l4N@8WuZ|SJK_FpF z@w7T+$xky2Y>Ada2;S80p0H%9c74|KpD^0+Q7|7@tNS8>*Cem0?;J_{+R3csKiyxL zv#{K^x_o)-@*;h8aqKwiGY7M}&?X=-)Jm*M;tL^8>ewXM$|!YZw4dMQt>2B&8<1@} zF?RZ@A{UjZmk9G7&PLjq;uRPr@=JkfmeK4&1E&@a$WlESX7n z{RDFDaS396D)$E?#l|f)pIou=R5eQZn;%5UrTaeb%XaH4t2mOp*^9-t7y24Q`gI%}mHbzD0W)?($lqzB$+XOje`L!TW8xZe z{-+#AyuC>BvRe5*ZuP;IaK@!KOFF)mjZN10^YeDl{)z&#gWBd7@{yiNj>X2C9Tqxr z21L*zH%bSss$A58%70B9H;V4PJFJVkH!76`xslmzF!b6F-;oz9m+neEay$II#g?TNxa#>G%DwMBgIh z6?I;PZUk#G^}vjC;!ViGMU{-< zOEAT|KbvTP@-N$AOX@aR)t@Z?w5n?mQaPn#w~BJ5#zjg59J-Sa-zsrLse2IfWtc=# zc7uH2iIUxn3@+F*LK_P5vV_*-AN>4;Y_muk44!9=?4=x*AZoty_V4X}QkVo`Ja&5Q zL@B(PkX>jTCp#{#^0KaS{0-SAL|Fu3tjw)`mTjhE*Y5fx$q7$}%=T*rc^WD1$omEBdD~gP1{lhlX zFG~eAYC0Vio5=cBm7eoG@;fGd`;UKNRmzV6;UDT4dD-9#h6JO&vQB+Z{P4)1Y;$*J zwB1Tda`G(`tys!+r?*yUC~S@Ta_cREsPrY5d#K=5bfYOa;=XWOmtr}))0gm#^UPi6okm+~Uuc_mxF$K?PFnFl-l46m%LJgny)EiH zmtTDnw{`L>drWW_eS!xY!D>&`(+P+xYqU#Hyv$rBpo1}j)h7W8?#(Ao+w6i zykdoN9~Qo>l6fMRexslFNKL}z!^Fsl$j$CoQiksDWTzq^&x6Zqyp zjNl5kM28?>5UGYD*(>!UN8rMjk%Kz11p`f6&JI(cDcN`G=noTNJ1(_%C|PCaEk3or z?P!NpW{tnU0L{zBZJSJyev7E7Gffwzac8b8hglO2X>Eht_%*wbQC;TSoNnFfhkyId zD~-w)I1qKGDuXV*iC6)9yz6+r;tElP89wBTTvXb#kCmnm)YG`hYFM$qdP;&QsdO%& zaBF?XzH@}dM~1nQ8wheNGbBWt7HWi?rlScYJ1kpVWxBrd2wh-bWy~^_76erJf`t`z zUKX78{am7tbjKhR4CUWb3^Zw>_18Jvf+V^0*N>7D5st+BqPn)n!R`74?zN=suBn|v z>9kO(_ZI8u5xqC#4iD+98@RkNV6=%KDWg?Q@E6 z@!u*AFiBw&N<)89Rqxc9@a~Txv%UMP1Hw_;)tpngueE%d>4~3IBkdYzpur3ed|9K{ zE}0jXy;2^J%W&lzMr(kfA}M6}z*fHPA?(kws#vl5sz=qEM@}z{2#sX0W+diI-3TPd zUOjcDOM-wKg8pr=!aTax3#_3>f(G#PIFNuBCkeG!C@ zymRE4`iEKE58SF)Rm$d}!`oQSf~j4`dp>Y-9sYJHYxJZ}9wS8Q79|Bul$<_XEx(y> zD~}C-Z_y4>nk?P6qge5D$il#NKv^7aw}G3iQB~F*Kd5y27QXEhc{g>PV#&jYFd}GK zhpD_OI5wIoj6{G5aj=-74_4Gx&&wa(3i-a4v`JFx$>x>4> z$as<*2YXsns~t&f?EH>XwI67&x`X=FjjUF4QQWFZL8VW*R;)sP!`4aiv<%-ioI6r) z+O%ctrd!-Wm}zfB@MCBFrbUzXju^Rg0GJ!K%bO~e{Cj!c{m>ms+)p$~JvaEsPqTAc z{ZE{02R^3zHoHgr;fKUk+B+Vcu7VBk<9<4Z4dh!QvmSk^^G+Lt|jk#`;7&EJkw4Eot{aJ??v2#`YQGDjZV1`EmX^|7_-u zDm50e$=z?rrOyR}^LRjXQ!8sY;@1G8YZ8M>kNli}&c-+1QZ~h5;?x&Hb*_oGFh~Hl z>d+X~A#{5*JFA_`^0l}-(Srr`z*cTi)Lw&k9r4T7BE1XKXVzD?ipchry}WYl*3GAq zXt$jVyPbT?Kp|V*tXAh~0F~itPwGr{Bh~wd3=A4Ybjmm0KgD{M;cIsp|K>I#!RUi( zP5iTo#l1EDAmWGo-1B-(Bo~!MimtM+lhZQNQY4wZQS*D}$g5hf-OeSXV3iqmgq8cM zky!C*-S;nh43xU|i3UpLPdq16*bm8YF3dS{e*sKgr>9~Q`_gTLhYdPMDlUSwX1}(1 zd~RXbQ(daeiU(W*Fk3@fMU~zbeq7J3kC(-@PvnVK_+G%=771ny#4t%{0imLuX&h6( zIQ>DQ_31b3}EUj*;(y#3r7b&S*|@mKpxN)IVp*RLg-axC#8bz~oel zbAqSLBm~^|UTy8jpd1mCML2uOsxbD%mk2J{VJTncU(2O~tfRVks5A}+FJe3MH_gW} z$WS~WBIWw{Fv)0%kmggTF3KJ{x9JEWScx@+{b)d|9L})nrAAVm*nV}nAm7soJJb(t z0Fj*ID`6|E?)dn$M=N_^18f*@+z^+L12Q2|!?0uJv1lsW4WwG7PYXH8cOlb2_RP`v zZT@D@;K;Dc;>}Ct&yUyx(|(Q^v6zpOOV=#XWlmLO?Y?yY+9c~rE)GW(U!^k7e=145 zbbz9Lb;I~2adw5*@ilw>n6w+G1H64UhMh)+H}7zc%=rK@j~L}nrfL%&##SG#aW|Hr z0>)(+plG4L?0vd@%E1JKAtlF>*(y@x5DB7#t$4GRsH@K%bkT{$L}u-uV0zW~uw7J_ ze0T%V;k zQr`#jj0ly4i$i0-hj|iu(Swrq$bFaT~%1ih|o+&-U)dSE4H>pV%JP#g4ed{ z$BFFww}6eHbL%!TGy|&|-USJyM>SM}{AvR+(fFY_1-jR}rp0wcjgsXynPfDl3T_W& zp+>#>j@Xh5*TPFg;DJ+kL>A zT<(#okS%I$Gu52g{dTAXnL}B60#Y5D}Gn& zhZC)a-o6*?)$_VRBALtpamHDR3Wql)$$=KS)2q zv-lvC_l6!y5zNa4KyKX2KX(~fpJ>Qzt|mNjqOe;);4m!@HQG3I!vzhO3h>#YEHsv= zE(CAL8rUUU!Pxx!eer}3)B9@N8zb5xIxOaGi|gDxj03!oH6PCmB15`6TjfRTI90gs z$c{4n6L0O6OrxR4n;w85Gyc1{3XaiqMIHIE38s7ynukArr3&Wc^%kKjYf*3h*jdci z&TidM;vL`(LAz5kftsLDVk7$-A~beAsP)X3i!gGz(FHA((($s(xw&}WZtY+ zv2G=yXYit6!6QvnH&ub0EI}kT#{cpaT!>_UFe?wOzm>E*;R56U_SDv;oeU8FBTLBe zs>d6M#2aPe2fYh*WiK*LmbZGPXgOlp_dmaLWoghk@|w;arVDZb1dQG=NSN|}c-xz7 zWN@J7q6maxe!J%acqE7s-bErl_k7?LFI8?8x7`kvCI|1~j_<`P#qN!?6mQf$TNL`* z3S5+Z@$Exy)Aa+E2)H(T1cO#U+FB4%Ll7hM>Bc~qri`<9lWWw$Fw>P|teL&1uZe#I zHd10Kx!PixcXbhj8`;EhOGI=Uvm@ee3GIu;)W}jBvE}za1Y0k)vufgROWR1G$ zWfi!&%mH1~@u69ZjR6Fcn8JR9GK3$RUve%nG!7#!OfZHH$AbjJKGm&mzyZ-Esy|F& zngn()R7cB9I$YgYr655+sj(ws`~bkw#biK@AmQelAr_~CCgtCpfJ#Fe%~*1Aem}5}fQ)k;I8%hp z$b5@r#oHe`V(6hZ;1c3CALo|?@j2=2?KIT#R#eY$FhGfw1VCv8h|~$&Jh+cQi(z6` zW*2lEB?5*7$JK-jpJT~AIkM4j-qH111MlT=tJwP5f(LTxK4|bswvW^{pPZ?{Y}$6* zB*?wU_qOoGpFlGtFCsS<`jq26vbZw7p){F3XnYk(X0q{IRFllf6Rk?rY z80X>v$c?-C+Hs>jkgaI`ncI#bd|_6X(jfE|BfQ#|G~LxHzTQdo{ut&nG8|IAm%GUo z)A+sX0bSsP;E93~_Q@zYYzSGZfsLGgYOG+dKlymIaZxaz34_Gl%h&!%G({$`V8v~p z>_c3v7VP&6YYC=r?4If!fsfhV$uA{zp6TfWHyIIrEOT3CE;a~h711AF6kZ&C+fgs} z%cqk%vES!0rV<MeK<(&0fs|4HELnXeHTGQORF8b0Pwo>(TTn`Z|Z zNysnRjC4=ltNJBl$sef`#W-=LUhueDqwk!j<{@EJk}PQy$>;e-J*zlg&q+;0ddx1I zIM_c_bss2{@jX}V2U*FjvG%!(bt#nmSf27KZ&dR{PC=u3O{!eFfun>!0mUx5+}_tn zAYgC1t&ob2OwO-N1^Oe8K@LTOz1=nw1?7FTlViywe`L7ZTp~#JMH^=87msW!3;iz9 z1g+Z2#G(5LI(Y(!J7QpKv(>Uq`j*ABvOSlEME6#o|46`4sR z@*$;uXjRB&{&uJ3^GgY!#9w3h6&o^)wdOH~Ftv4i?Akk$wsEIkNs`+;s=bD0FQfe> z&;-w6KU6R(`PM=9O~bsz(LAw=AleeCq8RE#+CWTFJ-1|>zxbeU?tvn#+Xa-TYN~S` zOiRI|W7+s?tvMx4dn|mK!8uy(fr^SL3`}#!wlc%eDsbFXU~-68rl>A<2~knaV8-l_z&GEm*pAyDyvz;G(4UXiC){GJ zUcTLXB>C(8Fdbe+;jT#;5#Z%}!fB0dBHbFxEgCuPV{Ptb!q*Zf*{MKBeK{(V^c7B; zgx}>68(a`L*90pO^r>e|9f+n9*Du@QEx`g%xL1mZ%LlhMC05#0S@Md124+46gPd#C zUv3R6pD1H^C_vJ8X>n1D9ZiT|y(+%G4-?k#Xjea|#wac^F{I_{P1@Z)lL_?sgtoj- zmemgKP4u+3R_e-34O1|nusS!!S$#8Bx&s0MSM=@XNFoI~VMCg=k=EeU2huvDD1n`= z$=1ueP}>^P_)AxOV-QjG)k!nAl~JP?;E}}c0VxhUWP)vt+SAouc~)8s(%>5;4%2;|ynmZgqH7y{P{ znvOs}R_D%>+~t0_KB(3iMwX8L-xpr*=lP#4EUb@M{^i0Ug7W{V#KCNxzDs|#@OtCU zzm?d-N?6X7$^}k!q-`s8?zb>A(n4!n9up_DmP}yPh1sXfiWi+Q3s96I*(@g}8w(8; zAw}$4XfG+t0c}^$+6=v-RZ{c#e#ApStyfM-+vYWqR;J$1qt!IOT;TA=YMw z)6V)m%BR>{^dA{HT%t5XzMgbzKks?jmk2qjN>IAGOuuUOht0i1rW1PF&*@D)YOCVk z-cixt|K+Yiu9tRB32oeyDH&*!htBcpvRs$cU`$x#t2RbYJyy))e7=eLf}<{WAH%N3 zHpAD=?qS82AZE-u^T25{LBGKt^B(F<*wSK~S~j*zFI6lJY2#EDlrv=~uO zv#D*w)`VWGo{85_`M0M-9w65M0`y)wZd%`ONf2IsOW$jS~IN?xBP@mimHY znE@PKLC?M2fv6Z#^G42%0!J7jjs^0dt+3-*6szzzA($Sd)}Y(p&De9CHAt#i#XYal zpt~qfPZ{uP(RiS07@{jmF6s$;WozxIGeBw5 zy2tDJIy&<%nbh>!sZxT2r=qFZAw392O6~D|ETw*>5fhBGM)0VybXdPt6KW3!_fp%M zFd)}w`ww#+_i@u=kM7wu!+PQHHr^OXoqF<8o?xOYC~ZQm)i2+eG@%SwtuRpZ1vHW< zF;b*8auMD(ZPm_2&Gm=1<@H$(y-E*WH5&g_M#PfFCucWZktP<6pUrHEzJr2*CwXT2 z3ug@velD73-{WP^IsLnxUWwb#tGJLRqwz9f2a6YxoUhD?~_?#S>qe{71 zIdVqBKDe)>H_*ec{Lwlsu46{WzxP(F343L!6lkcpf)~uwaY(R9Ud(VPm@fkb)(=#d z5gNQ=>~fxc1IJ%(4MlI!&&tlTj7{#o`+G}}UpWGB?(xB4)gdIc9vbO;I@XUSAdhnN z{h7zMYXm^Eanczd2UaySgG!kZn=NR0wDy*{d)=6*`g2!6pzrP6EIl~&%$Jt`~g7qM`J}( zwW%Jk?&~p74U%OZ{}@qioqA8?`pyp@q0Tpqar9@kNz>YGO`Otoa``V&&rR*VI|gj{ z0`$?YpEe_j^6z8dlH+Bk{L37ev~J4D1OH|Y04#7_`dG@pIn%%HBb?LYPyM%ZKu*!K)^zg^0{v?q;sP?J zcN!s={;je=nq-9mo}*sGrn+N*mB16HWuY+gd`>211_M6V%-dUo{^)^O?DP=d)K=_d z8fZWggK%T>Uq1a?!v*P)JP5g`Ga=u9v_+}y67cvdN@PJD&{2=^96E(p3(2 z+V=j*0gZK+V~+0sHRmWIP1k$(jbLF_aZ#VlDO99|z=)UT!K|z5;qC^i8NTTscc-^s z;S4dES{h}KteLg=Iv1%&gQJU@9(4{M4pGV$(qCB*wvR3rzN`ENrtvfykS4tuArC$_ zilMk5Xn8XU@Q5_vwFFbTy9nG6v@!-K3_;ji{D5KTxBtf=&+LL}IjeU-X1c|EhAgBX zuVrMjuwlLwv~6S0rR*?ib%gvgzsnyBN*={PukxU6&Fa#Yg$UQnxcHMbPd*PPIvQbJ zEugs5k}KuOT;)$lMmxoi7y4nO_ypJA9=R%;uEwn5fo7e4{%n8Z%iAdB&Bz+!&8}1i z7gmoT7$H0X*_=Snm_i#6ZVNPnnk2f_T>Az}G{ znmKGGs>7UA`DNwxU$HTTh?CFMv6iAJxkFiz!hf8}mA{4$W8^Q3IK+cABy-(ADT$Ql zFI<~-^jYLT&2$Pkm})N`~=hx$)-ytyLvSL*naf{OOuv-Pg?FZJxJ%t^(t z7h@e+<5rX@o2xLpM|-$tr)P+)DQ{Vg!0A+WYgibg6YosCd+4XuAM;7=PPB3ea?+cv z9!(D^?W3fK@vSGbY`obMM7D=sS@nk}D`ZQE?BD>V z2+XoX%5g=M<4Lm&N>t)ZcKcf)8IGuGINrycN3Q3D>B#Y*v!ns*|s?a zPr9#9-+ZS|XEN{b-oXnhwbVPOz8ct?qN7E!-bB{I+%9}^kZ0~by=yRVGyoo-NfGnG zU-;Ban~7Fhq3u6z5m2kw_)VPVK%5Md9L(Bsj78d zvWOpa?$mmp5#R6AqS)CmUoXWz%b2ek2=<^vQ%3QaFbch5$vY{vYXYXV11QgL}Qs>7MpNmRWD%)_P1_;TIgh4jz`%4EQ* zEZ8W2^G9B1r%xxL?Ebw`%jU-SsWLtrG7J-qnZd7}l+xG9Nhq?z&T=Kv9Kf zIn1I(h@@E-QD4&X*bi^HtrT@N6*&I|>r)g1r3XV7o9~}$EY;a-1Cw~KPH-D_u+!;j zZNQYxg71dlvCPRz)o&5#SnbiGy})K>OGipy9dtkB0SA@r-U)0Bi`7G9&%eJDrIZ}z z9cX>dtIy^efBDora%}&rm)A!a6D95JNmp2M`6KEXr!jb~Sc&;@`LCfC1lC;UzB?oL z8#maJ(Kj||B~!ij(5ZogbIeNbLG8t1WlR!P$$W{%YQb&YgUr6WcITc6$HvNgF-p2&qJ3eQ$B`?;!~6|7e*Z|VjS2^Y2Trxa8yC&+QJC&LZwl++I$nKJ8!uQOUL?GG?YA9muDfd`X?wNdH%}*1qyQX2oreipP)+!7ugE3RF4e#{Nc@H z<*FsNuKSbjFqxB-?(18%nrKNb>DC`Z5+c54r^D9|RSfip%+z&`+>hVyTY1hicW1&< zE>R_OMNQA_rTTT2mU!>xwN%@?lwEh)Yp;=`b)*4-obT0S4?D8A)KY_YG0T*QUq0mo zmJC-GNx}ivs01Mbtfh`HxY!n$>)3a=gT$EYG7#am*pWQhU#-IQh>l@jqqQe9EA;e1sQArJ$i}Y_ z(FUCLjtas2aIt}s`e<6aYRn{=oO{C`;so-1?JUBj0t!)phkW91>pmgB1SbHz9=6hU- zze0uj<7rf_%>28RBQ+DnDa8nf(E08%$IItb2)jh{4Rd5Cb9C`+%3IRj-#ENbUd}|O zn`?z2_QVeGGwqstpvA5**JkVN1os-B@f8E;{ssQm{ z9<@4?Dqk$R9U-5Yo%^0vmGVwo1PUh|KaeuYkvwo3y(Mm1A(I~Eb)&2kDsP>YuWYl4 z%-l&>9iDY@Hj{#Qd8dn6%N|}7PT3n$k(?P%7DN5=ICR}?ym%;`)2T55MNGFQsdUQ! z7BDjqx=?T?0qnIJA>SR;*n3j#lmK!?hZt#km!-?HQCUgCG})>R)wv5He|#VJ12qu{ zD$l@RRny#@!uq#9T`7vn-zs31zWgDI#yJ;=B*k9hifB+&i0YACX#i5S;x2-@N#H{J zu}P5@>obsy&q7J6pW|5uXHsDg{M%)wd`syzNP0Eju@;|{m5Lxl*l|8dnJ!bh%i&P> zb3^X5!PV~r;(ZvVCl@$r3E=YdJn2!5-RfmXPp@C@H70r5oCbF`y;AMOWn5;lwim~J zKVivWm5jh4r2|(Vw@|q9Hr9F6NyPQ9wn*$NbG?d-zwB$NobG2)>tPW>pVnd?hfvq% zo+lU2WIv8)q)z36%ah2F{nwhe?1$op5;7k2n;u@lU#Jkb?qXv?TX6tJM{p~&!@IaN zQjrzvXL@FVe!v1iG>ARibKYkM6xA`aGd%NlDwiy{w64hfTv7kZ8xnbZTytt{@KkE? zjY|gng{}7D=W9-Mufg>V0mEsHEhy}LH*+ly{19K}KV_s(tUWY5wjE08o{>#II4C0Y ze6tKf-nW}*rI+b(GphhPqsQ4UZ#7viXD``PG_2WoaXA3J9&$YV@vGy|p8DgK^+Pk! zAk?*9R`IRx(5bn1l#8%I@Vwv^7u%J9e??=HdDX z!}~(UR)oCm+vWXda}IU0sO}a};mFYAOP!Cm3Ka8Skspg7k)G%7Te0`TKnpL)W_|zq zM_ruS3T)YE7aHx<$uM2Eu(tY*kDo9$)h{Es@rI-^Yop`?=Lh}x!zR3zd!DVqHG%^q z+LDfaw7b0Kx%+E|Rrew@cQ-;_V&qz%S`d(+B;T&aMlpZ)orKbj`EvgC_hh+m8gs_( zg(Pq_wBRN_8cmS=ZppBywJu5K{Dpvmcc?xH%d!4I_It?DFQdv^*Qc zC((_0S|`hgC@;bAnADiAYI{aGFY=7^{8z6G7ZuHYqG+`mL{Iur(xL3K0;-KP)rNN# zh*-=t%t?My2bwz8Liv>`H0z9ZdY-es^-|U+Xv(L8-!?v&XxnmI79nrUpi2kK?68d% zk7cGqy`2~h?C2_ju$$toHbQQwoInu)7;f5XO z%z|KuHK>5M?{|4F1yW#m}v4Bc+Lt}(5-p+(8D5KWckY2Dg?oR#k?a)a#rCl z+%zKR6^GVAL==PwTor#IW4!|GL5}{k7HM=YUkrKJi<+_7TcQW4IxDzKq9=XViq z7`TI|bJ#>l2a(ret>o?-fWHpU_GDd$)PDnwEG8G|s)a=RE_GfNIGs?BwkUd>I_sn{cV1QEmpsrvoJypE*f zLJkn>;qK*r^W+0F5l^|!kn2h6Xz{hLazb}c;pH|wgmz%upbsQH8DpkvmBakFh7W%s zVz}N^-i`+%sJRK;8ZY2eTAdWDQ230bj?CX!{qSPK`48NrFF`{xiZm(G01?BXlw8F5 z-`c&+rVI1oA~20J*9)v%kAm#VB45&_iK6%#Hchz2%OjwXP4gTt#am>am#bwRZabkR zSLz>gOM@Xyh&O81-LmxOBXmBRg!b@~ac9fa4@55vmrLCR@rlH!Hou%nQ0{a=OJe6X zPKO^iUFN*pP7xxUOXnfoQWHDSNa|J7&k)@X5*LcdR#E6W9DWC*Q&~{l&_e2cz(3hjAY#f(2qemO)QDK%^$B?tEN7hd-%zj~h_ifA(C`&h#m z6BFT23n^~|C^E{iGvUX3W>t6x(i`s)e zv%c_BeE;^{g1qFRjw>Y+mRhSs!`fpn;dY+WSoYqZ&nIB=^_#MtX1rt)!zEgCm8j*o zW9X2NG&--Q?_#Rn#rTd}$>H5|V&~=`?+`;>GLqVp$R<@+uU{^@tBU7w^}Ok)2ghB{ z^B3-~p5r6840vQ6;uh3x$m5;j`jh)SGJRE zqJ>r}By1``uCQCh9W^}gp;8PbPaC}Z_9}^>HvJ1i#y3Ye?oAn43E{!h#z0!%DCAx> zUsC?b!WUKOH-E7}toJlpu{CtN*%g3e^FW>8u=SOyW|GbAO&VtUoF;e1-F7K6V~)Q> zarwnkJKF0F2#@`3ACUHL22;s#fu&rkYUg?9gAxwg@)us793)~GkI&+N?RwX=-K-Ow zwiCxq?;W5WmN&anvBOW*9i!!vWbSfW{YS3*X$ipBI z#l1(0J&p5PWrR1j(t7HIw$Jc$jFgSuZwE-!!JE;aqZJW7DS{b{Q zN5STvJe4qh!h7X0PBWFJ?R#=3K`BCI?@Qh&Lv-}|wU_o}&j&LKb01t+2JwV@Zsz*z zL3Bj>a4<U6IUZc zd`eQs29m}mmlKjH^VlBB{yrZoeUwlaywK}hN`O24@#7tS0&=10od-l~a)-@NpjBD( zNSju5u!->mgTibt;v3&d@Y+v*o_s|r?DYX*w6t@I1>?e9j43`4o7zoAAZr=2SskO* zwLVXRGc*wsTm2I`*^<>7Z)4b0C+?SzD2;uAoatGC*6|X)4q;0wQRBS8R7%}Ruv+lz zYCnDRV;$Ei`TKMDD*fp9p(z7=pC8ehu|6>BWgPKy6cNR^+k(YfQ-d=K*0}9Y8NV_Q zl@|~Wrqa@zgr z6>Af@xXKFo&?uh?99&6eRIHuAmGT#+yi5yPyrlE_QVxbq!?S6nX=+pbv{Ia(^~RUs zb3rC1`NXEfw6WCH1RPVlXQHDtugN4`aT9hyinUb4w;t+z4Lr%dSi zP<@Pc5A}dWO?JBu@}w5@4y|RDi1WY1NaS3YupP9iX_FMKoZH8_g86)f<}&DnL}Ii) zOnGDaf}umwp>3S$8FpK62H_-PA}7&7Jpx>``3(bz8GUJS?t3b+Cvq~zm+d~;Z zQkQ&)11B@e`@^=)BXZs^=;Y&@KsFYNi|ONJhy8IrQmD`|bUuEW!3qu8`a8T&BgK)5 z?)wY#c;a$-pBk-D&G<}WEIp`{6MT0mxFZYmxVr9$JdLzLx`B^!GXy|vLZ_b_BH`T9 z&%eD|hOym&`HN-nJ{LY-US>e2M+Y>8p^tW9QAZJZdWsRk71$2&;g-n@a&NLoz>#o0 zfe2w$tWDQN)X^2&Oavn0Mck1ear3k7I*E|miP6)j{~atA=b!y|U~8pNOAj)){$}5Q zf@RGe`{m!j{sXJArrOc}hE-Th?{4ZO{2SPRVwEwr>0hx5i}=fj1OEzE6crN0pxu=P z#i2g4HXY8F=8~}ag30!%R9Ig*m&FN|UUl>2GXe&SuWp9LvC^A>P31T%ZljK3n0gS zpqO5FvK9mm#lBqU7iKHA6*&tSSo`6)~o&x+pFz-9k{6FB}%9o^xz=HmO< zPRXrP54|5PItSF+F*Go}IN!d5M&AT=+dj^#T(EUd{(&okPE}DWK>%9jxmDtE$|_TWiak-$tSMw=#PNW7LPxnP0Yp1WursmJafajLRc zgdej?Td*=c+&?g~bNXKsfJSS)COzv; z^_<6JXUw6i-?T4|>Zu*;Z>6_tz~*!hyaZf`^3S*|Zgv4}vR7UIMSIvn8BOr~aJy` zSw#y_x=x~cMZ?0h6o}{@_2|KgxMOh@i7)n)f^s6qHsEyjp?Zodz~)vD4mYy!t^I2W zF=kyI@7%g93Hzo>(XTAKhCXr(^m_0nd~#3J4G_31+>u?{jM6z|n@-eWrN{YosaDyS15a4(ShF{)kKV2^^RRiKE+lcoX!@FJ-s}+b;_8uP8phaN zw0bIh?bm$_LfLzXi!VxB)_4?2b#WUN97Wt&SX>TE2aTS}8Eo2q_JXNOD+b`VtoEl)iS~PfhH!idl~?URmU4%Nf!D2K ze3_J~Sm5#oNyohl>l&(U{w)%8iY4V4V)jvQlu@!nY;Q>Eq_Y-5=~~GL6BezvS)f$z zs0XsPZA;idy^u~SwbJ4%|1$H7 zuHX3I!W#C|IHInIVa(Ac16ZwL(4J3qsf)bG@p^{vvJsv~gdB zM^7#hvt)5VzAs0!$Uo&vNjsZ0=%@~h_zfuj7}M_sFvE;$zR(x?yd4+rr2umtN%8g? znbo-Y)l0g@X2DxviR?OizgKh2jym^tZRVMPKJl;ioJSem^xd9e?XmgZTwI}ad%Z@0 zLaqI8OGX!*VP4gKH~X0#{Z@|kD-R@RmKc9%SIAm=o5oD5mzBoX7@EVpz@gjD(Br;Y zb&)3G7syCRu0X#6?zU4R6lL<~V9s9%Cx{mt&QY7_A zy|jJK20uZ`s*t0ll@UKbQ?@)K@h#a!P0p58WL>U6!skZ7`EwcO�+9eLb17NhZax z7l#iTNt$fG8TT!_zucmAdt*;4d5tPWwk#7-C~fzicj>t&`8AQ-i*%3L79te8AcTjq zEw#C03(plHsW$Mw{5@@zRnrGT%JB2uK8wSNrb|9;{pt>{nehu7LX);mNYa}_r_fFc z?qn>bwYI$q1uOFzAKCAorn}$<&D+$Vw)pbdT)NzFm~+>6y>`bajaCCil;JsXQeTGn zC^J#(zh##BML)`iz(=!bll0=fZkb=7LD@1{ONRu4&B&`!+oC0MCk#OJYbNAz-3P=( z*{qZY4CQm(2ge1F|8qSWa>C#&A)+d63AB53#YqqXc7u;4Q;W`pt>Gx*q@F;ANCjBI zZFCHA5*&rlXi2xf1B015P}*hsH-~%@Nxfr5(mzy-*F3SjQ>(dry6ergK!$P_!(%OLwsC)6?Z&=$H*M;MjZ!n%g&dK7v5pMpV~QJ+CiJy zin!BSE0v=yBvC@^)ueH&Jx5P}_F-mrMS&Dq&AMOl1?1Ov?>5Ve`$eI^|AQlf8wkfOE^G+-r! zljkmrl4gnM=V|p$3SufDFiRFf0iE~a=X!O;9a%dTmo8%6!<;mG!5wfkb z*uFM_*Bbf+PhAe;5hO80LEGo{kH4nrc(ep@5{wQy!&vqKEO+2eR>D)T2YCE~Acc3rYRI*4kE^uJYZJV1?I;jUFuYA3jL{bs zjafVZE?63+fzdt~;t60NqaDzIR0G>>hNpA^{jdy>u3+XJyqC0Q2?=)&mcdJYcm$(( zxfYB*?tn*|!RQT4@=L%G?#cKmb zI92IZLvW4S9rp|-3)x=nfQy|DG$AG^N%4xb0L+kBK^?cOKsj|sNHNnMR|IoJ+HM)b zbA(>u_sdR#8Y~F4D-^3C__k@xN$*Gt;u(P{hCB>}9F5?{(5-_Ea#ijn_dsQjU`0WK zC=7zqtI@BJFsr>Vn=+XC<&_lcRcT4lg7|v02dorAzMBtY?C=Ki zF(HOJ_3U>Pnd-1C{ysTx-ddMddX7nN!-$2e81+GmER|xlf>nDEoGKW z_V`}u&@UewS4)4Nh{vf~@)sV2P3u3Xex)yE_}5eerop``4*E+r^dwQOk}FX?OAI%=T25?|a?zLNbOf3Edlww{l2=vx0&3E~wfYK-C(^8!!Me>XlGbrlDcSUpy7{KL~kFDv7CiUYf-j9-~;I-*x za`-EdU=*42OVyK=!Jvy$nK@5cD#CbnTK6p#M{H035RMIEVsb}y64yu23*-U7jJ+$f28_N zxC9tR{EkOjdWX3oJ;A~Eg=!1$)Bb>{=aVyo?e>Axcviak52FA%k2dg*1a->hgWS(5=$i~bDrXYf8kZz z^g9n4l+}{^46fAa?CP)A=csGHr*HqkoEW9%G)aEnzV0Sag4JgE`ny>B_9_0fsOvb@ zVQ@`O7Yw%oU90aw7b9iLXmq~E5kJ{m;lXeT8Oyv<`g?#PoWFz1E|+%lK+tF!Ws00a z!MmWHT9+IU=$*!X5wkCpF;}XR+E*yTe=EY>Z+m$>ly)J@ONqjWwRFhh#&8g$9$ z_Ib~>tK9q{MO8j>9DEm5m(I;r$z1A`?K8y?4qJOZnB;u%704(Mv8-x)XJtuks}Add`YS>%81fy^TJ<&l>4~Ch;htCumrsQq@YmRPjW@x9Gh~f& zulFuWKk3*jon!2qwb?#0Or5fm;LaH--qBoMcg#CbGm;Ww}II- z-jquG>p1$S=)ZIs`k}i&(K+@i>%WTWe(#%B{cUEDgfA#RQXt59Kk^Hpv!rez`LDSJ z31>5$LzXh%y?(;xd7#my6GTFhqSB-q zI-*obK$>(I2rZNVLVytRPQbbM&AoT-ygT3fzW4s{!|d#{_A0;iTWg<{@GAz|&;#5D z004mMT+%WE00;&E7%YBd0#_K7-)ez>7~GAte+Ke#ytCkkAK>Tp&jY}_D3)#Oece(HpkOPX+XMVoStN7u$ zqDBX|B7^J+gIDL?T~0=QiMaMd%p*w07l!CFQW;CJ7f&7B$FU{)D1Ro_f)+v{RQJLb z{T*)hIO8b!rR2br$z#oV0WaQE;?0%@hL!F?K|MrekcmNc06@*Lf<^$>;2S>x zK&oL}Xp=||>tPS|UQoG~3F zkoqu<|MYUOFxv3V+@qmd8r4QrPTZUr-&g@U01v;L2YUGh$^FKd#%=a^&~Me(^wD_`MbtC&}ZX0=f_Em4Oo5e{TdkY(wL(8A03XtNnB3zyPV! zHVywVK>w_BdYT3z%)&WcKg!+X>4!X5P`H&mKqnLp8{!$s7qRp}# z1v?R`!lW*AaxXyFZ%&Q`(Wsq-M0kqQn`rYO>RQNPq#!+JcIM2vMYZe!c{Z7>X_}T9 zc6)(&6QK_;-fR%qal1C5xKPs7YvI38TEEb=izI3AxSmk~B&j~51{cnuhBDg&(Cuh{ z5I7g(yhnWD3;v^&5x)#!=&ZK-R%iPCp+L$)2u21?cY3TdU*Vgbzzx!PX)#XOaTzPv zciVgT>fmi(LL5(-$mnWEnx?jMpXhhx%d(35RjJ>)9=F-!RF9 zXs&LI@Ah&Nv$~}JZ&EG<1yL5tkHHNq3uH=et5aoC?PdZdo+vPtzvbHlsOYV({>vkN z#Jo?LvbRqS7-Y0?(nBDfNB2p&Od;LTkC(1WR0pi}++_ayW5!+mPFv9QAdjM;64{j; zf&m@RMp>S9Z?^n{HiqVpV_)K5ANpGo5SVE1CgJLo{`CFSxtq0S$nAE8(IK~w-`+Lx z50ZRscJm{#mm!);t)VR5LM}-o`Bi<~+$smY=bE(K%l1hvXwK++iRy1(ph5C`uD9bm zI6PXMEATzc`OR_uqK!{?qFdbYYTi_}+Q_wOLNg&4!Yse-yS^JN@QMCW+77u^QUWWE zT__u5DtG*@r>Gw2i`I}IYbe7@5=jlEeHQ-R@&wq^#pZh+kbZ+*rxvn>%`df$`rDJ7 zxxRZ)lkN)bGi`!OQLwFmc#O7oZ(R|egaXip8TAW8Cb3!m|aj|*-hhkuv@Np&p5i-&E^u!XFK2b(`OPI2vrh6i&F_CgUwqeN>u|Q|F`dXd ziKuug^>ucNnFIZsLRZha`;YZhvIXTr#&r zUC^u9Y9DE;XA|^$TbtiD~TE1D2zhTah08if&eJgJoqT1lH7n(WX({BL<`rog8Z zNDtZXY9L``e|XfNl|Zmy|GtKSJZ}-OcKy%GNySNT(%AVw-}g@i`%Qi`pQ78J*FUXcb)q03p+j81plK2+-1H-_o^+cUbZd~M39xu)oyD)9NRI~%XC zZwqR+a?;D+ASr{R7LrqfwIB;HmA5>#-2V00W6bIU775OwEIS}IE{TZxVqCdn=C{xx z&t=prJd8K(mCzh4VJ)GHG1H%JQr}rlf0{rO7&v1rO|1et9(mRU+3?lza>4Go&~~U| z__&)ESm7~xJHlMv^1L8$?JZG#l|~(<<3xxk36BhF9}n=iQv~Nd~(aqPqX4%J#H6O=;ySU?row zG{2a3R?X8%qGBfflkynI&?+lepPy+E%DBO8;A>^fn+w9_y98X~K z?uKo5Ya(vZ-dYKwe1mWa?!8{d%dihHa1w<>+v@uBAg#awW4jI8lJ&*mN{d%|S#F7~ z6H)3l8x(W*b~$a>0e}@doAu&oz$(~&sIGJ_BaSC2Ng<_msc7S!AknNXG9&7G(j3E} zw3c^JK>%f)Z&UbkC}@y~HdEyXb6lXo6J~ax?wvlB)tXDW(i8U+Zsupqc+AyVh2(Rv zey`#Rp|Qxd@%_M+26KMggoZ3#8QG~XZjV;HiTpfE^$>t$No9r_`0`!xa7pFwcL69oV(i~B79LxQGiR%i5kMPWw9Ze!_>chLGdUQ^rX?eXHvIB}a@b1E z2S6zi*{zI`;P!8rd6lMG^{zV`r{$IcHZA#8fjZteJ^jl1;-Ns9o9^ld@gAHoowm#~ zJf7qLA4UnleJrKv$&?pftjl)ev>*p1;i%S|e89<9WZb|xZvJSKK(-FC1Y zA{$LJdUB;-?NV|D4r%xjV&Q5^Bjwp1yMhcBF zN?ph&_4CpUBI3qlWVf`Hr?=^%(3~g{)0$VY6GVYRZ}jtbQpjfyPWcQ@)UX3tA6EIx zaB){6o{Y!1W!C#VBCfw*f}lj)_W55d)~B^k;72bJevTl>OBIEPf^o` zwR&MW9-Wgya(wXj=^4K)4cJ`4efCUvq-3c%cm1E4MO^H*3B`_L{VDfu-nr9_kit$eDqeuc+JPSE4E;^y3HJmJ|X&{K2F*bi7>B!kN z-+!&mHqy+4`jJpwRhic0tnhA#@d6WgM|3L_#~@0uj>`VzMKv({ax$u(==OQH9@JHZ zr-g%8w*#NVg%XB=jt7G-D+ro+G%F@ISs@CSm%KI~sLsX;6guPww&rcaDumc6)DH0W z7l*j(%&W?93}v>Z)@T(IBh#gI4p}69px;MP6siHu&*zHTQNt46$l2GET6AN_GkH|i z`n`6axQ8Q`BUltS_+a8Gn=bIm zOs?$l02JfFdx`tGSFtBzXWi_0=x1@jo3ikfKn6Eewrd8Kv$SEeI#cHxEu@zCZx|=y zJ^L;~ju4>PdVYGi(z}2hia3}wi%^%8Qu=c$FRri06=7n1#9;Dmq!#6bD}~poP5J(e5_KDE1x_O5wfb;H zJ=_g0nCbM?{jvto6t!UYi!1Us2&GuHMt%(f8V$waLi6fQ@#F4O z<`VUyie_w57WsFqvvrreDMw#eZzR9lQS(o6YBPvEGXXn+TAo!Wj8G}_TBaIVA2H_H??~!IZmAqF=Lt#tXxDd*+Rk!^YjwTkzMsiFe}68=+Ec5;3oi8a7P( zuwrDo<#@=`S2eM}R5~iB_%T0?$sRH`rorwoXUxhVaS_?koe!w2#|swo&UM>66dkn! zMO{>FkGx@y+xIkP@RWTEmsdO&4E|w_Tyi7n@;!Mw3`mg+55=QRQOnahVwV=1sU*z9DpDi=(s*$!%Z9p~dW184-;T^;SY#g066m^ov* zouqUw3ECeQP%@7Zgvv#6%!?c#Ye8g2+8YBh9QYe!zY8}zq(Z5j6 z|4b-h=ZSbB`aF97-XDLCs9}do-0)_27?Co;m98Om_gtCzzM zi*>;_cu#1fpNrDPRqeT}WQvhi4!ytu||0^AAPJ@S*XO=0r9}qPB8nUob?fZs?nAkc*z{%ABm!=l0q&Tr?6D^O7J>#)@Q*p~Rc{n&DF1VOA zg&_Cq8`S-C$TLP3iV_9EhuvGCQg$xY!H0>M!uu*XA5Pfe`@T@86g?M|2!aUyXYhVw z6Djc*8KpuwyRmso1VqYR<0{nj;%e67Mhz}Fo=>P*oN?oMBRT%PvsC3o3R;V_|AXzczRr`7KAo@#TW?tlmLY@Gk$*SQp2ACBgr-yEIb1ySAVq#yO3j ze1#zq%XnabWY*S1>JKYE*AagzMdKocFyK8%SzuCDfY zWmWo8>XokRE)%L4V|x-{|Q<_!Csv5e=~8{l@hDveyQvw}AH2QnPu{V~KRrTSUO zcyT%i2XQY1*;9j8TQ&HS|N6XXfqEueoJ^_)>yq*zJjqmtHlxe+bFc|F+d=E4k?O|- z69ykzt1A+)hYLjFa2JPCV;0An-keozHkXf`7dCIMFu zRvilEYXZL+j+}2Pdm4j=bl;fMRq*la;F|0XV)VpHzL00dh)qTuhzNOj;z|s}T#C)E z+QQfZwTcg05^vVb%p$-Ue=>M zvnr(x@?!%Jh0aD^FI;t&ZDwjJ;YHFJ0OU%Kp`QJ6-@gLapsnD9o+p zpQ$yi1}z9|yD4qLo(mQrmI^(mic`sggsjOgPOS~P6%-h1S-4;j5p=_s&zq(7nIv+Y zg-G*!4K2*Q#qQyme%3&bTF8%Do-1J9BD)0<#4O+Oo16eO^ho&Xf!*06_F*D>_zsCI zd#G?mAxJs?3-NvT@0}%h4hQ6Z%#^Q_CNeyaPg|?Ie)D$ehDrEZodYLK;kC-C6)Zl$ zg<6ZDZBHxAKef{q&z@?_^siHl?Q^^*Mcrqk<1L@@SkD<{KsylrjNoUj228l;u4$By zEcMcQAu6CpU+GC;Z5wc3GkN!kXsZlQGfZ5!s3jP^AQW@mt^wb|3iNY4uQXyu&;7Cn zM2v>_LhSgh;H;PzCCJmShRCz}v(|pC#0r1ZrG%9&X5n0BEB;*OIVq&e&oqt~1py0= z#J-1+t{WE9qnkMIqXhv80|0fcPN8NQ3R)DrqD<>8ud!1rJb677FB!Di7SqfHPkvYC z*q2`_8Myp7BnVcfA*M+g{c2=ECahUX)N^gEo?|lO8DJNLb+mTu2rY+OZ6sT##-&jW ze}&{h7eYA%?CtDnF&kR;(#RdkC@ubn@S)D^RpJCeAcibcz%wvaaa z;TW93l-Li>tXLsXPSJ(t?^SScpjsfF$5u4#KZ}M$2Rjl z@il@VEwV%0C|rG)zZuU^C7cf@f!)?0#P?6E?5o`o{0ma)sKE#A7;~KdkHbH_aw#}7vrNc*|d5=gs~+VwLE9)_%35+ z+DBU>Dxu3j#d!f75AbX!C4zVrEIL{;vpTrR?|$1y+7QeuOj1DLWzXY9OtM_CQE-S< z;yV`1d{m{*clu@d`qT?oHkUs9QV@*-RWay4!Oo{F``$T=4#zG|2aOi6$thm1UJ7t+ zAXZG8$c@itV_2gSY9Jsmg6=d;mG)Ern3qWh|M{Aqf`YtT7l&{mhuS#|{s6!MZ~6}qjnwTa)~$*uCW7WBBTt$1_qG)3Le z)MIaul?2kN_!}nMh1JeIBg^|^cb21qoD}aI>QpUD0ugqvzZi}ms0pC-?yO>HyqnF1 z^Kz-Rg+p`c9uXkvg7y}zZ3YfwzkShTE`QBein`uX!{0nGok84-Ogu5K_%2o?j!fbj z$j4xIzGXkgi->4zhL*L(gW_j}$odiQnNFf9jN}@lIOhORGu|@`Ebyt$m24x^e5$otf!lucN>GqFdC9 zLX0*cjJXF~bY~q9TE*5Q6#=gHwYe{6V3s4zJ0Dmihe&HK)oZ==&bKnRCAQR~F12gr zF-xy)I(eqPZ8=0_Xn+@p#2Jrcz=Xm`xY)vB`hFJry>3sA9$<)+92Hvhl9xDENXm`3*iwB2# znwtx*L6z3p6@>U(OyzCQ=;-iU#7_4vEzH!iwN?udY^cA=m#AONHjnIbWlAtdw2XNf zgJlkeb z!{%2L=@67cE~bjaee<3J_j)c65-h>-ohHaRSsALTse{vctsipzQ|pRAP}8+WXS;#Nl*3;Dz5R{MX0w&Tm~bTI!n}zjI1dJ=rgY*FCm1EIG=6D|GO`4jBbHLW1((y6;Tl-f@?B{WQs5n~+MIg9 zT>dz6*H0ZqcyjshBH8gbGiFw8_5hA;$SOf9tJ}oP{*BJya%Jwoy|bPgyQyv8Go5fO z8JxN-gD2BT2V}B>z=#KzHO%Mn+ErO7u_@6bnUm`&C+Lgg)wo)B+WrP9XbI$ zNn?sVTN~dN-3cmm-)%4uEs@u+3%$p;S312gmKM+N3aIM+1C@gvYKDlo!2aRZ>5FIR zrM&S9M7Q;@xa9k>2hf7qiR%1>sPy<)vJ|BYv*XcS_Px?|&#$(X+ORqXbAT-xXs%8> zOubS0;BF&F(6=bQyLsu8myuUvs6e0(i3s1NNKiu$5q3dNhs!U*xq+r*yTtu6a3N

R;~K&MHjkBLDN&6l_G;`BjDgLc90xn@Cl+G1OmdYQ+kw zPX4d!gWR39{w4od`ppXJJOzpNU)@r`*Py#d{*Nvw^w#~cWX)gkI=#sT3(=*2cQyM1 zE5Q~G22SUn9sf(WlxJdxz{`zn2~7vt4eZ@A!S0N8A&3JLM!yhRpY#G7b^7%(hoMBi zL_ik_(hAoA?KJF=T#su0c=iE^j&a#Hwqd2qr>?c4Lt{qni8vx*i*G!_L|V< zV_~UBCs|6s3zQy9dng|Kg`Qq|$v|hS3@FVUY(H2RqBxF$lP)*ziZ$Fl`LKgN(FQ-7-;4HZ1v#306})q!2kdN diff --git a/vendor/myclabs/deep-copy/doc/graph.png b/vendor/myclabs/deep-copy/doc/graph.png deleted file mode 100644 index 4d5c9428f719bf6ad68f25a46d6e935c2362c4a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6436 zcmd5>XFyX+(>{p=At0cJ5~(UkFc4HM^hAoFq7)U7Uc}(FP?U%SNKinE5)0B4Y3fz! zAk9dX@&Zb;5PB0q3BC7k176GP=l%WuNOI1e-I>{$XP((P2{bsWvktil2|>`hgSuKq z5Ckg%A4?8)FcR99KLmbY7mai@pp+VsFW`oaxc|t02ui1ME!ZN!J*Tto$%_!g^P2U6 zRX9C81wlf22etMecefgB%X2#3C|vH+@I+&mC`#ZczcySeJP0Ei+`WZA*tfw~%ILu^ z<_Ri65{r=BhCs3zM(x1{8xRh~LM_buP1C*jh>qdt8H+Y_$j!l%L-VcUi@LNs5ofE* z`wD8`<#l8*KVW9@pTPWdzM>EhN3_%yUX8J>-N$GwJ z0TT~xmf>yr6_96H-&Z2qi{e0%T%ecBFx~6R( zhx2x#5gZ3mv8e`B11*?_kx*`J3|^W?1E#V5=kX1Qek@7?We7C04`mW-1Fo&k|7HB$ z-}-^SjcdW?kO&U#RlT1oH+D;`%K2q{X4L-oaYJgsH#2NI)jcKx6ggJq{4(x2bL;o< zuZUdR*Zx(ZGRK}r?mchT`~KOn`kv!Igt?CpaD6q=iI?2m91xC81zzL{(|fBMy5kC4 zns}$brEQ;zB_n&sO@f5iX}axq$T^j`H{`drz7r4>mR_^ zl2>DRFdcI0D6ouFARax^)RuQqnl8EN(9Ws6cFonG1R>lf`sv-3Bt^=cihnGHD$z-4Z`Xb_H&f{!3l|A1jTiPS`w8r4+NQ=bvj) z-}l$7w%boc$yE}Y>&GQ%Y(2iOIi{t0E6%#WV!ZDk^@k9S_pQTlmQnnzACt{H6w8O^ z{fGf!Uh`A=E;stVdC>^AG+v9}Bk!i@z2H8Pn{~GFG(w0R*01!Bl|v&VY4Zy+J+wV# zq`~H_eivh*E=6pWeMN{iZCnV+7X+YfBtvLf$T(GbCyBuvBQh1MZwl}G3wJHVEh*=_ zGf9-U7kNaLL;0Jv6ujmps>*@|6RaD}zj^X8)R=T~qg>AD>EZVL`qTlrZ$UDkW(PV< zF`Me`gq@62EYOS1?LYZoZ))Xoj2P4Pb6uUmMD853HBVvwRY*ukl{ICNU#;fYH{o&6 zcsSl9$#lKiwlD=^&GFMU4P!~FUG}f{&$r;JUl-W=l6v^KCs^xf<1JVApXDcmYO#Y z)#wc$KJYIp=%)|Y7c??rvXoI0-)K9z2CxzK*b}{Hmq?@o%dMJBa^`S)Lc-R$zGNN* zhZIWUkbO`2O(*Wo)4g}~)t?Cj_s$O&(!_c;-{0p{Q&0;4u0uORglaK_&;yCck;K%3 zszYT0yOFU}?DsV~j+^zRfK@47B-T-bNH!z*V_p)}--8;0Pn z1A`|BiHX$=&AVN`O!GWm@#@O>^A7qVcdB)v*er%hg|lr*+Hp?$F@M0~v2;S!hys+X z1%t1jx*@Mh&LCcWUK4|lQ46*#@SOdR4h*F1(|7OQ9h2h@<_~xY`0O;k_Q{d^2h@>3 zjw@-nJ^G&CBKc(KWFLIfei(c!v&jm>Nft2OOX7U*y_YU&=1(kr!?VuUh-!_Z^5Y>dBOF? z`Lv0Ni5s4%5gObVMe>|0T{LAKEUryInt1zg(XWG-_h>8??#uSj*3pKD0ibrKiN+}B z>Tm(%TG&_oEk^R!Kp;4B-1o*|3l-iEwZX*3|)% z0ryo=y@(N{Ulu-etC}(53-`s&l677s>MA+Q3tEA7*V?Z2I`Ez=84e52DB?o$;YMWR z7MN{h=JZ)xB1Sb9>VgkT++iOYF4>6W^RurYnt|=fV+g1qBHJ0el^KRYB+n?}(CU4$)cW7*o+ClgT>j$QNr70ogrEykki-8k|$p(=<<%qZ*R$ zd>Id+G!19K1}E6im;{H7=2I_TPVxEuJz5GAqAPc&wP8Xf1zh6v!amljj4Os!bOkdqF~PGgLg z+ce6_3(T#Ihjw0Qz35{y^+x_&(3hbhz#BXEBKdksQdHcDXLqX-2EKejgE3_!pHtaD zO6=7{R0Ic-&%S#J`JRzkXmIshLy0Mda3fGO#^BU6?Db0k`2(6TyW_9Qk0l5)9Yl zP*L|$1ebwuJ*_1}9Jt%pn;J5)0w4!4l{zm{G?S*VTMlIdXMAD5VeOvAXlkmQHF8DS zRE`D+LUCO>xQA*O%L`{5@AY z-A+#ZESY|{0vFuufPywLJ+m6B@c~)BM9O9hb~yorY1%!k$;StLo2UBg9wIV0+3Oto zQZ3n&3#&GcH4$TOiUe*kpdu0}zK+wdD_yb%>Lja{>Zq|kdh{}e2Vok!aC4NVJ{Pcj z6L||#sl_i&ykoZZ?Q(RHQr&3mkCVq)?*At7O`c&)hBvV|OhUivY{jQJ{OyaPuo zU$WQ;AyDfy5P>j0QArURNQBA=WBOrwCrjW1Q*KvPPzS4*ONx80I zXHNw!@Y)XpVxfbte>mee<>G1{T7Opl1@1XBve||2$L>)QXB2-@UL?>v-9bs!i`?a) z@x5J5?Nee+L7gr#ZA!D%yu@x=Fh4}^?{g1X@yA+TvD~*#g^L1~tvv@ZC5*;NA(nik zLah3?##Xy_*0f-zJGj4bROkbm0L#YQM8#@9V>aO)XrClIzwE7C3RC?Iph&F2<5h%1@t3wWJHEeLTjBlFS>Zx{ZDrTOB5s zsFW&~@YWZ+6DSy!HMHen#X3zpQV(YKRiDagjcMbkRnv+xz>$<`@$f&gPboWIc}#xo zcd-JIf5bJ?o=?7T5%jcC+LZCnZ~I-+Kk08WpGmh@)dmp_FX0CBRqB;)$?vC2xsH9R z>~|4kA*M*+@oo4Uc~2yt``u}@GuU_3;TRHn{OgCrdV8Jf!Im8C#m{eUM<7^eJ!gm^ zAo-Geyx8C4=UILCL~f20o@?9up62x{_$FOzIvXOQbVsh0)%sp&&0VjC3v(Oz=nz8( z-FW}bhb-(@&vW+=3{=j)lxaD+M|WmzVCVxxT30W|CqNDAp$f z!nbtk@?{ebG8wyaq}F{fjlMkBD6tt29j*U(EPYR&HEYz&JZ=Ew%Nvu7J&e6)$8BfFdOx_n8CPAy^rm=^SAm{Aq2iv*s!uk_5P};Hf=ueV zYq|8IIyO2wdQV>|Xau&?FAt}P^;`j&sH_0;YjAx+BSRif89Ta-#5>aP_;7vdu*?)a zz-!s}#TMfm0;vi`L(?AwZJ4>cq~4rDrmZWnCNTxOq-NnS$kZw017L&C@GjfN^0dpn z1!spNZyEocknnmC_)exM3`uDsWj38*jsgCKYd)Qw#*0NKXJjFan@usu(r_bsT ztgKDv1?a7LXWl)D3P0c;0|VXeZ6(TmfPilaB1M58iBZpY9qle-p$sexKJUzVw%v{w z{`yI{M>~KuG=6Eu6-QOR)6$k)tw9PYo_+VsbXQ#~s!*eW$AiFVo^B^Fe6{MqV78US*eoibxe7s|gY<2<} zcxzAJglV7KV&;M1{LiDc_+`%?Q~gzt%PUSs%~cED4U}8JFU@S7n^gOj)g0;TcBXF- z(T{*7YqRJ{Al7m_T1Y6s`}{w$zh;8>75#bYW}jWySEH2^>^2()nnV_#YYhms+GN z7@L0~i+?ILrly7 diff --git a/vendor/myclabs/deep-copy/fixtures/f001/A.php b/vendor/myclabs/deep-copy/fixtures/f001/A.php deleted file mode 100644 index 648d5df..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f001/A.php +++ /dev/null @@ -1,20 +0,0 @@ -aProp; - } - - public function setAProp($prop) - { - $this->aProp = $prop; - - return $this; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f001/B.php b/vendor/myclabs/deep-copy/fixtures/f001/B.php deleted file mode 100644 index 462bb44..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f001/B.php +++ /dev/null @@ -1,20 +0,0 @@ -bProp; - } - - public function setBProp($prop) - { - $this->bProp = $prop; - - return $this; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f002/A.php b/vendor/myclabs/deep-copy/fixtures/f002/A.php deleted file mode 100644 index d9aa5c3..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f002/A.php +++ /dev/null @@ -1,33 +0,0 @@ -prop1; - } - - public function setProp1($prop) - { - $this->prop1 = $prop; - - return $this; - } - - public function getProp2() - { - return $this->prop2; - } - - public function setProp2($prop) - { - $this->prop2 = $prop; - - return $this; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f003/Foo.php b/vendor/myclabs/deep-copy/fixtures/f003/Foo.php deleted file mode 100644 index 9cd7622..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f003/Foo.php +++ /dev/null @@ -1,26 +0,0 @@ -name = $name; - } - - public function getProp() - { - return $this->prop; - } - - public function setProp($prop) - { - $this->prop = $prop; - - return $this; - } -} \ No newline at end of file diff --git a/vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php b/vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php deleted file mode 100644 index 82c6c67..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php +++ /dev/null @@ -1,13 +0,0 @@ -cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f006/A.php b/vendor/myclabs/deep-copy/fixtures/f006/A.php deleted file mode 100644 index d9efb11..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f006/A.php +++ /dev/null @@ -1,26 +0,0 @@ -aProp; - } - - public function setAProp($prop) - { - $this->aProp = $prop; - - return $this; - } - - public function __clone() - { - $this->cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f006/B.php b/vendor/myclabs/deep-copy/fixtures/f006/B.php deleted file mode 100644 index 1f80b3d..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f006/B.php +++ /dev/null @@ -1,26 +0,0 @@ -bProp; - } - - public function setBProp($prop) - { - $this->bProp = $prop; - - return $this; - } - - public function __clone() - { - $this->cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php b/vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php deleted file mode 100644 index e16bc6a..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php +++ /dev/null @@ -1,15 +0,0 @@ -cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php b/vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php deleted file mode 100644 index 6f4e61f..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php +++ /dev/null @@ -1,15 +0,0 @@ -cloned = true; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f008/A.php b/vendor/myclabs/deep-copy/fixtures/f008/A.php deleted file mode 100644 index 88471d0..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f008/A.php +++ /dev/null @@ -1,18 +0,0 @@ -foo = $foo; - } - - public function getFoo() - { - return $this->foo; - } -} diff --git a/vendor/myclabs/deep-copy/fixtures/f008/B.php b/vendor/myclabs/deep-copy/fixtures/f008/B.php deleted file mode 100644 index 6053092..0000000 --- a/vendor/myclabs/deep-copy/fixtures/f008/B.php +++ /dev/null @@ -1,7 +0,0 @@ - Filter, 'matcher' => Matcher] pairs. - */ - private $filters = []; - - /** - * Type Filters to apply. - * - * @var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs. - */ - private $typeFilters = []; - - /** - * @var bool - */ - private $skipUncloneable = false; - - /** - * @var bool - */ - private $useCloneMethod; - - /** - * @param bool $useCloneMethod If set to true, when an object implements the __clone() function, it will be used - * instead of the regular deep cloning. - */ - public function __construct($useCloneMethod = false) - { - $this->useCloneMethod = $useCloneMethod; - - $this->addTypeFilter(new DateIntervalFilter(), new TypeMatcher(DateInterval::class)); - $this->addTypeFilter(new SplDoublyLinkedListFilter($this), new TypeMatcher(SplDoublyLinkedList::class)); - } - - /** - * If enabled, will not throw an exception when coming across an uncloneable property. - * - * @param $skipUncloneable - * - * @return $this - */ - public function skipUncloneable($skipUncloneable = true) - { - $this->skipUncloneable = $skipUncloneable; - - return $this; - } - - /** - * Deep copies the given object. - * - * @param mixed $object - * - * @return mixed - */ - public function copy($object) - { - $this->hashMap = []; - - return $this->recursiveCopy($object); - } - - public function addFilter(Filter $filter, Matcher $matcher) - { - $this->filters[] = [ - 'matcher' => $matcher, - 'filter' => $filter, - ]; - } - - public function addTypeFilter(TypeFilter $filter, TypeMatcher $matcher) - { - $this->typeFilters[] = [ - 'matcher' => $matcher, - 'filter' => $filter, - ]; - } - - private function recursiveCopy($var) - { - // Matches Type Filter - if ($filter = $this->getFirstMatchedTypeFilter($this->typeFilters, $var)) { - return $filter->apply($var); - } - - // Resource - if (is_resource($var)) { - return $var; - } - - // Array - if (is_array($var)) { - return $this->copyArray($var); - } - - // Scalar - if (! is_object($var)) { - return $var; - } - - // Object - return $this->copyObject($var); - } - - /** - * Copy an array - * @param array $array - * @return array - */ - private function copyArray(array $array) - { - foreach ($array as $key => $value) { - $array[$key] = $this->recursiveCopy($value); - } - - return $array; - } - - /** - * Copies an object. - * - * @param object $object - * - * @throws CloneException - * - * @return object - */ - private function copyObject($object) - { - $objectHash = spl_object_hash($object); - - if (isset($this->hashMap[$objectHash])) { - return $this->hashMap[$objectHash]; - } - - $reflectedObject = new ReflectionObject($object); - $isCloneable = $reflectedObject->isCloneable(); - - if (false === $isCloneable) { - if ($this->skipUncloneable) { - $this->hashMap[$objectHash] = $object; - - return $object; - } - - throw new CloneException( - sprintf( - 'The class "%s" is not cloneable.', - $reflectedObject->getName() - ) - ); - } - - $newObject = clone $object; - $this->hashMap[$objectHash] = $newObject; - - if ($this->useCloneMethod && $reflectedObject->hasMethod('__clone')) { - return $newObject; - } - - if ($newObject instanceof DateTimeInterface || $newObject instanceof DateTimeZone) { - return $newObject; - } - - foreach (ReflectionHelper::getProperties($reflectedObject) as $property) { - $this->copyObjectProperty($newObject, $property); - } - - return $newObject; - } - - private function copyObjectProperty($object, ReflectionProperty $property) - { - // Ignore static properties - if ($property->isStatic()) { - return; - } - - // Apply the filters - foreach ($this->filters as $item) { - /** @var Matcher $matcher */ - $matcher = $item['matcher']; - /** @var Filter $filter */ - $filter = $item['filter']; - - if ($matcher->matches($object, $property->getName())) { - $filter->apply( - $object, - $property->getName(), - function ($object) { - return $this->recursiveCopy($object); - } - ); - - // If a filter matches, we stop processing this property - return; - } - } - - $property->setAccessible(true); - $propertyValue = $property->getValue($object); - - // Copy the property - $property->setValue($object, $this->recursiveCopy($propertyValue)); - } - - /** - * Returns first filter that matches variable, `null` if no such filter found. - * - * @param array $filterRecords Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and - * 'matcher' with value of type {@see TypeMatcher} - * @param mixed $var - * - * @return TypeFilter|null - */ - private function getFirstMatchedTypeFilter(array $filterRecords, $var) - { - $matched = $this->first( - $filterRecords, - function (array $record) use ($var) { - /* @var TypeMatcher $matcher */ - $matcher = $record['matcher']; - - return $matcher->matches($var); - } - ); - - return isset($matched) ? $matched['filter'] : null; - } - - /** - * Returns first element that matches predicate, `null` if no such element found. - * - * @param array $elements Array of ['filter' => Filter, 'matcher' => Matcher] pairs. - * @param callable $predicate Predicate arguments are: element. - * - * @return array|null Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and 'matcher' - * with value of type {@see TypeMatcher} or `null`. - */ - private function first(array $elements, callable $predicate) - { - foreach ($elements as $element) { - if (call_user_func($predicate, $element)) { - return $element; - } - } - - return null; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php b/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php deleted file mode 100644 index c046706..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php +++ /dev/null @@ -1,9 +0,0 @@ -setAccessible(true); - $oldCollection = $reflectionProperty->getValue($object); - - $newCollection = $oldCollection->map( - function ($item) use ($objectCopier) { - return $objectCopier($item); - } - ); - - $reflectionProperty->setValue($object, $newCollection); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php deleted file mode 100644 index 7b33fd5..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php +++ /dev/null @@ -1,28 +0,0 @@ -setAccessible(true); - - $reflectionProperty->setValue($object, new ArrayCollection()); - } -} \ No newline at end of file diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php deleted file mode 100644 index 8bee8f7..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php +++ /dev/null @@ -1,22 +0,0 @@ -__load(); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php deleted file mode 100644 index 85ba18c..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php +++ /dev/null @@ -1,18 +0,0 @@ -callback = $callable; - } - - /** - * Replaces the object property by the result of the callback called with the object property. - * - * {@inheritdoc} - */ - public function apply($object, $property, $objectCopier) - { - $reflectionProperty = ReflectionHelper::getProperty($object, $property); - $reflectionProperty->setAccessible(true); - - $value = call_user_func($this->callback, $reflectionProperty->getValue($object)); - - $reflectionProperty->setValue($object, $value); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php deleted file mode 100644 index bea86b8..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php +++ /dev/null @@ -1,24 +0,0 @@ -setAccessible(true); - $reflectionProperty->setValue($object, null); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php deleted file mode 100644 index ec8856f..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php +++ /dev/null @@ -1,22 +0,0 @@ -class = $class; - $this->property = $property; - } - - /** - * Matches a specific property of a specific class. - * - * {@inheritdoc} - */ - public function matches($object, $property) - { - return ($object instanceof $this->class) && $property == $this->property; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php deleted file mode 100644 index c8ec0d2..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php +++ /dev/null @@ -1,32 +0,0 @@ -property = $property; - } - - /** - * Matches a property by its name. - * - * {@inheritdoc} - */ - public function matches($object, $property) - { - return $property == $this->property; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php deleted file mode 100644 index a6b0c0b..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php +++ /dev/null @@ -1,46 +0,0 @@ -propertyType = $propertyType; - } - - /** - * {@inheritdoc} - */ - public function matches($object, $property) - { - try { - $reflectionProperty = ReflectionHelper::getProperty($object, $property); - } catch (ReflectionException $exception) { - return false; - } - - $reflectionProperty->setAccessible(true); - - return $reflectionProperty->getValue($object) instanceof $this->propertyType; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php b/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php deleted file mode 100644 index 742410c..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php +++ /dev/null @@ -1,78 +0,0 @@ -getProperties() does not return private properties from ancestor classes. - * - * @author muratyaman@gmail.com - * @see http://php.net/manual/en/reflectionclass.getproperties.php - * - * @param ReflectionClass $ref - * - * @return ReflectionProperty[] - */ - public static function getProperties(ReflectionClass $ref) - { - $props = $ref->getProperties(); - $propsArr = array(); - - foreach ($props as $prop) { - $propertyName = $prop->getName(); - $propsArr[$propertyName] = $prop; - } - - if ($parentClass = $ref->getParentClass()) { - $parentPropsArr = self::getProperties($parentClass); - foreach ($propsArr as $key => $property) { - $parentPropsArr[$key] = $property; - } - - return $parentPropsArr; - } - - return $propsArr; - } - - /** - * Retrieves property by name from object and all its ancestors. - * - * @param object|string $object - * @param string $name - * - * @throws PropertyException - * @throws ReflectionException - * - * @return ReflectionProperty - */ - public static function getProperty($object, $name) - { - $reflection = is_object($object) ? new ReflectionObject($object) : new ReflectionClass($object); - - if ($reflection->hasProperty($name)) { - return $reflection->getProperty($name); - } - - if ($parentClass = $reflection->getParentClass()) { - return self::getProperty($parentClass->getName(), $name); - } - - throw new PropertyException( - sprintf( - 'The class "%s" doesn\'t have a property with the given name: "%s".', - is_object($object) ? get_class($object) : $object, - $name - ) - ); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php deleted file mode 100644 index becd1cf..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php +++ /dev/null @@ -1,33 +0,0 @@ - $propertyValue) { - $copy->{$propertyName} = $propertyValue; - } - - return $copy; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php deleted file mode 100644 index 164f8b8..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php +++ /dev/null @@ -1,30 +0,0 @@ -callback = $callable; - } - - /** - * {@inheritdoc} - */ - public function apply($element) - { - return call_user_func($this->callback, $element); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php deleted file mode 100644 index a5fbd7a..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php +++ /dev/null @@ -1,17 +0,0 @@ -copier = $copier; - } - - /** - * {@inheritdoc} - */ - public function apply($element) - { - $newElement = clone $element; - - $copy = $this->createCopyClosure(); - - return $copy($newElement); - } - - private function createCopyClosure() - { - $copier = $this->copier; - - $copy = function (SplDoublyLinkedList $list) use ($copier) { - // Replace each element in the list with a deep copy of itself - for ($i = 1; $i <= $list->count(); $i++) { - $copy = $copier->recursiveCopy($list->shift()); - - $list->push($copy); - } - - return $list; - }; - - return Closure::bind($copy, null, DeepCopy::class); - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php deleted file mode 100644 index 5785a7d..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php +++ /dev/null @@ -1,13 +0,0 @@ -type = $type; - } - - /** - * @param mixed $element - * - * @return boolean - */ - public function matches($element) - { - return is_object($element) ? is_a($element, $this->type) : gettype($element) === $this->type; - } -} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php b/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php deleted file mode 100644 index 272652c..0000000 --- a/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php +++ /dev/null @@ -1,16 +0,0 @@ -copy($value); -} diff --git a/vendor/phar-io/manifest/.gitignore b/vendor/phar-io/manifest/.gitignore deleted file mode 100644 index 94d433b..0000000 --- a/vendor/phar-io/manifest/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/.idea -/.php_cs.cache -/composer.lock -/src/autoload.php -/tools -/vendor - -/build diff --git a/vendor/phar-io/manifest/.php_cs b/vendor/phar-io/manifest/.php_cs deleted file mode 100644 index 159d6a3..0000000 --- a/vendor/phar-io/manifest/.php_cs +++ /dev/null @@ -1,67 +0,0 @@ -files() - ->in('src') - ->in('tests') - ->name('*.php'); - -return Symfony\CS\Config\Config::create() - ->setUsingCache(true) - ->level(\Symfony\CS\FixerInterface::NONE_LEVEL) - ->fixers( - array( - 'align_double_arrow', - 'align_equals', - 'concat_with_spaces', - 'duplicate_semicolon', - 'elseif', - 'empty_return', - 'encoding', - 'eof_ending', - 'extra_empty_lines', - 'function_call_space', - 'function_declaration', - 'indentation', - 'join_function', - 'line_after_namespace', - 'linefeed', - 'list_commas', - 'lowercase_constants', - 'lowercase_keywords', - 'method_argument_space', - 'multiple_use', - 'namespace_no_leading_whitespace', - 'no_blank_lines_after_class_opening', - 'no_empty_lines_after_phpdocs', - 'parenthesis', - 'php_closing_tag', - 'phpdoc_indent', - 'phpdoc_no_access', - 'phpdoc_no_empty_return', - 'phpdoc_no_package', - 'phpdoc_params', - 'phpdoc_scalar', - 'phpdoc_separation', - 'phpdoc_to_comment', - 'phpdoc_trim', - 'phpdoc_types', - 'phpdoc_var_without_name', - 'remove_lines_between_uses', - 'return', - 'self_accessor', - 'short_array_syntax', - 'short_tag', - 'single_line_after_imports', - 'single_quote', - 'spaces_before_semicolon', - 'spaces_cast', - 'ternary_spaces', - 'trailing_spaces', - 'trim_array_spaces', - 'unused_use', - 'visibility', - 'whitespacy_lines' - ) - ) - ->finder($finder); - diff --git a/vendor/phar-io/manifest/.travis.yml b/vendor/phar-io/manifest/.travis.yml deleted file mode 100644 index b4be10f..0000000 --- a/vendor/phar-io/manifest/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -os: -- linux - -language: php - -before_install: - - wget https://phar.io/releases/phive.phar - - wget https://phar.io/releases/phive.phar.asc - - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys 0x9B2D5D79 - - gpg --verify phive.phar.asc phive.phar - - chmod +x phive.phar - - sudo mv phive.phar /usr/bin/phive - -install: - - ant setup - -script: ./tools/phpunit - -php: - - 5.6 - - 7.0 - - 7.1 - - 7.0snapshot - - 7.1snapshot - - master - -matrix: - allow_failures: - - php: master - fast_finish: true - -notifications: - email: false diff --git a/vendor/phar-io/manifest/LICENSE b/vendor/phar-io/manifest/LICENSE deleted file mode 100644 index 96051b1..0000000 --- a/vendor/phar-io/manifest/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -manifest - -Copyright (c) 2016 Arne Blankerts , Sebastian Heuer , Sebastian Bergmann , and contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of Arne Blankerts nor the names of contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - diff --git a/vendor/phar-io/manifest/README.md b/vendor/phar-io/manifest/README.md deleted file mode 100644 index e6d0b05..0000000 --- a/vendor/phar-io/manifest/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Manifest - -Component for reading [phar.io](https://phar.io/) manifest information from a [PHP Archive (PHAR)](http://php.net/phar). - -[![Build Status](https://travis-ci.org/phar-io/manifest.svg?branch=master)](https://travis-ci.org/phar-io/manifest) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/phar-io/manifest/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/phar-io/manifest/?branch=master) -[![SensioLabsInsight](https://insight.sensiolabs.com/projects/d8cc6035-69ad-477d-bd1a-ccc605480fd7/mini.png)](https://insight.sensiolabs.com/projects/d8cc6035-69ad-477d-bd1a-ccc605480fd7) - -## Installation - -You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): - - composer require phar-io/manifest - -If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: - - composer require --dev phar-io/manifest - -## Usage - -```php -use PharIo\Manifest\ManifestLoader; -use PharIo\Manifest\ManifestSerializer; - -$manifest = ManifestLoader::fromFile('manifest.xml'); - -var_dump($manifest); - -echo (new ManifestSerializer)->serializeToString($manifest); -``` diff --git a/vendor/phar-io/manifest/build.xml b/vendor/phar-io/manifest/build.xml deleted file mode 100644 index fc6eb1a..0000000 --- a/vendor/phar-io/manifest/build.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/composer.json b/vendor/phar-io/manifest/composer.json deleted file mode 100644 index 832134d..0000000 --- a/vendor/phar-io/manifest/composer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "phar-io/manifest", - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "support": { - "issues": "https://github.com/phar-io/manifest/issues" - }, - "require": { - "php": "^5.6 || ^7.0", - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1" - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} - diff --git a/vendor/phar-io/manifest/examples/example-01.php b/vendor/phar-io/manifest/examples/example-01.php deleted file mode 100644 index 345c407..0000000 --- a/vendor/phar-io/manifest/examples/example-01.php +++ /dev/null @@ -1,23 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use PharIo\Manifest\ManifestLoader; -use PharIo\Manifest\ManifestSerializer; - -require __DIR__ . '/../vendor/autoload.php'; - -$manifest = ManifestLoader::fromFile(__DIR__ . '/../tests/_fixture/phpunit-5.6.5.xml'); - -echo sprintf( - "Manifest for %s (%s):\n\n", - $manifest->getName(), - $manifest->getVersion()->getVersionString() -); -echo (new ManifestSerializer)->serializeToString($manifest); diff --git a/vendor/phar-io/manifest/phive.xml b/vendor/phar-io/manifest/phive.xml deleted file mode 100644 index 69f2f91..0000000 --- a/vendor/phar-io/manifest/phive.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/vendor/phar-io/manifest/phpunit.xml b/vendor/phar-io/manifest/phpunit.xml deleted file mode 100644 index 2d7708e..0000000 --- a/vendor/phar-io/manifest/phpunit.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - tests - - - - - src - - - diff --git a/vendor/phar-io/manifest/src/ManifestDocumentMapper.php b/vendor/phar-io/manifest/src/ManifestDocumentMapper.php deleted file mode 100644 index d41e4f9..0000000 --- a/vendor/phar-io/manifest/src/ManifestDocumentMapper.php +++ /dev/null @@ -1,193 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PharIo\Version\Exception as VersionException; -use PharIo\Version\VersionConstraintParser; - -class ManifestDocumentMapper { - /** - * @param ManifestDocument $document - * - * @returns Manifest - * - * @throws ManifestDocumentMapperException - */ - public function map(ManifestDocument $document) { - try { - $contains = $document->getContainsElement(); - $type = $this->mapType($contains); - $copyright = $this->mapCopyright($document->getCopyrightElement()); - $requirements = $this->mapRequirements($document->getRequiresElement()); - $bundledComponents = $this->mapBundledComponents($document); - - return new Manifest( - new ApplicationName($contains->getName()), - new Version($contains->getVersion()), - $type, - $copyright, - $requirements, - $bundledComponents - ); - } catch (VersionException $e) { - throw new ManifestDocumentMapperException($e->getMessage(), $e->getCode(), $e); - } catch (Exception $e) { - throw new ManifestDocumentMapperException($e->getMessage(), $e->getCode(), $e); - } - } - - /** - * @param ContainsElement $contains - * - * @return Type - * - * @throws ManifestDocumentMapperException - */ - private function mapType(ContainsElement $contains) { - switch ($contains->getType()) { - case 'application': - return Type::application(); - case 'library': - return Type::library(); - case 'extension': - return $this->mapExtension($contains->getExtensionElement()); - } - - throw new ManifestDocumentMapperException( - sprintf('Unsupported type %s', $contains->getType()) - ); - } - - /** - * @param CopyrightElement $copyright - * - * @return CopyrightInformation - * - * @throws InvalidUrlException - * @throws InvalidEmailException - */ - private function mapCopyright(CopyrightElement $copyright) { - $authors = new AuthorCollection(); - - foreach($copyright->getAuthorElements() as $authorElement) { - $authors->add( - new Author( - $authorElement->getName(), - new Email($authorElement->getEmail()) - ) - ); - } - - $licenseElement = $copyright->getLicenseElement(); - $license = new License( - $licenseElement->getType(), - new Url($licenseElement->getUrl()) - ); - - return new CopyrightInformation( - $authors, - $license - ); - } - - /** - * @param RequiresElement $requires - * - * @return RequirementCollection - * - * @throws ManifestDocumentMapperException - */ - private function mapRequirements(RequiresElement $requires) { - $collection = new RequirementCollection(); - $phpElement = $requires->getPHPElement(); - $parser = new VersionConstraintParser; - - try { - $versionConstraint = $parser->parse($phpElement->getVersion()); - } catch (VersionException $e) { - throw new ManifestDocumentMapperException( - sprintf('Unsupported version constraint - %s', $e->getMessage()), - $e->getCode(), - $e - ); - } - - $collection->add( - new PhpVersionRequirement( - $versionConstraint - ) - ); - - if (!$phpElement->hasExtElements()) { - return $collection; - } - - foreach($phpElement->getExtElements() as $extElement) { - $collection->add( - new PhpExtensionRequirement($extElement->getName()) - ); - } - - return $collection; - } - - /** - * @param ManifestDocument $document - * - * @return BundledComponentCollection - */ - private function mapBundledComponents(ManifestDocument $document) { - $collection = new BundledComponentCollection(); - - if (!$document->hasBundlesElement()) { - return $collection; - } - - foreach($document->getBundlesElement()->getComponentElements() as $componentElement) { - $collection->add( - new BundledComponent( - $componentElement->getName(), - new Version( - $componentElement->getVersion() - ) - ) - ); - } - - return $collection; - } - - /** - * @param ExtensionElement $extension - * - * @return Extension - * - * @throws ManifestDocumentMapperException - */ - private function mapExtension(ExtensionElement $extension) { - try { - $parser = new VersionConstraintParser; - $versionConstraint = $parser->parse($extension->getCompatible()); - - return Type::extension( - new ApplicationName($extension->getFor()), - $versionConstraint - ); - } catch (VersionException $e) { - throw new ManifestDocumentMapperException( - sprintf('Unsupported version constraint - %s', $e->getMessage()), - $e->getCode(), - $e - ); - } - } -} diff --git a/vendor/phar-io/manifest/src/ManifestLoader.php b/vendor/phar-io/manifest/src/ManifestLoader.php deleted file mode 100644 index 81c5c90..0000000 --- a/vendor/phar-io/manifest/src/ManifestLoader.php +++ /dev/null @@ -1,66 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ManifestLoader { - /** - * @param string $filename - * - * @return Manifest - * - * @throws ManifestLoaderException - */ - public static function fromFile($filename) { - try { - return (new ManifestDocumentMapper())->map( - ManifestDocument::fromFile($filename) - ); - } catch (Exception $e) { - throw new ManifestLoaderException( - sprintf('Loading %s failed.', $filename), - $e->getCode(), - $e - ); - } - } - - /** - * @param string $filename - * - * @return Manifest - * - * @throws ManifestLoaderException - */ - public static function fromPhar($filename) { - return self::fromFile('phar://' . $filename . '/manifest.xml'); - } - - /** - * @param string $manifest - * - * @return Manifest - * - * @throws ManifestLoaderException - */ - public static function fromString($manifest) { - try { - return (new ManifestDocumentMapper())->map( - ManifestDocument::fromString($manifest) - ); - } catch (Exception $e) { - throw new ManifestLoaderException( - 'Processing string failed', - $e->getCode(), - $e - ); - } - } -} diff --git a/vendor/phar-io/manifest/src/ManifestSerializer.php b/vendor/phar-io/manifest/src/ManifestSerializer.php deleted file mode 100644 index 4c18ddd..0000000 --- a/vendor/phar-io/manifest/src/ManifestSerializer.php +++ /dev/null @@ -1,163 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\AnyVersionConstraint; -use PharIo\Version\Version; -use PharIo\Version\VersionConstraint; -use XMLWriter; - -class ManifestSerializer { - /** - * @var XMLWriter - */ - private $xmlWriter; - - public function serializeToFile(Manifest $manifest, $filename) { - file_put_contents( - $filename, - $this->serializeToString($manifest) - ); - } - - public function serializeToString(Manifest $manifest) { - $this->startDocument(); - - $this->addContains($manifest->getName(), $manifest->getVersion(), $manifest->getType()); - $this->addCopyright($manifest->getCopyrightInformation()); - $this->addRequirements($manifest->getRequirements()); - $this->addBundles($manifest->getBundledComponents()); - - return $this->finishDocument(); - } - - private function startDocument() { - $xmlWriter = new XMLWriter(); - $xmlWriter->openMemory(); - $xmlWriter->setIndent(true); - $xmlWriter->setIndentString(str_repeat(' ', 4)); - $xmlWriter->startDocument('1.0', 'UTF-8'); - $xmlWriter->startElement('phar'); - $xmlWriter->writeAttribute('xmlns', 'https://phar.io/xml/manifest/1.0'); - - $this->xmlWriter = $xmlWriter; - } - - private function finishDocument() { - $this->xmlWriter->endElement(); - $this->xmlWriter->endDocument(); - - return $this->xmlWriter->outputMemory(); - } - - private function addContains($name, Version $version, Type $type) { - $this->xmlWriter->startElement('contains'); - $this->xmlWriter->writeAttribute('name', $name); - $this->xmlWriter->writeAttribute('version', $version->getVersionString()); - - switch (true) { - case $type->isApplication(): { - $this->xmlWriter->writeAttribute('type', 'application'); - break; - } - - case $type->isLibrary(): { - $this->xmlWriter->writeAttribute('type', 'library'); - break; - } - - case $type->isExtension(): { - /* @var $type Extension */ - $this->xmlWriter->writeAttribute('type', 'extension'); - $this->addExtension($type->getApplicationName(), $type->getVersionConstraint()); - break; - } - - default: { - $this->xmlWriter->writeAttribute('type', 'custom'); - } - } - - $this->xmlWriter->endElement(); - } - - private function addCopyright(CopyrightInformation $copyrightInformation) { - $this->xmlWriter->startElement('copyright'); - - foreach($copyrightInformation->getAuthors() as $author) { - $this->xmlWriter->startElement('author'); - $this->xmlWriter->writeAttribute('name', $author->getName()); - $this->xmlWriter->writeAttribute('email', (string) $author->getEmail()); - $this->xmlWriter->endElement(); - } - - $license = $copyrightInformation->getLicense(); - - $this->xmlWriter->startElement('license'); - $this->xmlWriter->writeAttribute('type', $license->getName()); - $this->xmlWriter->writeAttribute('url', $license->getUrl()); - $this->xmlWriter->endElement(); - - $this->xmlWriter->endElement(); - } - - private function addRequirements(RequirementCollection $requirementCollection) { - $phpRequirement = new AnyVersionConstraint(); - $extensions = []; - - foreach($requirementCollection as $requirement) { - if ($requirement instanceof PhpVersionRequirement) { - $phpRequirement = $requirement->getVersionConstraint(); - continue; - } - - if ($requirement instanceof PhpExtensionRequirement) { - $extensions[] = (string) $requirement; - } - } - - $this->xmlWriter->startElement('requires'); - $this->xmlWriter->startElement('php'); - $this->xmlWriter->writeAttribute('version', $phpRequirement->asString()); - - foreach($extensions as $extension) { - $this->xmlWriter->startElement('ext'); - $this->xmlWriter->writeAttribute('name', $extension); - $this->xmlWriter->endElement(); - } - - $this->xmlWriter->endElement(); - $this->xmlWriter->endElement(); - } - - private function addBundles(BundledComponentCollection $bundledComponentCollection) { - if (count($bundledComponentCollection) === 0) { - return; - } - $this->xmlWriter->startElement('bundles'); - - foreach($bundledComponentCollection as $bundledComponent) { - $this->xmlWriter->startElement('component'); - $this->xmlWriter->writeAttribute('name', $bundledComponent->getName()); - $this->xmlWriter->writeAttribute('version', $bundledComponent->getVersion()->getVersionString()); - $this->xmlWriter->endElement(); - } - - $this->xmlWriter->endElement(); - } - - private function addExtension($application, VersionConstraint $versionConstraint) { - $this->xmlWriter->startElement('extension'); - $this->xmlWriter->writeAttribute('for', $application); - $this->xmlWriter->writeAttribute('compatible', $versionConstraint->asString()); - $this->xmlWriter->endElement(); - } -} diff --git a/vendor/phar-io/manifest/src/exceptions/Exception.php b/vendor/phar-io/manifest/src/exceptions/Exception.php deleted file mode 100644 index 3ce46f2..0000000 --- a/vendor/phar-io/manifest/src/exceptions/Exception.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -interface Exception { -} diff --git a/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php b/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php deleted file mode 100644 index a53735a..0000000 --- a/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php +++ /dev/null @@ -1,16 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class InvalidApplicationNameException extends \InvalidArgumentException implements Exception { - const NotAString = 1; - const InvalidFormat = 2; -} diff --git a/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php b/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php deleted file mode 100644 index 854399b..0000000 --- a/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class InvalidEmailException extends \InvalidArgumentException implements Exception { -} diff --git a/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php b/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php deleted file mode 100644 index cdd8323..0000000 --- a/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class InvalidUrlException extends \InvalidArgumentException implements Exception { -} diff --git a/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php b/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php deleted file mode 100644 index 8b40195..0000000 --- a/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php +++ /dev/null @@ -1,6 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Application extends Type { - /** - * @return bool - */ - public function isApplication() { - return true; - } -} diff --git a/vendor/phar-io/manifest/src/values/ApplicationName.php b/vendor/phar-io/manifest/src/values/ApplicationName.php deleted file mode 100644 index 1e71af4..0000000 --- a/vendor/phar-io/manifest/src/values/ApplicationName.php +++ /dev/null @@ -1,65 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ApplicationName { - /** - * @var string - */ - private $name; - - /** - * ApplicationName constructor. - * - * @param string $name - * - * @throws InvalidApplicationNameException - */ - public function __construct($name) { - $this->ensureIsString($name); - $this->ensureValidFormat($name); - $this->name = $name; - } - - /** - * @return string - */ - public function __toString() { - return $this->name; - } - - public function isEqual(ApplicationName $name) { - return $this->name === $name->name; - } - - /** - * @param string $name - * - * @throws InvalidApplicationNameException - */ - private function ensureValidFormat($name) { - if (!preg_match('#\w/\w#', $name)) { - throw new InvalidApplicationNameException( - sprintf('Format of name "%s" is not valid - expected: vendor/packagename', $name), - InvalidApplicationNameException::InvalidFormat - ); - } - } - - private function ensureIsString($name) { - if (!is_string($name)) { - throw new InvalidApplicationNameException( - 'Name must be a string', - InvalidApplicationNameException::NotAString - ); - } - } -} diff --git a/vendor/phar-io/manifest/src/values/Author.php b/vendor/phar-io/manifest/src/values/Author.php deleted file mode 100644 index 8295f51..0000000 --- a/vendor/phar-io/manifest/src/values/Author.php +++ /dev/null @@ -1,57 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Author { - /** - * @var string - */ - private $name; - - /** - * @var Email - */ - private $email; - - /** - * @param string $name - * @param Email $email - */ - public function __construct($name, Email $email) { - $this->name = $name; - $this->email = $email; - } - - /** - * @return string - */ - public function getName() { - return $this->name; - } - - /** - * @return Email - */ - public function getEmail() { - return $this->email; - } - - /** - * @return string - */ - public function __toString() { - return sprintf( - '%s <%s>', - $this->name, - $this->email - ); - } -} diff --git a/vendor/phar-io/manifest/src/values/AuthorCollection.php b/vendor/phar-io/manifest/src/values/AuthorCollection.php deleted file mode 100644 index d915879..0000000 --- a/vendor/phar-io/manifest/src/values/AuthorCollection.php +++ /dev/null @@ -1,43 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class AuthorCollection implements \Countable, \IteratorAggregate { - /** - * @var Author[] - */ - private $authors = []; - - public function add(Author $author) { - $this->authors[] = $author; - } - - /** - * @return Author[] - */ - public function getAuthors() { - return $this->authors; - } - - /** - * @return int - */ - public function count() { - return count($this->authors); - } - - /** - * @return AuthorCollectionIterator - */ - public function getIterator() { - return new AuthorCollectionIterator($this); - } -} diff --git a/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php b/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php deleted file mode 100644 index 792a050..0000000 --- a/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php +++ /dev/null @@ -1,56 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class AuthorCollectionIterator implements \Iterator { - /** - * @var Author[] - */ - private $authors = []; - - /** - * @var int - */ - private $position; - - public function __construct(AuthorCollection $authors) { - $this->authors = $authors->getAuthors(); - } - - public function rewind() { - $this->position = 0; - } - - /** - * @return bool - */ - public function valid() { - return $this->position < count($this->authors); - } - - /** - * @return int - */ - public function key() { - return $this->position; - } - - /** - * @return Author - */ - public function current() { - return $this->authors[$this->position]; - } - - public function next() { - $this->position++; - } -} diff --git a/vendor/phar-io/manifest/src/values/BundledComponent.php b/vendor/phar-io/manifest/src/values/BundledComponent.php deleted file mode 100644 index 846d15a..0000000 --- a/vendor/phar-io/manifest/src/values/BundledComponent.php +++ /dev/null @@ -1,48 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; - -class BundledComponent { - /** - * @var string - */ - private $name; - - /** - * @var Version - */ - private $version; - - /** - * @param string $name - * @param Version $version - */ - public function __construct($name, Version $version) { - $this->name = $name; - $this->version = $version; - } - - /** - * @return string - */ - public function getName() { - return $this->name; - } - - /** - * @return Version - */ - public function getVersion() { - return $this->version; - } -} diff --git a/vendor/phar-io/manifest/src/values/BundledComponentCollection.php b/vendor/phar-io/manifest/src/values/BundledComponentCollection.php deleted file mode 100644 index 2dbb918..0000000 --- a/vendor/phar-io/manifest/src/values/BundledComponentCollection.php +++ /dev/null @@ -1,43 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class BundledComponentCollection implements \Countable, \IteratorAggregate { - /** - * @var BundledComponent[] - */ - private $bundledComponents = []; - - public function add(BundledComponent $bundledComponent) { - $this->bundledComponents[] = $bundledComponent; - } - - /** - * @return BundledComponent[] - */ - public function getBundledComponents() { - return $this->bundledComponents; - } - - /** - * @return int - */ - public function count() { - return count($this->bundledComponents); - } - - /** - * @return BundledComponentCollectionIterator - */ - public function getIterator() { - return new BundledComponentCollectionIterator($this); - } -} diff --git a/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php b/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php deleted file mode 100644 index 13b8f05..0000000 --- a/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php +++ /dev/null @@ -1,56 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class BundledComponentCollectionIterator implements \Iterator { - /** - * @var BundledComponent[] - */ - private $bundledComponents = []; - - /** - * @var int - */ - private $position; - - public function __construct(BundledComponentCollection $bundledComponents) { - $this->bundledComponents = $bundledComponents->getBundledComponents(); - } - - public function rewind() { - $this->position = 0; - } - - /** - * @return bool - */ - public function valid() { - return $this->position < count($this->bundledComponents); - } - - /** - * @return int - */ - public function key() { - return $this->position; - } - - /** - * @return BundledComponent - */ - public function current() { - return $this->bundledComponents[$this->position]; - } - - public function next() { - $this->position++; - } -} diff --git a/vendor/phar-io/manifest/src/values/CopyrightInformation.php b/vendor/phar-io/manifest/src/values/CopyrightInformation.php deleted file mode 100644 index ece60b1..0000000 --- a/vendor/phar-io/manifest/src/values/CopyrightInformation.php +++ /dev/null @@ -1,42 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class CopyrightInformation { - /** - * @var AuthorCollection - */ - private $authors; - - /** - * @var License - */ - private $license; - - public function __construct(AuthorCollection $authors, License $license) { - $this->authors = $authors; - $this->license = $license; - } - - /** - * @return AuthorCollection - */ - public function getAuthors() { - return $this->authors; - } - - /** - * @return License - */ - public function getLicense() { - return $this->license; - } -} diff --git a/vendor/phar-io/manifest/src/values/Email.php b/vendor/phar-io/manifest/src/values/Email.php deleted file mode 100644 index 57cce04..0000000 --- a/vendor/phar-io/manifest/src/values/Email.php +++ /dev/null @@ -1,47 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Email { - /** - * @var string - */ - private $email; - - /** - * @param string $email - * - * @throws InvalidEmailException - */ - public function __construct($email) { - $this->ensureEmailIsValid($email); - - $this->email = $email; - } - - /** - * @return string - */ - public function __toString() { - return $this->email; - } - - /** - * @param string $url - * - * @throws InvalidEmailException - */ - private function ensureEmailIsValid($url) { - if (filter_var($url, \FILTER_VALIDATE_EMAIL) === false) { - throw new InvalidEmailException; - } - } -} diff --git a/vendor/phar-io/manifest/src/values/Extension.php b/vendor/phar-io/manifest/src/values/Extension.php deleted file mode 100644 index 90d6a6f..0000000 --- a/vendor/phar-io/manifest/src/values/Extension.php +++ /dev/null @@ -1,75 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PharIo\Version\VersionConstraint; - -class Extension extends Type { - /** - * @var ApplicationName - */ - private $application; - - /** - * @var VersionConstraint - */ - private $versionConstraint; - - /** - * @param ApplicationName $application - * @param VersionConstraint $versionConstraint - */ - public function __construct(ApplicationName $application, VersionConstraint $versionConstraint) { - $this->application = $application; - $this->versionConstraint = $versionConstraint; - } - - /** - * @return ApplicationName - */ - public function getApplicationName() { - return $this->application; - } - - /** - * @return VersionConstraint - */ - public function getVersionConstraint() { - return $this->versionConstraint; - } - - /** - * @return bool - */ - public function isExtension() { - return true; - } - - /** - * @param ApplicationName $name - * - * @return bool - */ - public function isExtensionFor(ApplicationName $name) { - return $this->application->isEqual($name); - } - - /** - * @param ApplicationName $name - * @param Version $version - * - * @return bool - */ - public function isCompatibleWith(ApplicationName $name, Version $version) { - return $this->isExtensionFor($name) && $this->versionConstraint->complies($version); - } -} diff --git a/vendor/phar-io/manifest/src/values/Library.php b/vendor/phar-io/manifest/src/values/Library.php deleted file mode 100644 index a6ff944..0000000 --- a/vendor/phar-io/manifest/src/values/Library.php +++ /dev/null @@ -1,20 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Library extends Type { - /** - * @return bool - */ - public function isLibrary() { - return true; - } -} diff --git a/vendor/phar-io/manifest/src/values/License.php b/vendor/phar-io/manifest/src/values/License.php deleted file mode 100644 index e278670..0000000 --- a/vendor/phar-io/manifest/src/values/License.php +++ /dev/null @@ -1,42 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class License { - /** - * @var string - */ - private $name; - - /** - * @var Url - */ - private $url; - - public function __construct($name, Url $url) { - $this->name = $name; - $this->url = $url; - } - - /** - * @return string - */ - public function getName() { - return $this->name; - } - - /** - * @return Url - */ - public function getUrl() { - return $this->url; - } -} diff --git a/vendor/phar-io/manifest/src/values/Manifest.php b/vendor/phar-io/manifest/src/values/Manifest.php deleted file mode 100644 index 217acef..0000000 --- a/vendor/phar-io/manifest/src/values/Manifest.php +++ /dev/null @@ -1,138 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; - -class Manifest { - /** - * @var ApplicationName - */ - private $name; - - /** - * @var Version - */ - private $version; - - /** - * @var Type - */ - private $type; - - /** - * @var CopyrightInformation - */ - private $copyrightInformation; - - /** - * @var RequirementCollection - */ - private $requirements; - - /** - * @var BundledComponentCollection - */ - private $bundledComponents; - - public function __construct(ApplicationName $name, Version $version, Type $type, CopyrightInformation $copyrightInformation, RequirementCollection $requirements, BundledComponentCollection $bundledComponents) { - $this->name = $name; - $this->version = $version; - $this->type = $type; - $this->copyrightInformation = $copyrightInformation; - $this->requirements = $requirements; - $this->bundledComponents = $bundledComponents; - } - - /** - * @return ApplicationName - */ - public function getName() { - return $this->name; - } - - /** - * @return Version - */ - public function getVersion() { - return $this->version; - } - - /** - * @return Type - */ - public function getType() { - return $this->type; - } - - /** - * @return CopyrightInformation - */ - public function getCopyrightInformation() { - return $this->copyrightInformation; - } - - /** - * @return RequirementCollection - */ - public function getRequirements() { - return $this->requirements; - } - - /** - * @return BundledComponentCollection - */ - public function getBundledComponents() { - return $this->bundledComponents; - } - - /** - * @return bool - */ - public function isApplication() { - return $this->type->isApplication(); - } - - /** - * @return bool - */ - public function isLibrary() { - return $this->type->isLibrary(); - } - - /** - * @return bool - */ - public function isExtension() { - return $this->type->isExtension(); - } - - /** - * @param ApplicationName $application - * @param Version|null $version - * - * @return bool - */ - public function isExtensionFor(ApplicationName $application, Version $version = null) { - if (!$this->isExtension()) { - return false; - } - - /** @var Extension $type */ - $type = $this->type; - - if ($version !== null) { - return $type->isCompatibleWith($application, $version); - } - - return $type->isExtensionFor($application); - } -} diff --git a/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php b/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php deleted file mode 100644 index 6dd9296..0000000 --- a/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php +++ /dev/null @@ -1,32 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class PhpExtensionRequirement implements Requirement { - /** - * @var string - */ - private $extension; - - /** - * @param string $extension - */ - public function __construct($extension) { - $this->extension = $extension; - } - - /** - * @return string - */ - public function __toString() { - return $this->extension; - } -} diff --git a/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php b/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php deleted file mode 100644 index 8ad3e76..0000000 --- a/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php +++ /dev/null @@ -1,31 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\VersionConstraint; - -class PhpVersionRequirement implements Requirement { - /** - * @var VersionConstraint - */ - private $versionConstraint; - - public function __construct(VersionConstraint $versionConstraint) { - $this->versionConstraint = $versionConstraint; - } - - /** - * @return VersionConstraint - */ - public function getVersionConstraint() { - return $this->versionConstraint; - } -} diff --git a/vendor/phar-io/manifest/src/values/Requirement.php b/vendor/phar-io/manifest/src/values/Requirement.php deleted file mode 100644 index 03bb56d..0000000 --- a/vendor/phar-io/manifest/src/values/Requirement.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -interface Requirement { -} diff --git a/vendor/phar-io/manifest/src/values/RequirementCollection.php b/vendor/phar-io/manifest/src/values/RequirementCollection.php deleted file mode 100644 index af0e09b..0000000 --- a/vendor/phar-io/manifest/src/values/RequirementCollection.php +++ /dev/null @@ -1,43 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class RequirementCollection implements \Countable, \IteratorAggregate { - /** - * @var Requirement[] - */ - private $requirements = []; - - public function add(Requirement $requirement) { - $this->requirements[] = $requirement; - } - - /** - * @return Requirement[] - */ - public function getRequirements() { - return $this->requirements; - } - - /** - * @return int - */ - public function count() { - return count($this->requirements); - } - - /** - * @return RequirementCollectionIterator - */ - public function getIterator() { - return new RequirementCollectionIterator($this); - } -} diff --git a/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php b/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php deleted file mode 100644 index 9bb7003..0000000 --- a/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php +++ /dev/null @@ -1,56 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class RequirementCollectionIterator implements \Iterator { - /** - * @var Requirement[] - */ - private $requirements = []; - - /** - * @var int - */ - private $position; - - public function __construct(RequirementCollection $requirements) { - $this->requirements = $requirements->getRequirements(); - } - - public function rewind() { - $this->position = 0; - } - - /** - * @return bool - */ - public function valid() { - return $this->position < count($this->requirements); - } - - /** - * @return int - */ - public function key() { - return $this->position; - } - - /** - * @return Requirement - */ - public function current() { - return $this->requirements[$this->position]; - } - - public function next() { - $this->position++; - } -} diff --git a/vendor/phar-io/manifest/src/values/Type.php b/vendor/phar-io/manifest/src/values/Type.php deleted file mode 100644 index 31fbd44..0000000 --- a/vendor/phar-io/manifest/src/values/Type.php +++ /dev/null @@ -1,60 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\VersionConstraint; - -abstract class Type { - /** - * @return Application - */ - public static function application() { - return new Application; - } - - /** - * @return Library - */ - public static function library() { - return new Library; - } - - /** - * @param ApplicationName $application - * @param VersionConstraint $versionConstraint - * - * @return Extension - */ - public static function extension(ApplicationName $application, VersionConstraint $versionConstraint) { - return new Extension($application, $versionConstraint); - } - - /** - * @return bool - */ - public function isApplication() { - return false; - } - - /** - * @return bool - */ - public function isLibrary() { - return false; - } - - /** - * @return bool - */ - public function isExtension() { - return false; - } -} diff --git a/vendor/phar-io/manifest/src/values/Url.php b/vendor/phar-io/manifest/src/values/Url.php deleted file mode 100644 index 37917c8..0000000 --- a/vendor/phar-io/manifest/src/values/Url.php +++ /dev/null @@ -1,47 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class Url { - /** - * @var string - */ - private $url; - - /** - * @param string $url - * - * @throws InvalidUrlException - */ - public function __construct($url) { - $this->ensureUrlIsValid($url); - - $this->url = $url; - } - - /** - * @return string - */ - public function __toString() { - return $this->url; - } - - /** - * @param string $url - * - * @throws InvalidUrlException - */ - private function ensureUrlIsValid($url) { - if (filter_var($url, \FILTER_VALIDATE_URL) === false) { - throw new InvalidUrlException; - } - } -} diff --git a/vendor/phar-io/manifest/src/xml/AuthorElement.php b/vendor/phar-io/manifest/src/xml/AuthorElement.php deleted file mode 100644 index a32f397..0000000 --- a/vendor/phar-io/manifest/src/xml/AuthorElement.php +++ /dev/null @@ -1,21 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class AuthorElement extends ManifestElement { - public function getName() { - return $this->getAttributeValue('name'); - } - - public function getEmail() { - return $this->getAttributeValue('email'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php b/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php deleted file mode 100644 index 1240d8c..0000000 --- a/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php +++ /dev/null @@ -1,19 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class AuthorElementCollection extends ElementCollection { - public function current() { - return new AuthorElement( - $this->getCurrentElement() - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/BundlesElement.php b/vendor/phar-io/manifest/src/xml/BundlesElement.php deleted file mode 100644 index b90023e..0000000 --- a/vendor/phar-io/manifest/src/xml/BundlesElement.php +++ /dev/null @@ -1,19 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class BundlesElement extends ManifestElement { - public function getComponentElements() { - return new ComponentElementCollection( - $this->getChildrenByName('component') - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ComponentElement.php b/vendor/phar-io/manifest/src/xml/ComponentElement.php deleted file mode 100644 index 64ed6b0..0000000 --- a/vendor/phar-io/manifest/src/xml/ComponentElement.php +++ /dev/null @@ -1,21 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ComponentElement extends ManifestElement { - public function getName() { - return $this->getAttributeValue('name'); - } - - public function getVersion() { - return $this->getAttributeValue('version'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php b/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php deleted file mode 100644 index 9d375f9..0000000 --- a/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php +++ /dev/null @@ -1,19 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ComponentElementCollection extends ElementCollection { - public function current() { - return new ComponentElement( - $this->getCurrentElement() - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ContainsElement.php b/vendor/phar-io/manifest/src/xml/ContainsElement.php deleted file mode 100644 index 8172f33..0000000 --- a/vendor/phar-io/manifest/src/xml/ContainsElement.php +++ /dev/null @@ -1,31 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ContainsElement extends ManifestElement { - public function getName() { - return $this->getAttributeValue('name'); - } - - public function getVersion() { - return $this->getAttributeValue('version'); - } - - public function getType() { - return $this->getAttributeValue('type'); - } - - public function getExtensionElement() { - return new ExtensionElement( - $this->getChildByName('extension') - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/CopyrightElement.php b/vendor/phar-io/manifest/src/xml/CopyrightElement.php deleted file mode 100644 index bf7848e..0000000 --- a/vendor/phar-io/manifest/src/xml/CopyrightElement.php +++ /dev/null @@ -1,25 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class CopyrightElement extends ManifestElement { - public function getAuthorElements() { - return new AuthorElementCollection( - $this->getChildrenByName('author') - ); - } - - public function getLicenseElement() { - return new LicenseElement( - $this->getChildByName('license') - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ElementCollection.php b/vendor/phar-io/manifest/src/xml/ElementCollection.php deleted file mode 100644 index 284e77b..0000000 --- a/vendor/phar-io/manifest/src/xml/ElementCollection.php +++ /dev/null @@ -1,58 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use DOMElement; -use DOMNodeList; - -abstract class ElementCollection implements \Iterator { - /** - * @var DOMNodeList - */ - private $nodeList; - - private $position; - - /** - * ElementCollection constructor. - * - * @param DOMNodeList $nodeList - */ - public function __construct(DOMNodeList $nodeList) { - $this->nodeList = $nodeList; - $this->position = 0; - } - - abstract public function current(); - - /** - * @return DOMElement - */ - protected function getCurrentElement() { - return $this->nodeList->item($this->position); - } - - public function next() { - $this->position++; - } - - public function key() { - return $this->position; - } - - public function valid() { - return $this->position < $this->nodeList->length; - } - - public function rewind() { - $this->position = 0; - } -} diff --git a/vendor/phar-io/manifest/src/xml/ExtElement.php b/vendor/phar-io/manifest/src/xml/ExtElement.php deleted file mode 100644 index 7a824ab..0000000 --- a/vendor/phar-io/manifest/src/xml/ExtElement.php +++ /dev/null @@ -1,17 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ExtElement extends ManifestElement { - public function getName() { - return $this->getAttributeValue('name'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ExtElementCollection.php b/vendor/phar-io/manifest/src/xml/ExtElementCollection.php deleted file mode 100644 index 17acc62..0000000 --- a/vendor/phar-io/manifest/src/xml/ExtElementCollection.php +++ /dev/null @@ -1,20 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ExtElementCollection extends ElementCollection { - public function current() { - return new ExtElement( - $this->getCurrentElement() - ); - } - -} diff --git a/vendor/phar-io/manifest/src/xml/ExtensionElement.php b/vendor/phar-io/manifest/src/xml/ExtensionElement.php deleted file mode 100644 index 536c085..0000000 --- a/vendor/phar-io/manifest/src/xml/ExtensionElement.php +++ /dev/null @@ -1,21 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class ExtensionElement extends ManifestElement { - public function getFor() { - return $this->getAttributeValue('for'); - } - - public function getCompatible() { - return $this->getAttributeValue('compatible'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/LicenseElement.php b/vendor/phar-io/manifest/src/xml/LicenseElement.php deleted file mode 100644 index ee001df..0000000 --- a/vendor/phar-io/manifest/src/xml/LicenseElement.php +++ /dev/null @@ -1,21 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class LicenseElement extends ManifestElement { - public function getType() { - return $this->getAttributeValue('type'); - } - - public function getUrl() { - return $this->getAttributeValue('url'); - } -} diff --git a/vendor/phar-io/manifest/src/xml/ManifestDocument.php b/vendor/phar-io/manifest/src/xml/ManifestDocument.php deleted file mode 100644 index 9b0bd9d..0000000 --- a/vendor/phar-io/manifest/src/xml/ManifestDocument.php +++ /dev/null @@ -1,118 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use DOMDocument; -use DOMElement; - -class ManifestDocument { - const XMLNS = 'https://phar.io/xml/manifest/1.0'; - - /** - * @var DOMDocument - */ - private $dom; - - /** - * ManifestDocument constructor. - * - * @param DOMDocument $dom - */ - private function __construct(DOMDocument $dom) { - $this->ensureCorrectDocumentType($dom); - - $this->dom = $dom; - } - - public static function fromFile($filename) { - if (!file_exists($filename)) { - throw new ManifestDocumentException( - sprintf('File "%s" not found', $filename) - ); - } - - return self::fromString( - file_get_contents($filename) - ); - } - - public static function fromString($xmlString) { - $prev = libxml_use_internal_errors(true); - libxml_clear_errors(); - - $dom = new DOMDocument(); - $dom->loadXML($xmlString); - - $errors = libxml_get_errors(); - libxml_use_internal_errors($prev); - - if (count($errors) !== 0) { - throw new ManifestDocumentLoadingException($errors); - } - - return new self($dom); - } - - public function getContainsElement() { - return new ContainsElement( - $this->fetchElementByName('contains') - ); - } - - public function getCopyrightElement() { - return new CopyrightElement( - $this->fetchElementByName('copyright') - ); - } - - public function getRequiresElement() { - return new RequiresElement( - $this->fetchElementByName('requires') - ); - } - - public function hasBundlesElement() { - return $this->dom->getElementsByTagNameNS(self::XMLNS, 'bundles')->length === 1; - } - - public function getBundlesElement() { - return new BundlesElement( - $this->fetchElementByName('bundles') - ); - } - - private function ensureCorrectDocumentType(DOMDocument $dom) { - $root = $dom->documentElement; - - if ($root->localName !== 'phar' || $root->namespaceURI !== self::XMLNS) { - throw new ManifestDocumentException('Not a phar.io manifest document'); - } - } - - /** - * @param $elementName - * - * @return DOMElement - * - * @throws ManifestDocumentException - */ - private function fetchElementByName($elementName) { - $element = $this->dom->getElementsByTagNameNS(self::XMLNS, $elementName)->item(0); - - if (!$element instanceof DOMElement) { - throw new ManifestDocumentException( - sprintf('Element %s missing', $elementName) - ); - } - - return $element; - } -} diff --git a/vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php b/vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php deleted file mode 100644 index 59ac5c6..0000000 --- a/vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php +++ /dev/null @@ -1,48 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use LibXMLError; - -class ManifestDocumentLoadingException extends \Exception implements Exception { - /** - * @var LibXMLError[] - */ - private $libxmlErrors; - - /** - * ManifestDocumentLoadingException constructor. - * - * @param LibXMLError[] $libxmlErrors - */ - public function __construct(array $libxmlErrors) { - $this->libxmlErrors = $libxmlErrors; - $first = $this->libxmlErrors[0]; - - parent::__construct( - sprintf( - '%s (Line: %d / Column: %d / File: %s)', - $first->message, - $first->line, - $first->column, - $first->file - ), - $first->code - ); - } - - /** - * @return LibXMLError[] - */ - public function getLibxmlErrors() { - return $this->libxmlErrors; - } -} diff --git a/vendor/phar-io/manifest/src/xml/ManifestElement.php b/vendor/phar-io/manifest/src/xml/ManifestElement.php deleted file mode 100644 index 09d07cc..0000000 --- a/vendor/phar-io/manifest/src/xml/ManifestElement.php +++ /dev/null @@ -1,100 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use DOMElement; -use DOMNodeList; - -class ManifestElement { - const XMLNS = 'https://phar.io/xml/manifest/1.0'; - - /** - * @var DOMElement - */ - private $element; - - /** - * ContainsElement constructor. - * - * @param DOMElement $element - */ - public function __construct(DOMElement $element) { - $this->element = $element; - } - - /** - * @param string $name - * - * @return string - * - * @throws ManifestElementException - */ - protected function getAttributeValue($name) { - if (!$this->element->hasAttribute($name)) { - throw new ManifestElementException( - sprintf( - 'Attribute %s not set on element %s', - $name, - $this->element->localName - ) - ); - } - - return $this->element->getAttribute($name); - } - - /** - * @param $elementName - * - * @return DOMElement - * - * @throws ManifestElementException - */ - protected function getChildByName($elementName) { - $element = $this->element->getElementsByTagNameNS(self::XMLNS, $elementName)->item(0); - - if (!$element instanceof DOMElement) { - throw new ManifestElementException( - sprintf('Element %s missing', $elementName) - ); - } - - return $element; - } - - /** - * @param $elementName - * - * @return DOMNodeList - * - * @throws ManifestElementException - */ - protected function getChildrenByName($elementName) { - $elementList = $this->element->getElementsByTagNameNS(self::XMLNS, $elementName); - - if ($elementList->length === 0) { - throw new ManifestElementException( - sprintf('Element(s) %s missing', $elementName) - ); - } - - return $elementList; - } - - /** - * @param string $elementName - * - * @return bool - */ - protected function hasChild($elementName) { - return $this->element->getElementsByTagNameNS(self::XMLNS, $elementName)->length !== 0; - } -} diff --git a/vendor/phar-io/manifest/src/xml/PhpElement.php b/vendor/phar-io/manifest/src/xml/PhpElement.php deleted file mode 100644 index e7340c0..0000000 --- a/vendor/phar-io/manifest/src/xml/PhpElement.php +++ /dev/null @@ -1,27 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class PhpElement extends ManifestElement { - public function getVersion() { - return $this->getAttributeValue('version'); - } - - public function hasExtElements() { - return $this->hasChild('ext'); - } - - public function getExtElements() { - return new ExtElementCollection( - $this->getChildrenByName('ext') - ); - } -} diff --git a/vendor/phar-io/manifest/src/xml/RequiresElement.php b/vendor/phar-io/manifest/src/xml/RequiresElement.php deleted file mode 100644 index 5f41b2e..0000000 --- a/vendor/phar-io/manifest/src/xml/RequiresElement.php +++ /dev/null @@ -1,19 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -class RequiresElement extends ManifestElement { - public function getPHPElement() { - return new PhpElement( - $this->getChildByName('php') - ); - } -} diff --git a/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php b/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php deleted file mode 100644 index e261231..0000000 --- a/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php +++ /dev/null @@ -1,110 +0,0 @@ -assertInstanceOf( - Manifest::class, - $mapper->map($manifestDocument) - ); - } - - public function dataProvider() { - return [ - 'application' => [__DIR__ . '/_fixture/phpunit-5.6.5.xml'], - 'library' => [__DIR__ . '/_fixture/library.xml'], - 'extension' => [__DIR__ . '/_fixture/extension.xml'] - ]; - } - - public function testThrowsExceptionOnUnsupportedType() { - $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/custom.xml'); - $mapper = new ManifestDocumentMapper(); - - $this->expectException(ManifestDocumentMapperException::class); - $mapper->map($manifestDocument); - } - - public function testInvalidVersionInformationThrowsException() { - $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversion.xml'); - $mapper = new ManifestDocumentMapper(); - - $this->expectException(ManifestDocumentMapperException::class); - $mapper->map($manifestDocument); - } - - public function testInvalidVersionConstraintThrowsException() { - $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversionconstraint.xml'); - $mapper = new ManifestDocumentMapper(); - - $this->expectException(ManifestDocumentMapperException::class); - $mapper->map($manifestDocument); - } - - /** - * @uses \PharIo\Manifest\ExtensionElement - */ - public function testInvalidCompatibleConstraintThrowsException() { - $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/extension-invalidcompatible.xml'); - $mapper = new ManifestDocumentMapper(); - - $this->expectException(ManifestDocumentMapperException::class); - $mapper->map($manifestDocument); - } - -} diff --git a/vendor/phar-io/manifest/tests/ManifestLoaderTest.php b/vendor/phar-io/manifest/tests/ManifestLoaderTest.php deleted file mode 100644 index 73b682e..0000000 --- a/vendor/phar-io/manifest/tests/ManifestLoaderTest.php +++ /dev/null @@ -1,83 +0,0 @@ -assertInstanceOf( - Manifest::class, - ManifestLoader::fromFile(__DIR__ . '/_fixture/library.xml') - ); - } - - public function testCanBeLoadedFromString() { - $this->assertInstanceOf( - Manifest::class, - ManifestLoader::fromString( - file_get_contents(__DIR__ . '/_fixture/library.xml') - ) - ); - } - - public function testCanBeLoadedFromPhar() { - $this->assertInstanceOf( - Manifest::class, - ManifestLoader::fromPhar(__DIR__ . '/_fixture/test.phar') - ); - - } - - public function testLoadingNonExistingFileThrowsException() { - $this->expectException(ManifestLoaderException::class); - ManifestLoader::fromFile('/not/existing'); - } - - /** - * @uses \PharIo\Manifest\ManifestDocumentLoadingException - */ - public function testLoadingInvalidXmlThrowsException() { - $this->expectException(ManifestLoaderException::class); - ManifestLoader::fromString(''); - } - -} diff --git a/vendor/phar-io/manifest/tests/ManifestSerializerTest.php b/vendor/phar-io/manifest/tests/ManifestSerializerTest.php deleted file mode 100644 index 4433020..0000000 --- a/vendor/phar-io/manifest/tests/ManifestSerializerTest.php +++ /dev/null @@ -1,114 +0,0 @@ -assertXmlStringEqualsXmlString( - $expected, - $serializer->serializeToString($manifest) - ); - } - - public function dataProvider() { - return [ - 'application' => [file_get_contents(__DIR__ . '/_fixture/phpunit-5.6.5.xml')], - 'library' => [file_get_contents(__DIR__ . '/_fixture/library.xml')], - 'extension' => [file_get_contents(__DIR__ . '/_fixture/extension.xml')] - ]; - } - - /** - * @uses \PharIo\Manifest\Library - * @uses \PharIo\Manifest\ApplicationName - */ - public function testCanSerializeToFile() { - $src = __DIR__ . '/_fixture/library.xml'; - $dest = '/tmp/' . uniqid('serializer', true); - $manifest = ManifestLoader::fromFile($src); - $serializer = new ManifestSerializer(); - $serializer->serializeToFile($manifest, $dest); - $this->assertXmlFileEqualsXmlFile($src, $dest); - unlink($dest); - } - - /** - * @uses \PharIo\Manifest\ApplicationName - */ - public function testCanHandleUnknownType() { - $type = $this->getMockForAbstractClass(Type::class); - $manifest = new Manifest( - new ApplicationName('testvendor/testname'), - new Version('1.0.0'), - $type, - new CopyrightInformation( - new AuthorCollection(), - new License('bsd-3', new Url('https://some/uri')) - ), - new RequirementCollection(), - new BundledComponentCollection() - ); - - $serializer = new ManifestSerializer(); - $this->assertXmlStringEqualsXmlFile( - __DIR__ . '/_fixture/custom.xml', - $serializer->serializeToString($manifest) - ); - } -} diff --git a/vendor/phar-io/manifest/tests/_fixture/custom.xml b/vendor/phar-io/manifest/tests/_fixture/custom.xml deleted file mode 100644 index 4f43828..0000000 --- a/vendor/phar-io/manifest/tests/_fixture/custom.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml b/vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml deleted file mode 100644 index a78111c..0000000 --- a/vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/extension.xml b/vendor/phar-io/manifest/tests/_fixture/extension.xml deleted file mode 100644 index a870aee..0000000 --- a/vendor/phar-io/manifest/tests/_fixture/extension.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/invalidversion.xml b/vendor/phar-io/manifest/tests/_fixture/invalidversion.xml deleted file mode 100644 index 788dd4c..0000000 --- a/vendor/phar-io/manifest/tests/_fixture/invalidversion.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml b/vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml deleted file mode 100644 index f881f8b..0000000 --- a/vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/library.xml b/vendor/phar-io/manifest/tests/_fixture/library.xml deleted file mode 100644 index a5e2523..0000000 --- a/vendor/phar-io/manifest/tests/_fixture/library.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/manifest.xml b/vendor/phar-io/manifest/tests/_fixture/manifest.xml deleted file mode 100644 index a5e2523..0000000 --- a/vendor/phar-io/manifest/tests/_fixture/manifest.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml b/vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml deleted file mode 100644 index aadbea2..0000000 --- a/vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/phar-io/manifest/tests/_fixture/test.phar b/vendor/phar-io/manifest/tests/_fixture/test.phar deleted file mode 100644 index d2a3e393ea403e5989aafa4b77d6ae6f07aafe75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7165 zcmb_hOLN=E5%%WD$|a{*%AK%3;(7lrb&`aqnYFsgowah8NyX?lagQ!eX*iR5UevY4qFPB2}|brn?hjcK2IGt z?@K-xy@PIVyOQ#Jl1AH=@1;-nEkA?SmH~CTm!0mF+3o!LW9OpR|JXe?uZ1&~VVrh) z@6X;Uqy-%GKHEVw-gSB=`}~>B3z|VYKfCCetHRN<>W^Y8PbVC<8=)Wa3=x*WtiT6J zX0n}Kwy|C@UGdG#`F(CDf#XLe0T)A)WFhj}+9I%*dyBy1MZh2)Edr;}LU4YcFT%dh z77C<YXkuEZxddIV>yyw$-FyO9B5{HP-*s|7 zj_mu|x6ZATxv8Jz#4_|fhDg(u*uw)jVcq#;CQwRuFiB2AAJS_pu?iNsF_K;?o|ftCbCN(dGrLuj>L!7;6jx#RKFsvbJ-nAZ;D zC{N>{#iF?85@el)lPs^L{MHG4&&hceM4IM2bw;5xMW(%qF>o>-IU&c{*IzANRe?Y? zeg!o>iL(XONYpbFP)#Xnj63%H)S9g{M$W^8*vUdJN^ZGs8c7ZXvdI9Vmdp9^dayNW zL;;Vil5WZxl0`+6M52h=CUqdG0Cj@GVdnc@@7!+In{2buWT){h_t-g4Lnq=<9z2*+ z*P17>JR&VdO=-Ry3qN5;_7KPdEgE4?EyHkNIeKOwn%e@mf$r^bw{wWD_RUO#lYB&k zzyu~Kli_}fsAV{aM_WS|a2DZG>7lJ{uosON>_eQhqj(Z|WF>dUF{`$z@a+CBVr`i-M)_EVbO;kO z|55ss64&tvBxUPJig`$Oe$h^^j9E>jDugB5?c6@{afdZY-{PD&Q>(v3xFHPnN8wDn28KI z&jDxX1Q}n2y2db}Wt^a*=<2x6%ydBKW0-M%V*v%zFAs*T76brnoPcB!C60SznU@%i z#YwjYe&nPNt3%2mN%VpSQzHbn-ZW{v_F^Ogba6cFyl(z-LuR>ga@D-X`O)<)q%%(2 zqKql@c_dM4(7CA2YB41pgdC|xeTNx@2nu#Lrn7BnSp*j2s|E<+LKtX8vskbLGd!PL zW~bXd>$VsQs6XUT1mzhAjB209?wpKOk&1|iEZg8*H>(V7cM^DPz~!#A3x%{wjz@AC zR03dd;F3KQ(L(htz*3j5tBanz{8>F^iVlhGp>2k4*}oD2QaG)`OW zG4KbhC@{>=(0+4qhC7v$X3{8i zjVNh~tY5C`;L+on)4aBWM?cy4qPk@sOEexlZv244;vg4s$iswY0G$&nau*$H#m{gp z^mFo+C5Hl$wi&#D(?>O3FcGVMhH*>Y`M`q|F zet09SBE)sp*xK4!XZn&T6etZVGJxt}&3a4fx@2$(y_d2*=~5~$r|Jx+99IF}3zH*i zx-v`F3k`o*#eEU7WRmw$>Z#K!`eOE)7mYGbeyZS9a?H@k6DlcJW@uhB6eUCE5vYAS|a_J9YJ@K>~a8v^{MKRSE=Sb*sr7I*Uwu(l8ZZMr= z%i$}G7Iabs)cKxqbTt&UFZoK5$*`z&qnKD~LwE#jZI}ov-EkPBqs{vOl3%@gMUut8 zio77qCXed5qROc|f|RSCScr74SL-r^20g6~*7^JM{@De>`kUhqnC+*90VazX>efkR z%Jb;fGJB`zz}lk(E3I48b%zj0F*Oz#peI|1m#P7#O;&>q>ViB!8d9P|ddV4I?-3Kl zQ&cX^lmyHwi1~k^3W~bSnbaUgbIvODMjB{T-z?83`uY_jVCzgwC71-D$r7Zd#uBqj ziMsg$_b(&BoB~x0dRAJ(ptY(CDZX?f zNch4$UQ~!s=+g&Ti72=6@KDNLw7N^JUsGb1S^jt0_J|Pn`Ihmm6IjKd-WI2Fpb*CevfIy~{C2H0jtr`h6@yq~M(9e$K zWE<5(?T-eYqUC5_J&weS5fe}FkrT*ylu?Jk)P;*L<23x@o?b659+F)hFtEgiNQ?Xm zNd(v`y)Mlfj${R*&erPJ6I}k?)ZN^$^nFC?jf^Oz>W@lD2NA^`3uy18WM&&n?z4lzi|L6z-mqe&K}!OLor@q z(PI0PDDWe?I>K2L<|owjtBIa6C9fqT(r{)zQf*d?qSgfd^D~7qO&hCHwKMYz2d=}Q z?f2gwob>vKXQ$`*xupvb+uLnDd-m)r{QsHy#0UOxRClQcvo_6s_>}?|GdzRsRI@nbHZE;6eOG5hlF%GaK|9rA+b(z{ z4|t6j=W;FhI+J{iLm;_!xgYVAeVU+m2hcrq{9vb=3h4f$fYv=;Rr~}!UefU@g}Zxm6e}wU7zj#=PT#mfBgMF{`<|}|Mky@zy1XAdH3e@&Hn(7352Qu diff --git a/vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php b/vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php deleted file mode 100644 index d87e84e..0000000 --- a/vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php +++ /dev/null @@ -1,19 +0,0 @@ -loadXML(''); - $exception = new ManifestDocumentLoadingException(libxml_get_errors()); - libxml_use_internal_errors($prev); - - $this->assertContainsOnlyInstancesOf(LibXMLError::class, $exception->getLibxmlErrors()); - } - -} diff --git a/vendor/phar-io/manifest/tests/values/ApplicationNameTest.php b/vendor/phar-io/manifest/tests/values/ApplicationNameTest.php deleted file mode 100644 index c959415..0000000 --- a/vendor/phar-io/manifest/tests/values/ApplicationNameTest.php +++ /dev/null @@ -1,48 +0,0 @@ -assertInstanceOf( - ApplicationName::class, - new ApplicationName('foo/bar') - ); - } - - public function testUsingInvalidFormatForNameThrowsException() { - $this->expectException(InvalidApplicationNameException::class); - $this->expectExceptionCode(InvalidApplicationNameException::InvalidFormat); - new ApplicationName('foo'); - } - - public function testUsingWrongTypeForNameThrowsException() { - $this->expectException(InvalidApplicationNameException::class); - $this->expectExceptionCode(InvalidApplicationNameException::NotAString); - new ApplicationName(123); - } - - public function testReturnsTrueForEqualNamesWhenCompared() { - $app = new ApplicationName('foo/bar'); - $this->assertTrue( - $app->isEqual($app) - ); - } - - public function testReturnsFalseForNonEqualNamesWhenCompared() { - $app1 = new ApplicationName('foo/bar'); - $app2 = new ApplicationName('foo/foo'); - $this->assertFalse( - $app1->isEqual($app2) - ); - } - - public function testCanBeConvertedToString() { - $this->assertEquals( - 'foo/bar', - new ApplicationName('foo/bar') - ); - } -} diff --git a/vendor/phar-io/manifest/tests/values/ApplicationTest.php b/vendor/phar-io/manifest/tests/values/ApplicationTest.php deleted file mode 100644 index 86b5da6..0000000 --- a/vendor/phar-io/manifest/tests/values/ApplicationTest.php +++ /dev/null @@ -1,44 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Application - * @covers PharIo\Manifest\Type - */ -class ApplicationTest extends TestCase { - /** - * @var Application - */ - private $type; - - protected function setUp() { - $this->type = Type::application(); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Application::class, $this->type); - } - - public function testIsApplication() { - $this->assertTrue($this->type->isApplication()); - } - - public function testIsNotLibrary() { - $this->assertFalse($this->type->isLibrary()); - } - - public function testIsNotExtension() { - $this->assertFalse($this->type->isExtension()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php b/vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php deleted file mode 100644 index 0fa1b95..0000000 --- a/vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php +++ /dev/null @@ -1,62 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\AuthorCollection - * @covers \PharIo\Manifest\AuthorCollectionIterator - * - * @uses \PharIo\Manifest\Author - * @uses \PharIo\Manifest\Email - */ -class AuthorCollectionTest extends TestCase { - /** - * @var AuthorCollection - */ - private $collection; - - /** - * @var Author - */ - private $item; - - protected function setUp() { - $this->collection = new AuthorCollection; - $this->item = new Author('Joe Developer', new Email('user@example.com')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(AuthorCollection::class, $this->collection); - } - - public function testCanBeCounted() { - $this->collection->add($this->item); - - $this->assertCount(1, $this->collection); - } - - public function testCanBeIterated() { - $this->collection->add( - new Author('Dummy First', new Email('dummy@example.com')) - ); - $this->collection->add($this->item); - $this->assertContains($this->item, $this->collection); - } - - public function testKeyPositionCanBeRetreived() { - $this->collection->add($this->item); - foreach($this->collection as $key => $item) { - $this->assertEquals(0, $key); - } - } -} diff --git a/vendor/phar-io/manifest/tests/values/AuthorTest.php b/vendor/phar-io/manifest/tests/values/AuthorTest.php deleted file mode 100644 index b7317fa..0000000 --- a/vendor/phar-io/manifest/tests/values/AuthorTest.php +++ /dev/null @@ -1,45 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Author - * - * @uses PharIo\Manifest\Email - */ -class AuthorTest extends TestCase { - /** - * @var Author - */ - private $author; - - protected function setUp() { - $this->author = new Author('Joe Developer', new Email('user@example.com')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Author::class, $this->author); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('Joe Developer', $this->author->getName()); - } - - public function testEmailCanBeRetrieved() { - $this->assertEquals('user@example.com', $this->author->getEmail()); - } - - public function testCanBeUsedAsString() { - $this->assertEquals('Joe Developer ', $this->author); - } -} diff --git a/vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php b/vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php deleted file mode 100644 index 66cd0c4..0000000 --- a/vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php +++ /dev/null @@ -1,63 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\BundledComponentCollection - * @covers \PharIo\Manifest\BundledComponentCollectionIterator - * - * @uses \PharIo\Manifest\BundledComponent - * @uses \PharIo\Version\Version - */ -class BundledComponentCollectionTest extends TestCase { - /** - * @var BundledComponentCollection - */ - private $collection; - - /** - * @var BundledComponent - */ - private $item; - - protected function setUp() { - $this->collection = new BundledComponentCollection; - $this->item = new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(BundledComponentCollection::class, $this->collection); - } - - public function testCanBeCounted() { - $this->collection->add($this->item); - - $this->assertCount(1, $this->collection); - } - - public function testCanBeIterated() { - $this->collection->add($this->createMock(BundledComponent::class)); - $this->collection->add($this->item); - - $this->assertContains($this->item, $this->collection); - } - - public function testKeyPositionCanBeRetreived() { - $this->collection->add($this->item); - foreach($this->collection as $key => $item) { - $this->assertEquals(0, $key); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/values/BundledComponentTest.php b/vendor/phar-io/manifest/tests/values/BundledComponentTest.php deleted file mode 100644 index 01b8e13..0000000 --- a/vendor/phar-io/manifest/tests/values/BundledComponentTest.php +++ /dev/null @@ -1,42 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\BundledComponent - * - * @uses \PharIo\Version\Version - */ -class BundledComponentTest extends TestCase { - /** - * @var BundledComponent - */ - private $bundledComponent; - - protected function setUp() { - $this->bundledComponent = new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(BundledComponent::class, $this->bundledComponent); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('phpunit/php-code-coverage', $this->bundledComponent->getName()); - } - - public function testVersionCanBeRetrieved() { - $this->assertEquals('4.0.2', $this->bundledComponent->getVersion()->getVersionString()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php b/vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php deleted file mode 100644 index de738f4..0000000 --- a/vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php +++ /dev/null @@ -1,62 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\CopyrightInformation - * - * @uses PharIo\Manifest\AuthorCollection - * @uses PharIo\Manifest\AuthorCollectionIterator - * @uses PharIo\Manifest\Author - * @uses PharIo\Manifest\Email - * @uses PharIo\Manifest\License - * @uses PharIo\Manifest\Url - */ -class CopyrightInformationTest extends TestCase { - /** - * @var CopyrightInformation - */ - private $copyrightInformation; - - /** - * @var Author - */ - private $author; - - /** - * @var License - */ - private $license; - - protected function setUp() { - $this->author = new Author('Joe Developer', new Email('user@example.com')); - $this->license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE')); - - $authors = new AuthorCollection; - $authors->add($this->author); - - $this->copyrightInformation = new CopyrightInformation($authors, $this->license); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(CopyrightInformation::class, $this->copyrightInformation); - } - - public function testAuthorsCanBeRetrieved() { - $this->assertContains($this->author, $this->copyrightInformation->getAuthors()); - } - - public function testLicenseCanBeRetrieved() { - $this->assertEquals($this->license, $this->copyrightInformation->getLicense()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/EmailTest.php b/vendor/phar-io/manifest/tests/values/EmailTest.php deleted file mode 100644 index ee38531..0000000 --- a/vendor/phar-io/manifest/tests/values/EmailTest.php +++ /dev/null @@ -1,35 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Email - */ -class EmailTest extends TestCase { - public function testCanBeCreatedForValidEmail() { - $this->assertInstanceOf(Email::class, new Email('user@example.com')); - } - - public function testCanBeUsedAsString() { - $this->assertEquals('user@example.com', new Email('user@example.com')); - } - - /** - * @covers PharIo\Manifest\InvalidEmailException - */ - public function testCannotBeCreatedForInvalidEmail() { - $this->expectException(InvalidEmailException::class); - - new Email('invalid'); - } -} diff --git a/vendor/phar-io/manifest/tests/values/ExtensionTest.php b/vendor/phar-io/manifest/tests/values/ExtensionTest.php deleted file mode 100644 index 1c9d676..0000000 --- a/vendor/phar-io/manifest/tests/values/ExtensionTest.php +++ /dev/null @@ -1,109 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\AnyVersionConstraint; -use PharIo\Version\Version; -use PharIo\Version\VersionConstraint; -use PharIo\Version\VersionConstraintParser; -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\Extension - * @covers \PharIo\Manifest\Type - * - * @uses \PharIo\Version\VersionConstraint - * @uses \PharIo\Manifest\ApplicationName - */ -class ExtensionTest extends TestCase { - /** - * @var Extension - */ - private $type; - - /** - * @var ApplicationName|\PHPUnit_Framework_MockObject_MockObject - */ - private $name; - - protected function setUp() { - $this->name = $this->createMock(ApplicationName::class); - $this->type = Type::extension($this->name, new AnyVersionConstraint); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Extension::class, $this->type); - } - - public function testIsNotApplication() { - $this->assertFalse($this->type->isApplication()); - } - - public function testIsNotLibrary() { - $this->assertFalse($this->type->isLibrary()); - } - - public function testIsExtension() { - $this->assertTrue($this->type->isExtension()); - } - - public function testApplicationCanBeRetrieved() - { - $this->assertInstanceOf(ApplicationName::class, $this->type->getApplicationName()); - } - - public function testVersionConstraintCanBeRetrieved() { - $this->assertInstanceOf( - VersionConstraint::class, - $this->type->getVersionConstraint() - ); - } - - public function testApplicationCanBeQueried() - { - $this->name->method('isEqual')->willReturn(true); - $this->assertTrue( - $this->type->isExtensionFor($this->createMock(ApplicationName::class)) - ); - } - - public function testCompatibleWithReturnsTrueForMatchingVersionConstraintAndApplicaiton() { - $app = new ApplicationName('foo/bar'); - $extension = Type::extension($app, (new VersionConstraintParser)->parse('^1.0')); - $version = new Version('1.0.0'); - - $this->assertTrue( - $extension->isCompatibleWith($app, $version) - ); - } - - public function testCompatibleWithReturnsFalseForNotMatchingVersionConstraint() { - $app = new ApplicationName('foo/bar'); - $extension = Type::extension($app, (new VersionConstraintParser)->parse('^1.0')); - $version = new Version('2.0.0'); - - $this->assertFalse( - $extension->isCompatibleWith($app, $version) - ); - } - - public function testCompatibleWithReturnsFalseForNotMatchingApplication() { - $app1 = new ApplicationName('foo/bar'); - $app2 = new ApplicationName('foo/foo'); - $extension = Type::extension($app1, (new VersionConstraintParser)->parse('^1.0')); - $version = new Version('1.0.0'); - - $this->assertFalse( - $extension->isCompatibleWith($app2, $version) - ); - } - -} diff --git a/vendor/phar-io/manifest/tests/values/LibraryTest.php b/vendor/phar-io/manifest/tests/values/LibraryTest.php deleted file mode 100644 index f8d1c64..0000000 --- a/vendor/phar-io/manifest/tests/values/LibraryTest.php +++ /dev/null @@ -1,44 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Library - * @covers PharIo\Manifest\Type - */ -class LibraryTest extends TestCase { - /** - * @var Library - */ - private $type; - - protected function setUp() { - $this->type = Type::library(); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Library::class, $this->type); - } - - public function testIsNotApplication() { - $this->assertFalse($this->type->isApplication()); - } - - public function testIsLibrary() { - $this->assertTrue($this->type->isLibrary()); - } - - public function testIsNotExtension() { - $this->assertFalse($this->type->isExtension()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/LicenseTest.php b/vendor/phar-io/manifest/tests/values/LicenseTest.php deleted file mode 100644 index c9c5c3c..0000000 --- a/vendor/phar-io/manifest/tests/values/LicenseTest.php +++ /dev/null @@ -1,41 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\License - * - * @uses PharIo\Manifest\Url - */ -class LicenseTest extends TestCase { - /** - * @var License - */ - private $license; - - protected function setUp() { - $this->license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(License::class, $this->license); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('BSD-3-Clause', $this->license->getName()); - } - - public function testUrlCanBeRetrieved() { - $this->assertEquals('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE', $this->license->getUrl()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/ManifestTest.php b/vendor/phar-io/manifest/tests/values/ManifestTest.php deleted file mode 100644 index cff0a68..0000000 --- a/vendor/phar-io/manifest/tests/values/ManifestTest.php +++ /dev/null @@ -1,187 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\Version; -use PharIo\Version\AnyVersionConstraint; -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\Manifest - * - * @uses \PharIo\Manifest\ApplicationName - * @uses \PharIo\Manifest\Author - * @uses \PharIo\Manifest\AuthorCollection - * @uses \PharIo\Manifest\BundledComponent - * @uses \PharIo\Manifest\BundledComponentCollection - * @uses \PharIo\Manifest\CopyrightInformation - * @uses \PharIo\Manifest\Email - * @uses \PharIo\Manifest\License - * @uses \PharIo\Manifest\RequirementCollection - * @uses \PharIo\Manifest\PhpVersionRequirement - * @uses \PharIo\Manifest\Type - * @uses \PharIo\Manifest\Application - * @uses \PharIo\Manifest\Url - * @uses \PharIo\Version\Version - * @uses \PharIo\Version\VersionConstraint - */ -class ManifestTest extends TestCase { - /** - * @var ApplicationName - */ - private $name; - - /** - * @var Version - */ - private $version; - - /** - * @var Type - */ - private $type; - - /** - * @var CopyrightInformation - */ - private $copyrightInformation; - - /** - * @var RequirementCollection - */ - private $requirements; - - /** - * @var BundledComponentCollection - */ - private $bundledComponents; - - /** - * @var Manifest - */ - private $manifest; - - protected function setUp() { - $this->version = new Version('5.6.5'); - - $this->type = Type::application(); - - $author = new Author('Joe Developer', new Email('user@example.com')); - $license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE')); - - $authors = new AuthorCollection; - $authors->add($author); - - $this->copyrightInformation = new CopyrightInformation($authors, $license); - - $this->requirements = new RequirementCollection; - $this->requirements->add(new PhpVersionRequirement(new AnyVersionConstraint)); - - $this->bundledComponents = new BundledComponentCollection; - $this->bundledComponents->add(new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2'))); - - $this->name = new ApplicationName('phpunit/phpunit'); - - $this->manifest = new Manifest( - $this->name, - $this->version, - $this->type, - $this->copyrightInformation, - $this->requirements, - $this->bundledComponents - ); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(Manifest::class, $this->manifest); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals($this->name, $this->manifest->getName()); - } - - public function testVersionCanBeRetrieved() { - $this->assertEquals($this->version, $this->manifest->getVersion()); - } - - public function testTypeCanBeRetrieved() { - $this->assertEquals($this->type, $this->manifest->getType()); - } - - public function testTypeCanBeQueried() { - $this->assertTrue($this->manifest->isApplication()); - $this->assertFalse($this->manifest->isLibrary()); - $this->assertFalse($this->manifest->isExtension()); - } - - public function testCopyrightInformationCanBeRetrieved() { - $this->assertEquals($this->copyrightInformation, $this->manifest->getCopyrightInformation()); - } - - public function testRequirementsCanBeRetrieved() { - $this->assertEquals($this->requirements, $this->manifest->getRequirements()); - } - - public function testBundledComponentsCanBeRetrieved() { - $this->assertEquals($this->bundledComponents, $this->manifest->getBundledComponents()); - } - - /** - * @uses \PharIo\Manifest\Extension - */ - public function testExtendedApplicationCanBeQueriedForExtension() - { - $appName = new ApplicationName('foo/bar'); - $manifest = new Manifest( - new ApplicationName('foo/foo'), - new Version('1.0.0'), - Type::extension($appName, new AnyVersionConstraint), - $this->copyrightInformation, - new RequirementCollection, - new BundledComponentCollection - ); - - $this->assertTrue($manifest->isExtensionFor($appName)); - } - - public function testNonExtensionReturnsFalseWhenQueriesForExtension() { - $appName = new ApplicationName('foo/bar'); - $manifest = new Manifest( - new ApplicationName('foo/foo'), - new Version('1.0.0'), - Type::library(), - $this->copyrightInformation, - new RequirementCollection, - new BundledComponentCollection - ); - - $this->assertFalse($manifest->isExtensionFor($appName)); - } - - /** - * @uses \PharIo\Manifest\Extension - */ - public function testExtendedApplicationCanBeQueriedForExtensionWithVersion() - { - $appName = new ApplicationName('foo/bar'); - $manifest = new Manifest( - new ApplicationName('foo/foo'), - new Version('1.0.0'), - Type::extension($appName, new AnyVersionConstraint), - $this->copyrightInformation, - new RequirementCollection, - new BundledComponentCollection - ); - - $this->assertTrue($manifest->isExtensionFor($appName, new Version('1.2.3'))); - } - -} diff --git a/vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php b/vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php deleted file mode 100644 index ae1c058..0000000 --- a/vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php +++ /dev/null @@ -1,26 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\PhpExtensionRequirement - */ -class PhpExtensionRequirementTest extends TestCase { - public function testCanBeCreated() { - $this->assertInstanceOf(PhpExtensionRequirement::class, new PhpExtensionRequirement('dom')); - } - - public function testCanBeUsedAsString() { - $this->assertEquals('dom', new PhpExtensionRequirement('dom')); - } -} diff --git a/vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php b/vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php deleted file mode 100644 index 67ac41a..0000000 --- a/vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php +++ /dev/null @@ -1,38 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\ExactVersionConstraint; -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\PhpVersionRequirement - * - * @uses \PharIo\Version\VersionConstraint - */ -class PhpVersionRequirementTest extends TestCase { - /** - * @var PhpVersionRequirement - */ - private $requirement; - - protected function setUp() { - $this->requirement = new PhpVersionRequirement(new ExactVersionConstraint('7.1.0')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(PhpVersionRequirement::class, $this->requirement); - } - - public function testVersionConstraintCanBeRetrieved() { - $this->assertEquals('7.1.0', $this->requirement->getVersionConstraint()->asString()); - } -} diff --git a/vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php b/vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php deleted file mode 100644 index 2afeb1a..0000000 --- a/vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php +++ /dev/null @@ -1,63 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PharIo\Version\ExactVersionConstraint; -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Manifest\RequirementCollection - * @covers \PharIo\Manifest\RequirementCollectionIterator - * - * @uses \PharIo\Manifest\PhpVersionRequirement - * @uses \PharIo\Version\VersionConstraint - */ -class RequirementCollectionTest extends TestCase { - /** - * @var RequirementCollection - */ - private $collection; - - /** - * @var Requirement - */ - private $item; - - protected function setUp() { - $this->collection = new RequirementCollection; - $this->item = new PhpVersionRequirement(new ExactVersionConstraint('7.1.0')); - } - - public function testCanBeCreated() { - $this->assertInstanceOf(RequirementCollection::class, $this->collection); - } - - public function testCanBeCounted() { - $this->collection->add($this->item); - - $this->assertCount(1, $this->collection); - } - - public function testCanBeIterated() { - $this->collection->add(new PhpVersionRequirement(new ExactVersionConstraint('5.6.0'))); - $this->collection->add($this->item); - - $this->assertContains($this->item, $this->collection); - } - - public function testKeyPositionCanBeRetreived() { - $this->collection->add($this->item); - foreach($this->collection as $key => $item) { - $this->assertEquals(0, $key); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/values/UrlTest.php b/vendor/phar-io/manifest/tests/values/UrlTest.php deleted file mode 100644 index 20f09c1..0000000 --- a/vendor/phar-io/manifest/tests/values/UrlTest.php +++ /dev/null @@ -1,35 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Manifest; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Manifest\Url - */ -class UrlTest extends TestCase { - public function testCanBeCreatedForValidUrl() { - $this->assertInstanceOf(Url::class, new Url('https://phar.io/')); - } - - public function testCanBeUsedAsString() { - $this->assertEquals('https://phar.io/', new Url('https://phar.io/')); - } - - /** - * @covers PharIo\Manifest\InvalidUrlException - */ - public function testCannotBeCreatedForInvalidUrl() { - $this->expectException(InvalidUrlException::class); - - new Url('invalid'); - } -} diff --git a/vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php b/vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php deleted file mode 100644 index 327a7e3..0000000 --- a/vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php +++ /dev/null @@ -1,18 +0,0 @@ -loadXML(''); - $collection = new AuthorElementCollection($dom->childNodes); - - foreach($collection as $authorElement) { - $this->assertInstanceOf(AuthorElement::class, $authorElement); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/AuthorElementTest.php b/vendor/phar-io/manifest/tests/xml/AuthorElementTest.php deleted file mode 100644 index 430c0ca..0000000 --- a/vendor/phar-io/manifest/tests/xml/AuthorElementTest.php +++ /dev/null @@ -1,25 +0,0 @@ -loadXML(''); - $this->author = new AuthorElement($dom->documentElement); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('Reiner Zufall', $this->author->getName()); - } - - public function testEmailCanBeRetrieved() { - $this->assertEquals('reiner@zufall.de', $this->author->getEmail()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/BundlesElementTest.php b/vendor/phar-io/manifest/tests/xml/BundlesElementTest.php deleted file mode 100644 index 7972617..0000000 --- a/vendor/phar-io/manifest/tests/xml/BundlesElementTest.php +++ /dev/null @@ -1,41 +0,0 @@ -dom = new DOMDocument(); - $this->dom->loadXML(''); - $this->bundles = new BundlesElement($this->dom->documentElement); - } - - public function testThrowsExceptionWhenGetComponentElementsIsCalledButNodesAreMissing() { - $this->expectException(ManifestElementException::class); - $this->bundles->getComponentElements(); - } - - public function testGetComponentElementsReturnsComponentElementCollection() { - $this->addComponent(); - $this->assertInstanceOf( - ComponentElementCollection::class, $this->bundles->getComponentElements() - ); - } - - private function addComponent() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'component') - ); - } -} diff --git a/vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php b/vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php deleted file mode 100644 index 3a2716f..0000000 --- a/vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php +++ /dev/null @@ -1,18 +0,0 @@ -loadXML(''); - $collection = new ComponentElementCollection($dom->childNodes); - - foreach($collection as $componentElement) { - $this->assertInstanceOf(ComponentElement::class, $componentElement); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ComponentElementTest.php b/vendor/phar-io/manifest/tests/xml/ComponentElementTest.php deleted file mode 100644 index ab89fbd..0000000 --- a/vendor/phar-io/manifest/tests/xml/ComponentElementTest.php +++ /dev/null @@ -1,25 +0,0 @@ -loadXML(''); - $this->component = new ComponentElement($dom->documentElement); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('phar-io/phive', $this->component->getName()); - } - - public function testEmailCanBeRetrieved() { - $this->assertEquals('0.6.0', $this->component->getVersion()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ContainsElementTest.php b/vendor/phar-io/manifest/tests/xml/ContainsElementTest.php deleted file mode 100644 index f77313d..0000000 --- a/vendor/phar-io/manifest/tests/xml/ContainsElementTest.php +++ /dev/null @@ -1,63 +0,0 @@ -loadXML(''); - $this->domElement = $dom->documentElement; - $this->contains = new ContainsElement($this->domElement); - } - - public function testVersionCanBeRetrieved() { - $this->assertEquals('5.6.5', $this->contains->getVersion()); - } - - public function testThrowsExceptionWhenVersionAttributeIsMissing() { - $this->domElement->removeAttribute('version'); - $this->expectException(ManifestElementException::class); - $this->contains->getVersion(); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('phpunit/phpunit', $this->contains->getName()); - } - - public function testThrowsExceptionWhenNameAttributeIsMissing() { - $this->domElement->removeAttribute('name'); - $this->expectException(ManifestElementException::class); - $this->contains->getName(); - } - - public function testTypeCanBeRetrieved() { - $this->assertEquals('application', $this->contains->getType()); - } - - public function testThrowsExceptionWhenTypeAttributeIsMissing() { - $this->domElement->removeAttribute('type'); - $this->expectException(ManifestElementException::class); - $this->contains->getType(); - } - - public function testGetExtensionElementReturnsExtensionElement() { - $this->domElement->appendChild( - $this->domElement->ownerDocument->createElementNS('https://phar.io/xml/manifest/1.0', 'extension') - ); - $this->assertInstanceOf(ExtensionElement::class, $this->contains->getExtensionElement()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php b/vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php deleted file mode 100644 index 9ad8eb3..0000000 --- a/vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php +++ /dev/null @@ -1,52 +0,0 @@ -dom = new DOMDocument(); - $this->dom->loadXML(''); - $this->copyright = new CopyrightElement($this->dom->documentElement); - } - - public function testThrowsExceptionWhenGetAuthroElementsIsCalledButNodesAreMissing() { - $this->expectException(ManifestElementException::class); - $this->copyright->getAuthorElements(); - } - - public function testThrowsExceptionWhenGetLicenseElementIsCalledButNodeIsMissing() { - $this->expectException(ManifestElementException::class); - $this->copyright->getLicenseElement(); - } - - public function testGetAuthorElementsReturnsAuthorElementCollection() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'author') - ); - $this->assertInstanceOf( - AuthorElementCollection::class, $this->copyright->getAuthorElements() - ); - } - - public function testGetLicenseElementReturnsLicenseElement() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'license') - ); - $this->assertInstanceOf( - LicenseElement::class, $this->copyright->getLicenseElement() - ); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php b/vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php deleted file mode 100644 index 463e4d6..0000000 --- a/vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php +++ /dev/null @@ -1,19 +0,0 @@ -loadXML(''); - $collection = new ExtElementCollection($dom->childNodes); - - foreach($collection as $position => $extElement) { - $this->assertInstanceOf(ExtElement::class, $extElement); - $this->assertEquals(0, $position); - } - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ExtElementTest.php b/vendor/phar-io/manifest/tests/xml/ExtElementTest.php deleted file mode 100644 index 097b522..0000000 --- a/vendor/phar-io/manifest/tests/xml/ExtElementTest.php +++ /dev/null @@ -1,21 +0,0 @@ -loadXML(''); - $this->ext = new ExtElement($dom->documentElement); - } - - public function testNameCanBeRetrieved() { - $this->assertEquals('dom', $this->ext->getName()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php b/vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php deleted file mode 100644 index 2ae0112..0000000 --- a/vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php +++ /dev/null @@ -1,25 +0,0 @@ -loadXML(''); - $this->extension = new ExtensionElement($dom->documentElement); - } - - public function testNForCanBeRetrieved() { - $this->assertEquals('phar-io/phive', $this->extension->getFor()); - } - - public function testCompatibleVersionConstraintCanBeRetrieved() { - $this->assertEquals('~0.6', $this->extension->getCompatible()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/LicenseElementTest.php b/vendor/phar-io/manifest/tests/xml/LicenseElementTest.php deleted file mode 100644 index 00d4a6c..0000000 --- a/vendor/phar-io/manifest/tests/xml/LicenseElementTest.php +++ /dev/null @@ -1,25 +0,0 @@ -loadXML(''); - $this->license = new LicenseElement($dom->documentElement); - } - - public function testTypeCanBeRetrieved() { - $this->assertEquals('BSD-3', $this->license->getType()); - } - - public function testUrlCanBeRetrieved() { - $this->assertEquals('https://some.tld/LICENSE', $this->license->getUrl()); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php b/vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php deleted file mode 100644 index b5bb8cd..0000000 --- a/vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php +++ /dev/null @@ -1,110 +0,0 @@ -expectException(ManifestDocumentException::class); - ManifestDocument::fromFile('/does/not/exist'); - } - - public function testCanBeCreatedFromFile() { - $this->assertInstanceOf( - ManifestDocument::class, - ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml') - ); - } - - public function testCaneBeConstructedFromString() { - $content = file_get_contents(__DIR__ . '/../_fixture/phpunit-5.6.5.xml'); - $this->assertInstanceOf( - ManifestDocument::class, - ManifestDocument::fromString($content) - ); - } - - public function testThrowsExceptionOnInvalidXML() { - $this->expectException(ManifestDocumentLoadingException::class); - ManifestDocument::fromString(''); - } - - public function testLoadingDocumentWithWrongRootNameThrowsException() { - $this->expectException(ManifestDocumentException::class); - ManifestDocument::fromString(''); - } - - public function testLoadingDocumentWithWrongNamespaceThrowsException() { - $this->expectException(ManifestDocumentException::class); - ManifestDocument::fromString(''); - } - - public function testContainsElementCanBeRetrieved() { - $this->assertInstanceOf( - ContainsElement::class, - $this->loadFixture()->getContainsElement() - ); - } - - public function testRequiresElementCanBeRetrieved() { - $this->assertInstanceOf( - RequiresElement::class, - $this->loadFixture()->getRequiresElement() - ); - } - - public function testCopyrightElementCanBeRetrieved() { - $this->assertInstanceOf( - CopyrightElement::class, - $this->loadFixture()->getCopyrightElement() - ); - } - - public function testBundlesElementCanBeRetrieved() { - $this->assertInstanceOf( - BundlesElement::class, - $this->loadFixture()->getBundlesElement() - ); - } - - public function testThrowsExceptionWhenContainsIsMissing() { - $this->expectException(ManifestDocumentException::class); - $this->loadEmptyFixture()->getContainsElement(); - } - - public function testThrowsExceptionWhenCopyirhgtIsMissing() { - $this->expectException(ManifestDocumentException::class); - $this->loadEmptyFixture()->getCopyrightElement(); - } - - public function testThrowsExceptionWhenRequiresIsMissing() { - $this->expectException(ManifestDocumentException::class); - $this->loadEmptyFixture()->getRequiresElement(); - } - - public function testThrowsExceptionWhenBundlesIsMissing() { - $this->expectException(ManifestDocumentException::class); - $this->loadEmptyFixture()->getBundlesElement(); - } - - public function testHasBundlesReturnsTrueWhenBundlesNodeIsPresent() { - $this->assertTrue( - $this->loadFixture()->hasBundlesElement() - ); - } - - public function testHasBundlesReturnsFalseWhenBundlesNoNodeIsPresent() { - $this->assertFalse( - $this->loadEmptyFixture()->hasBundlesElement() - ); - } - - private function loadFixture() { - return ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml'); - } - - private function loadEmptyFixture() { - return ManifestDocument::fromString( - '' - ); - } -} diff --git a/vendor/phar-io/manifest/tests/xml/PhpElementTest.php b/vendor/phar-io/manifest/tests/xml/PhpElementTest.php deleted file mode 100644 index 546187a..0000000 --- a/vendor/phar-io/manifest/tests/xml/PhpElementTest.php +++ /dev/null @@ -1,48 +0,0 @@ -dom = new DOMDocument(); - $this->dom->loadXML(''); - $this->php = new PhpElement($this->dom->documentElement); - } - - public function testVersionConstraintCanBeRetrieved() { - $this->assertEquals('^5.6 || ^7.0', $this->php->getVersion()); - } - - public function testHasExtElementsReturnsFalseWhenNoExtensionsAreRequired() { - $this->assertFalse($this->php->hasExtElements()); - } - - public function testHasExtElementsReturnsTrueWhenExtensionsAreRequired() { - $this->addExtElement(); - $this->assertTrue($this->php->hasExtElements()); - } - - public function testGetExtElementsReturnsExtElementCollection() { - $this->addExtElement(); - $this->assertInstanceOf(ExtElementCollection::class, $this->php->getExtElements()); - } - - private function addExtElement() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'ext') - ); - } - -} diff --git a/vendor/phar-io/manifest/tests/xml/RequiresElementTest.php b/vendor/phar-io/manifest/tests/xml/RequiresElementTest.php deleted file mode 100644 index 907b0a6..0000000 --- a/vendor/phar-io/manifest/tests/xml/RequiresElementTest.php +++ /dev/null @@ -1,37 +0,0 @@ -dom = new DOMDocument(); - $this->dom->loadXML(''); - $this->requires = new RequiresElement($this->dom->documentElement); - } - - public function testThrowsExceptionWhenGetPhpElementIsCalledButElementIsMissing() { - $this->expectException(ManifestElementException::class); - $this->requires->getPHPElement(); - } - - public function testHasExtElementsReturnsTrueWhenExtensionsAreRequired() { - $this->dom->documentElement->appendChild( - $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'php') - ); - - $this->assertInstanceOf(PhpElement::class, $this->requires->getPHPElement()); - } - -} diff --git a/vendor/phar-io/version/.gitignore b/vendor/phar-io/version/.gitignore deleted file mode 100644 index 1c8f2e6..0000000 --- a/vendor/phar-io/version/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/.idea -/.php_cs.cache -/composer.lock -/src/autoload.php -/tools -/vendor - diff --git a/vendor/phar-io/version/.php_cs b/vendor/phar-io/version/.php_cs deleted file mode 100644 index 159d6a3..0000000 --- a/vendor/phar-io/version/.php_cs +++ /dev/null @@ -1,67 +0,0 @@ -files() - ->in('src') - ->in('tests') - ->name('*.php'); - -return Symfony\CS\Config\Config::create() - ->setUsingCache(true) - ->level(\Symfony\CS\FixerInterface::NONE_LEVEL) - ->fixers( - array( - 'align_double_arrow', - 'align_equals', - 'concat_with_spaces', - 'duplicate_semicolon', - 'elseif', - 'empty_return', - 'encoding', - 'eof_ending', - 'extra_empty_lines', - 'function_call_space', - 'function_declaration', - 'indentation', - 'join_function', - 'line_after_namespace', - 'linefeed', - 'list_commas', - 'lowercase_constants', - 'lowercase_keywords', - 'method_argument_space', - 'multiple_use', - 'namespace_no_leading_whitespace', - 'no_blank_lines_after_class_opening', - 'no_empty_lines_after_phpdocs', - 'parenthesis', - 'php_closing_tag', - 'phpdoc_indent', - 'phpdoc_no_access', - 'phpdoc_no_empty_return', - 'phpdoc_no_package', - 'phpdoc_params', - 'phpdoc_scalar', - 'phpdoc_separation', - 'phpdoc_to_comment', - 'phpdoc_trim', - 'phpdoc_types', - 'phpdoc_var_without_name', - 'remove_lines_between_uses', - 'return', - 'self_accessor', - 'short_array_syntax', - 'short_tag', - 'single_line_after_imports', - 'single_quote', - 'spaces_before_semicolon', - 'spaces_cast', - 'ternary_spaces', - 'trailing_spaces', - 'trim_array_spaces', - 'unused_use', - 'visibility', - 'whitespacy_lines' - ) - ) - ->finder($finder); - diff --git a/vendor/phar-io/version/.travis.yml b/vendor/phar-io/version/.travis.yml deleted file mode 100644 index b4be10f..0000000 --- a/vendor/phar-io/version/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -os: -- linux - -language: php - -before_install: - - wget https://phar.io/releases/phive.phar - - wget https://phar.io/releases/phive.phar.asc - - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys 0x9B2D5D79 - - gpg --verify phive.phar.asc phive.phar - - chmod +x phive.phar - - sudo mv phive.phar /usr/bin/phive - -install: - - ant setup - -script: ./tools/phpunit - -php: - - 5.6 - - 7.0 - - 7.1 - - 7.0snapshot - - 7.1snapshot - - master - -matrix: - allow_failures: - - php: master - fast_finish: true - -notifications: - email: false diff --git a/vendor/phar-io/version/LICENSE b/vendor/phar-io/version/LICENSE deleted file mode 100644 index 359dbc5..0000000 --- a/vendor/phar-io/version/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -phar-io/version - -Copyright (c) 2016-2017 Arne Blankerts , Sebastian Heuer and contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of Arne Blankerts nor the names of contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS -BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - diff --git a/vendor/phar-io/version/README.md b/vendor/phar-io/version/README.md deleted file mode 100644 index df448f8..0000000 --- a/vendor/phar-io/version/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Version - -Library for handling version information and constraints - -[![Build Status](https://travis-ci.org/phar-io/version.svg?branch=master)](https://travis-ci.org/phar-io/version) - -## Installation - -You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): - - composer require phar-io/version - -If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: - - composer require --dev phar-io/version - diff --git a/vendor/phar-io/version/build.xml b/vendor/phar-io/version/build.xml deleted file mode 100644 index 943c957..0000000 --- a/vendor/phar-io/version/build.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/phar-io/version/composer.json b/vendor/phar-io/version/composer.json deleted file mode 100644 index 891e8b1..0000000 --- a/vendor/phar-io/version/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "phar-io/version", - "description": "Library for handling version information and constraints", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "support": { - "issues": "https://github.com/phar-io/version/issues" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "autoload": { - "classmap": [ - "src/" - ] - } -} - diff --git a/vendor/phar-io/version/phive.xml b/vendor/phar-io/version/phive.xml deleted file mode 100644 index 0c3bc6f..0000000 --- a/vendor/phar-io/version/phive.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/vendor/phar-io/version/phpunit.xml b/vendor/phar-io/version/phpunit.xml deleted file mode 100644 index c21ffbc..0000000 --- a/vendor/phar-io/version/phpunit.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - tests - - - - - src - - - diff --git a/vendor/phar-io/version/src/AbstractVersionConstraint.php b/vendor/phar-io/version/src/AbstractVersionConstraint.php deleted file mode 100644 index b732dbc..0000000 --- a/vendor/phar-io/version/src/AbstractVersionConstraint.php +++ /dev/null @@ -1,32 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -abstract class AbstractVersionConstraint implements VersionConstraint { - /** - * @var string - */ - private $originalValue = ''; - - /** - * @param string $originalValue - */ - public function __construct($originalValue) { - $this->originalValue = $originalValue; - } - - /** - * @return string - */ - public function asString() { - return $this->originalValue; - } -} diff --git a/vendor/phar-io/version/src/AndVersionConstraintGroup.php b/vendor/phar-io/version/src/AndVersionConstraintGroup.php deleted file mode 100644 index 455dcd1..0000000 --- a/vendor/phar-io/version/src/AndVersionConstraintGroup.php +++ /dev/null @@ -1,43 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class AndVersionConstraintGroup extends AbstractVersionConstraint { - /** - * @var VersionConstraint[] - */ - private $constraints = []; - - /** - * @param string $originalValue - * @param VersionConstraint[] $constraints - */ - public function __construct($originalValue, array $constraints) { - parent::__construct($originalValue); - - $this->constraints = $constraints; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - foreach ($this->constraints as $constraint) { - if (!$constraint->complies($version)) { - return false; - } - } - - return true; - } -} diff --git a/vendor/phar-io/version/src/AnyVersionConstraint.php b/vendor/phar-io/version/src/AnyVersionConstraint.php deleted file mode 100644 index 13ca2ef..0000000 --- a/vendor/phar-io/version/src/AnyVersionConstraint.php +++ /dev/null @@ -1,29 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class AnyVersionConstraint implements VersionConstraint { - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - return true; - } - - /** - * @return string - */ - public function asString() { - return '*'; - } -} diff --git a/vendor/phar-io/version/src/ExactVersionConstraint.php b/vendor/phar-io/version/src/ExactVersionConstraint.php deleted file mode 100644 index b214117..0000000 --- a/vendor/phar-io/version/src/ExactVersionConstraint.php +++ /dev/null @@ -1,22 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class ExactVersionConstraint extends AbstractVersionConstraint { - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - return $this->asString() == $version->getVersionString(); - } -} diff --git a/vendor/phar-io/version/src/Exception.php b/vendor/phar-io/version/src/Exception.php deleted file mode 100644 index b99e4dd..0000000 --- a/vendor/phar-io/version/src/Exception.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -interface Exception { -} diff --git a/vendor/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php b/vendor/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php deleted file mode 100644 index a237d79..0000000 --- a/vendor/phar-io/version/src/GreaterThanOrEqualToVersionConstraint.php +++ /dev/null @@ -1,38 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class GreaterThanOrEqualToVersionConstraint extends AbstractVersionConstraint { - /** - * @var Version - */ - private $minimalVersion; - - /** - * @param string $originalValue - * @param Version $minimalVersion - */ - public function __construct($originalValue, Version $minimalVersion) { - parent::__construct($originalValue); - - $this->minimalVersion = $minimalVersion; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - return $version->getVersionString() == $this->minimalVersion->getVersionString() || - $version->isGreaterThan($this->minimalVersion); - } -} diff --git a/vendor/phar-io/version/src/InvalidVersionException.php b/vendor/phar-io/version/src/InvalidVersionException.php deleted file mode 100644 index e52f5d7..0000000 --- a/vendor/phar-io/version/src/InvalidVersionException.php +++ /dev/null @@ -1,5 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class OrVersionConstraintGroup extends AbstractVersionConstraint { - /** - * @var VersionConstraint[] - */ - private $constraints = []; - - /** - * @param string $originalValue - * @param VersionConstraint[] $constraints - */ - public function __construct($originalValue, array $constraints) { - parent::__construct($originalValue); - - $this->constraints = $constraints; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - foreach ($this->constraints as $constraint) { - if ($constraint->complies($version)) { - return true; - } - } - - return false; - } -} diff --git a/vendor/phar-io/version/src/PreReleaseSuffix.php b/vendor/phar-io/version/src/PreReleaseSuffix.php deleted file mode 100644 index d9e7ee7..0000000 --- a/vendor/phar-io/version/src/PreReleaseSuffix.php +++ /dev/null @@ -1,41 +0,0 @@ -value = $value; - $this->number = $number; - } - - /** - * @return string - */ - public function getValue() - { - return $this->value; - } - - /** - * @return int|null - */ - public function getNumber() - { - return $this->number; - } -} diff --git a/vendor/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php b/vendor/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php deleted file mode 100644 index dbeaa06..0000000 --- a/vendor/phar-io/version/src/SpecificMajorAndMinorVersionConstraint.php +++ /dev/null @@ -1,48 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class SpecificMajorAndMinorVersionConstraint extends AbstractVersionConstraint { - /** - * @var int - */ - private $major = 0; - - /** - * @var int - */ - private $minor = 0; - - /** - * @param string $originalValue - * @param int $major - * @param int $minor - */ - public function __construct($originalValue, $major, $minor) { - parent::__construct($originalValue); - - $this->major = $major; - $this->minor = $minor; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - if ($version->getMajor()->getValue() != $this->major) { - return false; - } - - return $version->getMinor()->getValue() == $this->minor; - } -} diff --git a/vendor/phar-io/version/src/SpecificMajorVersionConstraint.php b/vendor/phar-io/version/src/SpecificMajorVersionConstraint.php deleted file mode 100644 index 51b12d9..0000000 --- a/vendor/phar-io/version/src/SpecificMajorVersionConstraint.php +++ /dev/null @@ -1,37 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class SpecificMajorVersionConstraint extends AbstractVersionConstraint { - /** - * @var int - */ - private $major = 0; - - /** - * @param string $originalValue - * @param int $major - */ - public function __construct($originalValue, $major) { - parent::__construct($originalValue); - - $this->major = $major; - } - - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version) { - return $version->getMajor()->getValue() == $this->major; - } -} diff --git a/vendor/phar-io/version/src/UnsupportedVersionConstraintException.php b/vendor/phar-io/version/src/UnsupportedVersionConstraintException.php deleted file mode 100644 index 45488c2..0000000 --- a/vendor/phar-io/version/src/UnsupportedVersionConstraintException.php +++ /dev/null @@ -1,14 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -final class UnsupportedVersionConstraintException extends \RuntimeException implements Exception { -} diff --git a/vendor/phar-io/version/src/Version.php b/vendor/phar-io/version/src/Version.php deleted file mode 100644 index 825ed44..0000000 --- a/vendor/phar-io/version/src/Version.php +++ /dev/null @@ -1,162 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class Version { - /** - * @var VersionNumber - */ - private $major; - - /** - * @var VersionNumber - */ - private $minor; - - /** - * @var VersionNumber - */ - private $patch; - - /** - * @var PreReleaseSuffix - */ - private $preReleaseSuffix; - - /** - * @var string - */ - private $versionString = ''; - - /** - * @param string $versionString - */ - public function __construct($versionString) { - $this->ensureVersionStringIsValid($versionString); - - $this->versionString = $versionString; - } - - /** - * @param array $matches - */ - private function parseVersion(array $matches) { - $this->major = new VersionNumber($matches['Major']); - $this->minor = new VersionNumber($matches['Minor']); - $this->patch = isset($matches['Patch']) ? new VersionNumber($matches['Patch']) : new VersionNumber(null); - - if (isset($matches['ReleaseType'])) { - $preReleaseNumber = isset($matches['ReleaseTypeCount']) ? (int) $matches['ReleaseTypeCount'] : null; - - $this->preReleaseSuffix = new PreReleaseSuffix($matches['ReleaseType'], $preReleaseNumber); - } - } - - /** - * @return PreReleaseSuffix - */ - public function getPreReleaseSuffix() - { - return $this->preReleaseSuffix; - } - - /** - * @return string - */ - public function getVersionString() { - return $this->versionString; - } - - /** - * @param Version $version - * - * @return bool - */ - public function isGreaterThan(Version $version) { - if ($version->getMajor()->getValue() > $this->getMajor()->getValue()) { - return false; - } - - if ($version->getMajor()->getValue() < $this->getMajor()->getValue()) { - return true; - } - - if ($version->getMinor()->getValue() > $this->getMinor()->getValue()) { - return false; - } - - if ($version->getMinor()->getValue() < $this->getMinor()->getValue()) { - return true; - } - - if ($version->getPatch()->getValue() >= $this->getPatch()->getValue()) { - return false; - } - - if ($version->getPatch()->getValue() < $this->getPatch()->getValue()) { - return true; - } - - return false; - } - - /** - * @return VersionNumber - */ - public function getMajor() { - return $this->major; - } - - /** - * @return VersionNumber - */ - public function getMinor() { - return $this->minor; - } - - /** - * @return VersionNumber - */ - public function getPatch() { - return $this->patch; - } - - /** - * @param string $version - * - * @throws InvalidVersionException - */ - private function ensureVersionStringIsValid($version) { - $regex = '/^v? - (?(0|(?:[1-9][0-9]*))) - \\. - (?(0|(?:[1-9][0-9]*))) - (\\. - (?(0|(?:[1-9][0-9]*))) - )? - (?: - - - (?(?:(dev|beta|b|RC|alpha|a|patch|p))) - (?: - (?[0-9]) - )? - )? - $/x'; - - if (preg_match($regex, $version, $matches) !== 1) { - throw new InvalidVersionException( - sprintf("Version string '%s' does not follow SemVer semantics", $version) - ); - } - - $this->parseVersion($matches); - } -} diff --git a/vendor/phar-io/version/src/VersionConstraint.php b/vendor/phar-io/version/src/VersionConstraint.php deleted file mode 100644 index 9558163..0000000 --- a/vendor/phar-io/version/src/VersionConstraint.php +++ /dev/null @@ -1,26 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -interface VersionConstraint { - /** - * @param Version $version - * - * @return bool - */ - public function complies(Version $version); - - /** - * @return string - */ - public function asString(); - -} diff --git a/vendor/phar-io/version/src/VersionConstraintParser.php b/vendor/phar-io/version/src/VersionConstraintParser.php deleted file mode 100644 index 0a24f87..0000000 --- a/vendor/phar-io/version/src/VersionConstraintParser.php +++ /dev/null @@ -1,122 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class VersionConstraintParser { - /** - * @param string $value - * - * @return VersionConstraint - * - * @throws UnsupportedVersionConstraintException - */ - public function parse($value) { - - if (strpos($value, '||') !== false) { - return $this->handleOrGroup($value); - } - - if (!preg_match('/^[\^~\*]?[\d.\*]+$/', $value)) { - throw new UnsupportedVersionConstraintException( - sprintf('Version constraint %s is not supported.', $value) - ); - } - - switch ($value[0]) { - case '~': - return $this->handleTildeOperator($value); - case '^': - return $this->handleCaretOperator($value); - } - - $version = new VersionConstraintValue($value); - - if ($version->getMajor()->isAny()) { - return new AnyVersionConstraint(); - } - - if ($version->getMinor()->isAny()) { - return new SpecificMajorVersionConstraint( - $value, - $version->getMajor()->getValue() - ); - } - - if ($version->getPatch()->isAny()) { - return new SpecificMajorAndMinorVersionConstraint( - $value, - $version->getMajor()->getValue(), - $version->getMinor()->getValue() - ); - } - - return new ExactVersionConstraint($value); - } - - /** - * @param $value - * - * @return OrVersionConstraintGroup - */ - private function handleOrGroup($value) { - $constraints = []; - - foreach (explode('||', $value) as $groupSegment) { - $constraints[] = $this->parse(trim($groupSegment)); - } - - return new OrVersionConstraintGroup($value, $constraints); - } - - /** - * @param string $value - * - * @return AndVersionConstraintGroup - */ - private function handleTildeOperator($value) { - $version = new Version(substr($value, 1)); - $constraints = [ - new GreaterThanOrEqualToVersionConstraint($value, $version) - ]; - - if ($version->getPatch()->isAny()) { - $constraints[] = new SpecificMajorVersionConstraint( - $value, - $version->getMajor()->getValue() - ); - } else { - $constraints[] = new SpecificMajorAndMinorVersionConstraint( - $value, - $version->getMajor()->getValue(), - $version->getMinor()->getValue() - ); - } - - return new AndVersionConstraintGroup($value, $constraints); - } - - /** - * @param string $value - * - * @return AndVersionConstraintGroup - */ - private function handleCaretOperator($value) { - $version = new Version(substr($value, 1)); - - return new AndVersionConstraintGroup( - $value, - [ - new GreaterThanOrEqualToVersionConstraint($value, $version), - new SpecificMajorVersionConstraint($value, $version->getMajor()->getValue()) - ] - ); - } -} diff --git a/vendor/phar-io/version/src/VersionConstraintValue.php b/vendor/phar-io/version/src/VersionConstraintValue.php deleted file mode 100644 index ad59068..0000000 --- a/vendor/phar-io/version/src/VersionConstraintValue.php +++ /dev/null @@ -1,123 +0,0 @@ -versionString = $versionString; - - $this->parseVersion($versionString); - } - - /** - * @param $versionString - */ - private function parseVersion($versionString) { - $this->extractBuildMetaData($versionString); - $this->extractLabel($versionString); - - $versionSegments = explode('.', $versionString); - $this->major = new VersionNumber($versionSegments[0]); - - $minorValue = isset($versionSegments[1]) ? $versionSegments[1] : null; - $patchValue = isset($versionSegments[2]) ? $versionSegments[2] : null; - - $this->minor = new VersionNumber($minorValue); - $this->patch = new VersionNumber($patchValue); - } - - /** - * @param string $versionString - */ - private function extractBuildMetaData(&$versionString) { - if (preg_match('/\+(.*)/', $versionString, $matches) == 1) { - $this->buildMetaData = $matches[1]; - $versionString = str_replace($matches[0], '', $versionString); - } - } - - /** - * @param string $versionString - */ - private function extractLabel(&$versionString) { - if (preg_match('/\-(.*)/', $versionString, $matches) == 1) { - $this->label = $matches[1]; - $versionString = str_replace($matches[0], '', $versionString); - } - } - - /** - * @return string - */ - public function getLabel() { - return $this->label; - } - - /** - * @return string - */ - public function getBuildMetaData() { - return $this->buildMetaData; - } - - /** - * @return string - */ - public function getVersionString() { - return $this->versionString; - } - - /** - * @return VersionNumber - */ - public function getMajor() { - return $this->major; - } - - /** - * @return VersionNumber - */ - public function getMinor() { - return $this->minor; - } - - /** - * @return VersionNumber - */ - public function getPatch() { - return $this->patch; - } -} diff --git a/vendor/phar-io/version/src/VersionNumber.php b/vendor/phar-io/version/src/VersionNumber.php deleted file mode 100644 index ab512ed..0000000 --- a/vendor/phar-io/version/src/VersionNumber.php +++ /dev/null @@ -1,41 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -class VersionNumber { - /** - * @var int - */ - private $value; - - /** - * @param mixed $value - */ - public function __construct($value) { - if (is_numeric($value)) { - $this->value = $value; - } - } - - /** - * @return bool - */ - public function isAny() { - return $this->value === null; - } - - /** - * @return int - */ - public function getValue() { - return $this->value; - } -} diff --git a/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php b/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php deleted file mode 100644 index 683e9d0..0000000 --- a/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php +++ /dev/null @@ -1,125 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Version\VersionConstraintParser - */ -class VersionConstraintParserTest extends TestCase { - /** - * @dataProvider versionStringProvider - * - * @param string $versionString - * @param VersionConstraint $expectedConstraint - */ - public function testReturnsExpectedConstraint($versionString, VersionConstraint $expectedConstraint) { - $parser = new VersionConstraintParser; - - $this->assertEquals($expectedConstraint, $parser->parse($versionString)); - } - - /** - * @dataProvider unsupportedVersionStringProvider - * - * @param string $versionString - */ - public function testThrowsExceptionIfVersionStringIsNotSupported($versionString) { - $parser = new VersionConstraintParser; - - $this->expectException(UnsupportedVersionConstraintException::class); - - $parser->parse($versionString); - } - - /** - * @return array - */ - public function versionStringProvider() { - return [ - ['1.0.2', new ExactVersionConstraint('1.0.2')], - [ - '~4.6', - new AndVersionConstraintGroup( - '~4.6', - [ - new GreaterThanOrEqualToVersionConstraint('~4.6', new Version('4.6')), - new SpecificMajorVersionConstraint('~4.6', 4) - ] - ) - ], - [ - '~4.6.2', - new AndVersionConstraintGroup( - '~4.6.2', - [ - new GreaterThanOrEqualToVersionConstraint('~4.6.2', new Version('4.6.2')), - new SpecificMajorAndMinorVersionConstraint('~4.6.2', 4, 6) - ] - ) - ], - [ - '^2.6.1', - new AndVersionConstraintGroup( - '^2.6.1', - [ - new GreaterThanOrEqualToVersionConstraint('^2.6.1', new Version('2.6.1')), - new SpecificMajorVersionConstraint('^2.6.1', 2) - ] - ) - ], - ['5.1.*', new SpecificMajorAndMinorVersionConstraint('5.1.*', 5, 1)], - ['5.*', new SpecificMajorVersionConstraint('5.*', 5)], - ['*', new AnyVersionConstraint()], - [ - '1.0.2 || 1.0.5', - new OrVersionConstraintGroup( - '1.0.2 || 1.0.5', - [ - new ExactVersionConstraint('1.0.2'), - new ExactVersionConstraint('1.0.5') - ] - ) - ], - [ - '^5.6 || ^7.0', - new OrVersionConstraintGroup( - '^5.6 || ^7.0', - [ - new AndVersionConstraintGroup( - '^5.6', [ - new GreaterThanOrEqualToVersionConstraint('^5.6', new Version('5.6')), - new SpecificMajorVersionConstraint('^5.6', 5) - ] - ), - new AndVersionConstraintGroup( - '^7.0', [ - new GreaterThanOrEqualToVersionConstraint('^7.0', new Version('7.0')), - new SpecificMajorVersionConstraint('^7.0', 7) - ] - ) - ] - ) - ] - ]; - } - - public function unsupportedVersionStringProvider() { - return [ - ['foo'], - ['+1.0.2'], - ['>=2.0'], - ['^5.6 || >= 7.0'], - ['2.0 || foo'] - ]; - } -} diff --git a/vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php deleted file mode 100644 index c618566..0000000 --- a/vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php +++ /dev/null @@ -1,25 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Version\AbstractVersionConstraint - */ -class AbstractVersionConstraintTest extends TestCase { - public function testAsString() { - /** @var AbstractVersionConstraint|\PHPUnit_Framework_MockObject_MockObject $constraint */ - $constraint = $this->getMockForAbstractClass(AbstractVersionConstraint::class, ['foo']); - - $this->assertSame('foo', $constraint->asString()); - } -} diff --git a/vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php b/vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php deleted file mode 100644 index ce7f5da..0000000 --- a/vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php +++ /dev/null @@ -1,52 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\AndVersionConstraintGroup - */ -class AndVersionConstraintGroupTest extends TestCase { - public function testReturnsFalseIfOneConstraintReturnsFalse() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $secondConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(false)); - - $group = new AndVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertFalse($group->complies(new Version('1.0.0'))); - } - - public function testReturnsTrueIfAllConstraintsReturnsTrue() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $secondConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $group = new AndVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertTrue($group->complies(new Version('1.0.0'))); - } -} diff --git a/vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php deleted file mode 100644 index 331785e..0000000 --- a/vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php +++ /dev/null @@ -1,41 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\AnyVersionConstraint - */ -class AnyVersionConstraintTest extends TestCase { - public function versionProvider() { - return [ - [new Version('1.0.2')], - [new Version('4.8')], - [new Version('0.1.1-dev')] - ]; - } - - /** - * @dataProvider versionProvider - * - * @param Version $version - */ - public function testReturnsTrue(Version $version) { - $constraint = new AnyVersionConstraint; - - $this->assertTrue($constraint->complies($version)); - } - - public function testAsString() { - $this->assertSame('*', (new AnyVersionConstraint())->asString()); - } -} diff --git a/vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php deleted file mode 100644 index 6b906fa..0000000 --- a/vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php +++ /dev/null @@ -1,58 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\ExactVersionConstraint - */ -class ExactVersionConstraintTest extends TestCase { - public function compliantVersionProvider() { - return [ - ['1.0.2', new Version('1.0.2')], - ['4.8.9', new Version('4.8.9')], - ['4.8', new Version('4.8')], - ]; - } - - public function nonCompliantVersionProvider() { - return [ - ['1.0.2', new Version('1.0.3')], - ['4.8.9', new Version('4.7.9')], - ['4.8', new Version('4.8.5')], - ]; - } - - /** - * @dataProvider compliantVersionProvider - * - * @param string $constraintValue - * @param Version $version - */ - public function testReturnsTrueForCompliantVersion($constraintValue, Version $version) { - $constraint = new ExactVersionConstraint($constraintValue); - - $this->assertTrue($constraint->complies($version)); - } - - /** - * @dataProvider nonCompliantVersionProvider - * - * @param string $constraintValue - * @param Version $version - */ - public function testReturnsFalseForNonCompliantVersion($constraintValue, Version $version) { - $constraint = new ExactVersionConstraint($constraintValue); - - $this->assertFalse($constraint->complies($version)); - } -} diff --git a/vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php deleted file mode 100644 index 2ae54a8..0000000 --- a/vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php +++ /dev/null @@ -1,47 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\GreaterThanOrEqualToVersionConstraint - */ -class GreaterThanOrEqualToVersionConstraintTest extends TestCase { - public function versionProvider() { - return [ - // compliant versions - [new Version('1.0.2'), new Version('1.0.2'), true], - [new Version('1.0.2'), new Version('1.0.3'), true], - [new Version('1.0.2'), new Version('1.1.1'), true], - [new Version('1.0.2'), new Version('2.0.0'), true], - [new Version('1.0.2'), new Version('1.0.3'), true], - // non-compliant versions - [new Version('1.0.2'), new Version('1.0.1'), false], - [new Version('1.9.8'), new Version('0.9.9'), false], - [new Version('2.3.1'), new Version('2.2.3'), false], - [new Version('3.0.2'), new Version('2.9.9'), false], - ]; - } - - /** - * @dataProvider versionProvider - * - * @param Version $constraintVersion - * @param Version $version - * @param bool $expectedResult - */ - public function testReturnsTrueForCompliantVersions(Version $constraintVersion, Version $version, $expectedResult) { - $constraint = new GreaterThanOrEqualToVersionConstraint('foo', $constraintVersion); - - $this->assertSame($expectedResult, $constraint->complies($version)); - } -} diff --git a/vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php b/vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php deleted file mode 100644 index 4c6f594..0000000 --- a/vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php +++ /dev/null @@ -1,65 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\OrVersionConstraintGroup - */ -class OrVersionConstraintGroupTest extends TestCase { - public function testReturnsTrueIfOneConstraintReturnsFalse() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(false)); - - $secondConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertTrue($group->complies(new Version('1.0.0'))); - } - - public function testReturnsTrueIfAllConstraintsReturnsTrue() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(true)); - - $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertTrue($group->complies(new Version('1.0.0'))); - } - - public function testReturnsFalseIfAllConstraintsReturnsFalse() { - $firstConstraint = $this->createMock(VersionConstraint::class); - $secondConstraint = $this->createMock(VersionConstraint::class); - - $firstConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(false)); - - $secondConstraint->expects($this->once()) - ->method('complies') - ->will($this->returnValue(false)); - - $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); - - $this->assertFalse($group->complies(new Version('1.0.0'))); - } -} diff --git a/vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php deleted file mode 100644 index d3ab123..0000000 --- a/vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php +++ /dev/null @@ -1,45 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\SpecificMajorAndMinorVersionConstraint - */ -class SpecificMajorAndMinorVersionConstraintTest extends TestCase { - public function versionProvider() { - return [ - // compliant versions - [1, 0, new Version('1.0.2'), true], - [1, 0, new Version('1.0.3'), true], - [1, 1, new Version('1.1.1'), true], - // non-compliant versions - [2, 9, new Version('0.9.9'), false], - [3, 2, new Version('2.2.3'), false], - [2, 8, new Version('2.9.9'), false], - ]; - } - - /** - * @dataProvider versionProvider - * - * @param int $major - * @param int $minor - * @param Version $version - * @param bool $expectedResult - */ - public function testReturnsTrueForCompliantVersions($major, $minor, Version $version, $expectedResult) { - $constraint = new SpecificMajorAndMinorVersionConstraint('foo', $major, $minor); - - $this->assertSame($expectedResult, $constraint->complies($version)); - } -} diff --git a/vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php deleted file mode 100644 index fc78c7e..0000000 --- a/vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php +++ /dev/null @@ -1,44 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers PharIo\Version\SpecificMajorVersionConstraint - */ -class SpecificMajorVersionConstraintTest extends TestCase { - public function versionProvider() { - return [ - // compliant versions - [1, new Version('1.0.2'), true], - [1, new Version('1.0.3'), true], - [1, new Version('1.1.1'), true], - // non-compliant versions - [2, new Version('0.9.9'), false], - [3, new Version('2.2.3'), false], - [3, new Version('2.9.9'), false], - ]; - } - - /** - * @dataProvider versionProvider - * - * @param int $major - * @param Version $version - * @param bool $expectedResult - */ - public function testReturnsTrueForCompliantVersions($major, Version $version, $expectedResult) { - $constraint = new SpecificMajorVersionConstraint('foo', $major); - - $this->assertSame($expectedResult, $constraint->complies($version)); - } -} diff --git a/vendor/phar-io/version/tests/Unit/VersionTest.php b/vendor/phar-io/version/tests/Unit/VersionTest.php deleted file mode 100644 index 4d0eee4..0000000 --- a/vendor/phar-io/version/tests/Unit/VersionTest.php +++ /dev/null @@ -1,104 +0,0 @@ -, Sebastian Heuer , Sebastian Bergmann - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace PharIo\Version; - -use PHPUnit\Framework\TestCase; - -/** - * @covers \PharIo\Version\Version - */ -class VersionTest extends TestCase { - /** - * @dataProvider versionProvider - * - * @param string $versionString - * @param string $expectedMajor - * @param string $expectedMinor - * @param string $expectedPatch - * @param string $expectedPreReleaseValue - * @param int $expectedReleaseCount - */ - public function testParsesVersionNumbers($versionString, $expectedMajor, $expectedMinor, $expectedPatch, $expectedPreReleaseValue = '', $expectedReleaseCount = 0) { - $version = new Version($versionString); - - $this->assertSame($expectedMajor, $version->getMajor()->getValue()); - $this->assertSame($expectedMinor, $version->getMinor()->getValue()); - $this->assertSame($expectedPatch, $version->getPatch()->getValue()); - if ($expectedPreReleaseValue !== '') { - $this->assertSame($expectedPreReleaseValue, $version->getPreReleaseSuffix()->getValue()); - } - if ($expectedReleaseCount !== 0) { - $this->assertSame($expectedReleaseCount, $version->getPreReleaseSuffix()->getNumber()); - } - - $this->assertSame($versionString, $version->getVersionString()); - } - - public function versionProvider() { - return [ - ['0.0.1', '0', '0', '1'], - ['0.1.2', '0', '1', '2'], - ['1.0.0-alpha', '1', '0', '0', 'alpha'], - ['3.4.12-dev3', '3', '4', '12', 'dev', 3], - ]; - } - - /** - * @dataProvider versionGreaterThanProvider - * - * @param Version $versionA - * @param Version $versionB - * @param bool $expectedResult - */ - public function testIsGreaterThan(Version $versionA, Version $versionB, $expectedResult) { - $this->assertSame($expectedResult, $versionA->isGreaterThan($versionB)); - } - - /** - * @return array - */ - public function versionGreaterThanProvider() { - return [ - [new Version('1.0.0'), new Version('1.0.1'), false], - [new Version('1.0.1'), new Version('1.0.0'), true], - [new Version('1.1.0'), new Version('1.0.1'), true], - [new Version('1.1.0'), new Version('2.0.1'), false], - [new Version('1.1.0'), new Version('1.1.0'), false], - [new Version('2.5.8'), new Version('1.6.8'), true], - [new Version('2.5.8'), new Version('2.6.8'), false], - [new Version('2.5.8'), new Version('3.1.2'), false], - ]; - } - - /** - * @dataProvider invalidVersionStringProvider - * - * @param string $versionString - */ - public function testThrowsExceptionIfVersionStringDoesNotFollowSemVer($versionString) - { - $this->expectException(InvalidVersionException::class); - new Version($versionString); - } - - /** - * @return array - */ - public function invalidVersionStringProvider() - { - return [ - ['foo'], - ['0.0.1-dev+ABC', '0', '0', '1', 'dev', 'ABC'], - ['1.0.0-x.7.z.92', '1', '0', '0', 'x.7.z.92'] - ]; - } - -} diff --git a/vendor/phpcollection/phpcollection/.gitignore b/vendor/phpcollection/phpcollection/.gitignore deleted file mode 100644 index 30f3ee2..0000000 --- a/vendor/phpcollection/phpcollection/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -vendor/ -phpunit.xml - diff --git a/vendor/phpcollection/phpcollection/.travis.yml b/vendor/phpcollection/phpcollection/.travis.yml deleted file mode 100644 index 7beaf7a..0000000 --- a/vendor/phpcollection/phpcollection/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -language: php - -php: - - 5.3 - - 5.4 - - 5.5 - - hhvm - -before_script: - - wget http://getcomposer.org/composer.phar - - php composer.phar install --dev - -script: phpunit --coverage-clover clover - -after_success: - - curl -sL https://bit.ly/artifact-uploader | php - -matrix: - allow_failures: - - php: hhvm diff --git a/vendor/phpcollection/phpcollection/LICENSE b/vendor/phpcollection/phpcollection/LICENSE deleted file mode 100644 index f49a4e1..0000000 --- a/vendor/phpcollection/phpcollection/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/README.md b/vendor/phpcollection/phpcollection/README.md deleted file mode 100644 index 74909da..0000000 --- a/vendor/phpcollection/phpcollection/README.md +++ /dev/null @@ -1,4 +0,0 @@ -PHP Collection -============== - -Learn more about it in its [documentation](http://jmsyst.com/libs/php-collection). diff --git a/vendor/phpcollection/phpcollection/composer.json b/vendor/phpcollection/phpcollection/composer.json deleted file mode 100644 index 40ac8bb..0000000 --- a/vendor/phpcollection/phpcollection/composer.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "phpcollection/phpcollection", - "description": "General-Purpose Collection Library for PHP", - "keywords": ["collection", "list", "sequence", "map", "set"], - "license": "Apache2", - "authors": [ - {"name": "Johannes M. Schmitt", "email": "schmittjoh@gmail.com"} - ], - "require": { - "phpoption/phpoption": "1.*" - }, - "autoload": { - "psr-0": { - "PhpCollection": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "0.4-dev" - } - } -} diff --git a/vendor/phpcollection/phpcollection/composer.lock b/vendor/phpcollection/phpcollection/composer.lock deleted file mode 100644 index da1f5b7..0000000 --- a/vendor/phpcollection/phpcollection/composer.lock +++ /dev/null @@ -1,74 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" - ], - "hash": "fd142320c7e09ab476e16ed23601288a", - "packages": [ - { - "name": "phpoption/phpoption", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "1.2.0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/1.2.0", - "reference": "1.2.0", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "psr-0": { - "PhpOption\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache2" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "http://jmsyst.com", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Option Type for PHP", - "keywords": [ - "language", - "option", - "php", - "type" - ], - "time": "2013-03-25 02:51:40" - } - ], - "packages-dev": [ - - ], - "aliases": [ - - ], - "minimum-stability": "stable", - "stability-flags": [ - - ], - "platform": [ - - ], - "platform-dev": [ - - ] -} diff --git a/vendor/phpcollection/phpcollection/doc/LICENSE b/vendor/phpcollection/phpcollection/doc/LICENSE deleted file mode 100644 index a9aba5c..0000000 --- a/vendor/phpcollection/phpcollection/doc/LICENSE +++ /dev/null @@ -1,55 +0,0 @@ -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. - -1. Definitions - - "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. - "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. - "Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. - "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. - "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. - "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. - "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. - "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. - "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. - -2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: - - to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, - to Distribute and Publicly Perform the Work including as incorporated in Collections. - -The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). - -4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: - - You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. - You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. - If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. - - For the avoidance of doubt: - Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; - Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, - Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). - Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. - -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. - Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. - -8. Miscellaneous - - Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. - If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. - No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. - This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. - The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/vendor/phpcollection/phpcollection/doc/index.rst b/vendor/phpcollection/phpcollection/doc/index.rst deleted file mode 100644 index 6fe0342..0000000 --- a/vendor/phpcollection/phpcollection/doc/index.rst +++ /dev/null @@ -1,152 +0,0 @@ -PHP Collection -============== -This library adds basic collections for PHP. - -Collections can be seen as more specialized arrays for which certain contracts are guaranteed. - -Supported Collections: - -- Sequences - - - Keys: numerical, consequentially increasing, no gaps - - Values: anything, duplicates allowed - - Classes: ``Sequence``, ``SortedSequence`` - - -- Maps - - - Keys: strings or objects, duplicate keys not allowed - - Values: anything, duplicates allowed - - Classes: ``Map``, ``ObjectMap`` (not yet implemented) - - -- Sets - - - Keys: not meaningful - - Values: objects, or scalars, each value is guaranteed to be unique (see Set usage below for details) - - Classes: ``Set`` - -General Characteristics: - -- Collections are mutable (new elements may be added, existing elements may be modified or removed). Specialized - immutable versions may be added in the future though. -- Equality comparison between elements are always performed using the shallow comparison operator (===). -- Sorting algorithms are unstable, that means the order for equal elements is undefined (the default, and only PHP behavior). - - -Installation ------------- -PHP Collection can easily be installed via composer - -.. code-block :: bash - - composer require phpcollection/phpcollection - -or add it to your ``composer.json`` file. - -Usage ------ -Collection classes provide a rich API. - -Sets -~~~~ -In a Set each value is guaranteed to be unique. The ``Set`` class supports objects, and scalars as value. Equality -is determined via the following steps. - -**Equality of Objects** - - 1. If an object implements ``ObjectBasics``, equality is determined by the ``equals()`` method. - 2. If an object has an external handler like the ``DateTime`` that was registered via ``ObjectBasicsHandlerRegistry::registerHandlerFor``, - equality is determined by that handler's ``equals()`` method. - 3. If none of the above is applicable, equality is determined by identity ``$a === $b``. - -**Equality of Scalars** - - Scalar are considered equal if ``$a === $b`` is true. - - -.. code-block :: php - - $set = new Set(); - $set->add(new \DateTime('today')); - $set->add(new \DateTime('today')); - - var_dump(count($set)); // int(1) -> the same date is not added twice - - foreach ($set as $date) { - var_dump($date); - } - - $set->all(); - $set->addSet($otherSet); - $set->addAll($someElements); - - -Sequences -~~~~~~~~~ - -.. code-block :: php - - // Read Operations - $seq = new Sequence([0, 2, 3, 2]); - $seq->get(2); // int(3) - $seq->all(); // [0, 2, 3, 2] - - $seq->first(); // Some(0) - $seq->last(); // Some(2) - - // Write Operations - $seq = new Sequence([1, 5]); - $seq->get(0); // int(1) - $seq->update(0, 4); - $seq->get(0); // int(4) - $seq->remove(0); - $seq->get(0); // int(5) - - $seq = new Sequence([1, 4]); - $seq->add(2); - $seq->all(); // [1, 4, 2] - $seq->addAll(array(4, 5, 2)); - $seq->all(); // [1, 4, 2, 4, 5, 2] - - // Sort - $seq = new Sequence([0, 5, 4, 2]); - $seq->sortWith(function($a, $b) { return $a - $b; }); - $seq->all(); // [0, 2, 4, 5] - -Maps -~~~~ - -.. code-block :: php - - // Read Operations - $map = new Map(['foo' => 'bar', 'baz' => 'boo']); - $map->get('foo'); // Some('bar') - $map->get('foo')->get(); // string('bar') - $map->keys(); // ['foo', 'baz'] - $map->values(); // ['bar', 'boo'] - iterator_to_array($map); // ['foo' => 'bar', 'baz' => 'boo'] - - $map->first()->get(); // ['foo', 'bar'] - $map->last()->get(); // ['baz', 'boo'] - - // Write Operations - $map = new Map(); - $map->set('foo', 'bar'); - $map->setAll(array('bar' => 'baz', 'baz' => 'boo')); - $map->remove('foo'); - - // Sort - $map->sortWith('strcmp'); - -License -------- - -The code is released under the business-friendly `Apache2 license`_. - -Documentation is subject to the `Attribution-NonCommercial-NoDerivs 3.0 Unported -license`_. - -.. _Apache2 license: http://www.apache.org/licenses/LICENSE-2.0.html -.. _Attribution-NonCommercial-NoDerivs 3.0 Unported license: http://creativecommons.org/licenses/by-nc-nd/3.0/ - diff --git a/vendor/phpcollection/phpcollection/phpunit.xml.dist b/vendor/phpcollection/phpcollection/phpunit.xml.dist deleted file mode 100644 index 0b73f29..0000000 --- a/vendor/phpcollection/phpcollection/phpunit.xml.dist +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ./tests/PhpCollection/ - - - - - - performance - - - diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/AbstractCollection.php b/vendor/phpcollection/phpcollection/src/PhpCollection/AbstractCollection.php deleted file mode 100644 index f11652b..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/AbstractCollection.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -use PhpOption\LazyOption; -use PhpOption\Some; -use PhpOption\None; - -abstract class AbstractCollection -{ - public function contains($searchedElem) - { - foreach ($this as $elem) { - if ($elem === $searchedElem) { - return true; - } - } - - return false; - } - - public function find($callable) - { - $self = $this; - - return new LazyOption(function() use ($callable, $self) { - foreach ($self as $elem) { - if (call_user_func($callable, $elem) === true) { - return new Some($elem); - } - } - - return None::create(); - }); - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/AbstractMap.php b/vendor/phpcollection/phpcollection/src/PhpCollection/AbstractMap.php deleted file mode 100644 index 20cb26d..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/AbstractMap.php +++ /dev/null @@ -1,304 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -use PhpOption\Some; -use PhpOption\None; - -/** - * A simple map implementation which basically wraps an array with an object oriented interface. - * - * @author Johannes M. Schmitt - */ -class AbstractMap extends AbstractCollection implements \IteratorAggregate, MapInterface -{ - protected $elements; - - public function __construct(array $elements = array()) - { - $this->elements = $elements; - } - - public function set($key, $value) - { - $this->elements[$key] = $value; - } - - public function exists($callable) - { - foreach ($this as $k => $v) { - if ($callable($k, $v) === true) { - return true; - } - } - - return false; - } - - /** - * Sets all key/value pairs in the map. - * - * @param array $kvMap - * - * @return void - */ - public function setAll(array $kvMap) - { - $this->elements = array_merge($this->elements, $kvMap); - } - - public function addMap(MapInterface $map) - { - foreach ($map as $k => $v) { - $this->elements[$k] = $v; - } - } - - public function get($key) - { - if (isset($this->elements[$key])) { - return new Some($this->elements[$key]); - } - - return None::create(); - } - - public function all() - { - return $this->elements; - } - - public function remove($key) - { - if ( ! isset($this->elements[$key])) { - throw new \InvalidArgumentException(sprintf('The map has no key named "%s".', $key)); - } - - $element = $this->elements[$key]; - unset($this->elements[$key]); - - return $element; - } - - public function clear() - { - $this->elements = array(); - } - - public function first() - { - if (empty($this->elements)) { - return None::create(); - } - - $elem = reset($this->elements); - - return new Some(array(key($this->elements), $elem)); - } - - public function last() - { - if (empty($this->elements)) { - return None::create(); - } - - $elem = end($this->elements); - - return new Some(array(key($this->elements), $elem)); - } - - public function contains($elem) - { - foreach ($this->elements as $existingElem) { - if ($existingElem === $elem) { - return true; - } - } - - return false; - } - - public function containsKey($key) - { - return isset($this->elements[$key]); - } - - public function isEmpty() - { - return empty($this->elements); - } - - /** - * Returns a new filtered map. - * - * @param callable $callable receives the element and must return true (= keep), or false (= remove). - * - * @return AbstractMap - */ - public function filter($callable) - { - return $this->filterInternal($callable, true); - } - - /** - * Returns a new filtered map. - * - * @param callable $callable receives the element and must return true (= remove), or false (= keep). - * - * @return AbstractMap - */ - public function filterNot($callable) - { - return $this->filterInternal($callable, false); - } - - /** - * @param callable $callable - * @param boolean $booleanKeep - */ - private function filterInternal($callable, $booleanKeep) - { - $newElements = array(); - foreach ($this->elements as $k => $element) { - if ($booleanKeep !== call_user_func($callable, $element)) { - continue; - } - - $newElements[$k] = $element; - } - - return $this->createNew($newElements); - } - - public function foldLeft($initialValue, $callable) - { - $value = $initialValue; - foreach ($this->elements as $elem) { - $value = call_user_func($callable, $value, $elem); - } - - return $value; - } - - public function foldRight($initialValue, $callable) - { - $value = $initialValue; - foreach (array_reverse($this->elements) as $elem) { - $value = call_user_func($callable, $elem, $value); - } - - return $value; - } - - public function dropWhile($callable) - { - $newElements = array(); - $stopped = false; - foreach ($this->elements as $k => $v) { - if ( ! $stopped) { - if (call_user_func($callable, $k, $v) === true) { - continue; - } - - $stopped = true; - } - - $newElements[$k] = $v; - } - - return $this->createNew($newElements); - } - - public function drop($number) - { - if ($number <= 0) { - throw new \InvalidArgumentException(sprintf('The number must be greater than 0, but got %d.', $number)); - } - - return $this->createNew(array_slice($this->elements, $number, null, true)); - } - - public function dropRight($number) - { - if ($number <= 0) { - throw new \InvalidArgumentException(sprintf('The number must be greater than 0, but got %d.', $number)); - } - - return $this->createNew(array_slice($this->elements, 0, -1 * $number, true)); - } - - public function take($number) - { - if ($number <= 0) { - throw new \InvalidArgumentException(sprintf('The number must be greater than 0, but got %d.', $number)); - } - - return $this->createNew(array_slice($this->elements, 0, $number, true)); - } - - public function takeWhile($callable) - { - $newElements = array(); - foreach ($this->elements as $k => $v) { - if (call_user_func($callable, $k, $v) !== true) { - break; - } - - $newElements[$k] = $v; - } - - return $this->createNew($newElements); - } - - public function find($callable) - { - foreach ($this->elements as $k => $v) { - if (call_user_func($callable, $k, $v) === true) { - return new Some(array($k, $v)); - } - } - - return None::create(); - } - - public function keys() - { - return array_keys($this->elements); - } - - public function values() - { - return array_values($this->elements); - } - - public function count() - { - return count($this->elements); - } - - public function getIterator() - { - return new \ArrayIterator($this->elements); - } - - protected function createNew(array $elements) - { - return new static($elements); - } -} diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/AbstractSequence.php b/vendor/phpcollection/phpcollection/src/PhpCollection/AbstractSequence.php deleted file mode 100644 index 5ce2bde..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/AbstractSequence.php +++ /dev/null @@ -1,365 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -use PhpOption\Some; -use PhpOption\None; -use PhpOption\Option; -use OutOfBoundsException; - -/** - * A sequence with numerically indexed elements. - * - * This is rawly equivalent to an array with only numeric keys. - * There are no restrictions on how many same values may occur in the sequence. - * - * This sequence is mutable. - * - * @author Johannes M. Schmitt - */ -class AbstractSequence extends AbstractCollection implements \IteratorAggregate, SequenceInterface -{ - protected $elements; - - /** - * @param array $elements - */ - public function __construct(array $elements = array()) - { - $this->elements = array_values($elements); - } - - public function addSequence(SequenceInterface $seq) - { - $this->addAll($seq->all()); - } - - public function indexOf($searchedElement) - { - foreach ($this->elements as $i => $element) { - if ($searchedElement === $element) { - return $i; - } - } - - return -1; - } - - public function lastIndexOf($searchedElement) - { - for ($i=count($this->elements)-1; $i>=0; $i--) { - if ($this->elements[$i] === $searchedElement) { - return $i; - } - } - - return -1; - } - - public function reverse() - { - return $this->createNew(array_reverse($this->elements)); - } - - public function isDefinedAt($index) - { - return isset($this->elements[$index]); - } - - /** - * Returns a filtered sequence. - * - * @param callable $callable receives the element and must return true (= keep) or false (= remove). - * - * @return AbstractSequence - */ - public function filter($callable) - { - return $this->filterInternal($callable, true); - } - - public function map($callable) - { - $newElements = array(); - foreach ($this->elements as $i => $element) { - $newElements[$i] = $callable($element); - } - - return $this->createNew($newElements); - } - - /** - * Returns a filtered sequence. - * - * @param callable $callable receives the element and must return true (= remove) or false (= keep). - * - * @return AbstractSequence - */ - public function filterNot($callable) - { - return $this->filterInternal($callable, false); - } - - private function filterInternal($callable, $booleanKeep) - { - $newElements = array(); - foreach ($this->elements as $element) { - if ($booleanKeep !== call_user_func($callable, $element)) { - continue; - } - - $newElements[] = $element; - } - - return $this->createNew($newElements); - } - - public function foldLeft($initialValue, $callable) - { - $value = $initialValue; - foreach ($this->elements as $elem) { - $value = call_user_func($callable, $value, $elem); - } - - return $value; - } - - public function foldRight($initialValue, $callable) - { - $value = $initialValue; - foreach (array_reverse($this->elements) as $elem) { - $value = call_user_func($callable, $elem, $value); - } - - return $value; - } - - /** - * Finds the first index where the given callable returns true. - * - * @param callable $callable - * - * @return integer the index, or -1 if the predicate is not true for any element. - */ - public function indexWhere($callable) - { - foreach ($this->elements as $i => $element) { - if (call_user_func($callable, $element) === true) { - return $i; - } - } - - return -1; - } - - public function lastIndexWhere($callable) - { - for ($i=count($this->elements)-1; $i>=0; $i--) { - if (call_user_func($callable, $this->elements[$i]) === true) { - return $i; - } - } - - return -1; - } - - public function last() - { - if (empty($this->elements)) { - return None::create(); - } - - return new Some(end($this->elements)); - } - - public function first() - { - if (empty($this->elements)) { - return None::create(); - } - - return new Some(reset($this->elements)); - } - - public function indices() - { - return array_keys($this->elements); - } - - /** - * Returns an element based on its index (0-based). - * - * @param integer $index - * - * @return T - */ - public function get($index) - { - if ( ! isset($this->elements[$index])) { - throw new OutOfBoundsException(sprintf('The index "%s" does not exist in this sequence.', $index)); - } - - return $this->elements[$index]; - } - - /** - * Removes the element at the given index, and returns it. - * - * @param int $index - * - * @return T - * - * @throws \OutOfBoundsException If there is no element at the given index. - */ - public function remove($index) - { - if ( ! isset($this->elements[$index])) { - throw new OutOfBoundsException(sprintf('The index "%d" is not in the interval [0, %d).', $index, count($this->elements))); - } - - $element = $this->elements[$index]; - unset($this->elements[$index]); - $this->elements = array_values($this->elements); - - return $element; - } - - /** - * Updates the element at the given index (0-based). - * - * @param integer $index - * @param T $value - */ - public function update($index, $value) - { - if ( ! isset($this->elements[$index])) { - throw new \InvalidArgumentException(sprintf('There is no element at index "%d".', $index)); - } - - $this->elements[$index] = $value; - } - - public function isEmpty() - { - return empty($this->elements); - } - - public function all() - { - return $this->elements; - } - - public function add($newElement) - { - $this->elements[] = $newElement; - } - - public function addAll(array $addedElements) - { - foreach ($addedElements as $newElement) { - $this->elements[] = $newElement; - } - } - - public function take($number) - { - if ($number <= 0) { - throw new \InvalidArgumentException(sprintf('$number must be greater than 0, but got %d.', $number)); - } - - return $this->createNew(array_slice($this->elements, 0, $number)); - } - - /** - * Extracts element from the head while the passed callable returns true. - * - * @param callable $callable receives elements of this sequence as first argument, and returns true/false. - * - * @return Sequence - */ - public function takeWhile($callable) - { - $newElements = array(); - - for ($i=0,$c=count($this->elements); $i<$c; $i++) { - if (call_user_func($callable, $this->elements[$i]) !== true) { - break; - } - - $newElements[] = $this->elements[$i]; - } - - return $this->createNew($newElements); - } - - public function drop($number) - { - if ($number <= 0) { - throw new \InvalidArgumentException(sprintf('The number must be greater than 0, but got %d.', $number)); - } - - return $this->createNew(array_slice($this->elements, $number)); - } - - public function dropRight($number) - { - if ($number <= 0) { - throw new \InvalidArgumentException(sprintf('The number must be greater than 0, but got %d.', $number)); - } - - return $this->createNew(array_slice($this->elements, 0, -1 * $number)); - } - - public function dropWhile($callable) - { - for ($i=0,$c=count($this->elements); $i<$c; $i++) { - if (true !== call_user_func($callable, $this->elements[$i])) { - break; - } - } - - return $this->createNew(array_slice($this->elements, $i)); - } - - public function exists($callable) - { - foreach ($this as $elem) { - if ($callable($elem) === true) { - return true; - } - } - - return false; - } - - public function count() - { - return count($this->elements); - } - - public function getIterator() - { - return new \ArrayIterator($this->elements); - } - - protected function createNew(array $elements) - { - return new static($elements); - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/CollectionInterface.php b/vendor/phpcollection/phpcollection/src/PhpCollection/CollectionInterface.php deleted file mode 100644 index f60bd60..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/CollectionInterface.php +++ /dev/null @@ -1,84 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -/** - * Basic interface which adds some behaviors, and a few methods common to all collections. - * - * @author Johannes M. Schmitt - */ -interface CollectionInterface extends \Traversable, \Countable -{ - /** - * Returns whether this collection contains the passed element. - * - * @param mixed $elem - * - * @return boolean - */ - public function contains($elem); - - /** - * Returns whether the collection is empty. - * - * @return boolean - */ - public function isEmpty(); - - /** - * Returns a filtered collection of the same type. - * - * Removes all elements for which the provided callable returns false. - * - * @param callable $callable receives an element of the collection and must return true (= keep) or false (= remove). - * - * @return CollectionInterface - */ - public function filter($callable); - - /** - * Returns a filtered collection of the same type. - * - * Removes all elements for which the provided callable returns true. - * - * @param callable $callable receives an element of the collection and must return true (= remove) or false (= keep). - * - * @return CollectionInterface - */ - public function filterNot($callable); - - /** - * Applies the callable to an initial value and each element, going left to right. - * - * @param mixed $initialValue - * @param callable $callable receives the current value (the first time this equals $initialValue) and the element - * - * @return mixed the last value returned by $callable, or $initialValue if collection is empty. - */ - public function foldLeft($initialValue, $callable); - - /** - * Applies the callable to each element, and an initial value, going right to left. - * - * @param mixed $initialValue - * @param callable $callable receives the element, and the current value (the first time this equals $initialValue). - * @return mixed the last value returned by $callable, or $initialValue if collection is empty. - */ - public function foldRight($initialValue, $callable); -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/EntityLikeObject.php b/vendor/phpcollection/phpcollection/src/PhpCollection/EntityLikeObject.php deleted file mode 100644 index d0d6f4b..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/EntityLikeObject.php +++ /dev/null @@ -1,23 +0,0 @@ - - */ -trait EntityLikeObject -{ - public function hash() - { - return spl_object_hash($this); - } - - public function equals(ObjectBasics $other) - { - return $this === $other; - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/Map.php b/vendor/phpcollection/phpcollection/src/PhpCollection/Map.php deleted file mode 100644 index cb56ba4..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/Map.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -class Map extends AbstractMap implements SortableInterface -{ - public function sortWith($callable) - { - uksort($this->elements, $callable); - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/MapInterface.php b/vendor/phpcollection/phpcollection/src/PhpCollection/MapInterface.php deleted file mode 100644 index a974134..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/MapInterface.php +++ /dev/null @@ -1,173 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -use PhpOption\Option; - -/** - * Basic map interface. - * - * @author Johannes M. Schmitt - */ -interface MapInterface extends CollectionInterface -{ - /** - * Returns the first element in the collection if available. - * - * @return Option on array - */ - public function first(); - - /** - * Returns the last element in the collection if available. - * - * @return Option on array - */ - public function last(); - - /** - * Returns all elements in this collection. - * - * @return array - */ - public function all(); - - /** - * Searches the collection for an element. - * - * @param callable $callable receives the element as first argument, and returns true, or false - * - * @return Option on array - */ - public function find($callable); - - /** - * Returns the value associated with the given key. - * - * @param mixed $key - * - * @return Option on V - */ - public function get($key); - - /** - * Returns whether this map contains a given key. - * - * @param mixed $key - * - * @return boolean - */ - public function containsKey($key); - - /** - * Puts a new element in the map. - * - * @param mixed $key - * @param mixed $value - * - * @return void - */ - public function set($key, $value); - - /** - * Removes an element from the map. - * - * @param mixed $key - * - * @return mixed - */ - public function remove($key); - - /** - * Adds all another map to this map, and returns itself. - * - * @param MapInterface $map - * - * @return MapInterface - */ - public function addMap(MapInterface $map); - - /** - * Returns an array with the keys. - * - * @return array - */ - public function keys(); - - /** - * Returns an array with the values. - * - * @return array - */ - public function values(); - - /** - * Returns a new sequence by omitting the given number of elements from the beginning. - * - * If the passed number is greater than the available number of elements, all will be removed. - * - * @param integer $number - * - * @return MapInterface - */ - public function drop($number); - - /** - * Returns a new sequence by omitting the given number of elements from the end. - * - * If the passed number is greater than the available number of elements, all will be removed. - * - * @param integer $number - * - * @return MapInterface - */ - public function dropRight($number); - - /** - * Returns a new sequence by omitting elements from the beginning for as long as the callable returns true. - * - * @param callable $callable Receives the element to drop as first argument, and returns true (drop), or false (stop). - * - * @return MapInterface - */ - public function dropWhile($callable); - - /** - * Creates a new collection by taking the given number of elements from the beginning - * of the current collection. - * - * If the passed number is greater than the available number of elements, then all elements - * will be returned as a new collection. - * - * @param integer $number - * - * @return MapInterface - */ - public function take($number); - - /** - * Creates a new collection by taking elements from the current collection - * for as long as the callable returns true. - * - * @param callable $callable - * - * @return MapInterface - */ - public function takeWhile($callable); -} diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasics.php b/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasics.php deleted file mode 100644 index 222d06c..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasics.php +++ /dev/null @@ -1,40 +0,0 @@ - - */ -interface ObjectBasics -{ - /** - * Produces a hash for the given object. - * - * If two objects are equal (as per the equals() method), the hash() method must produce - * the same hash for them. - * - * The reverse can, but does not necessarily have to be true. That is, if two objects have the - * same hash, they do not necessarily have to be equal, but the equals() method must be called - * to be sure. - * - * When implementing this method try to use a simple and fast algorithm that produces reasonably - * different results for non-equal objects, and shift the heavy comparison logic to equals(). - * - * @return string|integer - */ - public function hash(); - - /** - * Whether two objects are equal. - * - * This can compare by referential equality (===), or in case of value objects like (\DateTime) compare - * the individual properties of the objects; it's up to the implementation. - * - * @return boolean - */ - public function equals(ObjectBasics $other); -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler.php b/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler.php deleted file mode 100644 index bf4c1e9..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -interface ObjectBasicsHandler -{ - /** - * @param object $object This object is guaranteed to be of the type the handler was registered for. - * @return string|integer - */ - public function hash($object); - - /** - * @param object $firstObject This object is guaranteed to be of the type the handler was registered for. - * @param object $secondObject This might be an object of any class. - * @return boolean - */ - public function equals($firstObject, $secondObject); -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler/DateTimeHandler.php b/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler/DateTimeHandler.php deleted file mode 100644 index d2551ad..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler/DateTimeHandler.php +++ /dev/null @@ -1,29 +0,0 @@ -getTimestamp(); - } - - public function equals($thisObject, $otherObject) - { - if ( ! $thisObject instanceof \DateTime) { - throw new \LogicException('$thisObject must be an instance of \DateTime.'); - } - if ( ! $otherObject instanceof \DateTime) { - return false; - } - - return $thisObject->format(\DateTime::ISO8601) === $otherObject->format(\DateTime::ISO8601); - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler/IdentityHandler.php b/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler/IdentityHandler.php deleted file mode 100644 index 2cc49fb..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/ObjectBasicsHandler/IdentityHandler.php +++ /dev/null @@ -1,18 +0,0 @@ - - */ -abstract class ObjectBasicsHandlerRegistry -{ - private static $handlers = array( - 'DateTime' => 'PhpCollection\\ObjectBasicsHandler\\DateTimeHandler', - ); - private static $defaultObjectHandler; - - private static $aliases = array(); - - /** - * Defines an alias. - * - * $aliasClass must be a sub-type (extend or implement) $handlingClass; otherwise you will run into trouble. - * - * Aliases can only be one level deep, - * - * i.e. aliasClass -> handlingClass is supported, - * but aliasClass -> anotherAliasClass -> handlingClass is not. - * - * @param string $handlingClass The class that should be aliased, i.e. MyDateTime - * @param string $aliasClass The class that should be used instead, i.e. DateTime - */ - public static function addAliasFor($handlingClass, $aliasClass) - { - self::$aliases[$handlingClass] = $aliasClass; - } - - public static function addHandlerFor($handlingClass, $handlerInstanceOrClassName) - { - if ( ! $handlerInstanceOrClassName instanceof ObjectBasicsHandler && ! is_string($handlerInstanceOrClassName)) { - throw new \LogicException('$handler must be an instance of ObjectBasicsHandler, or a string referring to the handlers class.'); - } - - self::$handlers[$handlingClass] = $handlerInstanceOrClassName; - } - - public static function getHandler($className) - { - if (isset(self::$aliases[$className])) { - $className = self::$aliases[$className]; - } - - if ( ! isset(self::$handlers[$className])) { - if (self::$defaultObjectHandler === null) { - self::$defaultObjectHandler = new IdentityHandler(); - } - - return self::$defaultObjectHandler; - } - - if (self::$handlers[$className] instanceof ObjectBasicsHandler) { - return self::$handlers[$className]; - } - - if (is_string(self::$handlers[$className])) { - $handlerClass = self::$handlers[$className]; - - return self::$handlers[$className] = new $handlerClass(); - } - - throw new \LogicException(sprintf( - 'Unknown handler type ("%s") for class "%s" - should never be reached.', - gettype(self::$handlers[$className]), - $className - )); - } - - private final function __construct() { } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/Sequence.php b/vendor/phpcollection/phpcollection/src/PhpCollection/Sequence.php deleted file mode 100644 index e5e82a8..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/Sequence.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -/** - * Unsorted sequence implementation. - * - * Characteristics: - * - * - Keys: consequentially numbered, without gaps - * - Values: anything, duplicates allowed - * - Ordering: same as input unless when explicitly sorted - * - * @author Johannes M. Schmitt - */ -class Sequence extends AbstractSequence implements SortableInterface -{ - public function sortWith($callable) - { - usort($this->elements, $callable); - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/SequenceInterface.php b/vendor/phpcollection/phpcollection/src/PhpCollection/SequenceInterface.php deleted file mode 100644 index 43e4077..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/SequenceInterface.php +++ /dev/null @@ -1,227 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -use PhpOption\Option; - -/** - * Interface for mutable sequences. - * - * Equality of elements in the sequence is established via a shallow comparison (===). - * - * @author Johannes M. Schmitt - */ -interface SequenceInterface extends CollectionInterface -{ - /** - * Returns the first element in the collection if available. - * - * @return Option - */ - public function first(); - - /** - * Returns the last element in the collection if available. - * - * @return Option - */ - public function last(); - - /** - * Returns all elements in this sequence. - * - * @return array - */ - public function all(); - - /** - * Returns a new Sequence with all elements in reverse order. - * - * @return SequenceInterface - */ - public function reverse(); - - /** - * Adds the elements of another sequence to this sequence. - * - * @param SequenceInterface $seq - * - * @return SequenceInterface - */ - public function addSequence(SequenceInterface $seq); - - /** - * Returns the index of the passed element. - * - * @param mixed $elem - * - * @return integer the index (0-based), or -1 if not found - */ - public function indexOf($elem); - - /** - * Returns the last index of the passed element. - * - * @param mixed $elem - * @return integer the index (0-based), or -1 if not found - */ - public function lastIndexOf($elem); - - /** - * Returns whether the given index is defined in the sequence. - * - * @param integer $index (0-based) - * @return boolean - */ - public function isDefinedAt($index); - - /** - * Returns the first index where the given callable returns true. - * - * @param callable $callable receives the element as first argument, and returns true, or false - * - * @return integer the index (0-based), or -1 if the callable returns false for all elements - */ - public function indexWhere($callable); - - /** - * Returns the last index where the given callable returns true. - * - * @param callable $callable receives the element as first argument, and returns true, or false - * - * @return integer the index (0-based), or -1 if the callable returns false for all elements - */ - public function lastIndexWhere($callable); - - /** - * Returns all indices of this collection. - * - * @return integer[] - */ - public function indices(); - - /** - * Returns the element at the given index. - * - * @param integer $index (0-based) - * - * @return mixed - */ - public function get($index); - - /** - * Adds an element to the sequence. - * - * @param mixed $elem - * - * @return void - */ - public function add($elem); - - /** - * Removes the element at the given index, and returns it. - * - * @param integer $index - * - * @return mixed - */ - public function remove($index); - - /** - * Adds all elements to the sequence. - * - * @param array $elements - * - * @return void - */ - public function addAll(array $elements); - - /** - * Updates the value at the given index. - * - * @param integer $index - * @param mixed $value - * - * @return void - */ - public function update($index, $value); - - /** - * Returns a new sequence by omitting the given number of elements from the beginning. - * - * If the passed number is greater than the available number of elements, all will be removed. - * - * @param integer $number - * - * @return SequenceInterface - */ - public function drop($number); - - /** - * Returns a new sequence by omitting the given number of elements from the end. - * - * If the passed number is greater than the available number of elements, all will be removed. - * - * @param integer $number - * - * @return SequenceInterface - */ - public function dropRight($number); - - /** - * Returns a new sequence by omitting elements from the beginning for as long as the callable returns true. - * - * @param callable $callable Receives the element to drop as first argument, and returns true (drop), or false (stop). - * - * @return SequenceInterface - */ - public function dropWhile($callable); - - /** - * Creates a new collection by taking the given number of elements from the beginning - * of the current collection. - * - * If the passed number is greater than the available number of elements, then all elements - * will be returned as a new collection. - * - * @param integer $number - * - * @return CollectionInterface - */ - public function take($number); - - /** - * Creates a new collection by taking elements from the current collection - * for as long as the callable returns true. - * - * @param callable $callable - * - * @return CollectionInterface - */ - public function takeWhile($callable); - - /** - * Creates a new collection by applying the passed callable to all elements - * of the current collection. - * - * @param callable $callable - * @return CollectionInterface - */ - public function map($callable); -} diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/Set.php b/vendor/phpcollection/phpcollection/src/PhpCollection/Set.php deleted file mode 100644 index 1d70acc..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/Set.php +++ /dev/null @@ -1,449 +0,0 @@ - - */ -class Set implements SetInterface -{ - const ELEM_TYPE_SCALAR = 1; - const ELEM_TYPE_OBJECT = 2; - const ELEM_TYPE_OBJECT_WITH_HANDLER = 3; - - private $elementType; - - private $elements = array(); - private $elementCount = 0; - private $lookup = array(); - - public function __construct(array $elements = array()) - { - $this->addAll($elements); - } - - public function first() - { - if (empty($this->elements)) { - return None::create(); - } - - return new Some(reset($this->elements)); - } - - public function last() - { - if (empty($this->elements)) { - return None::create(); - } - - return new Some(end($this->elements)); - } - - public function getIterator() - { - return new \ArrayIterator(array_values($this->elements)); - } - - public function addSet(SetInterface $set) - { - $this->addAll($set->all()); - } - - public function take($number) - { - if ($number <= 0) { - throw new \InvalidArgumentException(sprintf('$number must be greater than 0, but got %d.', $number)); - } - - return $this->createNew(array_slice($this->elements, 0, $number)); - } - - /** - * Extracts element from the head while the passed callable returns true. - * - * @param callable $callable receives elements of this Set as first argument, and returns true/false. - * - * @return Set - */ - public function takeWhile($callable) - { - $newElements = array(); - - for ($i=0,$c=count($this->elements); $i<$c; $i++) { - if (call_user_func($callable, $this->elements[$i]) !== true) { - break; - } - - $newElements[] = $this->elements[$i]; - } - - return $this->createNew($newElements); - } - - public function drop($number) - { - if ($number <= 0) { - throw new \InvalidArgumentException(sprintf('The number must be greater than 0, but got %d.', $number)); - } - - return $this->createNew(array_slice($this->elements, $number)); - } - - public function dropRight($number) - { - if ($number <= 0) { - throw new \InvalidArgumentException(sprintf('The number must be greater than 0, but got %d.', $number)); - } - - return $this->createNew(array_slice($this->elements, 0, -1 * $number)); - } - - public function dropWhile($callable) - { - for ($i=0,$c=count($this->elements); $i<$c; $i++) { - if (true !== call_user_func($callable, $this->elements[$i])) { - break; - } - } - - return $this->createNew(array_slice($this->elements, $i)); - } - - public function map($callable) - { - $newElements = array(); - foreach ($this->elements as $i => $element) { - $newElements[$i] = $callable($element); - } - - return $this->createNew($newElements); - } - - public function reverse() - { - return $this->createNew(array_reverse($this->elements)); - } - - public function all() - { - return array_values($this->elements); - } - - public function filterNot($callable) - { - return $this->filterInternal($callable, false); - } - - public function filter($callable) - { - return $this->filterInternal($callable, true); - } - - public function foldLeft($initialValue, $callable) - { - $value = $initialValue; - foreach ($this->elements as $elem) { - $value = call_user_func($callable, $value, $elem); - } - - return $value; - } - - public function foldRight($initialValue, $callable) - { - $value = $initialValue; - foreach (array_reverse($this->elements) as $elem) { - $value = call_user_func($callable, $elem, $value); - } - - return $value; - } - - public function addAll(array $elements) - { - foreach ($elements as $elem) { - $this->add($elem); - } - } - - public function count() - { - return count($this->elements); - } - - public function contains($elem) - { - if ($this->elementType === self::ELEM_TYPE_OBJECT) { - if ($elem instanceof ObjectBasics) { - return $this->containsObject($elem); - } - - return false; - } elseif ($this->elementType === self::ELEM_TYPE_OBJECT_WITH_HANDLER) { - if (is_object($elem)) { - return $this->containsObjectWithHandler($elem, ObjectBasicsHandlerRegistry::getHandler(get_class($elem))); - } - - return false; - } elseif ($this->elementType === self::ELEM_TYPE_SCALAR) { - if (is_scalar($elem)) { - return $this->containsScalar($elem); - } - - return false; - } - - return false; - } - - public function remove($elem) - { - if ($this->elementType === self::ELEM_TYPE_OBJECT) { - if ($elem instanceof ObjectBasics) { - $this->removeObject($elem); - } - } elseif ($this->elementType === self::ELEM_TYPE_OBJECT_WITH_HANDLER) { - if (is_object($elem)) { - $this->removeObjectWithHandler($elem, ObjectBasicsHandlerRegistry::getHandler(get_class($elem))); - } - } elseif ($this->elementType === self::ELEM_TYPE_SCALAR) { - if (is_scalar($elem)) { - $this->removeScalar($elem); - } - } - } - - public function isEmpty() - { - return empty($this->elements); - } - - public function add($elem) - { - if ($this->elementType === null) { - if ($elem instanceof ObjectBasics) { - $this->addObject($elem); - } elseif (is_scalar($elem)) { - $this->addScalar($elem); - } else { - if (is_object($elem)) { - $this->addObjectWithHandler($elem, ObjectBasicsHandlerRegistry::getHandler(get_class($elem))); - } else { - throw new \LogicException(sprintf('The type of $elem ("%s") is not supported in sets.', gettype($elem))); - } - } - } elseif ($this->elementType === self::ELEM_TYPE_OBJECT) { - if ($elem instanceof ObjectBasics) { - $this->addObject($elem); - - return; - } - - if (is_object($elem)) { - throw new \LogicException(sprintf('This Set already contains object implement ObjectBasics, and cannot be mixed with objects that do not implement this interface like "%s".', get_class($elem))); - } - - throw new \LogicException(sprintf('This Set already contains objects, and cannot be mixed with elements of type "%s".', gettype($elem))); - } elseif ($this->elementType === self::ELEM_TYPE_OBJECT_WITH_HANDLER) { - if (is_object($elem)) { - $this->addObjectWithHandler($elem, ObjectBasicsHandlerRegistry::getHandler(get_class($elem))); - - return; - } - - throw new \LogicException(sprintf('This Set already contains object with an external handler, and cannot be mixed with elements of type "%s".', gettype($elem))); - } elseif ($this->elementType === self::ELEM_TYPE_SCALAR) { - if (is_scalar($elem)) { - $this->addScalar($elem); - - return; - } - - throw new \LogicException(sprintf('This Set already contains scalars, and cannot be mixed with elements of type "%s".', gettype($elem))); - } else { - throw new \LogicException('Unknown element type in Set - should never be reached.'); - } - } - - protected function createNew(array $elements) - { - return new static($elements); - } - - private function filterInternal($callable, $booleanKeep) - { - $newElements = array(); - foreach ($this->elements as $element) { - if ($booleanKeep !== call_user_func($callable, $element)) { - continue; - } - - $newElements[] = $element; - } - - return $this->createNew($newElements); - } - - private function containsScalar($elem) - { - if ( ! isset($this->lookup[$elem])) { - return false; - } - - foreach ($this->lookup[$elem] as $index) { - if ($elem === $this->elements[$index]) { - return true; - } - } - - return false; - } - - private function containsObjectWithHandler($object, ObjectBasicsHandler $handler) - { - $hash = $handler->hash($object); - if ( ! isset($this->lookup[$hash])) { - return false; - } - - foreach ($this->lookup[$hash] as $index) { - if ($handler->equals($object, $this->elements[$index])) { - return true; - } - } - - return false; - } - - private function containsObject(ObjectBasics $object) - { - $hash = $object->hash(); - if ( ! isset($this->lookup[$hash])) { - return false; - } - - foreach ($this->lookup[$hash] as $index) { - if ($object->equals($this->elements[$index])) { - return true; - } - } - - return false; - } - - private function removeScalar($elem) - { - if ( ! isset($this->lookup[$elem])) { - return; - } - - foreach ($this->lookup[$elem] as $k => $index) { - if ($elem === $this->elements[$index]) { - $this->removeElement($elem, $k, $index); - break; - } - } - } - - private function removeObjectWithHandler($object, ObjectBasicsHandler $handler) - { - $hash = $handler->hash($object); - if ( ! isset($this->lookup[$hash])) { - return; - } - - foreach ($this->lookup[$hash] as $k => $index) { - if ($handler->equals($object, $this->elements[$index])) { - $this->removeElement($hash, $k, $index); - break; - } - } - } - - private function removeObject(ObjectBasics $object) - { - $hash = $object->hash(); - if ( ! isset($this->lookup[$hash])) { - return; - } - - foreach ($this->lookup[$hash] as $k => $index) { - if ($object->equals($this->elements[$index])) { - $this->removeElement($hash, $k, $index); - break; - } - } - } - - private function removeElement($hash, $lookupIndex, $storageIndex) - { - unset($this->lookup[$hash][$lookupIndex]); - if (empty($this->lookup[$hash])) { - unset($this->lookup[$hash]); - } - - unset($this->elements[$storageIndex]); - } - - private function addScalar($elem) - { - if (isset($this->lookup[$elem])) { - foreach ($this->lookup[$elem] as $index) { - if ($this->elements[$index] === $elem) { - return; // Already exists. - } - } - } - - $this->insertElement($elem, $elem); - $this->elementType = self::ELEM_TYPE_SCALAR; - } - - private function addObjectWithHandler($object, ObjectBasicsHandler $handler) - { - $hash = $handler->hash($object); - if (isset($this->lookup[$hash])) { - foreach ($this->lookup[$hash] as $index) { - if ($handler->equals($object, $this->elements[$index])) { - return; // Already exists. - } - } - } - - $this->insertElement($object, $hash); - $this->elementType = self::ELEM_TYPE_OBJECT_WITH_HANDLER; - } - - private function addObject(ObjectBasics $elem) - { - $hash = $elem->hash(); - if (isset($this->lookup[$hash])) { - foreach ($this->lookup[$hash] as $index) { - if ($elem->equals($this->elements[$index])) { - return; // Element already exists. - } - } - } - - $this->insertElement($elem, $hash); - $this->elementType = self::ELEM_TYPE_OBJECT; - } - - private function insertElement($elem, $hash) - { - $index = $this->elementCount++; - $this->elements[$index] = $elem; - $this->lookup[$hash][] = $index; - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/SetInterface.php b/vendor/phpcollection/phpcollection/src/PhpCollection/SetInterface.php deleted file mode 100644 index a2b250d..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/SetInterface.php +++ /dev/null @@ -1,132 +0,0 @@ - - */ -interface SetInterface extends CollectionInterface, \IteratorAggregate -{ - /** - * @param object|scalar $elem - * @return void - */ - public function add($elem); - - /** - * @param object|scalar $elements - * @return void - */ - public function addAll(array $elements); - - /** - * @param object|scalar $elem - * @return void - */ - public function remove($elem); - - /** - * Returns the first element in the collection if available. - * - * @return Option - */ - public function first(); - - /** - * Returns the last element in the collection if available. - * - * @return Option - */ - public function last(); - - /** - * Returns all elements in this Set. - * - * @return array - */ - public function all(); - - /** - * Returns a new Set with all elements in reverse order. - * - * @return SetInterface - */ - public function reverse(); - - /** - * Adds the elements of another Set to this Set. - * - * @param SetInterface $seq - * - * @return SetInterface - */ - public function addSet(SetInterface $seq); - - /** - * Returns a new Set by omitting the given number of elements from the beginning. - * - * If the passed number is greater than the available number of elements, all will be removed. - * - * @param integer $number - * - * @return SetInterface - */ - public function drop($number); - - /** - * Returns a new Set by omitting the given number of elements from the end. - * - * If the passed number is greater than the available number of elements, all will be removed. - * - * @param integer $number - * - * @return SetInterface - */ - public function dropRight($number); - - /** - * Returns a new Set by omitting elements from the beginning for as long as the callable returns true. - * - * @param callable $callable Receives the element to drop as first argument, and returns true (drop), or false (stop). - * - * @return SetInterface - */ - public function dropWhile($callable); - - /** - * Creates a new collection by taking the given number of elements from the beginning - * of the current collection. - * - * If the passed number is greater than the available number of elements, then all elements - * will be returned as a new collection. - * - * @param integer $number - * - * @return CollectionInterface - */ - public function take($number); - - /** - * Creates a new collection by taking elements from the current collection - * for as long as the callable returns true. - * - * @param callable $callable - * - * @return CollectionInterface - */ - public function takeWhile($callable); - - /** - * Creates a new collection by applying the passed callable to all elements - * of the current collection. - * - * @param callable $callable - * @return CollectionInterface - */ - public function map($callable); -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/SortableInterface.php b/vendor/phpcollection/phpcollection/src/PhpCollection/SortableInterface.php deleted file mode 100644 index 65bc5d1..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/SortableInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -/** - * Interface for sortable collections. - * - * @author Johannes M. Schmitt - */ -interface SortableInterface -{ - public function sortWith($callable); -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/src/PhpCollection/SortedSequence.php b/vendor/phpcollection/phpcollection/src/PhpCollection/SortedSequence.php deleted file mode 100644 index 8606cfe..0000000 --- a/vendor/phpcollection/phpcollection/src/PhpCollection/SortedSequence.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpCollection; - -/** - * A sequence with a fixed sort-order. - * - * @author Johannes M. Schmitt - */ -class SortedSequence extends AbstractSequence -{ - private $sortFunc; - - public function __construct($sortFunc, array $elements = array()) - { - usort($elements, $sortFunc); - parent::__construct($elements); - - $this->sortFunc = $sortFunc; - } - - public function add($newElement) - { - $added = false; - $newElements = array(); - foreach ($this->elements as $element) { - // We insert the new element before the first element that is greater than itself. - if ( ! $added && (integer) call_user_func($this->sortFunc, $newElement, $element) < 0) { - $newElements[] = $newElement; - $added = true; - } - - $newElements[] = $element; - } - - if ( ! $added) { - $newElements[] = $newElement; - } - $this->elements = $newElements; - } - - public function addAll(array $addedElements) - { - usort($addedElements, $this->sortFunc); - - $newElements = array(); - foreach ($this->elements as $element) { - if ( ! empty($addedElements)) { - foreach ($addedElements as $i => $newElement) { - // If the currently looked at $newElement is not smaller than $element, then we can also conclude - // that all other new elements are also not smaller than $element as we have ordered them before. - if ((integer) call_user_func($this->sortFunc, $newElement, $element) > -1) { - break; - } - - $newElements[] = $newElement; - unset($addedElements[$i]); - } - } - - $newElements[] = $element; - } - - if ( ! empty($addedElements)) { - foreach ($addedElements as $newElement) { - $newElements[] = $newElement; - } - } - - $this->elements = $newElements; - } - - protected function createNew(array $elements) - { - return new static($this->sortFunc, $elements); - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/MapTest.php b/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/MapTest.php deleted file mode 100644 index 0ebe6a3..0000000 --- a/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/MapTest.php +++ /dev/null @@ -1,229 +0,0 @@ -assertFalse($this->map->exists(function($k) { return $k === 0; })); - - $this->map->set('foo', 'bar'); - $this->assertTrue($this->map->exists(function($k, $v) { return $k === 'foo' && $v === 'bar'; })); - } - - public function testSet() - { - $this->assertTrue($this->map->get('asdf')->isEmpty()); - $this->map->set('asdf', 'foo'); - $this->assertEquals('foo', $this->map->get('asdf')->get()); - - $this->assertEquals('bar', $this->map->get('foo')->get()); - $this->map->set('foo', 'asdf'); - $this->assertEquals('asdf', $this->map->get('foo')->get()); - } - - public function testSetSetAll() - { - $this->map->setAll(array('foo' => 'asdf', 'bar' => array('foo'))); - $this->assertEquals(array('foo' => 'asdf', 'bar' => array('foo'), 'baz' => 'boo'), iterator_to_array($this->map)); - } - - public function testAll() - { - $this->map->setAll(array('foo' => 'asdf', 'bar' => array('foo'))); - $this->assertEquals(array('foo' => 'asdf', 'bar' => array('foo'), 'baz' => 'boo'), $this->map->all()); - } - - public function testAddMap() - { - $map = new Map(); - $map->set('foo', array('bar')); - $this->map->addMap($map); - - $this->assertEquals(array('foo' => array('bar'), 'bar' => 'baz', 'baz' => 'boo'), iterator_to_array($this->map)); - } - - public function testRemove() - { - $this->assertTrue($this->map->get('foo')->isDefined()); - $this->assertEquals('bar', $this->map->remove('foo')); - $this->assertFalse($this->map->get('foo')->isDefined()); - } - - public function testClear() - { - $this->assertCount(3, $this->map); - $this->map->clear(); - $this->assertCount(0, $this->map); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage The map has no key named "asdfasdf". - */ - public function testRemoveWithUnknownIndex() - { - $this->map->remove('asdfasdf'); - } - - public function testFirst() - { - $this->assertEquals(array('foo', 'bar'), $this->map->first()->get()); - $this->map->clear(); - $this->assertTrue($this->map->first()->isEmpty()); - } - - public function testLast() - { - $this->assertEquals(array('baz', 'boo'), $this->map->last()->get()); - $this->map->clear(); - $this->assertTrue($this->map->last()->isEmpty()); - } - - public function testContains() - { - $this->assertTrue($this->map->contains('boo')); - $this->assertFalse($this->map->contains('asdf')); - } - - public function testContainsKey() - { - $this->assertTrue($this->map->containsKey('foo')); - $this->assertFalse($this->map->containsKey('boo')); - } - - public function testIsEmpty() - { - $this->assertFalse($this->map->isEmpty()); - $this->map->clear(); - $this->assertTrue($this->map->isEmpty()); - } - - public function testFilter() - { - $map = new Map(array('a' => 'b', 'c' => 'd', 'e' => 'f')); - $newMap = $map->filter(function($v) { return $v === 'd'; }); - - $this->assertNotSame($newMap, $map); - $this->assertCount(3, $map); - $this->assertCount(1, $newMap); - $this->assertEquals(array('c' => 'd'), iterator_to_array($newMap)); - } - - public function testFilterNot() - { - $map = new Map(array('a' => 'b', 'c' => 'd', 'e' => 'f')); - $newMap = $map->filterNot(function($v) { return $v === 'd'; }); - - $this->assertNotSame($newMap, $map); - $this->assertCount(3, $map); - $this->assertCount(2, $newMap); - $this->assertEquals(array('a' => 'b', 'e' => 'f'), iterator_to_array($newMap)); - } - - public function testFoldLeftRight() - { - $map = new Map(array('a' => 'b', 'c' => 'd', 'e' => 'f')); - $rsLeft = $map->foldLeft('', function($a, $b) { return $a.$b; }); - $rsRight = $map->foldRight('', function($a, $b) { return $a.$b; }); - - $this->assertEquals('bdf', $rsLeft); - $this->assertEquals('bdf', $rsRight); - } - - public function testDropWhile() - { - $newMap = $this->map->dropWhile(function($k, $v) { return 'foo' === $k || 'baz' === $v; }); - $this->assertEquals(array('baz' => 'boo'), iterator_to_array($newMap)); - $this->assertCount(3, $this->map); - } - - public function testDrop() - { - $newMap = $this->map->drop(2); - $this->assertEquals(array('baz' => 'boo'), iterator_to_array($newMap)); - $this->assertCount(3, $this->map); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage The number must be greater than 0, but got -4. - */ - public function testDropWithNegativeNumber() - { - $this->map->drop(-4); - } - - public function testDropRight() - { - $newMap = $this->map->dropRight(2); - $this->assertEquals(array('foo' => 'bar'), iterator_to_array($newMap)); - $this->assertCount(3, $this->map); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage The number must be greater than 0, but got -5. - */ - public function testDropRightWithNegativeNumber() - { - $this->map->dropRight(-5); - } - - public function testTake() - { - $newMap = $this->map->take(1); - $this->assertEquals(array('foo' => 'bar'), iterator_to_array($newMap)); - $this->assertCount(3, $this->map); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage The number must be greater than 0, but got -5. - */ - public function testTakeWithNegativeNumber() - { - $this->map->take(-5); - } - - public function testTakeWhile() - { - $newMap = $this->map->takeWhile(function($k, $v) { return 'foo' === $k || 'baz' === $v; }); - $this->assertEquals(array('foo' => 'bar', 'bar' => 'baz'), iterator_to_array($newMap)); - $this->assertCount(3, $this->map); - } - - public function testFind() - { - $foundElem = $this->map->find(function($k, $v) { return 'foo' === $k && 'bar' === $v; }); - $this->assertEquals(array('foo', 'bar'), $foundElem->get()); - - $this->assertTrue($this->map->find(function() { return false; })->isEmpty()); - } - - public function testKeys() - { - $this->assertEquals(array('foo', 'bar', 'baz'), $this->map->keys()); - } - - public function testValues() - { - $this->assertEquals(array('bar', 'baz', 'boo'), $this->map->values()); - } - - protected function setUp() - { - $this->map = new Map(); - $this->map->setAll(array( - 'foo' => 'bar', - 'bar' => 'baz', - 'baz' => 'boo', - )); - } -} diff --git a/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SequenceTest.php b/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SequenceTest.php deleted file mode 100644 index fc568ef..0000000 --- a/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SequenceTest.php +++ /dev/null @@ -1,344 +0,0 @@ -assertSame(0, $this->seq->get(0)); - $this->assertSame($this->a, $this->seq->get(1)); - } - - public function testIndexOf() - { - $this->assertSame(0, $this->seq->indexOf(0)); - $this->assertSame(1, $this->seq->indexOf($this->a)); - $this->assertSame(2, $this->seq->indexOf($this->b)); - $this->assertSame(-1, $this->seq->indexOf(1)); - } - - public function testReverse() - { - $seq = new Sequence(array(1, 2, 3)); - $this->assertEquals(array(1, 2, 3), $seq->all()); - $this->assertEquals(array(3, 2, 1), $seq->reverse()->all()); - } - - public function testLastIndexOf() - { - $this->assertSame(3, $this->seq->lastIndexOf(0)); - $this->assertSame(1, $this->seq->lastIndexOf($this->a)); - $this->assertSame(2, $this->seq->lastIndexOf($this->b)); - $this->assertSame(-1, $this->seq->lastIndexOf(1)); - } - - public function testFilter() - { - $seq = new Sequence(array(1, 2, 3)); - $newSeq = $seq->filter(function($n) { return $n === 2; }); - - $this->assertNotSame($newSeq, $seq); - $this->assertCount(3, $seq); - $this->assertCount(1, $newSeq); - $this->assertSame(2, $newSeq->get(0)); - } - - public function testFilterNot() - { - $seq = new Sequence(array(1, 2, 3)); - $newSeq = $seq->filterNot(function($n) { return $n === 2; }); - - $this->assertNotSame($newSeq, $seq); - $this->assertCount(3, $seq); - $this->assertCount(2, $newSeq); - $this->assertSame(1, $newSeq->get(0)); - $this->assertSame(3, $newSeq->get(1)); - } - - public function testFoldLeftRight() - { - $seq = new Sequence(array('a', 'b', 'c')); - $rsLeft = $seq->foldLeft('', function($a, $b) { return $a.$b; }); - $rsRight = $seq->foldRight('', function($a, $b) { return $a.$b; }); - - $this->assertEquals('abc', $rsLeft); - $this->assertEquals('abc', $rsRight); - } - - public function testAddSequence() - { - $seq = new Sequence(); - $seq->add(1); - $seq->add(0); - - $this->seq->addSequence($seq); - - $this->assertSame(array( - 0, - $this->a, - $this->b, - 0, - 1, - 0, - ), $this->seq->all()); - } - - public function testIsDefinedAt() - { - $this->assertTrue($this->seq->isDefinedAt(0)); - $this->assertTrue($this->seq->isDefinedAt(1)); - $this->assertFalse($this->seq->isDefinedAt(9999999)); - } - - public function testIndexWhere() - { - $this->assertSame(-1, $this->seq->indexWhere(function() { return false; })); - $this->assertSame(0, $this->seq->indexWhere(function() { return true; })); - } - - public function testLastIndexWhere() - { - $this->assertSame(-1, $this->seq->lastIndexWhere(function() { return false; })); - $this->assertSame(3, $this->seq->lastIndexWhere(function() { return true; })); - } - - public function testFirst() - { - $this->assertSame(0, $this->seq->first()->get()); - $this->assertSame(0, $this->seq->last()->get()); - } - - public function testIndices() - { - $this->assertSame(array(0, 1, 2, 3), $this->seq->indices()); - } - - public function testContains() - { - $this->assertTrue($this->seq->contains(0)); - $this->assertTrue($this->seq->contains($this->a)); - $this->assertFalse($this->seq->contains(9999)); - $this->assertFalse($this->seq->contains(new stdClass())); - } - - public function testExists() - { - $this->assertTrue($this->seq->exists(function($v) { return $v === 0; })); - - $a = $this->a; - $this->assertTrue($this->seq->exists(function($v) use ($a) { return $v === $a; })); - - $this->assertFalse($this->seq->exists(function($v) { return $v === 9999; })); - $this->assertFalse($this->seq->exists(function($v) { return $v === new \stdClass; })); - } - - public function testFind() - { - $a = $this->a; - - $this->assertSame($this->a, $this->seq->find(function($x) use ($a) { return $a === $x; })->get()); - $this->assertFalse($this->seq->find(function() { return false; })->isDefined()); - } - - public function testIsEmpty() - { - $this->assertFalse($this->seq->isEmpty()); - $seq = new Sequence(); - $this->assertTrue($seq->isEmpty()); - } - - public function testAdd() - { - $this->seq->add(1); - $this->assertSame(array(0, $this->a, $this->b, 0, 1), $this->seq->all()); - - $this->seq->sortWith(function($a, $b) { - if (is_integer($a)) { - if ( ! is_integer($b)) { - return -1; - } - - return $a > $b ? 1 : -1; - } - - if (is_integer($b)) { - return 1; - } - - return 1; - }); - - $this->assertSame(array(0, 0, 1, $this->a, $this->b), $this->seq->all()); - } - - public function testUpdate() - { - $this->assertSame(0, $this->seq->get(0)); - $this->seq->update(0, 5); - $this->assertSame(5, $this->seq->get(0)); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage There is no element at index "99999". - */ - public function testUpdateWithNonExistentIndex() - { - $this->seq->update(99999, 0); - } - - public function testAddAll() - { - $this->seq->addAll(array(2, 1, 3)); - $this->assertSame(array(0, $this->a, $this->b, 0, 2, 1, 3), $this->seq->all()); - - $this->seq->sortWith(function($a, $b) { - if (is_integer($a)) { - if ( ! is_integer($b)) { - return -1; - } - - return $a > $b ? 1 : -1; - } - - if (is_integer($b)) { - return 1; - } - - return -1; - }); - - $this->assertSame(array(0, 0, 1, 2, 3, $this->a, $this->b), $this->seq->all()); - } - - public function testTake() - { - $this->assertSame(array(0), $this->seq->take(1)->all()); - $this->assertSame(array(0, $this->a), $this->seq->take(2)->all()); - $this->assertSame(array(0, $this->a, $this->b, 0), $this->seq->take(9999)->all()); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage $number must be greater than 0, but got -5. - */ - public function testTakeWithNegativeNumber() - { - $this->seq->take(-5); - } - - public function testTakeWhile() - { - $this->assertSame(array(0), $this->seq->takeWhile('is_integer')->all()); - } - - public function testCount() - { - $this->assertCount(4, $this->seq); - } - - public function testTraverse() - { - $this->assertSame(array(0, $this->a, $this->b, 0), iterator_to_array($this->seq)); - } - - public function testDrop() - { - $this->assertSame(array($this->a, $this->b, 0), $this->seq->drop(1)->all()); - $this->assertSame(array($this->b, 0), $this->seq->drop(2)->all()); - $this->assertSame(array(), $this->seq->drop(9999)->all()); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage The number must be greater than 0, but got -5. - */ - public function testDropWithNegativeIndex() - { - $this->seq->drop(-5); - } - - public function testDropRight() - { - $this->assertSame(array(0, $this->a, $this->b), $this->seq->dropRight(1)->all()); - $this->assertSame(array(0, $this->a), $this->seq->dropRight(2)->all()); - $this->assertSame(array(), $this->seq->dropRight(9999)->all()); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage The number must be greater than 0, but got -5. - */ - public function testDropRightWithNegativeIndex() - { - $this->seq->dropRight(-5); - } - - public function testDropWhile() - { - $this->assertSame(array(0, $this->a, $this->b, 0), $this->seq->dropWhile(function() { return false; })->all()); - $this->assertSame(array(), $this->seq->dropWhile(function() { return true; })->all()); - } - - public function testRemove() - { - $this->assertSame(0, $this->seq->remove(0)); - $this->assertSame($this->a, $this->seq->remove(0)); - $this->assertSame(0, $this->seq->remove(1)); - } - - /** - * @expectedException OutOfBoundsException - * @expectedExceptionMessage The index "9999" is not in the interval [0, 4). - */ - public function testRemoveWithInvalidIndex() - { - $this->seq->remove(9999); - } - - public function testMap() - { - $seq = new Sequence(); - $seq->add('a'); - $seq->add('b'); - - $self = $this; - $newSeq = $seq->map(function($elem) use ($self) { - switch ($elem) { - case 'a': - return 'c'; - - case 'b': - return 'd'; - - default: - $self->fail('Unexpected element: ' . var_export($elem, true)); - } - }); - - $this->assertInstanceOf('PhpCollection\Sequence', $newSeq); - $this->assertNotSame($newSeq, $seq); - $this->assertEquals(array('c', 'd'), $newSeq->all()); - } - - protected function setUp() - { - $this->seq = new Sequence(); - $this->seq->addAll(array( - 0, - $this->a = new \stdClass(), - $this->b = new \stdClass(), - 0 - )); - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SetTest.php b/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SetTest.php deleted file mode 100644 index d9bd7dc..0000000 --- a/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SetTest.php +++ /dev/null @@ -1,184 +0,0 @@ -set->add('a'); - - $this->assertFalse($this->set->contains('b')); - $this->assertFalse($this->set->contains(new ObjectThatImplementsBasics('foo'))); - $this->assertFalse($this->set->contains(new \DateTime('today'))); - } - - public function testContainsObjectWithHandler() - { - $this->set->add(new \DateTime('today')); - - $this->assertFalse($this->set->contains(new ObjectThatImplementsBasics('foo'))); - $this->assertFalse($this->set->contains('a')); - - $this->assertTrue($this->set->contains(new \DateTime('today'))); - } - - public function testContainsObject() - { - $this->set->add(new ObjectThatImplementsBasics('foo')); - - $this->assertFalse($this->set->contains(new ObjectThatImplementsBasics('bar'))); - $this->assertFalse($this->set->contains('a')); - $this->assertFalse($this->set->contains(new \DateTime())); - - $this->assertTrue($this->set->contains(new ObjectThatImplementsBasics('foo'))); - } - - public function testReverse() - { - $this->set->add('a'); - $this->set->add('b'); - $this->assertEquals(array('a', 'b'), $this->set->all()); - - $reversedSet = $this->set->reverse(); - $this->assertEquals(array('a', 'b'), $this->set->all()); - $this->assertEquals(array('b', 'a'), $reversedSet->all()); - } - - public function testMap() - { - $this->set->add('a'); - $this->set->add('b'); - $this->assertEquals(array('a', 'b'), $this->set->all()); - - $newSet = $this->set->map(function($char) { - if ($char === 'a') { - return 'c'; - } elseif ($char === 'b') { - return 'd'; - } - - return $char; - }); - - $this->assertEquals(array('a', 'b'), $this->set->all()); - $this->assertEquals(array('c', 'd'), $newSet->all()); - } - - public function testRemoveScalar() - { - $this->set->add('a'); - $this->assertCount(1, $this->set); - - $this->set->remove('b'); - $this->assertCount(1, $this->set); - - $this->set->remove('a'); - $this->assertCount(0, $this->set); - $this->assertTrue($this->set->isEmpty()); - } - - public function testRemoveObjectWithHandler() - { - $this->set->add(new \DateTime('today')); - $this->assertCount(1, $this->set); - - $this->set->remove(new \DateTime('-2 days')); - $this->assertCount(1, $this->set); - - $this->set->remove(new \DateTime('today')); - $this->assertCount(0, $this->set); - $this->assertTrue($this->set->isEmpty()); - } - - public function testRemoveObject() - { - $this->set->add(new ObjectThatImplementsBasics('foo')); - $this->assertCount(1, $this->set); - - $this->set->remove(new ObjectThatImplementsBasics('bar')); - $this->assertCount(1, $this->set); - - $this->set->remove(new ObjectThatImplementsBasics('foo')); - $this->assertCount(0, $this->set); - $this->assertTrue($this->set->isEmpty()); - } - - public function testAddScalar() - { - $this->set->add('a'); - $this->set->add('b'); - $this->set->add('a'); - - $this->assertEquals(array('a', 'b'), $this->set->all()); - } - - public function testAddObject() - { - $this->set->add(new ObjectThatImplementsBasics('foo')); - $this->set->add(new ObjectThatImplementsBasics('bar')); - $this->set->add(new ObjectThatImplementsBasics('foo')); - - $this->assertEquals( - array( - new ObjectThatImplementsBasics('foo'), - new ObjectThatImplementsBasics('bar') - ), - $this->set->all() - ); - } - - public function testAddObjectWithHandler() - { - $this->set->add((new \DateTime('today'))->setTimezone(new \DateTimeZone('UTC'))); - $this->set->add((new \DateTime('today'))->setTimezone(new \DateTimeZone('UTC'))); - $this->set->add((new \DateTime('today'))->setTimezone(new \DateTimeZone('US/Pacific'))); - - $this->assertEquals( - array( - (new \DateTime('today'))->setTimezone(new \DateTimeZone('UTC')), - (new \DateTime('today'))->setTimezone(new \DateTimeZone('US/Pacific')), - ), - $this->set->all() - ); - } - - protected function setUp() - { - $this->set = new Set(); - } -} - -class ObjectThatImplementsBasics implements ObjectBasics -{ - private $value; - - public function __construct($value) - { - $this->value = $value; - } - - public function hash() - { - return 'foo'; // This is not recommended in the real-world. - } - - public function equals(ObjectBasics $other) - { - if ($this === $other) { - return true; - } - if ( ! $other instanceof ObjectThatImplementsBasics) { - return false; - } - - return $this->value === $other->value; - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SortedSequenceTest.php b/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SortedSequenceTest.php deleted file mode 100644 index 97886d6..0000000 --- a/vendor/phpcollection/phpcollection/tests/PhpCollection/Tests/SortedSequenceTest.php +++ /dev/null @@ -1,62 +0,0 @@ -seq->add(1); - $this->assertSame(array(0, 0, 1, $this->a, $this->b), $this->seq->all()); - - $this->seq->add(2); - $this->assertSame(array(0, 0, 1, 2, $this->a, $this->b), $this->seq->all()); - } - - public function testAddAll() - { - $this->seq->addAll(array(2, 1, 3)); - $this->assertSame(array(0, 0, 1, 2, 3, $this->a, $this->b), $this->seq->all()); - - $this->seq->addAll(array(2, 3, 1, 2)); - $this->assertSame(array(0, 0, 1, 1, 2, 2, 2, 3, 3, $this->a, $this->b), $this->seq->all()); - } - - public function testTake() - { - $seq = $this->seq->take(2); - $this->assertInstanceOf('PhpCollection\SortedSequence', $seq); - $this->assertSame(array(0, 0), $seq->all()); - } - - protected function setUp() - { - $this->seq = new SortedSequence(function($a, $b) { - if (is_integer($a)) { - if ( ! is_integer($b)) { - return -1; - } - - return $a - $b; - } - - if (is_integer($b)) { - return 1; - } - - return -1; - }); - $this->seq->addAll(array( - 0, - $this->a = new \stdClass, - $this->b = new \stdClass, - 0, - )); - } -} \ No newline at end of file diff --git a/vendor/phpcollection/phpcollection/tests/bootstrap.php b/vendor/phpcollection/phpcollection/tests/bootstrap.php deleted file mode 100644 index 37d8f3f..0000000 --- a/vendor/phpcollection/phpcollection/tests/bootstrap.php +++ /dev/null @@ -1,8 +0,0 @@ -=5.5" - }, - "autoload" : { - "psr-4" : { - "phpDocumentor\\Reflection\\": ["src"] - } - }, - "require-dev": { - "phpunit/phpunit": "^4.6" - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/vendor/phpdocumentor/reflection-common/src/Element.php b/vendor/phpdocumentor/reflection-common/src/Element.php deleted file mode 100644 index 712e30e..0000000 --- a/vendor/phpdocumentor/reflection-common/src/Element.php +++ /dev/null @@ -1,32 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -/** - * Interface for files processed by the ProjectFactory - */ -interface File -{ - /** - * Returns the content of the file as a string. - * - * @return string - */ - public function getContents(); - - /** - * Returns md5 hash of the file. - * - * @return string - */ - public function md5(); - - /** - * Returns an relative path to the file. - * - * @return string - */ - public function path(); -} diff --git a/vendor/phpdocumentor/reflection-common/src/Fqsen.php b/vendor/phpdocumentor/reflection-common/src/Fqsen.php deleted file mode 100644 index ce88d03..0000000 --- a/vendor/phpdocumentor/reflection-common/src/Fqsen.php +++ /dev/null @@ -1,82 +0,0 @@ -fqsen = $fqsen; - - if (isset($matches[2])) { - $this->name = $matches[2]; - } else { - $matches = explode('\\', $fqsen); - $this->name = trim(end($matches), '()'); - } - } - - /** - * converts this class to string. - * - * @return string - */ - public function __toString() - { - return $this->fqsen; - } - - /** - * Returns the name of the element without path. - * - * @return string - */ - public function getName() - { - return $this->name; - } -} diff --git a/vendor/phpdocumentor/reflection-common/src/Location.php b/vendor/phpdocumentor/reflection-common/src/Location.php deleted file mode 100644 index 5760321..0000000 --- a/vendor/phpdocumentor/reflection-common/src/Location.php +++ /dev/null @@ -1,57 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -/** - * The location where an element occurs within a file. - */ -final class Location -{ - /** @var int */ - private $lineNumber = 0; - - /** @var int */ - private $columnNumber = 0; - - /** - * Initializes the location for an element using its line number in the file and optionally the column number. - * - * @param int $lineNumber - * @param int $columnNumber - */ - public function __construct($lineNumber, $columnNumber = 0) - { - $this->lineNumber = $lineNumber; - $this->columnNumber = $columnNumber; - } - - /** - * Returns the line number that is covered by this location. - * - * @return integer - */ - public function getLineNumber() - { - return $this->lineNumber; - } - - /** - * Returns the column number (character position on a line) for this location object. - * - * @return integer - */ - public function getColumnNumber() - { - return $this->columnNumber; - } -} diff --git a/vendor/phpdocumentor/reflection-common/src/Project.php b/vendor/phpdocumentor/reflection-common/src/Project.php deleted file mode 100644 index 3ed1e39..0000000 --- a/vendor/phpdocumentor/reflection-common/src/Project.php +++ /dev/null @@ -1,25 +0,0 @@ -create($docComment); -``` - -The `create` method will yield an object of type `\phpDocumentor\Reflection\DocBlock` -whose methods can be queried: - -```php -// Contains the summary for this DocBlock -$summary = $docblock->getSummary(); - -// Contains \phpDocumentor\Reflection\DocBlock\Description object -$description = $docblock->getDescription(); - -// You can either cast it to string -$description = (string) $docblock->getDescription(); - -// Or use the render method to get a string representation of the Description. -$description = $docblock->getDescription()->render(); -``` - -> For more examples it would be best to review the scripts in the [`/examples` folder](/examples). diff --git a/vendor/phpdocumentor/reflection-docblock/composer.json b/vendor/phpdocumentor/reflection-docblock/composer.json deleted file mode 100644 index e3dc38a..0000000 --- a/vendor/phpdocumentor/reflection-docblock/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "phpdocumentor/reflection-docblock", - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" - }, - "autoload": { - "psr-4": {"phpDocumentor\\Reflection\\": ["src/"]} - }, - "autoload-dev": { - "psr-4": {"phpDocumentor\\Reflection\\": ["tests/unit"]} - }, - "require-dev": { - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4", - "doctrine/instantiator": "~1.0.5" - }, - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon b/vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon deleted file mode 100644 index 7c2ba6e..0000000 --- a/vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon +++ /dev/null @@ -1,31 +0,0 @@ -includes: - - temp/ecs/config/clean-code.neon - - temp/ecs/config/psr2-checkers.neon - - temp/ecs/config/spaces.neon - - temp/ecs/config/common.neon - -checkers: - PhpCsFixer\Fixer\Operator\ConcatSpaceFixer: - spacing: one - -parameters: - exclude_checkers: - # from temp/ecs/config/common.neon - - PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer - - PhpCsFixer\Fixer\PhpUnit\PhpUnitStrictFixer - - PhpCsFixer\Fixer\ControlStructure\YodaStyleFixer - # from temp/ecs/config/spaces.neon - - PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer - - skip: - SlevomatCodingStandard\Sniffs\Classes\UnusedPrivateElementsSniff: - # WIP code - - src/DocBlock/StandardTagFactory.php - PHP_CodeSniffer\Standards\Generic\Sniffs\CodeAnalysis\EmptyStatementSniff: - # WIP code - - src/DocBlock/StandardTagFactory.php - PHP_CodeSniffer\Standards\Squiz\Sniffs\Classes\ValidClassNameSniff: - - src/DocBlock/Tags/Return_.php - - src/DocBlock/Tags/Var_.php - PHP_CodeSniffer\Standards\Generic\Sniffs\NamingConventions\CamelCapsFunctionNameSniff: - - */tests/** diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php deleted file mode 100644 index 46605b7..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php +++ /dev/null @@ -1,236 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -use phpDocumentor\Reflection\DocBlock\Tag; -use Webmozart\Assert\Assert; - -final class DocBlock -{ - /** @var string The opening line for this docblock. */ - private $summary = ''; - - /** @var DocBlock\Description The actual description for this docblock. */ - private $description = null; - - /** @var Tag[] An array containing all the tags in this docblock; except inline. */ - private $tags = []; - - /** @var Types\Context Information about the context of this DocBlock. */ - private $context = null; - - /** @var Location Information about the location of this DocBlock. */ - private $location = null; - - /** @var bool Is this DocBlock (the start of) a template? */ - private $isTemplateStart = false; - - /** @var bool Does this DocBlock signify the end of a DocBlock template? */ - private $isTemplateEnd = false; - - /** - * @param string $summary - * @param DocBlock\Description $description - * @param DocBlock\Tag[] $tags - * @param Types\Context $context The context in which the DocBlock occurs. - * @param Location $location The location within the file that this DocBlock occurs in. - * @param bool $isTemplateStart - * @param bool $isTemplateEnd - */ - public function __construct( - $summary = '', - DocBlock\Description $description = null, - array $tags = [], - Types\Context $context = null, - Location $location = null, - $isTemplateStart = false, - $isTemplateEnd = false - ) { - Assert::string($summary); - Assert::boolean($isTemplateStart); - Assert::boolean($isTemplateEnd); - Assert::allIsInstanceOf($tags, Tag::class); - - $this->summary = $summary; - $this->description = $description ?: new DocBlock\Description(''); - foreach ($tags as $tag) { - $this->addTag($tag); - } - - $this->context = $context; - $this->location = $location; - - $this->isTemplateEnd = $isTemplateEnd; - $this->isTemplateStart = $isTemplateStart; - } - - /** - * @return string - */ - public function getSummary() - { - return $this->summary; - } - - /** - * @return DocBlock\Description - */ - public function getDescription() - { - return $this->description; - } - - /** - * Returns the current context. - * - * @return Types\Context - */ - public function getContext() - { - return $this->context; - } - - /** - * Returns the current location. - * - * @return Location - */ - public function getLocation() - { - return $this->location; - } - - /** - * Returns whether this DocBlock is the start of a Template section. - * - * A Docblock may serve as template for a series of subsequent DocBlocks. This is indicated by a special marker - * (`#@+`) that is appended directly after the opening `/**` of a DocBlock. - * - * An example of such an opening is: - * - * ``` - * /**#@+ - * * My DocBlock - * * / - * ``` - * - * The description and tags (not the summary!) are copied onto all subsequent DocBlocks and also applied to all - * elements that follow until another DocBlock is found that contains the closing marker (`#@-`). - * - * @see self::isTemplateEnd() for the check whether a closing marker was provided. - * - * @return boolean - */ - public function isTemplateStart() - { - return $this->isTemplateStart; - } - - /** - * Returns whether this DocBlock is the end of a Template section. - * - * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality. - * - * @return boolean - */ - public function isTemplateEnd() - { - return $this->isTemplateEnd; - } - - /** - * Returns the tags for this DocBlock. - * - * @return Tag[] - */ - public function getTags() - { - return $this->tags; - } - - /** - * Returns an array of tags matching the given name. If no tags are found - * an empty array is returned. - * - * @param string $name String to search by. - * - * @return Tag[] - */ - public function getTagsByName($name) - { - Assert::string($name); - - $result = []; - - /** @var Tag $tag */ - foreach ($this->getTags() as $tag) { - if ($tag->getName() !== $name) { - continue; - } - - $result[] = $tag; - } - - return $result; - } - - /** - * Checks if a tag of a certain type is present in this DocBlock. - * - * @param string $name Tag name to check for. - * - * @return bool - */ - public function hasTag($name) - { - Assert::string($name); - - /** @var Tag $tag */ - foreach ($this->getTags() as $tag) { - if ($tag->getName() === $name) { - return true; - } - } - - return false; - } - - /** - * Remove a tag from this DocBlock. - * - * @param Tag $tag The tag to remove. - * - * @return void - */ - public function removeTag(Tag $tagToRemove) - { - foreach ($this->tags as $key => $tag) { - if ($tag === $tagToRemove) { - unset($this->tags[$key]); - break; - } - } - } - - /** - * Adds a tag to this DocBlock. - * - * @param Tag $tag The tag to add. - * - * @return void - */ - private function addTag(Tag $tag) - { - $this->tags[] = $tag; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php deleted file mode 100644 index 25a79e0..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php +++ /dev/null @@ -1,114 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock\Tags\Formatter; -use phpDocumentor\Reflection\DocBlock\Tags\Formatter\PassthroughFormatter; -use Webmozart\Assert\Assert; - -/** - * Object representing to description for a DocBlock. - * - * A Description object can consist of plain text but can also include tags. A Description Formatter can then combine - * a body template with sprintf-style placeholders together with formatted tags in order to reconstitute a complete - * description text using the format that you would prefer. - * - * Because parsing a Description text can be a verbose process this is handled by the {@see DescriptionFactory}. It is - * thus recommended to use that to create a Description object, like this: - * - * $description = $descriptionFactory->create('This is a {@see Description}', $context); - * - * The description factory will interpret the given body and create a body template and list of tags from them, and pass - * that onto the constructor if this class. - * - * > The $context variable is a class of type {@see \phpDocumentor\Reflection\Types\Context} and contains the namespace - * > and the namespace aliases that apply to this DocBlock. These are used by the Factory to resolve and expand partial - * > type names and FQSENs. - * - * If you do not want to use the DescriptionFactory you can pass a body template and tag listing like this: - * - * $description = new Description( - * 'This is a %1$s', - * [ new See(new Fqsen('\phpDocumentor\Reflection\DocBlock\Description')) ] - * ); - * - * It is generally recommended to use the Factory as that will also apply escaping rules, while the Description object - * is mainly responsible for rendering. - * - * @see DescriptionFactory to create a new Description. - * @see Description\Formatter for the formatting of the body and tags. - */ -class Description -{ - /** @var string */ - private $bodyTemplate; - - /** @var Tag[] */ - private $tags; - - /** - * Initializes a Description with its body (template) and a listing of the tags used in the body template. - * - * @param string $bodyTemplate - * @param Tag[] $tags - */ - public function __construct($bodyTemplate, array $tags = []) - { - Assert::string($bodyTemplate); - - $this->bodyTemplate = $bodyTemplate; - $this->tags = $tags; - } - - /** - * Returns the tags for this DocBlock. - * - * @return Tag[] - */ - public function getTags() - { - return $this->tags; - } - - /** - * Renders this description as a string where the provided formatter will format the tags in the expected string - * format. - * - * @param Formatter|null $formatter - * - * @return string - */ - public function render(Formatter $formatter = null) - { - if ($formatter === null) { - $formatter = new PassthroughFormatter(); - } - - $tags = []; - foreach ($this->tags as $tag) { - $tags[] = '{' . $formatter->format($tag) . '}'; - } - - return vsprintf($this->bodyTemplate, $tags); - } - - /** - * Returns a plain string representation of this description. - * - * @return string - */ - public function __toString() - { - return $this->render(); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php deleted file mode 100644 index 48f9c21..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php +++ /dev/null @@ -1,191 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\Types\Context as TypeContext; - -/** - * Creates a new Description object given a body of text. - * - * Descriptions in phpDocumentor are somewhat complex entities as they can contain one or more tags inside their - * body that can be replaced with a readable output. The replacing is done by passing a Formatter object to the - * Description object's `render` method. - * - * In addition to the above does a Description support two types of escape sequences: - * - * 1. `{@}` to escape the `@` character to prevent it from being interpreted as part of a tag, i.e. `{{@}link}` - * 2. `{}` to escape the `}` character, this can be used if you want to use the `}` character in the description - * of an inline tag. - * - * If a body consists of multiple lines then this factory will also remove any superfluous whitespace at the beginning - * of each line while maintaining any indentation that is used. This will prevent formatting parsers from tripping - * over unexpected spaces as can be observed with tag descriptions. - */ -class DescriptionFactory -{ - /** @var TagFactory */ - private $tagFactory; - - /** - * Initializes this factory with the means to construct (inline) tags. - * - * @param TagFactory $tagFactory - */ - public function __construct(TagFactory $tagFactory) - { - $this->tagFactory = $tagFactory; - } - - /** - * Returns the parsed text of this description. - * - * @param string $contents - * @param TypeContext $context - * - * @return Description - */ - public function create($contents, TypeContext $context = null) - { - list($text, $tags) = $this->parse($this->lex($contents), $context); - - return new Description($text, $tags); - } - - /** - * Strips the contents from superfluous whitespace and splits the description into a series of tokens. - * - * @param string $contents - * - * @return string[] A series of tokens of which the description text is composed. - */ - private function lex($contents) - { - $contents = $this->removeSuperfluousStartingWhitespace($contents); - - // performance optimalization; if there is no inline tag, don't bother splitting it up. - if (strpos($contents, '{@') === false) { - return [$contents]; - } - - return preg_split( - '/\{ - # "{@}" is not a valid inline tag. This ensures that we do not treat it as one, but treat it literally. - (?!@\}) - # We want to capture the whole tag line, but without the inline tag delimiters. - (\@ - # Match everything up to the next delimiter. - [^{}]* - # Nested inline tag content should not be captured, or it will appear in the result separately. - (?: - # Match nested inline tags. - (?: - # Because we did not catch the tag delimiters earlier, we must be explicit with them here. - # Notice that this also matches "{}", as a way to later introduce it as an escape sequence. - \{(?1)?\} - | - # Make sure we match hanging "{". - \{ - ) - # Match content after the nested inline tag. - [^{}]* - )* # If there are more inline tags, match them as well. We use "*" since there may not be any - # nested inline tags. - ) - \}/Sux', - $contents, - null, - PREG_SPLIT_DELIM_CAPTURE - ); - } - - /** - * Parses the stream of tokens in to a new set of tokens containing Tags. - * - * @param string[] $tokens - * @param TypeContext $context - * - * @return string[]|Tag[] - */ - private function parse($tokens, TypeContext $context) - { - $count = count($tokens); - $tagCount = 0; - $tags = []; - - for ($i = 1; $i < $count; $i += 2) { - $tags[] = $this->tagFactory->create($tokens[$i], $context); - $tokens[$i] = '%' . ++$tagCount . '$s'; - } - - //In order to allow "literal" inline tags, the otherwise invalid - //sequence "{@}" is changed to "@", and "{}" is changed to "}". - //"%" is escaped to "%%" because of vsprintf. - //See unit tests for examples. - for ($i = 0; $i < $count; $i += 2) { - $tokens[$i] = str_replace(['{@}', '{}', '%'], ['@', '}', '%%'], $tokens[$i]); - } - - return [implode('', $tokens), $tags]; - } - - /** - * Removes the superfluous from a multi-line description. - * - * When a description has more than one line then it can happen that the second and subsequent lines have an - * additional indentation. This is commonly in use with tags like this: - * - * {@}since 1.1.0 This is an example - * description where we have an - * indentation in the second and - * subsequent lines. - * - * If we do not normalize the indentation then we have superfluous whitespace on the second and subsequent - * lines and this may cause rendering issues when, for example, using a Markdown converter. - * - * @param string $contents - * - * @return string - */ - private function removeSuperfluousStartingWhitespace($contents) - { - $lines = explode("\n", $contents); - - // if there is only one line then we don't have lines with superfluous whitespace and - // can use the contents as-is - if (count($lines) <= 1) { - return $contents; - } - - // determine how many whitespace characters need to be stripped - $startingSpaceCount = 9999999; - for ($i = 1; $i < count($lines); $i++) { - // lines with a no length do not count as they are not indented at all - if (strlen(trim($lines[$i])) === 0) { - continue; - } - - // determine the number of prefixing spaces by checking the difference in line length before and after - // an ltrim - $startingSpaceCount = min($startingSpaceCount, strlen($lines[$i]) - strlen(ltrim($lines[$i]))); - } - - // strip the number of spaces from each line - if ($startingSpaceCount > 0) { - for ($i = 1; $i < count($lines); $i++) { - $lines[$i] = substr($lines[$i], $startingSpaceCount); - } - } - - return implode("\n", $lines); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php deleted file mode 100644 index 571ed74..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php +++ /dev/null @@ -1,170 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock\Tags\Example; - -/** - * Class used to find an example file's location based on a given ExampleDescriptor. - */ -class ExampleFinder -{ - /** @var string */ - private $sourceDirectory = ''; - - /** @var string[] */ - private $exampleDirectories = []; - - /** - * Attempts to find the example contents for the given descriptor. - * - * @param Example $example - * - * @return string - */ - public function find(Example $example) - { - $filename = $example->getFilePath(); - - $file = $this->getExampleFileContents($filename); - if (!$file) { - return "** File not found : {$filename} **"; - } - - return implode('', array_slice($file, $example->getStartingLine() - 1, $example->getLineCount())); - } - - /** - * Registers the project's root directory where an 'examples' folder can be expected. - * - * @param string $directory - * - * @return void - */ - public function setSourceDirectory($directory = '') - { - $this->sourceDirectory = $directory; - } - - /** - * Returns the project's root directory where an 'examples' folder can be expected. - * - * @return string - */ - public function getSourceDirectory() - { - return $this->sourceDirectory; - } - - /** - * Registers a series of directories that may contain examples. - * - * @param string[] $directories - */ - public function setExampleDirectories(array $directories) - { - $this->exampleDirectories = $directories; - } - - /** - * Returns a series of directories that may contain examples. - * - * @return string[] - */ - public function getExampleDirectories() - { - return $this->exampleDirectories; - } - - /** - * Attempts to find the requested example file and returns its contents or null if no file was found. - * - * This method will try several methods in search of the given example file, the first one it encounters is - * returned: - * - * 1. Iterates through all examples folders for the given filename - * 2. Checks the source folder for the given filename - * 3. Checks the 'examples' folder in the current working directory for examples - * 4. Checks the path relative to the current working directory for the given filename - * - * @param string $filename - * - * @return string|null - */ - private function getExampleFileContents($filename) - { - $normalizedPath = null; - - foreach ($this->exampleDirectories as $directory) { - $exampleFileFromConfig = $this->constructExamplePath($directory, $filename); - if (is_readable($exampleFileFromConfig)) { - $normalizedPath = $exampleFileFromConfig; - break; - } - } - - if (!$normalizedPath) { - if (is_readable($this->getExamplePathFromSource($filename))) { - $normalizedPath = $this->getExamplePathFromSource($filename); - } elseif (is_readable($this->getExamplePathFromExampleDirectory($filename))) { - $normalizedPath = $this->getExamplePathFromExampleDirectory($filename); - } elseif (is_readable($filename)) { - $normalizedPath = $filename; - } - } - - return $normalizedPath && is_readable($normalizedPath) ? file($normalizedPath) : null; - } - - /** - * Get example filepath based on the example directory inside your project. - * - * @param string $file - * - * @return string - */ - private function getExamplePathFromExampleDirectory($file) - { - return getcwd() . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $file; - } - - /** - * Returns a path to the example file in the given directory.. - * - * @param string $directory - * @param string $file - * - * @return string - */ - private function constructExamplePath($directory, $file) - { - return rtrim($directory, '\\/') . DIRECTORY_SEPARATOR . $file; - } - - /** - * Get example filepath based on sourcecode. - * - * @param string $file - * - * @return string - */ - private function getExamplePathFromSource($file) - { - return sprintf( - '%s%s%s', - trim($this->getSourceDirectory(), '\\/'), - DIRECTORY_SEPARATOR, - trim($file, '"') - ); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php deleted file mode 100644 index 0f355f5..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php +++ /dev/null @@ -1,155 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock; -use Webmozart\Assert\Assert; - -/** - * Converts a DocBlock back from an object to a complete DocComment including Asterisks. - */ -class Serializer -{ - /** @var string The string to indent the comment with. */ - protected $indentString = ' '; - - /** @var int The number of times the indent string is repeated. */ - protected $indent = 0; - - /** @var bool Whether to indent the first line with the given indent amount and string. */ - protected $isFirstLineIndented = true; - - /** @var int|null The max length of a line. */ - protected $lineLength = null; - - /** @var DocBlock\Tags\Formatter A custom tag formatter. */ - protected $tagFormatter = null; - - /** - * Create a Serializer instance. - * - * @param int $indent The number of times the indent string is repeated. - * @param string $indentString The string to indent the comment with. - * @param bool $indentFirstLine Whether to indent the first line. - * @param int|null $lineLength The max length of a line or NULL to disable line wrapping. - * @param DocBlock\Tags\Formatter $tagFormatter A custom tag formatter, defaults to PassthroughFormatter. - */ - public function __construct($indent = 0, $indentString = ' ', $indentFirstLine = true, $lineLength = null, $tagFormatter = null) - { - Assert::integer($indent); - Assert::string($indentString); - Assert::boolean($indentFirstLine); - Assert::nullOrInteger($lineLength); - Assert::nullOrIsInstanceOf($tagFormatter, 'phpDocumentor\Reflection\DocBlock\Tags\Formatter'); - - $this->indent = $indent; - $this->indentString = $indentString; - $this->isFirstLineIndented = $indentFirstLine; - $this->lineLength = $lineLength; - $this->tagFormatter = $tagFormatter ?: new DocBlock\Tags\Formatter\PassthroughFormatter(); - } - - /** - * Generate a DocBlock comment. - * - * @param DocBlock $docblock The DocBlock to serialize. - * - * @return string The serialized doc block. - */ - public function getDocComment(DocBlock $docblock) - { - $indent = str_repeat($this->indentString, $this->indent); - $firstIndent = $this->isFirstLineIndented ? $indent : ''; - // 3 === strlen(' * ') - $wrapLength = $this->lineLength ? $this->lineLength - strlen($indent) - 3 : null; - - $text = $this->removeTrailingSpaces( - $indent, - $this->addAsterisksForEachLine( - $indent, - $this->getSummaryAndDescriptionTextBlock($docblock, $wrapLength) - ) - ); - - $comment = "{$firstIndent}/**\n"; - if ($text) { - $comment .= "{$indent} * {$text}\n"; - $comment .= "{$indent} *\n"; - } - - $comment = $this->addTagBlock($docblock, $wrapLength, $indent, $comment); - $comment .= $indent . ' */'; - - return $comment; - } - - /** - * @param $indent - * @param $text - * @return mixed - */ - private function removeTrailingSpaces($indent, $text) - { - return str_replace("\n{$indent} * \n", "\n{$indent} *\n", $text); - } - - /** - * @param $indent - * @param $text - * @return mixed - */ - private function addAsterisksForEachLine($indent, $text) - { - return str_replace("\n", "\n{$indent} * ", $text); - } - - /** - * @param DocBlock $docblock - * @param $wrapLength - * @return string - */ - private function getSummaryAndDescriptionTextBlock(DocBlock $docblock, $wrapLength) - { - $text = $docblock->getSummary() . ((string)$docblock->getDescription() ? "\n\n" . $docblock->getDescription() - : ''); - if ($wrapLength !== null) { - $text = wordwrap($text, $wrapLength); - return $text; - } - - return $text; - } - - /** - * @param DocBlock $docblock - * @param $wrapLength - * @param $indent - * @param $comment - * @return string - */ - private function addTagBlock(DocBlock $docblock, $wrapLength, $indent, $comment) - { - foreach ($docblock->getTags() as $tag) { - $tagText = $this->tagFormatter->format($tag); - if ($wrapLength !== null) { - $tagText = wordwrap($tagText, $wrapLength); - } - - $tagText = str_replace("\n", "\n{$indent} * ", $tagText); - - $comment .= "{$indent} * {$tagText}\n"; - } - - return $comment; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php deleted file mode 100644 index 5a8143c..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php +++ /dev/null @@ -1,319 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock\Tags\Factory\StaticMethod; -use phpDocumentor\Reflection\DocBlock\Tags\Generic; -use phpDocumentor\Reflection\FqsenResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Creates a Tag object given the contents of a tag. - * - * This Factory is capable of determining the appropriate class for a tag and instantiate it using its `create` - * factory method. The `create` factory method of a Tag can have a variable number of arguments; this way you can - * pass the dependencies that you need to construct a tag object. - * - * > Important: each parameter in addition to the body variable for the `create` method must default to null, otherwise - * > it violates the constraint with the interface; it is recommended to use the {@see Assert::notNull()} method to - * > verify that a dependency is actually passed. - * - * This Factory also features a Service Locator component that is used to pass the right dependencies to the - * `create` method of a tag; each dependency should be registered as a service or as a parameter. - * - * When you want to use a Tag of your own with custom handling you need to call the `registerTagHandler` method, pass - * the name of the tag and a Fully Qualified Class Name pointing to a class that implements the Tag interface. - */ -final class StandardTagFactory implements TagFactory -{ - /** PCRE regular expression matching a tag name. */ - const REGEX_TAGNAME = '[\w\-\_\\\\]+'; - - /** - * @var string[] An array with a tag as a key, and an FQCN to a class that handles it as an array value. - */ - private $tagHandlerMappings = [ - 'author' => '\phpDocumentor\Reflection\DocBlock\Tags\Author', - 'covers' => '\phpDocumentor\Reflection\DocBlock\Tags\Covers', - 'deprecated' => '\phpDocumentor\Reflection\DocBlock\Tags\Deprecated', - // 'example' => '\phpDocumentor\Reflection\DocBlock\Tags\Example', - 'link' => '\phpDocumentor\Reflection\DocBlock\Tags\Link', - 'method' => '\phpDocumentor\Reflection\DocBlock\Tags\Method', - 'param' => '\phpDocumentor\Reflection\DocBlock\Tags\Param', - 'property-read' => '\phpDocumentor\Reflection\DocBlock\Tags\PropertyRead', - 'property' => '\phpDocumentor\Reflection\DocBlock\Tags\Property', - 'property-write' => '\phpDocumentor\Reflection\DocBlock\Tags\PropertyWrite', - 'return' => '\phpDocumentor\Reflection\DocBlock\Tags\Return_', - 'see' => '\phpDocumentor\Reflection\DocBlock\Tags\See', - 'since' => '\phpDocumentor\Reflection\DocBlock\Tags\Since', - 'source' => '\phpDocumentor\Reflection\DocBlock\Tags\Source', - 'throw' => '\phpDocumentor\Reflection\DocBlock\Tags\Throws', - 'throws' => '\phpDocumentor\Reflection\DocBlock\Tags\Throws', - 'uses' => '\phpDocumentor\Reflection\DocBlock\Tags\Uses', - 'var' => '\phpDocumentor\Reflection\DocBlock\Tags\Var_', - 'version' => '\phpDocumentor\Reflection\DocBlock\Tags\Version' - ]; - - /** - * @var \ReflectionParameter[][] a lazy-loading cache containing parameters for each tagHandler that has been used. - */ - private $tagHandlerParameterCache = []; - - /** - * @var FqsenResolver - */ - private $fqsenResolver; - - /** - * @var mixed[] an array representing a simple Service Locator where we can store parameters and - * services that can be inserted into the Factory Methods of Tag Handlers. - */ - private $serviceLocator = []; - - /** - * Initialize this tag factory with the means to resolve an FQSEN and optionally a list of tag handlers. - * - * If no tag handlers are provided than the default list in the {@see self::$tagHandlerMappings} property - * is used. - * - * @param FqsenResolver $fqsenResolver - * @param string[] $tagHandlers - * - * @see self::registerTagHandler() to add a new tag handler to the existing default list. - */ - public function __construct(FqsenResolver $fqsenResolver, array $tagHandlers = null) - { - $this->fqsenResolver = $fqsenResolver; - if ($tagHandlers !== null) { - $this->tagHandlerMappings = $tagHandlers; - } - - $this->addService($fqsenResolver, FqsenResolver::class); - } - - /** - * {@inheritDoc} - */ - public function create($tagLine, TypeContext $context = null) - { - if (! $context) { - $context = new TypeContext(''); - } - - list($tagName, $tagBody) = $this->extractTagParts($tagLine); - - if ($tagBody !== '' && $tagBody[0] === '[') { - throw new \InvalidArgumentException( - 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors' - ); - } - - return $this->createTag($tagBody, $tagName, $context); - } - - /** - * {@inheritDoc} - */ - public function addParameter($name, $value) - { - $this->serviceLocator[$name] = $value; - } - - /** - * {@inheritDoc} - */ - public function addService($service, $alias = null) - { - $this->serviceLocator[$alias ?: get_class($service)] = $service; - } - - /** - * {@inheritDoc} - */ - public function registerTagHandler($tagName, $handler) - { - Assert::stringNotEmpty($tagName); - Assert::stringNotEmpty($handler); - Assert::classExists($handler); - Assert::implementsInterface($handler, StaticMethod::class); - - if (strpos($tagName, '\\') && $tagName[0] !== '\\') { - throw new \InvalidArgumentException( - 'A namespaced tag must have a leading backslash as it must be fully qualified' - ); - } - - $this->tagHandlerMappings[$tagName] = $handler; - } - - /** - * Extracts all components for a tag. - * - * @param string $tagLine - * - * @return string[] - */ - private function extractTagParts($tagLine) - { - $matches = []; - if (! preg_match('/^@(' . self::REGEX_TAGNAME . ')(?:\s*([^\s].*)|$)/us', $tagLine, $matches)) { - throw new \InvalidArgumentException( - 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors' - ); - } - - if (count($matches) < 3) { - $matches[] = ''; - } - - return array_slice($matches, 1); - } - - /** - * Creates a new tag object with the given name and body or returns null if the tag name was recognized but the - * body was invalid. - * - * @param string $body - * @param string $name - * @param TypeContext $context - * - * @return Tag|null - */ - private function createTag($body, $name, TypeContext $context) - { - $handlerClassName = $this->findHandlerClassName($name, $context); - $arguments = $this->getArgumentsForParametersFromWiring( - $this->fetchParametersForHandlerFactoryMethod($handlerClassName), - $this->getServiceLocatorWithDynamicParameters($context, $name, $body) - ); - - return call_user_func_array([$handlerClassName, 'create'], $arguments); - } - - /** - * Determines the Fully Qualified Class Name of the Factory or Tag (containing a Factory Method `create`). - * - * @param string $tagName - * @param TypeContext $context - * - * @return string - */ - private function findHandlerClassName($tagName, TypeContext $context) - { - $handlerClassName = Generic::class; - if (isset($this->tagHandlerMappings[$tagName])) { - $handlerClassName = $this->tagHandlerMappings[$tagName]; - } elseif ($this->isAnnotation($tagName)) { - // TODO: Annotation support is planned for a later stage and as such is disabled for now - // $tagName = (string)$this->fqsenResolver->resolve($tagName, $context); - // if (isset($this->annotationMappings[$tagName])) { - // $handlerClassName = $this->annotationMappings[$tagName]; - // } - } - - return $handlerClassName; - } - - /** - * Retrieves the arguments that need to be passed to the Factory Method with the given Parameters. - * - * @param \ReflectionParameter[] $parameters - * @param mixed[] $locator - * - * @return mixed[] A series of values that can be passed to the Factory Method of the tag whose parameters - * is provided with this method. - */ - private function getArgumentsForParametersFromWiring($parameters, $locator) - { - $arguments = []; - foreach ($parameters as $index => $parameter) { - $typeHint = $parameter->getClass() ? $parameter->getClass()->getName() : null; - if (isset($locator[$typeHint])) { - $arguments[] = $locator[$typeHint]; - continue; - } - - $parameterName = $parameter->getName(); - if (isset($locator[$parameterName])) { - $arguments[] = $locator[$parameterName]; - continue; - } - - $arguments[] = null; - } - - return $arguments; - } - - /** - * Retrieves a series of ReflectionParameter objects for the static 'create' method of the given - * tag handler class name. - * - * @param string $handlerClassName - * - * @return \ReflectionParameter[] - */ - private function fetchParametersForHandlerFactoryMethod($handlerClassName) - { - if (! isset($this->tagHandlerParameterCache[$handlerClassName])) { - $methodReflection = new \ReflectionMethod($handlerClassName, 'create'); - $this->tagHandlerParameterCache[$handlerClassName] = $methodReflection->getParameters(); - } - - return $this->tagHandlerParameterCache[$handlerClassName]; - } - - /** - * Returns a copy of this class' Service Locator with added dynamic parameters, such as the tag's name, body and - * Context. - * - * @param TypeContext $context The Context (namespace and aliasses) that may be passed and is used to resolve FQSENs. - * @param string $tagName The name of the tag that may be passed onto the factory method of the Tag class. - * @param string $tagBody The body of the tag that may be passed onto the factory method of the Tag class. - * - * @return mixed[] - */ - private function getServiceLocatorWithDynamicParameters(TypeContext $context, $tagName, $tagBody) - { - $locator = array_merge( - $this->serviceLocator, - [ - 'name' => $tagName, - 'body' => $tagBody, - TypeContext::class => $context - ] - ); - - return $locator; - } - - /** - * Returns whether the given tag belongs to an annotation. - * - * @param string $tagContent - * - * @todo this method should be populated once we implement Annotation notation support. - * - * @return bool - */ - private function isAnnotation($tagContent) - { - // 1. Contains a namespace separator - // 2. Contains parenthesis - // 3. Is present in a list of known annotations (make the algorithm smart by first checking is the last part - // of the annotation class name matches the found tag name - - return false; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php deleted file mode 100644 index e765367..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php +++ /dev/null @@ -1,26 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -interface Tag -{ - public function getName(); - - public static function create($body); - - public function render(Formatter $formatter = null); - - public function __toString(); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php deleted file mode 100644 index 3c1d113..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php +++ /dev/null @@ -1,93 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock; - -use phpDocumentor\Reflection\Types\Context as TypeContext; - -interface TagFactory -{ - /** - * Adds a parameter to the service locator that can be injected in a tag's factory method. - * - * When calling a tag's "create" method we always check the signature for dependencies to inject. One way is to - * typehint a parameter in the signature so that we can use that interface or class name to inject a dependency - * (see {@see addService()} for more information on that). - * - * Another way is to check the name of the argument against the names in the Service Locator. With this method - * you can add a variable that will be inserted when a tag's create method is not typehinted and has a matching - * name. - * - * Be aware that there are two reserved names: - * - * - name, representing the name of the tag. - * - body, representing the complete body of the tag. - * - * These parameters are injected at the last moment and will override any existing parameter with those names. - * - * @param string $name - * @param mixed $value - * - * @return void - */ - public function addParameter($name, $value); - - /** - * Registers a service with the Service Locator using the FQCN of the class or the alias, if provided. - * - * When calling a tag's "create" method we always check the signature for dependencies to inject. If a parameter - * has a typehint then the ServiceLocator is queried to see if a Service is registered for that typehint. - * - * Because interfaces are regularly used as type-hints this method provides an alias parameter; if the FQCN of the - * interface is passed as alias then every time that interface is requested the provided service will be returned. - * - * @param object $service - * @param string $alias - * - * @return void - */ - public function addService($service); - - /** - * Factory method responsible for instantiating the correct sub type. - * - * @param string $tagLine The text for this tag, including description. - * @param TypeContext $context - * - * @throws \InvalidArgumentException if an invalid tag line was presented. - * - * @return Tag A new tag object. - */ - public function create($tagLine, TypeContext $context = null); - - /** - * Registers a handler for tags. - * - * If you want to use your own tags then you can use this method to instruct the TagFactory to register the name - * of a tag with the FQCN of a 'Tag Handler'. The Tag handler should implement the {@see Tag} interface (and thus - * the create method). - * - * @param string $tagName Name of tag to register a handler for. When registering a namespaced tag, the full - * name, along with a prefixing slash MUST be provided. - * @param string $handler FQCN of handler. - * - * @throws \InvalidArgumentException if the tag name is not a string - * @throws \InvalidArgumentException if the tag name is namespaced (contains backslashes) but does not start with - * a backslash - * @throws \InvalidArgumentException if the handler is not a string - * @throws \InvalidArgumentException if the handler is not an existing class - * @throws \InvalidArgumentException if the handler does not implement the {@see Tag} interface - * - * @return void - */ - public function registerTagHandler($tagName, $handler); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php deleted file mode 100644 index 29d7f1d..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php +++ /dev/null @@ -1,100 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use Webmozart\Assert\Assert; - -/** - * Reflection class for an {@}author tag in a Docblock. - */ -final class Author extends BaseTag implements Factory\StaticMethod -{ - /** @var string register that this is the author tag. */ - protected $name = 'author'; - - /** @var string The name of the author */ - private $authorName = ''; - - /** @var string The email of the author */ - private $authorEmail = ''; - - /** - * Initializes this tag with the author name and e-mail. - * - * @param string $authorName - * @param string $authorEmail - */ - public function __construct($authorName, $authorEmail) - { - Assert::string($authorName); - Assert::string($authorEmail); - if ($authorEmail && !filter_var($authorEmail, FILTER_VALIDATE_EMAIL)) { - throw new \InvalidArgumentException('The author tag does not have a valid e-mail address'); - } - - $this->authorName = $authorName; - $this->authorEmail = $authorEmail; - } - - /** - * Gets the author's name. - * - * @return string The author's name. - */ - public function getAuthorName() - { - return $this->authorName; - } - - /** - * Returns the author's email. - * - * @return string The author's email. - */ - public function getEmail() - { - return $this->authorEmail; - } - - /** - * Returns this tag in string form. - * - * @return string - */ - public function __toString() - { - return $this->authorName . (strlen($this->authorEmail) ? ' <' . $this->authorEmail . '>' : ''); - } - - /** - * Attempts to create a new Author object based on †he tag body. - * - * @param string $body - * - * @return static - */ - public static function create($body) - { - Assert::string($body); - - $splitTagContent = preg_match('/^([^\<]*)(?:\<([^\>]*)\>)?$/u', $body, $matches); - if (!$splitTagContent) { - return null; - } - - $authorName = trim($matches[1]); - $email = isset($matches[2]) ? trim($matches[2]) : ''; - - return new static($authorName, $email); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php deleted file mode 100644 index 14bb717..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php +++ /dev/null @@ -1,52 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock; -use phpDocumentor\Reflection\DocBlock\Description; - -/** - * Parses a tag definition for a DocBlock. - */ -abstract class BaseTag implements DocBlock\Tag -{ - /** @var string Name of the tag */ - protected $name = ''; - - /** @var Description|null Description of the tag. */ - protected $description; - - /** - * Gets the name of this tag. - * - * @return string The name of this tag. - */ - public function getName() - { - return $this->name; - } - - public function getDescription() - { - return $this->description; - } - - public function render(Formatter $formatter = null) - { - if ($formatter === null) { - $formatter = new Formatter\PassthroughFormatter(); - } - - return $formatter->format($this); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php deleted file mode 100644 index 8d65403..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php +++ /dev/null @@ -1,83 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Fqsen; -use phpDocumentor\Reflection\FqsenResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a @covers tag in a Docblock. - */ -final class Covers extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'covers'; - - /** @var Fqsen */ - private $refers = null; - - /** - * Initializes this tag. - * - * @param Fqsen $refers - * @param Description $description - */ - public function __construct(Fqsen $refers, Description $description = null) - { - $this->refers = $refers; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - DescriptionFactory $descriptionFactory = null, - FqsenResolver $resolver = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::notEmpty($body); - - $parts = preg_split('/\s+/Su', $body, 2); - - return new static( - $resolver->resolve($parts[0], $context), - $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context) - ); - } - - /** - * Returns the structural element this tag refers to. - * - * @return Fqsen - */ - public function getReference() - { - return $this->refers; - } - - /** - * Returns a string representation of this tag. - * - * @return string - */ - public function __toString() - { - return $this->refers . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php deleted file mode 100644 index 822c305..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php +++ /dev/null @@ -1,97 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}deprecated tag in a Docblock. - */ -final class Deprecated extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'deprecated'; - - /** - * PCRE regular expression matching a version vector. - * Assumes the "x" modifier. - */ - const REGEX_VECTOR = '(?: - # Normal release vectors. - \d\S* - | - # VCS version vectors. Per PHPCS, they are expected to - # follow the form of the VCS name, followed by ":", followed - # by the version vector itself. - # By convention, popular VCSes like CVS, SVN and GIT use "$" - # around the actual version vector. - [^\s\:]+\:\s*\$[^\$]+\$ - )'; - - /** @var string The version vector. */ - private $version = ''; - - public function __construct($version = null, Description $description = null) - { - Assert::nullOrStringNotEmpty($version); - - $this->version = $version; - $this->description = $description; - } - - /** - * @return static - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::nullOrString($body); - if (empty($body)) { - return new static(); - } - - $matches = []; - if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { - return new static( - null, - null !== $descriptionFactory ? $descriptionFactory->create($body, $context) : null - ); - } - - return new static( - $matches[1], - $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context) - ); - } - - /** - * Gets the version section of the tag. - * - * @return string - */ - public function getVersion() - { - return $this->version; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->version . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php deleted file mode 100644 index ecb199b..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php +++ /dev/null @@ -1,176 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\Tag; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}example tag in a Docblock. - */ -final class Example extends BaseTag -{ - /** - * @var string Path to a file to use as an example. May also be an absolute URI. - */ - private $filePath; - - /** - * @var bool Whether the file path component represents an URI. This determines how the file portion - * appears at {@link getContent()}. - */ - private $isURI = false; - - /** - * @var int - */ - private $startingLine; - - /** - * @var int - */ - private $lineCount; - - public function __construct($filePath, $isURI, $startingLine, $lineCount, $description) - { - Assert::notEmpty($filePath); - Assert::integer($startingLine); - Assert::greaterThanEq($startingLine, 0); - - $this->filePath = $filePath; - $this->startingLine = $startingLine; - $this->lineCount = $lineCount; - $this->name = 'example'; - if ($description !== null) { - $this->description = trim($description); - } - - $this->isURI = $isURI; - } - - /** - * {@inheritdoc} - */ - public function getContent() - { - if (null === $this->description) { - $filePath = '"' . $this->filePath . '"'; - if ($this->isURI) { - $filePath = $this->isUriRelative($this->filePath) - ? str_replace('%2F', '/', rawurlencode($this->filePath)) - :$this->filePath; - } - - return trim($filePath . ' ' . parent::getDescription()); - } - - return $this->description; - } - - /** - * {@inheritdoc} - */ - public static function create($body) - { - // File component: File path in quotes or File URI / Source information - if (! preg_match('/^(?:\"([^\"]+)\"|(\S+))(?:\s+(.*))?$/sux', $body, $matches)) { - return null; - } - - $filePath = null; - $fileUri = null; - if ('' !== $matches[1]) { - $filePath = $matches[1]; - } else { - $fileUri = $matches[2]; - } - - $startingLine = 1; - $lineCount = null; - $description = null; - - if (array_key_exists(3, $matches)) { - $description = $matches[3]; - - // Starting line / Number of lines / Description - if (preg_match('/^([1-9]\d*)(?:\s+((?1))\s*)?(.*)$/sux', $matches[3], $contentMatches)) { - $startingLine = (int)$contentMatches[1]; - if (isset($contentMatches[2]) && $contentMatches[2] !== '') { - $lineCount = (int)$contentMatches[2]; - } - - if (array_key_exists(3, $contentMatches)) { - $description = $contentMatches[3]; - } - } - } - - return new static( - $filePath !== null?$filePath:$fileUri, - $fileUri !== null, - $startingLine, - $lineCount, - $description - ); - } - - /** - * Returns the file path. - * - * @return string Path to a file to use as an example. - * May also be an absolute URI. - */ - public function getFilePath() - { - return $this->filePath; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->filePath . ($this->description ? ' ' . $this->description : ''); - } - - /** - * Returns true if the provided URI is relative or contains a complete scheme (and thus is absolute). - * - * @param string $uri - * - * @return bool - */ - private function isUriRelative($uri) - { - return false === strpos($uri, ':'); - } - - /** - * @return int - */ - public function getStartingLine() - { - return $this->startingLine; - } - - /** - * @return int - */ - public function getLineCount() - { - return $this->lineCount; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php deleted file mode 100644 index 98aea45..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php +++ /dev/null @@ -1,18 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Factory; - -interface StaticMethod -{ - public static function create($body); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php deleted file mode 100644 index b9ca0b8..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php +++ /dev/null @@ -1,18 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Factory; - -interface Strategy -{ - public function create($body); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php deleted file mode 100644 index 64b2c60..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Tag; - -interface Formatter -{ - /** - * Formats a tag into a string representation according to a specific format, such as Markdown. - * - * @param Tag $tag - * - * @return string - */ - public function format(Tag $tag); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php deleted file mode 100644 index ceb40cc..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php +++ /dev/null @@ -1,47 +0,0 @@ - - * @copyright 2017 Mike van Riel - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -use phpDocumentor\Reflection\DocBlock\Tag; -use phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -class AlignFormatter implements Formatter -{ - /** @var int The maximum tag name length. */ - protected $maxLen = 0; - - /** - * Constructor. - * - * @param Tag[] $tags All tags that should later be aligned with the formatter. - */ - public function __construct(array $tags) - { - foreach ($tags as $tag) { - $this->maxLen = max($this->maxLen, strlen($tag->getName())); - } - } - - /** - * Formats the given tag to return a simple plain text version. - * - * @param Tag $tag - * - * @return string - */ - public function format(Tag $tag) - { - return '@' . $tag->getName() . str_repeat(' ', $this->maxLen - strlen($tag->getName()) + 1) . (string)$tag; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php deleted file mode 100644 index 4e2c576..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -use phpDocumentor\Reflection\DocBlock\Tag; -use phpDocumentor\Reflection\DocBlock\Tags\Formatter; - -class PassthroughFormatter implements Formatter -{ - /** - * Formats the given tag to return a simple plain text version. - * - * @param Tag $tag - * - * @return string - */ - public function format(Tag $tag) - { - return trim('@' . $tag->getName() . ' ' . (string)$tag); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php deleted file mode 100644 index e4c53e0..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php +++ /dev/null @@ -1,91 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\DocBlock\StandardTagFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Parses a tag definition for a DocBlock. - */ -class Generic extends BaseTag implements Factory\StaticMethod -{ - /** - * Parses a tag and populates the member variables. - * - * @param string $name Name of the tag. - * @param Description $description The contents of the given tag. - */ - public function __construct($name, Description $description = null) - { - $this->validateTagName($name); - - $this->name = $name; - $this->description = $description; - } - - /** - * Creates a new tag that represents any unknown tag type. - * - * @param string $body - * @param string $name - * @param DescriptionFactory $descriptionFactory - * @param TypeContext $context - * - * @return static - */ - public static function create( - $body, - $name = '', - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::stringNotEmpty($name); - Assert::notNull($descriptionFactory); - - $description = $descriptionFactory && $body ? $descriptionFactory->create($body, $context) : null; - - return new static($name, $description); - } - - /** - * Returns the tag as a serialized string - * - * @return string - */ - public function __toString() - { - return ($this->description ? $this->description->render() : ''); - } - - /** - * Validates if the tag name matches the expected format, otherwise throws an exception. - * - * @param string $name - * - * @return void - */ - private function validateTagName($name) - { - if (! preg_match('/^' . StandardTagFactory::REGEX_TAGNAME . '$/u', $name)) { - throw new \InvalidArgumentException( - 'The tag name "' . $name . '" is not wellformed. Tags may only consist of letters, underscores, ' - . 'hyphens and backslashes.' - ); - } - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php deleted file mode 100644 index 9c0e367..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com) - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a @link tag in a Docblock. - */ -final class Link extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'link'; - - /** @var string */ - private $link = ''; - - /** - * Initializes a link to a URL. - * - * @param string $link - * @param Description $description - */ - public function __construct($link, Description $description = null) - { - Assert::string($link); - - $this->link = $link; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::string($body); - Assert::notNull($descriptionFactory); - - $parts = preg_split('/\s+/Su', $body, 2); - $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; - - return new static($parts[0], $description); - } - - /** - * Gets the link - * - * @return string - */ - public function getLink() - { - return $this->link; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->link . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php deleted file mode 100644 index 7522529..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php +++ /dev/null @@ -1,242 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use phpDocumentor\Reflection\Types\Void_; -use Webmozart\Assert\Assert; - -/** - * Reflection class for an {@}method in a Docblock. - */ -final class Method extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'method'; - - /** @var string */ - private $methodName = ''; - - /** @var string[] */ - private $arguments = []; - - /** @var bool */ - private $isStatic = false; - - /** @var Type */ - private $returnType; - - public function __construct( - $methodName, - array $arguments = [], - Type $returnType = null, - $static = false, - Description $description = null - ) { - Assert::stringNotEmpty($methodName); - Assert::boolean($static); - - if ($returnType === null) { - $returnType = new Void_(); - } - - $this->methodName = $methodName; - $this->arguments = $this->filterArguments($arguments); - $this->returnType = $returnType; - $this->isStatic = $static; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([ $typeResolver, $descriptionFactory ]); - - // 1. none or more whitespace - // 2. optionally the keyword "static" followed by whitespace - // 3. optionally a word with underscores followed by whitespace : as - // type for the return value - // 4. then optionally a word with underscores followed by () and - // whitespace : as method name as used by phpDocumentor - // 5. then a word with underscores, followed by ( and any character - // until a ) and whitespace : as method name with signature - // 6. any remaining text : as description - if (!preg_match( - '/^ - # Static keyword - # Declares a static method ONLY if type is also present - (?: - (static) - \s+ - )? - # Return type - (?: - ( - (?:[\w\|_\\\\]*\$this[\w\|_\\\\]*) - | - (?: - (?:[\w\|_\\\\]+) - # array notation - (?:\[\])* - )* - ) - \s+ - )? - # Legacy method name (not captured) - (?: - [\w_]+\(\)\s+ - )? - # Method name - ([\w\|_\\\\]+) - # Arguments - (?: - \(([^\)]*)\) - )? - \s* - # Description - (.*) - $/sux', - $body, - $matches - )) { - return null; - } - - list(, $static, $returnType, $methodName, $arguments, $description) = $matches; - - $static = $static === 'static'; - - if ($returnType === '') { - $returnType = 'void'; - } - - $returnType = $typeResolver->resolve($returnType, $context); - $description = $descriptionFactory->create($description, $context); - - if (is_string($arguments) && strlen($arguments) > 0) { - $arguments = explode(',', $arguments); - foreach ($arguments as &$argument) { - $argument = explode(' ', self::stripRestArg(trim($argument)), 2); - if ($argument[0][0] === '$') { - $argumentName = substr($argument[0], 1); - $argumentType = new Void_(); - } else { - $argumentType = $typeResolver->resolve($argument[0], $context); - $argumentName = ''; - if (isset($argument[1])) { - $argument[1] = self::stripRestArg($argument[1]); - $argumentName = substr($argument[1], 1); - } - } - - $argument = [ 'name' => $argumentName, 'type' => $argumentType]; - } - } else { - $arguments = []; - } - - return new static($methodName, $arguments, $returnType, $static, $description); - } - - /** - * Retrieves the method name. - * - * @return string - */ - public function getMethodName() - { - return $this->methodName; - } - - /** - * @return string[] - */ - public function getArguments() - { - return $this->arguments; - } - - /** - * Checks whether the method tag describes a static method or not. - * - * @return bool TRUE if the method declaration is for a static method, FALSE otherwise. - */ - public function isStatic() - { - return $this->isStatic; - } - - /** - * @return Type - */ - public function getReturnType() - { - return $this->returnType; - } - - public function __toString() - { - $arguments = []; - foreach ($this->arguments as $argument) { - $arguments[] = $argument['type'] . ' $' . $argument['name']; - } - - return trim(($this->isStatic() ? 'static ' : '') - . (string)$this->returnType . ' ' - . $this->methodName - . '(' . implode(', ', $arguments) . ')' - . ($this->description ? ' ' . $this->description->render() : '')); - } - - private function filterArguments($arguments) - { - foreach ($arguments as &$argument) { - if (is_string($argument)) { - $argument = [ 'name' => $argument ]; - } - - if (! isset($argument['type'])) { - $argument['type'] = new Void_(); - } - - $keys = array_keys($argument); - sort($keys); - if ($keys !== [ 'name', 'type' ]) { - throw new \InvalidArgumentException( - 'Arguments can only have the "name" and "type" fields, found: ' . var_export($keys, true) - ); - } - } - - return $arguments; - } - - private static function stripRestArg($argument) - { - if (strpos($argument, '...') === 0) { - $argument = trim(substr($argument, 3)); - } - - return $argument; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php deleted file mode 100644 index 7d699d8..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php +++ /dev/null @@ -1,141 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for the {@}param tag in a Docblock. - */ -final class Param extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'param'; - - /** @var Type */ - private $type; - - /** @var string */ - private $variableName = ''; - - /** @var bool determines whether this is a variadic argument */ - private $isVariadic = false; - - /** - * @param string $variableName - * @param Type $type - * @param bool $isVariadic - * @param Description $description - */ - public function __construct($variableName, Type $type = null, $isVariadic = false, Description $description = null) - { - Assert::string($variableName); - Assert::boolean($isVariadic); - - $this->variableName = $variableName; - $this->type = $type; - $this->isVariadic = $isVariadic; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - $isVariadic = false; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$' || substr($parts[0], 0, 4) === '...$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 3) === '...') { - $isVariadic = true; - $variableName = substr($variableName, 3); - } - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $isVariadic, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns whether this tag is variadic. - * - * @return boolean - */ - public function isVariadic() - { - return $this->isVariadic; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . ($this->isVariadic() ? '...' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php deleted file mode 100644 index f0ef7c0..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php +++ /dev/null @@ -1,118 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}property tag in a Docblock. - */ -class Property extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'property'; - - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) - { - Assert::string($variableName); - - $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php deleted file mode 100644 index e41c0c1..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php +++ /dev/null @@ -1,118 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}property-read tag in a Docblock. - */ -class PropertyRead extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'property-read'; - - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) - { - Assert::string($variableName); - - $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php deleted file mode 100644 index cfdb0ed..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php +++ /dev/null @@ -1,118 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}property-write tag in a Docblock. - */ -class PropertyWrite extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'property-write'; - - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) - { - Assert::string($variableName); - - $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . '$' . $this->variableName - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php deleted file mode 100644 index dc7b8b6..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php +++ /dev/null @@ -1,42 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; - -use phpDocumentor\Reflection\Fqsen as RealFqsen; - -/** - * Fqsen reference used by {@see phpDocumentor\Reflection\DocBlock\Tags\See} - */ -final class Fqsen implements Reference -{ - /** - * @var RealFqsen - */ - private $fqsen; - - /** - * Fqsen constructor. - */ - public function __construct(RealFqsen $fqsen) - { - $this->fqsen = $fqsen; - } - - /** - * @return string string representation of the referenced fqsen - */ - public function __toString() - { - return (string)$this->fqsen; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php deleted file mode 100644 index a3ffd24..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php +++ /dev/null @@ -1,21 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; - -/** - * Interface for references in {@see phpDocumentor\Reflection\DocBlock\Tags\See} - */ -interface Reference -{ - public function __toString(); -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php deleted file mode 100644 index 2671d5e..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php +++ /dev/null @@ -1,40 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags\Reference; - -use Webmozart\Assert\Assert; - -/** - * Url reference used by {@see phpDocumentor\Reflection\DocBlock\Tags\See} - */ -final class Url implements Reference -{ - /** - * @var string - */ - private $uri; - - /** - * Url constructor. - */ - public function __construct($uri) - { - Assert::stringNotEmpty($uri); - $this->uri = $uri; - } - - public function __toString() - { - return $this->uri; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php deleted file mode 100644 index ca5bda7..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php +++ /dev/null @@ -1,72 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}return tag in a Docblock. - */ -final class Return_ extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'return'; - - /** @var Type */ - private $type; - - public function __construct(Type $type, Description $description = null) - { - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/\s+/Su', $body, 2); - - $type = $typeResolver->resolve(isset($parts[0]) ? $parts[0] : '', $context); - $description = $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context); - - return new static($type, $description); - } - - /** - * Returns the type section of the variable. - * - * @return Type - */ - public function getType() - { - return $this->type; - } - - public function __toString() - { - return $this->type . ' ' . $this->description; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php deleted file mode 100644 index 9e9e723..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php +++ /dev/null @@ -1,88 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\DocBlock\Tags\Reference\Fqsen as FqsenRef; -use phpDocumentor\Reflection\DocBlock\Tags\Reference\Reference; -use phpDocumentor\Reflection\DocBlock\Tags\Reference\Url; -use phpDocumentor\Reflection\FqsenResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for an {@}see tag in a Docblock. - */ -class See extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'see'; - - /** @var Reference */ - protected $refers = null; - - /** - * Initializes this tag. - * - * @param Reference $refers - * @param Description $description - */ - public function __construct(Reference $refers, Description $description = null) - { - $this->refers = $refers; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - FqsenResolver $resolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$resolver, $descriptionFactory]); - - $parts = preg_split('/\s+/Su', $body, 2); - $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; - - // https://tools.ietf.org/html/rfc2396#section-3 - if (preg_match('/\w:\/\/\w/i', $parts[0])) { - return new static(new Url($parts[0]), $description); - } - - return new static(new FqsenRef($resolver->resolve($parts[0], $context)), $description); - } - - /** - * Returns the ref of this tag. - * - * @return Reference - */ - public function getReference() - { - return $this->refers; - } - - /** - * Returns a string representation of this tag. - * - * @return string - */ - public function __toString() - { - return $this->refers . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php deleted file mode 100644 index 835fb0d..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php +++ /dev/null @@ -1,94 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}since tag in a Docblock. - */ -final class Since extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'since'; - - /** - * PCRE regular expression matching a version vector. - * Assumes the "x" modifier. - */ - const REGEX_VECTOR = '(?: - # Normal release vectors. - \d\S* - | - # VCS version vectors. Per PHPCS, they are expected to - # follow the form of the VCS name, followed by ":", followed - # by the version vector itself. - # By convention, popular VCSes like CVS, SVN and GIT use "$" - # around the actual version vector. - [^\s\:]+\:\s*\$[^\$]+\$ - )'; - - /** @var string The version vector. */ - private $version = ''; - - public function __construct($version = null, Description $description = null) - { - Assert::nullOrStringNotEmpty($version); - - $this->version = $version; - $this->description = $description; - } - - /** - * @return static - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::nullOrString($body); - if (empty($body)) { - return new static(); - } - - $matches = []; - if (! preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { - return null; - } - - return new static( - $matches[1], - $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context) - ); - } - - /** - * Gets the version section of the tag. - * - * @return string - */ - public function getVersion() - { - return $this->version; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->version . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php deleted file mode 100644 index 247b1b3..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php +++ /dev/null @@ -1,97 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}source tag in a Docblock. - */ -final class Source extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'source'; - - /** @var int The starting line, relative to the structural element's location. */ - private $startingLine = 1; - - /** @var int|null The number of lines, relative to the starting line. NULL means "to the end". */ - private $lineCount = null; - - public function __construct($startingLine, $lineCount = null, Description $description = null) - { - Assert::integerish($startingLine); - Assert::nullOrIntegerish($lineCount); - - $this->startingLine = (int)$startingLine; - $this->lineCount = $lineCount !== null ? (int)$lineCount : null; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::stringNotEmpty($body); - Assert::notNull($descriptionFactory); - - $startingLine = 1; - $lineCount = null; - $description = null; - - // Starting line / Number of lines / Description - if (preg_match('/^([1-9]\d*)\s*(?:((?1))\s+)?(.*)$/sux', $body, $matches)) { - $startingLine = (int)$matches[1]; - if (isset($matches[2]) && $matches[2] !== '') { - $lineCount = (int)$matches[2]; - } - - $description = $matches[3]; - } - - return new static($startingLine, $lineCount, $descriptionFactory->create($description, $context)); - } - - /** - * Gets the starting line. - * - * @return int The starting line, relative to the structural element's - * location. - */ - public function getStartingLine() - { - return $this->startingLine; - } - - /** - * Returns the number of lines. - * - * @return int|null The number of lines, relative to the starting line. NULL - * means "to the end". - */ - public function getLineCount() - { - return $this->lineCount; - } - - public function __toString() - { - return $this->startingLine - . ($this->lineCount !== null ? ' ' . $this->lineCount : '') - . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php deleted file mode 100644 index 349e773..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php +++ /dev/null @@ -1,72 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}throws tag in a Docblock. - */ -final class Throws extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'throws'; - - /** @var Type */ - private $type; - - public function __construct(Type $type, Description $description = null) - { - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/\s+/Su', $body, 2); - - $type = $typeResolver->resolve(isset($parts[0]) ? $parts[0] : '', $context); - $description = $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context); - - return new static($type, $description); - } - - /** - * Returns the type section of the variable. - * - * @return Type - */ - public function getType() - { - return $this->type; - } - - public function __toString() - { - return $this->type . ' ' . $this->description; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php deleted file mode 100644 index 00dc3e3..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php +++ /dev/null @@ -1,83 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Fqsen; -use phpDocumentor\Reflection\FqsenResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}uses tag in a Docblock. - */ -final class Uses extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'uses'; - - /** @var Fqsen */ - protected $refers = null; - - /** - * Initializes this tag. - * - * @param Fqsen $refers - * @param Description $description - */ - public function __construct(Fqsen $refers, Description $description = null) - { - $this->refers = $refers; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - FqsenResolver $resolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::string($body); - Assert::allNotNull([$resolver, $descriptionFactory]); - - $parts = preg_split('/\s+/Su', $body, 2); - - return new static( - $resolver->resolve($parts[0], $context), - $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context) - ); - } - - /** - * Returns the structural element this tag refers to. - * - * @return Fqsen - */ - public function getReference() - { - return $this->refers; - } - - /** - * Returns a string representation of this tag. - * - * @return string - */ - public function __toString() - { - return $this->refers . ' ' . $this->description->render(); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php deleted file mode 100644 index 8907c95..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php +++ /dev/null @@ -1,118 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Type; -use phpDocumentor\Reflection\TypeResolver; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}var tag in a Docblock. - */ -class Var_ extends BaseTag implements Factory\StaticMethod -{ - /** @var string */ - protected $name = 'var'; - - /** @var Type */ - private $type; - - /** @var string */ - protected $variableName = ''; - - /** - * @param string $variableName - * @param Type $type - * @param Description $description - */ - public function __construct($variableName, Type $type = null, Description $description = null) - { - Assert::string($variableName); - - $this->variableName = $variableName; - $this->type = $type; - $this->description = $description; - } - - /** - * {@inheritdoc} - */ - public static function create( - $body, - TypeResolver $typeResolver = null, - DescriptionFactory $descriptionFactory = null, - TypeContext $context = null - ) { - Assert::stringNotEmpty($body); - Assert::allNotNull([$typeResolver, $descriptionFactory]); - - $parts = preg_split('/(\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE); - $type = null; - $variableName = ''; - - // if the first item that is encountered is not a variable; it is a type - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) { - $type = $typeResolver->resolve(array_shift($parts), $context); - array_shift($parts); - } - - // if the next item starts with a $ or ...$ it must be the variable name - if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) { - $variableName = array_shift($parts); - array_shift($parts); - - if (substr($variableName, 0, 1) === '$') { - $variableName = substr($variableName, 1); - } - } - - $description = $descriptionFactory->create(implode('', $parts), $context); - - return new static($variableName, $type, $description); - } - - /** - * Returns the variable's name. - * - * @return string - */ - public function getVariableName() - { - return $this->variableName; - } - - /** - * Returns the variable's type or null if unknown. - * - * @return Type|null - */ - public function getType() - { - return $this->type; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return ($this->type ? $this->type . ' ' : '') - . (empty($this->variableName) ? null : ('$' . $this->variableName)) - . ($this->description ? ' ' . $this->description : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php deleted file mode 100644 index 7bb0420..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php +++ /dev/null @@ -1,94 +0,0 @@ - - * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com) - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\DocBlock\Tags; - -use phpDocumentor\Reflection\DocBlock\Description; -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\Types\Context as TypeContext; -use Webmozart\Assert\Assert; - -/** - * Reflection class for a {@}version tag in a Docblock. - */ -final class Version extends BaseTag implements Factory\StaticMethod -{ - protected $name = 'version'; - - /** - * PCRE regular expression matching a version vector. - * Assumes the "x" modifier. - */ - const REGEX_VECTOR = '(?: - # Normal release vectors. - \d\S* - | - # VCS version vectors. Per PHPCS, they are expected to - # follow the form of the VCS name, followed by ":", followed - # by the version vector itself. - # By convention, popular VCSes like CVS, SVN and GIT use "$" - # around the actual version vector. - [^\s\:]+\:\s*\$[^\$]+\$ - )'; - - /** @var string The version vector. */ - private $version = ''; - - public function __construct($version = null, Description $description = null) - { - Assert::nullOrStringNotEmpty($version); - - $this->version = $version; - $this->description = $description; - } - - /** - * @return static - */ - public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null) - { - Assert::nullOrString($body); - if (empty($body)) { - return new static(); - } - - $matches = []; - if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { - return null; - } - - return new static( - $matches[1], - $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context) - ); - } - - /** - * Gets the version section of the tag. - * - * @return string - */ - public function getVersion() - { - return $this->version; - } - - /** - * Returns a string representation for this tag. - * - * @return string - */ - public function __toString() - { - return $this->version . ($this->description ? ' ' . $this->description->render() : ''); - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php deleted file mode 100644 index 1bdb8f4..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php +++ /dev/null @@ -1,277 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -use phpDocumentor\Reflection\DocBlock\DescriptionFactory; -use phpDocumentor\Reflection\DocBlock\StandardTagFactory; -use phpDocumentor\Reflection\DocBlock\Tag; -use phpDocumentor\Reflection\DocBlock\TagFactory; -use Webmozart\Assert\Assert; - -final class DocBlockFactory implements DocBlockFactoryInterface -{ - /** @var DocBlock\DescriptionFactory */ - private $descriptionFactory; - - /** @var DocBlock\TagFactory */ - private $tagFactory; - - /** - * Initializes this factory with the required subcontractors. - * - * @param DescriptionFactory $descriptionFactory - * @param TagFactory $tagFactory - */ - public function __construct(DescriptionFactory $descriptionFactory, TagFactory $tagFactory) - { - $this->descriptionFactory = $descriptionFactory; - $this->tagFactory = $tagFactory; - } - - /** - * Factory method for easy instantiation. - * - * @param string[] $additionalTags - * - * @return DocBlockFactory - */ - public static function createInstance(array $additionalTags = []) - { - $fqsenResolver = new FqsenResolver(); - $tagFactory = new StandardTagFactory($fqsenResolver); - $descriptionFactory = new DescriptionFactory($tagFactory); - - $tagFactory->addService($descriptionFactory); - $tagFactory->addService(new TypeResolver($fqsenResolver)); - - $docBlockFactory = new self($descriptionFactory, $tagFactory); - foreach ($additionalTags as $tagName => $tagHandler) { - $docBlockFactory->registerTagHandler($tagName, $tagHandler); - } - - return $docBlockFactory; - } - - /** - * @param object|string $docblock A string containing the DocBlock to parse or an object supporting the - * getDocComment method (such as a ReflectionClass object). - * @param Types\Context $context - * @param Location $location - * - * @return DocBlock - */ - public function create($docblock, Types\Context $context = null, Location $location = null) - { - if (is_object($docblock)) { - if (!method_exists($docblock, 'getDocComment')) { - $exceptionMessage = 'Invalid object passed; the given object must support the getDocComment method'; - throw new \InvalidArgumentException($exceptionMessage); - } - - $docblock = $docblock->getDocComment(); - } - - Assert::stringNotEmpty($docblock); - - if ($context === null) { - $context = new Types\Context(''); - } - - $parts = $this->splitDocBlock($this->stripDocComment($docblock)); - list($templateMarker, $summary, $description, $tags) = $parts; - - return new DocBlock( - $summary, - $description ? $this->descriptionFactory->create($description, $context) : null, - array_filter($this->parseTagBlock($tags, $context), function ($tag) { - return $tag instanceof Tag; - }), - $context, - $location, - $templateMarker === '#@+', - $templateMarker === '#@-' - ); - } - - public function registerTagHandler($tagName, $handler) - { - $this->tagFactory->registerTagHandler($tagName, $handler); - } - - /** - * Strips the asterisks from the DocBlock comment. - * - * @param string $comment String containing the comment text. - * - * @return string - */ - private function stripDocComment($comment) - { - $comment = trim(preg_replace('#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]{0,1}(.*)?#u', '$1', $comment)); - - // reg ex above is not able to remove */ from a single line docblock - if (substr($comment, -2) === '*/') { - $comment = trim(substr($comment, 0, -2)); - } - - return str_replace(["\r\n", "\r"], "\n", $comment); - } - - /** - * Splits the DocBlock into a template marker, summary, description and block of tags. - * - * @param string $comment Comment to split into the sub-parts. - * - * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split. - * @author Mike van Riel for extending the regex with template marker support. - * - * @return string[] containing the template marker (if any), summary, description and a string containing the tags. - */ - private function splitDocBlock($comment) - { - // Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This - // method does not split tags so we return this verbatim as the fourth result (tags). This saves us the - // performance impact of running a regular expression - if (strpos($comment, '@') === 0) { - return ['', '', '', $comment]; - } - - // clears all extra horizontal whitespace from the line endings to prevent parsing issues - $comment = preg_replace('/\h*$/Sum', '', $comment); - - /* - * Splits the docblock into a template marker, summary, description and tags section. - * - * - The template marker is empty, #@+ or #@- if the DocBlock starts with either of those (a newline may - * occur after it and will be stripped). - * - The short description is started from the first character until a dot is encountered followed by a - * newline OR two consecutive newlines (horizontal whitespace is taken into account to consider spacing - * errors). This is optional. - * - The long description, any character until a new line is encountered followed by an @ and word - * characters (a tag). This is optional. - * - Tags; the remaining characters - * - * Big thanks to RichardJ for contributing this Regular Expression - */ - preg_match( - '/ - \A - # 1. Extract the template marker - (?:(\#\@\+|\#\@\-)\n?)? - - # 2. Extract the summary - (?: - (?! @\pL ) # The summary may not start with an @ - ( - [^\n.]+ - (?: - (?! \. \n | \n{2} ) # End summary upon a dot followed by newline or two newlines - [\n.] (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line - [^\n.]+ # Include anything else - )* - \.? - )? - ) - - # 3. Extract the description - (?: - \s* # Some form of whitespace _must_ precede a description because a summary must be there - (?! @\pL ) # The description may not start with an @ - ( - [^\n]+ - (?: \n+ - (?! [ \t]* @\pL ) # End description when an @ is found as first character on a new line - [^\n]+ # Include anything else - )* - ) - )? - - # 4. Extract the tags (anything that follows) - (\s+ [\s\S]*)? # everything that follows - /ux', - $comment, - $matches - ); - array_shift($matches); - - while (count($matches) < 4) { - $matches[] = ''; - } - - return $matches; - } - - /** - * Creates the tag objects. - * - * @param string $tags Tag block to parse. - * @param Types\Context $context Context of the parsed Tag - * - * @return DocBlock\Tag[] - */ - private function parseTagBlock($tags, Types\Context $context) - { - $tags = $this->filterTagBlock($tags); - if (!$tags) { - return []; - } - - $result = $this->splitTagBlockIntoTagLines($tags); - foreach ($result as $key => $tagLine) { - $result[$key] = $this->tagFactory->create(trim($tagLine), $context); - } - - return $result; - } - - /** - * @param string $tags - * - * @return string[] - */ - private function splitTagBlockIntoTagLines($tags) - { - $result = []; - foreach (explode("\n", $tags) as $tag_line) { - if (isset($tag_line[0]) && ($tag_line[0] === '@')) { - $result[] = $tag_line; - } else { - $result[count($result) - 1] .= "\n" . $tag_line; - } - } - - return $result; - } - - /** - * @param $tags - * @return string - */ - private function filterTagBlock($tags) - { - $tags = trim($tags); - if (!$tags) { - return null; - } - - if ('@' !== $tags[0]) { - // @codeCoverageIgnoreStart - // Can't simulate this; this only happens if there is an error with the parsing of the DocBlock that - // we didn't foresee. - throw new \LogicException('A tag block started with text instead of an at-sign(@): ' . $tags); - // @codeCoverageIgnoreEnd - } - - return $tags; - } -} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php deleted file mode 100644 index b353342..0000000 --- a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php +++ /dev/null @@ -1,23 +0,0 @@ - please note that if you want to pass partial class names that additional steps are necessary, see the - > chapter `Resolving partial classes and FQSENs` for more information. - -Where the FqsenResolver can resolve: - -- Constant expressions (i.e. `@see \MyNamespace\MY_CONSTANT`) -- Function expressions (i.e. `@see \MyNamespace\myFunction()`) -- Class expressions (i.e. `@see \MyNamespace\MyClass`) -- Interface expressions (i.e. `@see \MyNamespace\MyInterface`) -- Trait expressions (i.e. `@see \MyNamespace\MyTrait`) -- Class constant expressions (i.e. `@see \MyNamespace\MyClass::MY_CONSTANT`) -- Property expressions (i.e. `@see \MyNamespace\MyClass::$myProperty`) -- Method expressions (i.e. `@see \MyNamespace\MyClass::myMethod()`) - -## Resolving a type - -In order to resolve a type you will have to instantiate the class `\phpDocumentor\Reflection\TypeResolver` -and call its `resolve` method like this: - -```php -$typeResolver = new \phpDocumentor\Reflection\TypeResolver(); -$type = $typeResolver->resolve('string|integer'); -``` - -In this example you will receive a Value Object of class `\phpDocumentor\Reflection\Types\Compound` that has two -elements, one of type `\phpDocumentor\Reflection\Types\String_` and one of type -`\phpDocumentor\Reflection\Types\Integer`. - -The real power of this resolver is in its capability to expand partial class names into fully qualified class names; but -in order to do that we need an additional `\phpDocumentor\Reflection\Types\Context` class that will inform the resolver -in which namespace the given expression occurs and which namespace aliases (or imports) apply. - -## Resolving an FQSEN - -A Fully Qualified Structural Element Name is a reference to another element in your code bases and can be resolved using -the `\phpDocumentor\Reflection\FqsenResolver` class' `resolve` method, like this: - -```php -$fqsenResolver = new \phpDocumentor\Reflection\FqsenResolver(); -$fqsen = $fqsenResolver->resolve('\phpDocumentor\Reflection\FqsenResolver::resolve()'); -``` - -In this example we resolve a Fully Qualified Structural Element Name (meaning that it includes the full namespace, class -name and element name) and receive a Value Object of type `\phpDocumentor\Reflection\Fqsen`. - -The real power of this resolver is in its capability to expand partial element names into Fully Qualified Structural -Element Names; but in order to do that we need an additional `\phpDocumentor\Reflection\Types\Context` class that will -inform the resolver in which namespace the given expression occurs and which namespace aliases (or imports) apply. - -## Resolving partial Classes and Structural Element Names - -Perhaps the best feature of this library is that it knows how to resolve partial class names into fully qualified class -names. - -For example, you have this file: - -```php -namespace My\Example; - -use phpDocumentor\Reflection\Types; - -class Classy -{ - /** - * @var Types\Context - * @see Classy::otherFunction() - */ - public function __construct($context) {} - - public function otherFunction(){} -} -``` - -Suppose that you would want to resolve (and expand) the type in the `@var` tag and the element name in the `@see` tag. -For the resolvers to know how to expand partial names you have to provide a bit of _Context_ for them by instantiating -a new class named `\phpDocumentor\Reflection\Types\Context` with the name of the namespace and the aliases that are in -play. - -### Creating a Context - -You can do this by manually creating a Context like this: - -```php -$context = new \phpDocumentor\Reflection\Types\Context( - '\My\Example', - [ 'Types' => '\phpDocumentor\Reflection\Types'] -); -``` - -Or by using the `\phpDocumentor\Reflection\Types\ContextFactory` to instantiate a new context based on a Reflector -object or by providing the namespace that you'd like to extract and the source code of the file in which the given -type expression occurs. - -```php -$contextFactory = new \phpDocumentor\Reflection\Types\ContextFactory(); -$context = $contextFactory->createFromReflector(new ReflectionMethod('\My\Example\Classy', '__construct')); -``` - -or - -```php -$contextFactory = new \phpDocumentor\Reflection\Types\ContextFactory(); -$context = $contextFactory->createForNamespace('\My\Example', file_get_contents('My/Example/Classy.php')); -``` - -### Using the Context - -After you have obtained a Context it is just a matter of passing it along with the `resolve` method of either Resolver -class as second argument and the Resolvers will take this into account when resolving partial names. - -To obtain the resolved class name for the `@var` tag in the example above you can do: - -```php -$typeResolver = new \phpDocumentor\Reflection\TypeResolver(); -$type = $typeResolver->resolve('Types\Context', $context); -``` - -When you do this you will receive an object of class `\phpDocumentor\Reflection\Types\Object_` for which you can call -the `getFqsen` method to receive a Value Object that represents the complete FQSEN. So that would be -`phpDocumentor\Reflection\Types\Context`. - -> Why is the FQSEN wrapped in another object `Object_`? -> -> The resolve method of the TypeResolver only returns object with the interface `Type` and the FQSEN is a common -> type that does not represent a Type. Also: in some cases a type can represent an "Untyped Object", meaning that it -> is an object (signified by the `object` keyword) but does not refer to a specific element using an FQSEN. - -Another example is on how to resolve the FQSEN of a method as can be seen with the `@see` tag in the example above. To -resolve that you can do the following: - -```php -$fqsenResolver = new \phpDocumentor\Reflection\FqsenResolver(); -$type = $fqsenResolver->resolve('Classy::otherFunction()', $context); -``` - -Because Classy is a Class in the current namespace its FQSEN will have the `My\Example` namespace and by calling the -`resolve` method of the FQSEN Resolver you will receive an `Fqsen` object that refers to -`\My\Example\Classy::otherFunction()`. diff --git a/vendor/phpdocumentor/type-resolver/composer.json b/vendor/phpdocumentor/type-resolver/composer.json deleted file mode 100644 index 82ead15..0000000 --- a/vendor/phpdocumentor/type-resolver/composer.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "phpdocumentor/type-resolver", - "type": "library", - "license": "MIT", - "authors": [ - {"name": "Mike van Riel", "email": "me@mikevanriel.com"} - ], - "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" - }, - "autoload": { - "psr-4": {"phpDocumentor\\Reflection\\": ["src/"]} - }, - "autoload-dev": { - "psr-4": {"phpDocumentor\\Reflection\\": ["tests/unit"]} - }, - "require-dev": { - "phpunit/phpunit": "^5.2||^4.8.24", - "mockery/mockery": "^0.9.4" - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php b/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php deleted file mode 100644 index 9aa6ba3..0000000 --- a/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -use phpDocumentor\Reflection\Types\Context; - -class FqsenResolver -{ - /** @var string Definition of the NAMESPACE operator in PHP */ - const OPERATOR_NAMESPACE = '\\'; - - public function resolve($fqsen, Context $context = null) - { - if ($context === null) { - $context = new Context(''); - } - - if ($this->isFqsen($fqsen)) { - return new Fqsen($fqsen); - } - - return $this->resolvePartialStructuralElementName($fqsen, $context); - } - - /** - * Tests whether the given type is a Fully Qualified Structural Element Name. - * - * @param string $type - * - * @return bool - */ - private function isFqsen($type) - { - return strpos($type, self::OPERATOR_NAMESPACE) === 0; - } - - /** - * Resolves a partial Structural Element Name (i.e. `Reflection\DocBlock`) to its FQSEN representation - * (i.e. `\phpDocumentor\Reflection\DocBlock`) based on the Namespace and aliases mentioned in the Context. - * - * @param string $type - * @param Context $context - * - * @return Fqsen - * @throws \InvalidArgumentException when type is not a valid FQSEN. - */ - private function resolvePartialStructuralElementName($type, Context $context) - { - $typeParts = explode(self::OPERATOR_NAMESPACE, $type, 2); - - $namespaceAliases = $context->getNamespaceAliases(); - - // if the first segment is not an alias; prepend namespace name and return - if (!isset($namespaceAliases[$typeParts[0]])) { - $namespace = $context->getNamespace(); - if ('' !== $namespace) { - $namespace .= self::OPERATOR_NAMESPACE; - } - - return new Fqsen(self::OPERATOR_NAMESPACE . $namespace . $type); - } - - $typeParts[0] = $namespaceAliases[$typeParts[0]]; - - return new Fqsen(self::OPERATOR_NAMESPACE . implode(self::OPERATOR_NAMESPACE, $typeParts)); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Type.php b/vendor/phpdocumentor/type-resolver/src/Type.php deleted file mode 100644 index 33ca559..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Type.php +++ /dev/null @@ -1,18 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -interface Type -{ - public function __toString(); -} diff --git a/vendor/phpdocumentor/type-resolver/src/TypeResolver.php b/vendor/phpdocumentor/type-resolver/src/TypeResolver.php deleted file mode 100644 index 08b2a5f..0000000 --- a/vendor/phpdocumentor/type-resolver/src/TypeResolver.php +++ /dev/null @@ -1,298 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection; - -use phpDocumentor\Reflection\Types\Array_; -use phpDocumentor\Reflection\Types\Compound; -use phpDocumentor\Reflection\Types\Context; -use phpDocumentor\Reflection\Types\Iterable_; -use phpDocumentor\Reflection\Types\Nullable; -use phpDocumentor\Reflection\Types\Object_; - -final class TypeResolver -{ - /** @var string Definition of the ARRAY operator for types */ - const OPERATOR_ARRAY = '[]'; - - /** @var string Definition of the NAMESPACE operator in PHP */ - const OPERATOR_NAMESPACE = '\\'; - - /** @var string[] List of recognized keywords and unto which Value Object they map */ - private $keywords = array( - 'string' => Types\String_::class, - 'int' => Types\Integer::class, - 'integer' => Types\Integer::class, - 'bool' => Types\Boolean::class, - 'boolean' => Types\Boolean::class, - 'float' => Types\Float_::class, - 'double' => Types\Float_::class, - 'object' => Object_::class, - 'mixed' => Types\Mixed_::class, - 'array' => Array_::class, - 'resource' => Types\Resource_::class, - 'void' => Types\Void_::class, - 'null' => Types\Null_::class, - 'scalar' => Types\Scalar::class, - 'callback' => Types\Callable_::class, - 'callable' => Types\Callable_::class, - 'false' => Types\Boolean::class, - 'true' => Types\Boolean::class, - 'self' => Types\Self_::class, - '$this' => Types\This::class, - 'static' => Types\Static_::class, - 'parent' => Types\Parent_::class, - 'iterable' => Iterable_::class, - ); - - /** @var FqsenResolver */ - private $fqsenResolver; - - /** - * Initializes this TypeResolver with the means to create and resolve Fqsen objects. - * - * @param FqsenResolver $fqsenResolver - */ - public function __construct(FqsenResolver $fqsenResolver = null) - { - $this->fqsenResolver = $fqsenResolver ?: new FqsenResolver(); - } - - /** - * Analyzes the given type and returns the FQCN variant. - * - * When a type is provided this method checks whether it is not a keyword or - * Fully Qualified Class Name. If so it will use the given namespace and - * aliases to expand the type to a FQCN representation. - * - * This method only works as expected if the namespace and aliases are set; - * no dynamic reflection is being performed here. - * - * @param string $type The relative or absolute type. - * @param Context $context - * - * @uses Context::getNamespace() to determine with what to prefix the type name. - * @uses Context::getNamespaceAliases() to check whether the first part of the relative type name should not be - * replaced with another namespace. - * - * @return Type|null - */ - public function resolve($type, Context $context = null) - { - if (!is_string($type)) { - throw new \InvalidArgumentException( - 'Attempted to resolve type but it appeared not to be a string, received: ' . var_export($type, true) - ); - } - - $type = trim($type); - if (!$type) { - throw new \InvalidArgumentException('Attempted to resolve "' . $type . '" but it appears to be empty'); - } - - if ($context === null) { - $context = new Context(''); - } - - switch (true) { - case $this->isNullableType($type): - return $this->resolveNullableType($type, $context); - case $this->isKeyword($type): - return $this->resolveKeyword($type); - case ($this->isCompoundType($type)): - return $this->resolveCompoundType($type, $context); - case $this->isTypedArray($type): - return $this->resolveTypedArray($type, $context); - case $this->isFqsen($type): - return $this->resolveTypedObject($type); - case $this->isPartialStructuralElementName($type): - return $this->resolveTypedObject($type, $context); - // @codeCoverageIgnoreStart - default: - // I haven't got the foggiest how the logic would come here but added this as a defense. - throw new \RuntimeException( - 'Unable to resolve type "' . $type . '", there is no known method to resolve it' - ); - } - // @codeCoverageIgnoreEnd - } - - /** - * Adds a keyword to the list of Keywords and associates it with a specific Value Object. - * - * @param string $keyword - * @param string $typeClassName - * - * @return void - */ - public function addKeyword($keyword, $typeClassName) - { - if (!class_exists($typeClassName)) { - throw new \InvalidArgumentException( - 'The Value Object that needs to be created with a keyword "' . $keyword . '" must be an existing class' - . ' but we could not find the class ' . $typeClassName - ); - } - - if (!in_array(Type::class, class_implements($typeClassName))) { - throw new \InvalidArgumentException( - 'The class "' . $typeClassName . '" must implement the interface "phpDocumentor\Reflection\Type"' - ); - } - - $this->keywords[$keyword] = $typeClassName; - } - - /** - * Detects whether the given type represents an array. - * - * @param string $type A relative or absolute type as defined in the phpDocumentor documentation. - * - * @return bool - */ - private function isTypedArray($type) - { - return substr($type, -2) === self::OPERATOR_ARRAY; - } - - /** - * Detects whether the given type represents a PHPDoc keyword. - * - * @param string $type A relative or absolute type as defined in the phpDocumentor documentation. - * - * @return bool - */ - private function isKeyword($type) - { - return in_array(strtolower($type), array_keys($this->keywords), true); - } - - /** - * Detects whether the given type represents a relative structural element name. - * - * @param string $type A relative or absolute type as defined in the phpDocumentor documentation. - * - * @return bool - */ - private function isPartialStructuralElementName($type) - { - return ($type[0] !== self::OPERATOR_NAMESPACE) && !$this->isKeyword($type); - } - - /** - * Tests whether the given type is a Fully Qualified Structural Element Name. - * - * @param string $type - * - * @return bool - */ - private function isFqsen($type) - { - return strpos($type, self::OPERATOR_NAMESPACE) === 0; - } - - /** - * Tests whether the given type is a compound type (i.e. `string|int`). - * - * @param string $type - * - * @return bool - */ - private function isCompoundType($type) - { - return strpos($type, '|') !== false; - } - - /** - * Test whether the given type is a nullable type (i.e. `?string`) - * - * @param string $type - * - * @return bool - */ - private function isNullableType($type) - { - return $type[0] === '?'; - } - - /** - * Resolves the given typed array string (i.e. `string[]`) into an Array object with the right types set. - * - * @param string $type - * @param Context $context - * - * @return Array_ - */ - private function resolveTypedArray($type, Context $context) - { - return new Array_($this->resolve(substr($type, 0, -2), $context)); - } - - /** - * Resolves the given keyword (such as `string`) into a Type object representing that keyword. - * - * @param string $type - * - * @return Type - */ - private function resolveKeyword($type) - { - $className = $this->keywords[strtolower($type)]; - - return new $className(); - } - - /** - * Resolves the given FQSEN string into an FQSEN object. - * - * @param string $type - * @param Context|null $context - * - * @return Object_ - */ - private function resolveTypedObject($type, Context $context = null) - { - return new Object_($this->fqsenResolver->resolve($type, $context)); - } - - /** - * Resolves a compound type (i.e. `string|int`) into the appropriate Type objects or FQSEN. - * - * @param string $type - * @param Context $context - * - * @return Compound - */ - private function resolveCompoundType($type, Context $context) - { - $types = []; - - foreach (explode('|', $type) as $part) { - $types[] = $this->resolve($part, $context); - } - - return new Compound($types); - } - - /** - * Resolve nullable types (i.e. `?string`) into a Nullable type wrapper - * - * @param string $type - * @param Context $context - * - * @return Nullable - */ - private function resolveNullableType($type, Context $context) - { - return new Nullable($this->resolve(ltrim($type, '?'), $context)); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Array_.php b/vendor/phpdocumentor/type-resolver/src/Types/Array_.php deleted file mode 100644 index 49b7c6e..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Array_.php +++ /dev/null @@ -1,86 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Represents an array type as described in the PSR-5, the PHPDoc Standard. - * - * An array can be represented in two forms: - * - * 1. Untyped (`array`), where the key and value type is unknown and hence classified as 'Mixed_'. - * 2. Types (`string[]`), where the value type is provided by preceding an opening and closing square bracket with a - * type name. - */ -final class Array_ implements Type -{ - /** @var Type */ - private $valueType; - - /** @var Type */ - private $keyType; - - /** - * Initializes this representation of an array with the given Type or Fqsen. - * - * @param Type $valueType - * @param Type $keyType - */ - public function __construct(Type $valueType = null, Type $keyType = null) - { - if ($keyType === null) { - $keyType = new Compound([ new String_(), new Integer() ]); - } - if ($valueType === null) { - $valueType = new Mixed_(); - } - - $this->valueType = $valueType; - $this->keyType = $keyType; - } - - /** - * Returns the type for the keys of this array. - * - * @return Type - */ - public function getKeyType() - { - return $this->keyType; - } - - /** - * Returns the value for the keys of this array. - * - * @return Type - */ - public function getValueType() - { - return $this->valueType; - } - - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - if ($this->valueType instanceof Mixed_) { - return 'array'; - } - - return $this->valueType . '[]'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Boolean.php b/vendor/phpdocumentor/type-resolver/src/Types/Boolean.php deleted file mode 100644 index f82b19e..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Boolean.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a Boolean type. - */ -final class Boolean implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'bool'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Callable_.php b/vendor/phpdocumentor/type-resolver/src/Types/Callable_.php deleted file mode 100644 index 68ebfbd..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Callable_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a Callable type. - */ -final class Callable_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'callable'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Compound.php b/vendor/phpdocumentor/type-resolver/src/Types/Compound.php deleted file mode 100644 index be986c3..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Compound.php +++ /dev/null @@ -1,93 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use ArrayIterator; -use IteratorAggregate; -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a Compound Type. - * - * A Compound Type is not so much a special keyword or object reference but is a series of Types that are separated - * using an OR operator (`|`). This combination of types signifies that whatever is associated with this compound type - * may contain a value with any of the given types. - */ -final class Compound implements Type, IteratorAggregate -{ - /** @var Type[] */ - private $types; - - /** - * Initializes a compound type (i.e. `string|int`) and tests if the provided types all implement the Type interface. - * - * @param Type[] $types - * @throws \InvalidArgumentException when types are not all instance of Type - */ - public function __construct(array $types) - { - foreach ($types as $type) { - if (!$type instanceof Type) { - throw new \InvalidArgumentException('A compound type can only have other types as elements'); - } - } - - $this->types = $types; - } - - /** - * Returns the type at the given index. - * - * @param integer $index - * - * @return Type|null - */ - public function get($index) - { - if (!$this->has($index)) { - return null; - } - - return $this->types[$index]; - } - - /** - * Tests if this compound type has a type with the given index. - * - * @param integer $index - * - * @return bool - */ - public function has($index) - { - return isset($this->types[$index]); - } - - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return implode('|', $this->types); - } - - /** - * {@inheritdoc} - */ - public function getIterator() - { - return new ArrayIterator($this->types); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Context.php b/vendor/phpdocumentor/type-resolver/src/Types/Context.php deleted file mode 100644 index 4e9ce5a..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Context.php +++ /dev/null @@ -1,84 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -/** - * Provides information about the Context in which the DocBlock occurs that receives this context. - * - * A DocBlock does not know of its own accord in which namespace it occurs and which namespace aliases are applicable - * for the block of code in which it is in. This information is however necessary to resolve Class names in tags since - * you can provide a short form or make use of namespace aliases. - * - * The phpDocumentor Reflection component knows how to create this class but if you use the DocBlock parser from your - * own application it is possible to generate a Context class using the ContextFactory; this will analyze the file in - * which an associated class resides for its namespace and imports. - * - * @see ContextFactory::createFromClassReflector() - * @see ContextFactory::createForNamespace() - */ -final class Context -{ - /** @var string The current namespace. */ - private $namespace; - - /** @var array List of namespace aliases => Fully Qualified Namespace. */ - private $namespaceAliases; - - /** - * Initializes the new context and normalizes all passed namespaces to be in Qualified Namespace Name (QNN) - * format (without a preceding `\`). - * - * @param string $namespace The namespace where this DocBlock resides in. - * @param array $namespaceAliases List of namespace aliases => Fully Qualified Namespace. - */ - public function __construct($namespace, array $namespaceAliases = []) - { - $this->namespace = ('global' !== $namespace && 'default' !== $namespace) - ? trim((string)$namespace, '\\') - : ''; - - foreach ($namespaceAliases as $alias => $fqnn) { - if ($fqnn[0] === '\\') { - $fqnn = substr($fqnn, 1); - } - if ($fqnn[strlen($fqnn) - 1] === '\\') { - $fqnn = substr($fqnn, 0, -1); - } - - $namespaceAliases[$alias] = $fqnn; - } - - $this->namespaceAliases = $namespaceAliases; - } - - /** - * Returns the Qualified Namespace Name (thus without `\` in front) where the associated element is in. - * - * @return string - */ - public function getNamespace() - { - return $this->namespace; - } - - /** - * Returns a list of Qualified Namespace Names (thus without `\` in front) that are imported, the keys represent - * the alias for the imported Namespace. - * - * @return string[] - */ - public function getNamespaceAliases() - { - return $this->namespaceAliases; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php b/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php deleted file mode 100644 index 30936a3..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php +++ /dev/null @@ -1,210 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -/** - * Convenience class to create a Context for DocBlocks when not using the Reflection Component of phpDocumentor. - * - * For a DocBlock to be able to resolve types that use partial namespace names or rely on namespace imports we need to - * provide a bit of context so that the DocBlock can read that and based on it decide how to resolve the types to - * Fully Qualified names. - * - * @see Context for more information. - */ -final class ContextFactory -{ - /** The literal used at the end of a use statement. */ - const T_LITERAL_END_OF_USE = ';'; - - /** The literal used between sets of use statements */ - const T_LITERAL_USE_SEPARATOR = ','; - - /** - * Build a Context given a Class Reflection. - * - * @param \Reflector $reflector - * - * @see Context for more information on Contexts. - * - * @return Context - */ - public function createFromReflector(\Reflector $reflector) - { - if (method_exists($reflector, 'getDeclaringClass')) { - $reflector = $reflector->getDeclaringClass(); - } - - $fileName = $reflector->getFileName(); - $namespace = $reflector->getNamespaceName(); - - if (file_exists($fileName)) { - return $this->createForNamespace($namespace, file_get_contents($fileName)); - } - - return new Context($namespace, []); - } - - /** - * Build a Context for a namespace in the provided file contents. - * - * @param string $namespace It does not matter if a `\` precedes the namespace name, this method first normalizes. - * @param string $fileContents the file's contents to retrieve the aliases from with the given namespace. - * - * @see Context for more information on Contexts. - * - * @return Context - */ - public function createForNamespace($namespace, $fileContents) - { - $namespace = trim($namespace, '\\'); - $useStatements = []; - $currentNamespace = ''; - $tokens = new \ArrayIterator(token_get_all($fileContents)); - - while ($tokens->valid()) { - switch ($tokens->current()[0]) { - case T_NAMESPACE: - $currentNamespace = $this->parseNamespace($tokens); - break; - case T_CLASS: - // Fast-forward the iterator through the class so that any - // T_USE tokens found within are skipped - these are not - // valid namespace use statements so should be ignored. - $braceLevel = 0; - $firstBraceFound = false; - while ($tokens->valid() && ($braceLevel > 0 || !$firstBraceFound)) { - if ($tokens->current() === '{' - || $tokens->current()[0] === T_CURLY_OPEN - || $tokens->current()[0] === T_DOLLAR_OPEN_CURLY_BRACES) { - if (!$firstBraceFound) { - $firstBraceFound = true; - } - $braceLevel++; - } - - if ($tokens->current() === '}') { - $braceLevel--; - } - $tokens->next(); - } - break; - case T_USE: - if ($currentNamespace === $namespace) { - $useStatements = array_merge($useStatements, $this->parseUseStatement($tokens)); - } - break; - } - $tokens->next(); - } - - return new Context($namespace, $useStatements); - } - - /** - * Deduce the name from tokens when we are at the T_NAMESPACE token. - * - * @param \ArrayIterator $tokens - * - * @return string - */ - private function parseNamespace(\ArrayIterator $tokens) - { - // skip to the first string or namespace separator - $this->skipToNextStringOrNamespaceSeparator($tokens); - - $name = ''; - while ($tokens->valid() && ($tokens->current()[0] === T_STRING || $tokens->current()[0] === T_NS_SEPARATOR) - ) { - $name .= $tokens->current()[1]; - $tokens->next(); - } - - return $name; - } - - /** - * Deduce the names of all imports when we are at the T_USE token. - * - * @param \ArrayIterator $tokens - * - * @return string[] - */ - private function parseUseStatement(\ArrayIterator $tokens) - { - $uses = []; - $continue = true; - - while ($continue) { - $this->skipToNextStringOrNamespaceSeparator($tokens); - - list($alias, $fqnn) = $this->extractUseStatement($tokens); - $uses[$alias] = $fqnn; - if ($tokens->current()[0] === self::T_LITERAL_END_OF_USE) { - $continue = false; - } - } - - return $uses; - } - - /** - * Fast-forwards the iterator as longs as we don't encounter a T_STRING or T_NS_SEPARATOR token. - * - * @param \ArrayIterator $tokens - * - * @return void - */ - private function skipToNextStringOrNamespaceSeparator(\ArrayIterator $tokens) - { - while ($tokens->valid() && ($tokens->current()[0] !== T_STRING) && ($tokens->current()[0] !== T_NS_SEPARATOR)) { - $tokens->next(); - } - } - - /** - * Deduce the namespace name and alias of an import when we are at the T_USE token or have not reached the end of - * a USE statement yet. - * - * @param \ArrayIterator $tokens - * - * @return string - */ - private function extractUseStatement(\ArrayIterator $tokens) - { - $result = ['']; - while ($tokens->valid() - && ($tokens->current()[0] !== self::T_LITERAL_USE_SEPARATOR) - && ($tokens->current()[0] !== self::T_LITERAL_END_OF_USE) - ) { - if ($tokens->current()[0] === T_AS) { - $result[] = ''; - } - if ($tokens->current()[0] === T_STRING || $tokens->current()[0] === T_NS_SEPARATOR) { - $result[count($result) - 1] .= $tokens->current()[1]; - } - $tokens->next(); - } - - if (count($result) == 1) { - $backslashPos = strrpos($result[0], '\\'); - - if (false !== $backslashPos) { - $result[] = substr($result[0], $backslashPos + 1); - } else { - $result[] = $result[0]; - } - } - - return array_reverse($result); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Float_.php b/vendor/phpdocumentor/type-resolver/src/Types/Float_.php deleted file mode 100644 index e58d896..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Float_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a Float. - */ -final class Float_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'float'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Integer.php b/vendor/phpdocumentor/type-resolver/src/Types/Integer.php deleted file mode 100644 index be4555e..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Integer.php +++ /dev/null @@ -1,28 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -final class Integer implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'int'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php b/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php deleted file mode 100644 index 0cbf48f..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing iterable type - */ -final class Iterable_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'iterable'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php b/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php deleted file mode 100644 index c1c165f..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing an unknown, or mixed, type. - */ -final class Mixed_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'mixed'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Null_.php b/vendor/phpdocumentor/type-resolver/src/Types/Null_.php deleted file mode 100644 index 203b422..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Null_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a null value or type. - */ -final class Null_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'null'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php b/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php deleted file mode 100644 index 3c6d1b1..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Nullable.php +++ /dev/null @@ -1,56 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing a nullable type. The real type is wrapped. - */ -final class Nullable implements Type -{ - /** - * @var Type - */ - private $realType; - - /** - * Initialises this nullable type using the real type embedded - * - * @param Type $realType - */ - public function __construct(Type $realType) - { - $this->realType = $realType; - } - - /** - * Provide access to the actual type directly, if needed. - * - * @return Type - */ - public function getActualType() - { - return $this->realType; - } - - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return '?' . $this->realType->__toString(); - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Object_.php b/vendor/phpdocumentor/type-resolver/src/Types/Object_.php deleted file mode 100644 index 389f7c7..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Object_.php +++ /dev/null @@ -1,71 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Fqsen; -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing an object. - * - * An object can be either typed or untyped. When an object is typed it means that it has an identifier, the FQSEN, - * pointing to an element in PHP. Object types that are untyped do not refer to a specific class but represent objects - * in general. - */ -final class Object_ implements Type -{ - /** @var Fqsen|null */ - private $fqsen; - - /** - * Initializes this object with an optional FQSEN, if not provided this object is considered 'untyped'. - * - * @param Fqsen $fqsen - * @throws \InvalidArgumentException when provided $fqsen is not a valid type. - */ - public function __construct(Fqsen $fqsen = null) - { - if (strpos((string)$fqsen, '::') !== false || strpos((string)$fqsen, '()') !== false) { - throw new \InvalidArgumentException( - 'Object types can only refer to a class, interface or trait but a method, function, constant or ' - . 'property was received: ' . (string)$fqsen - ); - } - - $this->fqsen = $fqsen; - } - - /** - * Returns the FQSEN associated with this object. - * - * @return Fqsen|null - */ - public function getFqsen() - { - return $this->fqsen; - } - - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - if ($this->fqsen) { - return (string)$this->fqsen; - } - - return 'object'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php b/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php deleted file mode 100644 index aabdbfb..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php +++ /dev/null @@ -1,33 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'parent' type. - * - * Parent, as a Type, represents the parent class of class in which the associated element was defined. - */ -final class Parent_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'parent'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Resource_.php b/vendor/phpdocumentor/type-resolver/src/Types/Resource_.php deleted file mode 100644 index a1b613d..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Resource_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'resource' Type. - */ -final class Resource_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'resource'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Scalar.php b/vendor/phpdocumentor/type-resolver/src/Types/Scalar.php deleted file mode 100644 index 1e2a660..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Scalar.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'scalar' pseudo-type, which is either a string, integer, float or boolean. - */ -final class Scalar implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'scalar'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Self_.php b/vendor/phpdocumentor/type-resolver/src/Types/Self_.php deleted file mode 100644 index 1ba3fc5..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Self_.php +++ /dev/null @@ -1,33 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'self' type. - * - * Self, as a Type, represents the class in which the associated element was defined. - */ -final class Self_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'self'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Static_.php b/vendor/phpdocumentor/type-resolver/src/Types/Static_.php deleted file mode 100644 index 9eb6729..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Static_.php +++ /dev/null @@ -1,38 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the 'static' type. - * - * Self, as a Type, represents the class in which the associated element was called. This differs from self as self does - * not take inheritance into account but static means that the return type is always that of the class of the called - * element. - * - * See the documentation on late static binding in the PHP Documentation for more information on the difference between - * static and self. - */ -final class Static_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'static'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/String_.php b/vendor/phpdocumentor/type-resolver/src/Types/String_.php deleted file mode 100644 index 8db5968..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/String_.php +++ /dev/null @@ -1,31 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the type 'string'. - */ -final class String_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'string'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/This.php b/vendor/phpdocumentor/type-resolver/src/Types/This.php deleted file mode 100644 index c098a93..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/This.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the '$this' pseudo-type. - * - * $this, as a Type, represents the instance of the class associated with the element as it was called. $this is - * commonly used when documenting fluent interfaces since it represents that the same object is returned. - */ -final class This implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return '$this'; - } -} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Void_.php b/vendor/phpdocumentor/type-resolver/src/Types/Void_.php deleted file mode 100644 index 3d1be27..0000000 --- a/vendor/phpdocumentor/type-resolver/src/Types/Void_.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @license http://www.opensource.org/licenses/mit-license.php MIT - * @link http://phpdoc.org - */ - -namespace phpDocumentor\Reflection\Types; - -use phpDocumentor\Reflection\Type; - -/** - * Value Object representing the pseudo-type 'void'. - * - * Void is generally only used when working with return types as it signifies that the method intentionally does not - * return any value. - */ -final class Void_ implements Type -{ - /** - * Returns a rendered output of the Type as it would be used in a DocBlock. - * - * @return string - */ - public function __toString() - { - return 'void'; - } -} diff --git a/vendor/phpoption/phpoption/.gitignore b/vendor/phpoption/phpoption/.gitignore deleted file mode 100644 index 730ff6a..0000000 --- a/vendor/phpoption/phpoption/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -vendor/ -phpunit.xml -composer.lock diff --git a/vendor/phpoption/phpoption/.travis.yml b/vendor/phpoption/phpoption/.travis.yml deleted file mode 100644 index 5c277d8..0000000 --- a/vendor/phpoption/phpoption/.travis.yml +++ /dev/null @@ -1,17 +0,0 @@ -language: php -php: - - 5.3 - - 5.4 - - 5.5 - - hhvm - -before_script: - - wget http://getcomposer.org/composer.phar - - php composer.phar install --dev - -script: - - phpunit - -matrix: - allow_failures: - - php: hhvm diff --git a/vendor/phpoption/phpoption/LICENSE b/vendor/phpoption/phpoption/LICENSE deleted file mode 100644 index f49a4e1..0000000 --- a/vendor/phpoption/phpoption/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/vendor/phpoption/phpoption/README.md b/vendor/phpoption/phpoption/README.md deleted file mode 100644 index fd5af9e..0000000 --- a/vendor/phpoption/phpoption/README.md +++ /dev/null @@ -1,178 +0,0 @@ -PHP Option Type [![Build Status](https://secure.travis-ci.org/schmittjoh/php-option.png)](http://travis-ci.org/schmittjoh/php-option) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/schmittjoh/php-option/badges/quality-score.png?s=7feb0fcc5150b36216f7683292ed8480aab1628b)](https://scrutinizer-ci.com/g/schmittjoh/php-option/) -=============== -This adds an Option type for PHP. - -The Option type is intended for cases where you sometimes might return a value -(typically an object), and sometimes you might return no value (typically null) -depending on arguments, or other runtime factors. - -Often times, you forget to handle the case where no value is returned. Not intentionally -of course, but maybe you did not account for all possible states of the system; or maybe you -indeed covered all cases, then time goes on, code is refactored, some of these your checks -might become invalid, or incomplete. Suddenly, without noticing, the no value case is not -handled anymore. As a result, you might sometimes get fatal PHP errors telling you that -you called a method on a non-object; users might see blank pages, or worse. - -On one hand, the Option type forces a developer to consciously think about both cases -(returning a value, or returning no value). That in itself will already make your code more -robust. On the other hand, the Option type also allows the API developer to provide -more concise API methods, and empowers the API user in how he consumes these methods. - -Installation -============ -Installation is super-easy via composer - -``` -composer require phpoption/phpoption -``` - -or add it to your composer.json file. - - -Usage -===== - -Using the Option Type in your API ---------------------------------- -```php -class MyRepository -{ - public function findSomeEntity($criteria) - { - if (null !== $entity = $this->em->find(...)) { - return new \PhpOption\Some($entity); - } - - // We use a singleton, for the None case. - return \PhpOption\None::create(); - } -} -``` - -If you are consuming an existing library, you can also use a shorter version -which by default treats ``null`` as ``None``, and everything else as ``Some`` case: - -```php -class MyRepository -{ - public function findSomeEntity($criteria) - { - return \PhpOption\Option::fromValue($this->em->find(...)); - - // or, if you want to change the none value to false for example: - return \PhpOption\Option::fromValue($this->em->find(...), false); - } -} -``` - -Case 1: You always Require an Entity in Calling Code ----------------------------------------------------- -```php -$entity = $repo->findSomeEntity(...)->get(); // returns entity, or throws exception -``` - -Case 2: Fallback to Default Value If Not Available --------------------------------------------------- -```php -$entity = $repo->findSomeEntity(...)->getOrElse(new Entity()); - -// Or, if you want to lazily create the entity. -$entity = $repo->findSomeEntity(...)->getOrCall(function() { - return new Entity(); -}); -``` - -More Examples -============= - -No More Boiler Plate Code -------------------------- -```php -// Before -if (null === $entity = $this->findSomeEntity()) { - throw new NotFoundException(); -} -echo $entity->name; - -// After -echo $this->findSomeEntity()->get()->name; -``` - -No More Control Flow Exceptions -------------------------------- -```php -// Before -try { - $entity = $this->findSomeEntity(); -} catch (NotFoundException $ex) { - $entity = new Entity(); -} - -// After -$entity = $this->findSomeEntity()->getOrElse(new Entity()); -``` - -More Concise Null Handling --------------------------- -```php -// Before -$entity = $this->findSomeEntity(); -if (null === $entity) { - return new Entity(); -} - -return $entity; - -// After -return $this->findSomeEntity()->getOrElse(new Entity()); -``` - -Trying Multiple Alternative Options ------------------------------------ -If you'd like to try multiple alternatives, the ``orElse`` method allows you to -do this very elegantly: - -```php -return $this->findSomeEntity() - ->orElse($this->findSomeOtherEntity()) - ->orElse($this->createEntity()); -``` -The first option which is non-empty will be returned. This is especially useful -with lazy-evaluated options, see below. - -Lazy-Evaluated Options ----------------------- -The above example has the flaw that we would need to evaluate all options when -the method is called which creates unnecessary overhead if the first option is -already non-empty. - -Fortunately, we can easily solve this by using the ``LazyOption`` class: - -```php -return $this->findSomeEntity() - ->orElse(new LazyOption(array($this, 'findSomeOtherEntity'))) - ->orElse(new LazyOption(array($this, 'createEntity'))); -``` - -This way, only the options that are necessary will actually be evaluated. - - -Performance Considerations -========================== -Of course, performance is important. Attached is a performance benchmark which -you can run on a machine of your choosing. - -The overhead incurred by the Option type comes down to the time that it takes to -create one object, our wrapper. Also, we need to perform one additional method call -to retrieve the value from the wrapper. - -* Overhead: Creation of 1 Object, and 1 Method Call -* Average Overhead per Invocation (some case/value returned): 0.000000761s (that is 761 nano seconds) -* Average Overhead per Invocation (none case/null returned): 0.000000368s (that is 368 nano seconds) - -The benchmark was run under Ubuntu precise with PHP 5.4.6. As you can see the -overhead is surprisingly low, almost negligible. - -So in conclusion, unless you plan to call a method thousands of times during a -request, there is no reason to stick to the ``object|null`` return value; better give -your code some options! diff --git a/vendor/phpoption/phpoption/composer.json b/vendor/phpoption/phpoption/composer.json deleted file mode 100644 index 553a375..0000000 --- a/vendor/phpoption/phpoption/composer.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "phpoption/phpoption", - "description": "Option Type for PHP", - "keywords": ["php","option","language","type"], - "type": "library", - "license": "Apache2", - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "require": { - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "4.7.*" - }, - "autoload": { - "psr-0": { "PhpOption\\": "src/" } - }, - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - } -} diff --git a/vendor/phpoption/phpoption/phpunit.xml.dist b/vendor/phpoption/phpoption/phpunit.xml.dist deleted file mode 100644 index f1f8df3..0000000 --- a/vendor/phpoption/phpoption/phpunit.xml.dist +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - ./tests/PhpOption/ - - - - - - performance - - - diff --git a/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php b/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php deleted file mode 100644 index 59727e6..0000000 --- a/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +++ /dev/null @@ -1,169 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpOption; - -final class LazyOption extends Option -{ - /** @var callable */ - private $callback; - - /** @var array */ - private $arguments; - - /** @var Option|null */ - private $option; - - /** - * Helper Constructor. - * - * @param callable $callback - * @param array $arguments - * - * @return LazyOption - */ - public static function create($callback, array $arguments = array()) - { - return new self($callback, $arguments); - } - - /** - * Constructor. - * - * @param callable $callback - * @param array $arguments - */ - public function __construct($callback, array $arguments = array()) - { - if (!is_callable($callback)) { - throw new \InvalidArgumentException('Invalid callback given'); - } - - $this->callback = $callback; - $this->arguments = $arguments; - } - - public function isDefined() - { - return $this->option()->isDefined(); - } - - public function isEmpty() - { - return $this->option()->isEmpty(); - } - - public function get() - { - return $this->option()->get(); - } - - public function getOrElse($default) - { - return $this->option()->getOrElse($default); - } - - public function getOrCall($callable) - { - return $this->option()->getOrCall($callable); - } - - public function getOrThrow(\Exception $ex) - { - return $this->option()->getOrThrow($ex); - } - - public function orElse(Option $else) - { - return $this->option()->orElse($else); - } - - /** - * @deprecated Use forAll() instead. - */ - public function ifDefined($callable) - { - $this->option()->ifDefined($callable); - } - - public function forAll($callable) - { - return $this->option()->forAll($callable); - } - - public function map($callable) - { - return $this->option()->map($callable); - } - - public function flatMap($callable) - { - return $this->option()->flatMap($callable); - } - - public function filter($callable) - { - return $this->option()->filter($callable); - } - - public function filterNot($callable) - { - return $this->option()->filterNot($callable); - } - - public function select($value) - { - return $this->option()->select($value); - } - - public function reject($value) - { - return $this->option()->reject($value); - } - - public function getIterator() - { - return $this->option()->getIterator(); - } - - public function foldLeft($initialValue, $callable) - { - return $this->option()->foldLeft($initialValue, $callable); - } - - public function foldRight($initialValue, $callable) - { - return $this->option()->foldRight($initialValue, $callable); - } - - /** - * @return Option - */ - private function option() - { - if (null === $this->option) { - $this->option = call_user_func_array($this->callback, $this->arguments); - if (!$this->option instanceof Option) { - $this->option = null; - throw new \RuntimeException('Expected instance of \PhpOption\Option'); - } - } - - return $this->option; - } -} diff --git a/vendor/phpoption/phpoption/src/PhpOption/None.php b/vendor/phpoption/phpoption/src/PhpOption/None.php deleted file mode 100644 index d4ae666..0000000 --- a/vendor/phpoption/phpoption/src/PhpOption/None.php +++ /dev/null @@ -1,130 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpOption; - -use EmptyIterator; - -final class None extends Option -{ - private static $instance; - - public static function create() - { - if (null === self::$instance) { - self::$instance = new self(); - } - - return self::$instance; - } - - public function get() - { - throw new \RuntimeException('None has no value.'); - } - - public function getOrCall($callable) - { - return call_user_func($callable); - } - - public function getOrElse($default) - { - return $default; - } - - public function getOrThrow(\Exception $ex) - { - throw $ex; - } - - public function isEmpty() - { - return true; - } - - public function isDefined() - { - return false; - } - - public function orElse(Option $else) - { - return $else; - } - - /** - * @deprecated Use forAll() instead. - */ - public function ifDefined($callable) - { - // Just do nothing in that case. - } - - public function forAll($callable) - { - return $this; - } - - public function map($callable) - { - return $this; - } - - public function flatMap($callable) - { - return $this; - } - - public function filter($callable) - { - return $this; - } - - public function filterNot($callable) - { - return $this; - } - - public function select($value) - { - return $this; - } - - public function reject($value) - { - return $this; - } - - public function getIterator() - { - return new EmptyIterator(); - } - - public function foldLeft($initialValue, $callable) - { - return $initialValue; - } - - public function foldRight($initialValue, $callable) - { - return $initialValue; - } - - private function __construct() { } -} diff --git a/vendor/phpoption/phpoption/src/PhpOption/Option.php b/vendor/phpoption/phpoption/src/PhpOption/Option.php deleted file mode 100644 index 45639ab..0000000 --- a/vendor/phpoption/phpoption/src/PhpOption/Option.php +++ /dev/null @@ -1,360 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpOption; - -use IteratorAggregate; - -/** - * Base Option Class. - * - * @author Johannes M. Schmitt - */ -abstract class Option implements IteratorAggregate -{ - /** - * Creates an option given a return value. - * - * This is intended for consuming existing APIs and allows you to easily - * convert them to an option. By default, we treat ``null`` as the None case, - * and everything else as Some. - * - * @param mixed $value The actual return value. - * @param mixed $noneValue The value which should be considered "None"; null - * by default. - * - * @return Option - */ - public static function fromValue($value, $noneValue = null) - { - if ($value === $noneValue) { - return None::create(); - } - - return new Some($value); - } - - /** - * Creates an option from an array's value. - * - * If the key does not exist in the array, the array is not actually an array, or the - * array's value at the given key is null, None is returned. - * - * Otherwise, Some is returned wrapping the value at the given key. - * - * @param mixed $array a potential array value - * @param string $key the key to check - * - * @return Option - */ - public static function fromArraysValue($array, $key) - { - if ( ! isset($array[$key])) { - return None::create(); - } - - return new Some($array[$key]); - } - - /** - * Creates a lazy-option with the given callback. - * - * This is also a helper constructor for lazy-consuming existing APIs where - * the return value is not yet an option. By default, we treat ``null`` as - * None case, and everything else as Some. - * - * @param callable $callback The callback to evaluate. - * @param array $arguments - * @param mixed $noneValue The value which should be considered "None"; null - * by default. - * - * @return Option - */ - public static function fromReturn($callback, array $arguments = array(), $noneValue = null) - { - return new LazyOption(function() use ($callback, $arguments, $noneValue) { - $return = call_user_func_array($callback, $arguments); - - if ($return === $noneValue) { - return None::create(); - } - - return new Some($return); - }); - } - - /** - * Option factory, which creates new option based on passed value. - * If value is already an option, it simply returns - * If value is a \Closure, LazyOption with passed callback created and returned. If Option returned from callback, - * it returns directly (flatMap-like behaviour) - * On other case value passed to Option::fromValue() method - * - * @param Option|\Closure|mixed $value - * @param null $noneValue used when $value is mixed or Closure, for None-check - * - * @return Option - */ - public static function ensure($value, $noneValue = null) - { - if ($value instanceof Option) { - return $value; - } elseif ($value instanceof \Closure) { - return new LazyOption(function() use ($value, $noneValue) { - $return = $value(); - - if ($return instanceof Option) { - return $return; - } else { - return Option::fromValue($return, $noneValue); - } - }); - } else { - return Option::fromValue($value, $noneValue); - } - } - - /** - * Returns the value if available, or throws an exception otherwise. - * - * @throws \RuntimeException if value is not available - * - * @return mixed - */ - abstract public function get(); - - /** - * Returns the value if available, or the default value if not. - * - * @param mixed $default - * - * @return mixed - */ - abstract public function getOrElse($default); - - /** - * Returns the value if available, or the results of the callable. - * - * This is preferable over ``getOrElse`` if the computation of the default - * value is expensive. - * - * @param callable $callable - * - * @return mixed - */ - abstract public function getOrCall($callable); - - /** - * Returns the value if available, or throws the passed exception. - * - * @param \Exception $ex - * - * @return mixed - */ - abstract public function getOrThrow(\Exception $ex); - - /** - * Returns true if no value is available, false otherwise. - * - * @return boolean - */ - abstract public function isEmpty(); - - /** - * Returns true if a value is available, false otherwise. - * - * @return boolean - */ - abstract public function isDefined(); - - /** - * Returns this option if non-empty, or the passed option otherwise. - * - * This can be used to try multiple alternatives, and is especially useful - * with lazy evaluating options: - * - * ```php - * $repo->findSomething() - * ->orElse(new LazyOption(array($repo, 'findSomethingElse'))) - * ->orElse(new LazyOption(array($repo, 'createSomething'))); - * ``` - * - * @param Option $else - * - * @return Option - */ - abstract public function orElse(Option $else); - - /** - * This is similar to map() below except that the return value has no meaning; - * the passed callable is simply executed if the option is non-empty, and - * ignored if the option is empty. - * - * In all cases, the return value of the callable is discarded. - * - * ```php - * $comment->getMaybeFile()->ifDefined(function($file) { - * // Do something with $file here. - * }); - * ``` - * - * If you're looking for something like ``ifEmpty``, you can use ``getOrCall`` - * and ``getOrElse`` in these cases. - * - * @deprecated Use forAll() instead. - * - * @param callable $callable - * - * @return void - */ - abstract public function ifDefined($callable); - - /** - * This is similar to map() except that the return value of the callable has no meaning. - * - * The passed callable is simply executed if the option is non-empty, and ignored if the - * option is empty. This method is preferred for callables with side-effects, while map() - * is intended for callables without side-effects. - * - * @param callable $callable - * - * @return Option - */ - abstract public function forAll($callable); - - /** - * Applies the callable to the value of the option if it is non-empty, - * and returns the return value of the callable wrapped in Some(). - * - * If the option is empty, then the callable is not applied. - * - * ```php - * (new Some("foo"))->map('strtoupper')->get(); // "FOO" - * ``` - * - * @param callable $callable - * - * @return Option - */ - abstract public function map($callable); - - /** - * Applies the callable to the value of the option if it is non-empty, and - * returns the return value of the callable directly. - * - * In contrast to ``map``, the return value of the callable is expected to - * be an Option itself; it is not automatically wrapped in Some(). - * - * @param callable $callable must return an Option - * - * @return Option - */ - abstract public function flatMap($callable); - - /** - * If the option is empty, it is returned immediately without applying the callable. - * - * If the option is non-empty, the callable is applied, and if it returns true, - * the option itself is returned; otherwise, None is returned. - * - * @param callable $callable - * - * @return Option - */ - abstract public function filter($callable); - - /** - * If the option is empty, it is returned immediately without applying the callable. - * - * If the option is non-empty, the callable is applied, and if it returns false, - * the option itself is returned; otherwise, None is returned. - * - * @param callable $callable - * - * @return Option - */ - abstract public function filterNot($callable); - - /** - * If the option is empty, it is returned immediately. - * - * If the option is non-empty, and its value does not equal the passed value - * (via a shallow comparison ===), then None is returned. Otherwise, the - * Option is returned. - * - * In other words, this will filter all but the passed value. - * - * @param mixed $value - * - * @return Option - */ - abstract public function select($value); - - /** - * If the option is empty, it is returned immediately. - * - * If the option is non-empty, and its value does equal the passed value (via - * a shallow comparison ===), then None is returned; otherwise, the Option is - * returned. - * - * In other words, this will let all values through except the passed value. - * - * @param mixed $value - * - * @return Option - */ - abstract public function reject($value); - - /** - * Binary operator for the initial value and the option's value. - * - * If empty, the initial value is returned. - * If non-empty, the callable receives the initial value and the option's value as arguments - * - * ```php - * - * $some = new Some(5); - * $none = None::create(); - * $result = $some->foldLeft(1, function($a, $b) { return $a + $b; }); // int(6) - * $result = $none->foldLeft(1, function($a, $b) { return $a + $b; }); // int(1) - * - * // This can be used instead of something like the following: - * $option = Option::fromValue($integerOrNull); - * $result = 1; - * if ( ! $option->isEmpty()) { - * $result += $option->get(); - * } - * ``` - * - * @param mixed $initialValue - * @param callable $callable function(initialValue, callable): result - * - * @return mixed - */ - abstract public function foldLeft($initialValue, $callable); - - /** - * foldLeft() but with reversed arguments for the callable. - * - * @param mixed $initialValue - * @param callable $callable function(callable, initialValue): result - * - * @return mixed - */ - abstract public function foldRight($initialValue, $callable); -} diff --git a/vendor/phpoption/phpoption/src/PhpOption/Some.php b/vendor/phpoption/phpoption/src/PhpOption/Some.php deleted file mode 100644 index 85911a2..0000000 --- a/vendor/phpoption/phpoption/src/PhpOption/Some.php +++ /dev/null @@ -1,152 +0,0 @@ - - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -namespace PhpOption; - -use ArrayIterator; - -final class Some extends Option -{ - private $value; - - public function __construct($value) - { - $this->value = $value; - } - - public static function create($value) - { - return new self($value); - } - - public function isDefined() - { - return true; - } - - public function isEmpty() - { - return false; - } - - public function get() - { - return $this->value; - } - - public function getOrElse($default) - { - return $this->value; - } - - public function getOrCall($callable) - { - return $this->value; - } - - public function getOrThrow(\Exception $ex) - { - return $this->value; - } - - public function orElse(Option $else) - { - return $this; - } - - /** - * @deprecated Use forAll() instead. - */ - public function ifDefined($callable) - { - call_user_func($callable, $this->value); - } - - public function forAll($callable) - { - call_user_func($callable, $this->value); - - return $this; - } - - public function map($callable) - { - return new self(call_user_func($callable, $this->value)); - } - - public function flatMap($callable) - { - $rs = call_user_func($callable, $this->value); - if ( ! $rs instanceof Option) { - throw new \RuntimeException('Callables passed to flatMap() must return an Option. Maybe you should use map() instead?'); - } - - return $rs; - } - - public function filter($callable) - { - if (true === call_user_func($callable, $this->value)) { - return $this; - } - - return None::create(); - } - - public function filterNot($callable) - { - if (false === call_user_func($callable, $this->value)) { - return $this; - } - - return None::create(); - } - - public function select($value) - { - if ($this->value === $value) { - return $this; - } - - return None::create(); - } - - public function reject($value) - { - if ($this->value === $value) { - return None::create(); - } - - return $this; - } - - public function getIterator() - { - return new ArrayIterator(array($this->value)); - } - - public function foldLeft($initialValue, $callable) - { - return call_user_func($callable, $initialValue, $this->value); - } - - public function foldRight($initialValue, $callable) - { - return call_user_func($callable, $this->value, $initialValue); - } -} diff --git a/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php b/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php deleted file mode 100644 index 6bd018f..0000000 --- a/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +++ /dev/null @@ -1,63 +0,0 @@ -assertInstanceOf('PhpOption\Option', $option); - return $option; - } - - public function testMixedValue() - { - $option = $this->ensure(1); - $this->assertTrue($option->isDefined()); - $this->assertSame(1, $option->get()); - $this->assertFalse($this->ensure(null)->isDefined()); - $this->assertFalse($this->ensure(1,1)->isDefined()); - } - - public function testReturnValue() - { - $option = $this->ensure(function() { return 1; }); - $this->assertTrue($option->isDefined()); - $this->assertSame(1, $option->get()); - $this->assertFalse($this->ensure(function() { return null; })->isDefined()); - $this->assertFalse($this->ensure(function() { return 1; }, 1)->isDefined()); - } - - public function testOptionReturnsAsSameInstance() - { - $option = $this->ensure(1); - $this->assertSame($option, $this->ensure($option)); - } - - public function testOptionReturnedFromClosure() - { - $option = $this->ensure(function() { return Some::create(1); }); - $this->assertTrue($option->isDefined()); - $this->assertSame(1, $option->get()); - - $option = $this->ensure(function() { return None::create(); }); - $this->assertFalse($option->isDefined()); - } - - public function testClosureReturnedFromClosure() - { - $option = $this->ensure(function() { return function() {}; }); - $this->assertTrue($option->isDefined()); - $this->assertInstanceOf('Closure', $option->get()); - } -} diff --git a/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php b/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php deleted file mode 100644 index 30b1347..0000000 --- a/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +++ /dev/null @@ -1,190 +0,0 @@ -subject = $this - ->getMockBuilder('Subject') - ->setMethods(array('execute')) - ->getMock(); - } - - public function testGetWithArgumentsAndConstructor() - { - $some = \PhpOption\LazyOption::create(array($this->subject, 'execute'), array('foo')); - - $this->subject - ->expects($this->once()) - ->method('execute') - ->with('foo') - ->will($this->returnValue(\PhpOption\Some::create('foo'))); - - $this->assertEquals('foo', $some->get()); - $this->assertEquals('foo', $some->getOrElse(null)); - $this->assertEquals('foo', $some->getOrCall('does_not_exist')); - $this->assertEquals('foo', $some->getOrThrow(new \RuntimeException('does_not_exist'))); - $this->assertFalse($some->isEmpty()); - } - - public function testGetWithArgumentsAndCreate() - { - $some = new \PhpOption\LazyOption(array($this->subject, 'execute'), array('foo')); - - $this->subject - ->expects($this->once()) - ->method('execute') - ->with('foo') - ->will($this->returnValue(\PhpOption\Some::create('foo'))); - - $this->assertEquals('foo', $some->get()); - $this->assertEquals('foo', $some->getOrElse(null)); - $this->assertEquals('foo', $some->getOrCall('does_not_exist')); - $this->assertEquals('foo', $some->getOrThrow(new \RuntimeException('does_not_exist'))); - $this->assertFalse($some->isEmpty()); - } - - public function testGetWithoutArgumentsAndConstructor() - { - $some = new \PhpOption\LazyOption(array($this->subject, 'execute')); - - $this->subject - ->expects($this->once()) - ->method('execute') - ->will($this->returnValue(\PhpOption\Some::create('foo'))); - - $this->assertEquals('foo', $some->get()); - $this->assertEquals('foo', $some->getOrElse(null)); - $this->assertEquals('foo', $some->getOrCall('does_not_exist')); - $this->assertEquals('foo', $some->getOrThrow(new \RuntimeException('does_not_exist'))); - $this->assertFalse($some->isEmpty()); - } - - public function testGetWithoutArgumentsAndCreate() - { - $option = \PhpOption\LazyOption::create(array($this->subject, 'execute')); - - $this->subject - ->expects($this->once()) - ->method('execute') - ->will($this->returnValue(\PhpOption\Some::create('foo'))); - - $this->assertTrue($option->isDefined()); - $this->assertFalse($option->isEmpty()); - $this->assertEquals('foo', $option->get()); - $this->assertEquals('foo', $option->getOrElse(null)); - $this->assertEquals('foo', $option->getOrCall('does_not_exist')); - $this->assertEquals('foo', $option->getOrThrow(new \RuntimeException('does_not_exist'))); - } - - /** - * @expectedException \RuntimeException - * @expectedExceptionMessage None has no value - */ - public function testCallbackReturnsNull() - { - $option = \PhpOption\LazyOption::create(array($this->subject, 'execute')); - - $this->subject - ->expects($this->once()) - ->method('execute') - ->will($this->returnValue(\PhpOption\None::create())); - - $this->assertFalse($option->isDefined()); - $this->assertTrue($option->isEmpty()); - $this->assertEquals('alt', $option->getOrElse('alt')); - $this->assertEquals('alt', $option->getOrCall(function(){return 'alt';})); - - $option->get(); - } - - /** - * @expectedException \RuntimeException - * @expectedExceptionMessage Expected instance of \PhpOption\Option - */ - public function testExceptionIsThrownIfCallbackReturnsNonOption() - { - $option = \PhpOption\LazyOption::create(array($this->subject, 'execute')); - - $this->subject - ->expects($this->once()) - ->method('execute') - ->will($this->returnValue(null)); - - $this->assertFalse($option->isDefined()); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage Invalid callback given - */ - public function testInvalidCallbackAndConstructor() - { - new \PhpOption\LazyOption('invalidCallback'); - } - - /** - * @expectedException InvalidArgumentException - * @expectedExceptionMessage Invalid callback given - */ - public function testInvalidCallbackAndCreate() - { - \PhpOption\LazyOption::create('invalidCallback'); - } - - public function testifDefined() - { - $called = false; - $self = $this; - $this->assertNull(LazyOption::fromValue('foo')->ifDefined(function($v) use (&$called, $self) { - $called = true; - $self->assertEquals('foo', $v); - })); - $this->assertTrue($called); - } - - public function testForAll() - { - $called = false; - $self = $this; - $this->assertInstanceOf('PhpOption\Some', LazyOption::fromValue('foo')->forAll(function($v) use (&$called, $self) { - $called = true; - $self->assertEquals('foo', $v); - })); - $this->assertTrue($called); - } - - public function testOrElse() - { - $some = \PhpOption\Some::create('foo'); - $lazy = \PhpOption\LazyOption::create(function() use ($some) {return $some;}); - $this->assertSame($some, $lazy->orElse(\PhpOption\None::create())); - $this->assertSame($some, $lazy->orElse(\PhpOption\Some::create('bar'))); - } - - public function testFoldLeftRight() - { - $callback = function() { }; - - $option = $this->getMockForAbstractClass('PhpOption\Option'); - $option->expects($this->once()) - ->method('foldLeft') - ->with(5, $callback) - ->will($this->returnValue(6)); - $lazyOption = new LazyOption(function() use ($option) { return $option; }); - $this->assertSame(6, $lazyOption->foldLeft(5, $callback)); - - $option->expects($this->once()) - ->method('foldRight') - ->with(5, $callback) - ->will($this->returnValue(6)); - $lazyOption = new LazyOption(function() use ($option) { return $option; }); - $this->assertSame(6, $lazyOption->foldRight(5, $callback)); - } -} diff --git a/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php b/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php deleted file mode 100644 index 7ea644c..0000000 --- a/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +++ /dev/null @@ -1,127 +0,0 @@ -get(); - } - - public function testGetOrElse() - { - $none = \PhpOption\None::create(); - $this->assertEquals('foo', $none->getOrElse('foo')); - } - - public function testGetOrCall() - { - $none = \PhpOption\None::create(); - $this->assertEquals('foo', $none->getOrCall(function() { return 'foo'; })); - } - - /** - * @expectedException \RuntimeException - * @expectedExceptionMessage Not Found! - */ - public function testGetOrThrow() - { - None::create()->getOrThrow(new \RuntimeException('Not Found!')); - } - - public function testIsEmpty() - { - $none = \PhpOption\None::create(); - $this->assertTrue($none->isEmpty()); - } - - public function testOrElse() - { - $option = \PhpOption\Some::create('foo'); - $this->assertSame($option, \PhpOption\None::create()->orElse($option)); - } - - public function testifDefined() - { - $this->assertNull($this->none->ifDefined(function() { - throw new \LogicException('Should never be called.'); - })); - } - - public function testForAll() - { - $this->assertSame($this->none, $this->none->forAll(function() { - throw new \LogicException('Should never be called.'); - })); - } - - public function testMap() - { - $this->assertSame($this->none, $this->none->map(function() { - throw new \LogicException('Should not be called.'); - })); - } - - public function testFlatMap() - { - $this->assertSame($this->none, $this->none->flatMap(function() { - throw new \LogicException('Should not be called.'); - })); - } - - public function testFilter() - { - $this->assertSame($this->none, $this->none->filter(function() { - throw new \LogicException('Should not be called.'); - })); - } - - public function testFilterNot() - { - $this->assertSame($this->none, $this->none->filterNot(function() { - throw new \LogicException('Should not be called.'); - })); - } - - public function testSelect() - { - $this->assertSame($this->none, $this->none->select(null)); - } - - public function testReject() - { - $this->assertSame($this->none, $this->none->reject(null)); - } - - public function testForeach() - { - $none = \PhpOption\None::create(); - - $called = 0; - foreach ($none as $value) { - $called++; - } - - $this->assertEquals(0, $called); - } - - public function testFoldLeftRight() - { - $this->assertSame(1, $this->none->foldLeft(1, function() { $this->fail(); })); - $this->assertSame(1, $this->none->foldRight(1, function() { $this->fail(); })); - } - - protected function setUp() - { - $this->none = None::create(); - } -} diff --git a/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php b/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php deleted file mode 100644 index 1f59e1c..0000000 --- a/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +++ /dev/null @@ -1,81 +0,0 @@ -assertInstanceOf('PhpOption\None', \PhpOption\Option::fromValue(null)); - $this->assertInstanceOf('PhpOption\Some', \PhpOption\Option::fromValue('value')); - } - - public function testFromValueWithFalseNoneValue() - { - $this->assertInstanceOf('PhpOption\None', \PhpOption\Option::fromValue(false, false)); - $this->assertInstanceOf('PhpOption\Some', \PhpOption\Option::fromValue('value', false)); - $this->assertInstanceOf('PhpOption\Some', \PhpOption\Option::fromValue(null, false)); - } - - public function testFromArraysValue() - { - $this->assertEquals(None::create(), Option::fromArraysValue('foo', 'bar')); - $this->assertEquals(None::create(), Option::fromArraysValue(null, 'bar')); - $this->assertEquals(None::create(), Option::fromArraysValue(array('foo' => 'bar'), 'baz')); - $this->assertEquals(None::create(), Option::fromArraysValue(array('foo' => null), 'foo')); - $this->assertEquals(new Some('foo'), Option::fromArraysValue(array('foo' => 'foo'), 'foo')); - } - - public function testFromReturn() - { - $null = function() { return null; }; - $false = function() { return false; }; - $some = function() { return 'foo'; }; - - $this->assertTrue(\PhpOption\Option::fromReturn($null)->isEmpty()); - $this->assertFalse(\PhpOption\Option::fromReturn($false)->isEmpty()); - $this->assertTrue(\PhpOption\Option::fromReturn($false, array(), false)->isEmpty()); - $this->assertTrue(\PhpOption\Option::fromReturn($some)->isDefined()); - $this->assertFalse(\PhpOption\Option::fromReturn($some, array(), 'foo')->isDefined()); - } - - public function testOrElse() - { - $a = new \PhpOption\Some('a'); - $b = new \PhpOption\Some('b'); - - $this->assertEquals('a', $a->orElse($b)->get()); - } - - public function testOrElseWithNoneAsFirst() - { - $a = \PhpOption\None::create(); - $b = new \PhpOption\Some('b'); - - $this->assertEquals('b', $a->orElse($b)->get()); - } - - public function testOrElseWithLazyOptions() - { - $throws = function() { throw new \LogicException('Should never be called.'); }; - - $a = new \PhpOption\Some('a'); - $b = new \PhpOption\LazyOption($throws); - - $this->assertEquals('a', $a->orElse($b)->get()); - } - - public function testOrElseWithMultipleAlternatives() - { - $throws = new \PhpOption\LazyOption(function() { throw new \LogicException('Should never be called.'); }); - $returns = new \PhpOption\LazyOption(function() { return new \PhpOption\Some('foo'); }); - - $a = \PhpOption\None::create(); - - $this->assertEquals('foo', $a->orElse($returns)->orElse($throws)->get()); - } -} \ No newline at end of file diff --git a/vendor/phpoption/phpoption/tests/PhpOption/Tests/PerformanceTest.php b/vendor/phpoption/phpoption/tests/PhpOption/Tests/PerformanceTest.php deleted file mode 100644 index 67ec1f9..0000000 --- a/vendor/phpoption/phpoption/tests/PhpOption/Tests/PerformanceTest.php +++ /dev/null @@ -1,82 +0,0 @@ -traditionalRepo->findMaybe(true)) { - $rs = new \stdClass(); - } - } - $traditionalTime = microtime(true) - $traditionalTime; - - $phpOptionTime = microtime(true); - for ($i=0; $i<10000; $i++) { - $rs = $this->phpOptionRepo->findMaybe(true)->getOrElse(new \stdClass); - } - $phpOptionTime = microtime(true) - $phpOptionTime; - - $overheadPerInvocation = ($phpOptionTime - $traditionalTime) / 10000; - printf("Overhead per invocation (some case): %.9fs\n", $overheadPerInvocation); - } - - public function testNoneCase() - { - $traditionalTime = microtime(true); - for ($i=0; $i<10000; $i++) { - if (null === $rs = $this->traditionalRepo->findMaybe(false)) { - $rs = new \stdClass(); - } - } - $traditionalTime = microtime(true) - $traditionalTime; - - $phpOptionTime = microtime(true); - for ($i=0; $i<10000; $i++) { - $rs = $this->phpOptionRepo->findMaybe(false)->getOrElse(new \stdClass); - } - $phpOptionTime = microtime(true) - $phpOptionTime; - - $overheadPerInvocation = ($phpOptionTime - $traditionalTime) / 10000; - printf("Overhead per invocation (none case): %.9fs\n", $overheadPerInvocation); - } - - protected function setUp() - { - $this->traditionalRepo = new TraditionalRepo(); - $this->phpOptionRepo = new PhpOptionRepo(); - } -} - -class TraditionalRepo -{ - public function findMaybe($success) - { - if ($success) { - return new \stdClass; - } - - return null; - } -} - -class PhpOptionRepo -{ - public function findMaybe($success) - { - if ($success) { - return new \PhpOption\Some(new \stdClass); - } - - return \PhpOption\None::create(); - } -} \ No newline at end of file diff --git a/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php b/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php deleted file mode 100644 index 33b5501..0000000 --- a/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +++ /dev/null @@ -1,180 +0,0 @@ -assertEquals('foo', $some->get()); - $this->assertEquals('foo', $some->getOrElse(null)); - $this->assertEquals('foo', $some->getOrCall('does_not_exist')); - $this->assertEquals('foo', $some->getOrThrow(new \RuntimeException('Not found'))); - $this->assertFalse($some->isEmpty()); - } - - public function testCreate() - { - $some = \PhpOption\Some::create('foo'); - $this->assertEquals('foo', $some->get()); - $this->assertEquals('foo', $some->getOrElse(null)); - $this->assertEquals('foo', $some->getOrCall('does_not_exist')); - $this->assertEquals('foo', $some->getOrThrow(new \RuntimeException('Not found'))); - $this->assertFalse($some->isEmpty()); - } - - public function testOrElse() - { - $some = \PhpOption\Some::create('foo'); - $this->assertSame($some, $some->orElse(\PhpOption\None::create())); - $this->assertSame($some, $some->orElse(\PhpOption\Some::create('bar'))); - } - - public function testifDefined() - { - $called = false; - $self = $this; - $some = new Some('foo'); - $this->assertNull($some->ifDefined(function($v) use (&$called, $self) { - $called = true; - $self->assertEquals('foo', $v); - })); - $this->assertTrue($called); - } - - public function testForAll() - { - $called = false; - $self = $this; - $some = new Some('foo'); - $this->assertSame($some, $some->forAll(function($v) use (&$called, $self) { - $called = true; - $self->assertEquals('foo', $v); - })); - $this->assertTrue($called); - } - - public function testMap() - { - $some = new Some('foo'); - $this->assertEquals('o', $some->map(function($v) { return substr($v, 1, 1); })->get()); - } - - public function testFlatMap() - { - $repo = new Repository(array('foo')); - - $this->assertEquals(array('name' => 'foo'), $repo->getLastRegisteredUsername() - ->flatMap(array($repo, 'getUser')) - ->getOrCall(array($repo, 'getDefaultUser'))); - } - - public function testFilter() - { - $some = new Some('foo'); - - $this->assertInstanceOf('PhpOption\None', $some->filter(function($v) { return 0 === strlen($v); })); - $this->assertSame($some, $some->filter(function($v) { return strlen($v) > 0; })); - } - - public function testFilterNot() - { - $some = new Some('foo'); - - $this->assertInstanceOf('PhpOption\None', $some->filterNot(function($v) { return strlen($v) > 0; })); - $this->assertSame($some, $some->filterNot(function($v) { return strlen($v) === 0; })); - } - - public function testSelect() - { - $some = new Some('foo'); - - $this->assertSame($some, $some->select('foo')); - $this->assertInstanceOf('PhpOption\None', $some->select('bar')); - $this->assertInstanceOf('PhpOption\None', $some->select(true)); - } - - public function testReject() - { - $some = new Some('foo'); - - $this->assertSame($some, $some->reject(null)); - $this->assertSame($some, $some->reject(true)); - $this->assertInstanceOf('PhpOption\None', $some->reject('foo')); - } - - public function testFoldLeftRight() - { - $some = new Some(5); - - $this->assertSame(6, $some->foldLeft(1, function($a, $b) { - $this->assertEquals(1, $a); - $this->assertEquals(5, $b); - - return $a + $b; - })); - - $this->assertSame(6, $some->foldRight(1, function($a, $b) { - $this->assertEquals(1, $b); - $this->assertEquals(5, $a); - - return $a + $b; - })); - } - - public function testForeach() - { - $some = new Some('foo'); - - $called = 0; - $extractedValue = null; - foreach ($some as $value) { - $extractedValue = $value; - $called++; - } - - $this->assertEquals('foo', $extractedValue); - $this->assertEquals(1, $called); - } -} - -// For the interested reader of these tests, we have gone some great lengths -// to come up with a non-contrived example that might also be used in the -// real-world, and not only for testing purposes :) -class Repository -{ - private $users; - - public function __construct(array $users = array()) - { - $this->users = $users; - } - - // A fast ID lookup, probably cached, sometimes we might not need the entire user. - public function getLastRegisteredUsername() - { - if (empty($this->users)) { - return \PhpOption\None::create(); - } - - return new Some(end($this->users)); - } - - // Returns a user object (we will live with an array here). - public function getUser($name) - { - if (in_array($name, $this->users, true)) { - return new Some(array('name' => $name)); - } - - return \PhpOption\None::create(); - } - - public function getDefaultUser() - { - return array('name' => 'muhuhu'); - } -} diff --git a/vendor/phpoption/phpoption/tests/bootstrap.php b/vendor/phpoption/phpoption/tests/bootstrap.php deleted file mode 100644 index 37d8f3f..0000000 --- a/vendor/phpoption/phpoption/tests/bootstrap.php +++ /dev/null @@ -1,8 +0,0 @@ - - Marcello Duarte - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/phpspec/prophecy/README.md b/vendor/phpspec/prophecy/README.md deleted file mode 100644 index b190d43..0000000 --- a/vendor/phpspec/prophecy/README.md +++ /dev/null @@ -1,391 +0,0 @@ -# Prophecy - -[![Stable release](https://poser.pugx.org/phpspec/prophecy/version.svg)](https://packagist.org/packages/phpspec/prophecy) -[![Build Status](https://travis-ci.org/phpspec/prophecy.svg?branch=master)](https://travis-ci.org/phpspec/prophecy) - -Prophecy is a highly opinionated yet very powerful and flexible PHP object mocking -framework. Though initially it was created to fulfil phpspec2 needs, it is flexible -enough to be used inside any testing framework out there with minimal effort. - -## A simple example - -```php -prophet->prophesize('App\Security\Hasher'); - $user = new App\Entity\User($hasher->reveal()); - - $hasher->generateHash($user, 'qwerty')->willReturn('hashed_pass'); - - $user->setPassword('qwerty'); - - $this->assertEquals('hashed_pass', $user->getPassword()); - } - - protected function setup() - { - $this->prophet = new \Prophecy\Prophet; - } - - protected function tearDown() - { - $this->prophet->checkPredictions(); - } -} -``` - -## Installation - -### Prerequisites - -Prophecy requires PHP 5.3.3 or greater. - -### Setup through composer - -First, add Prophecy to the list of dependencies inside your `composer.json`: - -```json -{ - "require-dev": { - "phpspec/prophecy": "~1.0" - } -} -``` - -Then simply install it with composer: - -```bash -$> composer install --prefer-dist -``` - -You can read more about Composer on its [official webpage](http://getcomposer.org). - -## How to use it - -First of all, in Prophecy every word has a logical meaning, even the name of the library -itself (Prophecy). When you start feeling that, you'll become very fluid with this -tool. - -For example, Prophecy has been named that way because it concentrates on describing the future -behavior of objects with very limited knowledge about them. But as with any other prophecy, -those object prophecies can't create themselves - there should be a Prophet: - -```php -$prophet = new Prophecy\Prophet; -``` - -The Prophet creates prophecies by *prophesizing* them: - -```php -$prophecy = $prophet->prophesize(); -``` - -The result of the `prophesize()` method call is a new object of class `ObjectProphecy`. Yes, -that's your specific object prophecy, which describes how your object would behave -in the near future. But first, you need to specify which object you're talking about, -right? - -```php -$prophecy->willExtend('stdClass'); -$prophecy->willImplement('SessionHandlerInterface'); -``` - -There are 2 interesting calls - `willExtend` and `willImplement`. The first one tells -object prophecy that our object should extend specific class, the second one says that -it should implement some interface. Obviously, objects in PHP can implement multiple -interfaces, but extend only one parent class. - -### Dummies - -Ok, now we have our object prophecy. What can we do with it? First of all, we can get -our object *dummy* by revealing its prophecy: - -```php -$dummy = $prophecy->reveal(); -``` - -The `$dummy` variable now holds a special dummy object. Dummy objects are objects that extend -and/or implement preset classes/interfaces by overriding all their public methods. The key -point about dummies is that they do not hold any logic - they just do nothing. Any method -of the dummy will always return `null` and the dummy will never throw any exceptions. -Dummy is your friend if you don't care about the actual behavior of this double and just need -a token object to satisfy a method typehint. - -You need to understand one thing - a dummy is not a prophecy. Your object prophecy is still -assigned to `$prophecy` variable and in order to manipulate with your expectations, you -should work with it. `$dummy` is a dummy - a simple php object that tries to fulfil your -prophecy. - -### Stubs - -Ok, now we know how to create basic prophecies and reveal dummies from them. That's -awesome if we don't care about our _doubles_ (objects that reflect originals) -interactions. If we do, we need to use *stubs* or *mocks*. - -A stub is an object double, which doesn't have any expectations about the object behavior, -but when put in specific environment, behaves in specific way. Ok, I know, it's cryptic, -but bear with me for a minute. Simply put, a stub is a dummy, which depending on the called -method signature does different things (has logic). To create stubs in Prophecy: - -```php -$prophecy->read('123')->willReturn('value'); -``` - -Oh wow. We've just made an arbitrary call on the object prophecy? Yes, we did. And this -call returned us a new object instance of class `MethodProphecy`. Yep, that's a specific -method with arguments prophecy. Method prophecies give you the ability to create method -promises or predictions. We'll talk about method predictions later in the _Mocks_ section. - -#### Promises - -Promises are logical blocks, that represent your fictional methods in prophecy terms -and they are handled by the `MethodProphecy::will(PromiseInterface $promise)` method. -As a matter of fact, the call that we made earlier (`willReturn('value')`) is a simple -shortcut to: - -```php -$prophecy->read('123')->will(new Prophecy\Promise\ReturnPromise(array('value'))); -``` - -This promise will cause any call to our double's `read()` method with exactly one -argument - `'123'` to always return `'value'`. But that's only for this -promise, there's plenty others you can use: - -- `ReturnPromise` or `->willReturn(1)` - returns a value from a method call -- `ReturnArgumentPromise` or `->willReturnArgument($index)` - returns the nth method argument from call -- `ThrowPromise` or `->willThrow($exception)` - causes the method to throw specific exception -- `CallbackPromise` or `->will($callback)` - gives you a quick way to define your own custom logic - -Keep in mind, that you can always add even more promises by implementing -`Prophecy\Promise\PromiseInterface`. - -#### Method prophecies idempotency - -Prophecy enforces same method prophecies and, as a consequence, same promises and -predictions for the same method calls with the same arguments. This means: - -```php -$methodProphecy1 = $prophecy->read('123'); -$methodProphecy2 = $prophecy->read('123'); -$methodProphecy3 = $prophecy->read('321'); - -$methodProphecy1 === $methodProphecy2; -$methodProphecy1 !== $methodProphecy3; -``` - -That's interesting, right? Now you might ask me how would you define more complex -behaviors where some method call changes behavior of others. In PHPUnit or Mockery -you do that by predicting how many times your method will be called. In Prophecy, -you'll use promises for that: - -```php -$user->getName()->willReturn(null); - -// For PHP 5.4 -$user->setName('everzet')->will(function () { - $this->getName()->willReturn('everzet'); -}); - -// For PHP 5.3 -$user->setName('everzet')->will(function ($args, $user) { - $user->getName()->willReturn('everzet'); -}); - -// Or -$user->setName('everzet')->will(function ($args) use ($user) { - $user->getName()->willReturn('everzet'); -}); -``` - -And now it doesn't matter how many times or in which order your methods are called. -What matters is their behaviors and how well you faked it. - -#### Arguments wildcarding - -The previous example is awesome (at least I hope it is for you), but that's not -optimal enough. We hardcoded `'everzet'` in our expectation. Isn't there a better -way? In fact there is, but it involves understanding what this `'everzet'` -actually is. - -You see, even if method arguments used during method prophecy creation look -like simple method arguments, in reality they are not. They are argument token -wildcards. As a matter of fact, `->setName('everzet')` looks like a simple call just -because Prophecy automatically transforms it under the hood into: - -```php -$user->setName(new Prophecy\Argument\Token\ExactValueToken('everzet')); -``` - -Those argument tokens are simple PHP classes, that implement -`Prophecy\Argument\Token\TokenInterface` and tell Prophecy how to compare real arguments -with your expectations. And yes, those classnames are damn big. That's why there's a -shortcut class `Prophecy\Argument`, which you can use to create tokens like that: - -```php -use Prophecy\Argument; - -$user->setName(Argument::exact('everzet')); -``` - -`ExactValueToken` is not very useful in our case as it forced us to hardcode the username. -That's why Prophecy comes bundled with a bunch of other tokens: - -- `IdenticalValueToken` or `Argument::is($value)` - checks that the argument is identical to a specific value -- `ExactValueToken` or `Argument::exact($value)` - checks that the argument matches a specific value -- `TypeToken` or `Argument::type($typeOrClass)` - checks that the argument matches a specific type or - classname -- `ObjectStateToken` or `Argument::which($method, $value)` - checks that the argument method returns - a specific value -- `CallbackToken` or `Argument::that(callback)` - checks that the argument matches a custom callback -- `AnyValueToken` or `Argument::any()` - matches any argument -- `AnyValuesToken` or `Argument::cetera()` - matches any arguments to the rest of the signature -- `StringContainsToken` or `Argument::containingString($value)` - checks that the argument contains a specific string value - -And you can add even more by implementing `TokenInterface` with your own custom classes. - -So, let's refactor our initial `{set,get}Name()` logic with argument tokens: - -```php -use Prophecy\Argument; - -$user->getName()->willReturn(null); - -// For PHP 5.4 -$user->setName(Argument::type('string'))->will(function ($args) { - $this->getName()->willReturn($args[0]); -}); - -// For PHP 5.3 -$user->setName(Argument::type('string'))->will(function ($args, $user) { - $user->getName()->willReturn($args[0]); -}); - -// Or -$user->setName(Argument::type('string'))->will(function ($args) use ($user) { - $user->getName()->willReturn($args[0]); -}); -``` - -That's it. Now our `{set,get}Name()` prophecy will work with any string argument provided to it. -We've just described how our stub object should behave, even though the original object could have -no behavior whatsoever. - -One last bit about arguments now. You might ask, what happens in case of: - -```php -use Prophecy\Argument; - -$user->getName()->willReturn(null); - -// For PHP 5.4 -$user->setName(Argument::type('string'))->will(function ($args) { - $this->getName()->willReturn($args[0]); -}); - -// For PHP 5.3 -$user->setName(Argument::type('string'))->will(function ($args, $user) { - $user->getName()->willReturn($args[0]); -}); - -// Or -$user->setName(Argument::type('string'))->will(function ($args) use ($user) { - $user->getName()->willReturn($args[0]); -}); - -$user->setName(Argument::any())->will(function () { -}); -``` - -Nothing. Your stub will continue behaving the way it did before. That's because of how -arguments wildcarding works. Every argument token type has a different score level, which -wildcard then uses to calculate the final arguments match score and use the method prophecy -promise that has the highest score. In this case, `Argument::type()` in case of success -scores `5` and `Argument::any()` scores `3`. So the type token wins, as does the first -`setName()` method prophecy and its promise. The simple rule of thumb - more precise token -always wins. - -#### Getting stub objects - -Ok, now we know how to define our prophecy method promises, let's get our stub from -it: - -```php -$stub = $prophecy->reveal(); -``` - -As you might see, the only difference between how we get dummies and stubs is that with -stubs we describe every object conversation instead of just agreeing with `null` returns -(object being *dummy*). As a matter of fact, after you define your first promise -(method call), Prophecy will force you to define all the communications - it throws -the `UnexpectedCallException` for any call you didn't describe with object prophecy before -calling it on a stub. - -### Mocks - -Now we know how to define doubles without behavior (dummies) and doubles with behavior, but -no expectations (stubs). What's left is doubles for which we have some expectations. These -are called mocks and in Prophecy they look almost exactly the same as stubs, except that -they define *predictions* instead of *promises* on method prophecies: - -```php -$entityManager->flush()->shouldBeCalled(); -``` - -#### Predictions - -The `shouldBeCalled()` method here assigns `CallPrediction` to our method prophecy. -Predictions are a delayed behavior check for your prophecies. You see, during the entire lifetime -of your doubles, Prophecy records every single call you're making against it inside your -code. After that, Prophecy can use this collected information to check if it matches defined -predictions. You can assign predictions to method prophecies using the -`MethodProphecy::should(PredictionInterface $prediction)` method. As a matter of fact, -the `shouldBeCalled()` method we used earlier is just a shortcut to: - -```php -$entityManager->flush()->should(new Prophecy\Prediction\CallPrediction()); -``` - -It checks if your method of interest (that matches both the method name and the arguments wildcard) -was called 1 or more times. If the prediction failed then it throws an exception. When does this -check happen? Whenever you call `checkPredictions()` on the main Prophet object: - -```php -$prophet->checkPredictions(); -``` - -In PHPUnit, you would want to put this call into the `tearDown()` method. If no predictions -are defined, it would do nothing. So it won't harm to call it after every test. - -There are plenty more predictions you can play with: - -- `CallPrediction` or `shouldBeCalled()` - checks that the method has been called 1 or more times -- `NoCallsPrediction` or `shouldNotBeCalled()` - checks that the method has not been called -- `CallTimesPrediction` or `shouldBeCalledTimes($count)` - checks that the method has been called - `$count` times -- `CallbackPrediction` or `should($callback)` - checks the method against your own custom callback - -Of course, you can always create your own custom prediction any time by implementing -`PredictionInterface`. - -### Spies - -The last bit of awesomeness in Prophecy is out-of-the-box spies support. As I said in the previous -section, Prophecy records every call made during the double's entire lifetime. This means -you don't need to record predictions in order to check them. You can also do it -manually by using the `MethodProphecy::shouldHave(PredictionInterface $prediction)` method: - -```php -$em = $prophet->prophesize('Doctrine\ORM\EntityManager'); - -$controller->createUser($em->reveal()); - -$em->flush()->shouldHaveBeenCalled(); -``` - -Such manipulation with doubles is called spying. And with Prophecy it just works. diff --git a/vendor/phpspec/prophecy/composer.json b/vendor/phpspec/prophecy/composer.json deleted file mode 100644 index 2bea646..0000000 --- a/vendor/phpspec/prophecy/composer.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "phpspec/prophecy", - "description": "Highly opinionated mocking framework for PHP 5.3+", - "keywords": ["Mock", "Stub", "Dummy", "Double", "Fake", "Spy"], - "homepage": "https://github.com/phpspec/prophecy", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - - "require": { - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", - "doctrine/instantiator": "^1.0.2", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" - }, - - "autoload": { - "psr-0": { - "Prophecy\\": "src/" - } - }, - - "autoload-dev": { - "psr-4": { - "Fixtures\\Prophecy\\": "fixtures" - } - }, - - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument.php b/vendor/phpspec/prophecy/src/Prophecy/Argument.php deleted file mode 100644 index fde6aa9..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument.php +++ /dev/null @@ -1,212 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy; - -use Prophecy\Argument\Token; - -/** - * Argument tokens shortcuts. - * - * @author Konstantin Kudryashov - */ -class Argument -{ - /** - * Checks that argument is exact value or object. - * - * @param mixed $value - * - * @return Token\ExactValueToken - */ - public static function exact($value) - { - return new Token\ExactValueToken($value); - } - - /** - * Checks that argument is of specific type or instance of specific class. - * - * @param string $type Type name (`integer`, `string`) or full class name - * - * @return Token\TypeToken - */ - public static function type($type) - { - return new Token\TypeToken($type); - } - - /** - * Checks that argument object has specific state. - * - * @param string $methodName - * @param mixed $value - * - * @return Token\ObjectStateToken - */ - public static function which($methodName, $value) - { - return new Token\ObjectStateToken($methodName, $value); - } - - /** - * Checks that argument matches provided callback. - * - * @param callable $callback - * - * @return Token\CallbackToken - */ - public static function that($callback) - { - return new Token\CallbackToken($callback); - } - - /** - * Matches any single value. - * - * @return Token\AnyValueToken - */ - public static function any() - { - return new Token\AnyValueToken; - } - - /** - * Matches all values to the rest of the signature. - * - * @return Token\AnyValuesToken - */ - public static function cetera() - { - return new Token\AnyValuesToken; - } - - /** - * Checks that argument matches all tokens - * - * @param mixed ... a list of tokens - * - * @return Token\LogicalAndToken - */ - public static function allOf() - { - return new Token\LogicalAndToken(func_get_args()); - } - - /** - * Checks that argument array or countable object has exact number of elements. - * - * @param integer $value array elements count - * - * @return Token\ArrayCountToken - */ - public static function size($value) - { - return new Token\ArrayCountToken($value); - } - - /** - * Checks that argument array contains (key, value) pair - * - * @param mixed $key exact value or token - * @param mixed $value exact value or token - * - * @return Token\ArrayEntryToken - */ - public static function withEntry($key, $value) - { - return new Token\ArrayEntryToken($key, $value); - } - - /** - * Checks that arguments array entries all match value - * - * @param mixed $value - * - * @return Token\ArrayEveryEntryToken - */ - public static function withEveryEntry($value) - { - return new Token\ArrayEveryEntryToken($value); - } - - /** - * Checks that argument array contains value - * - * @param mixed $value - * - * @return Token\ArrayEntryToken - */ - public static function containing($value) - { - return new Token\ArrayEntryToken(self::any(), $value); - } - - /** - * Checks that argument array has key - * - * @param mixed $key exact value or token - * - * @return Token\ArrayEntryToken - */ - public static function withKey($key) - { - return new Token\ArrayEntryToken($key, self::any()); - } - - /** - * Checks that argument does not match the value|token. - * - * @param mixed $value either exact value or argument token - * - * @return Token\LogicalNotToken - */ - public static function not($value) - { - return new Token\LogicalNotToken($value); - } - - /** - * @param string $value - * - * @return Token\StringContainsToken - */ - public static function containingString($value) - { - return new Token\StringContainsToken($value); - } - - /** - * Checks that argument is identical value. - * - * @param mixed $value - * - * @return Token\IdenticalValueToken - */ - public static function is($value) - { - return new Token\IdenticalValueToken($value); - } - - /** - * Check that argument is same value when rounding to the - * given precision. - * - * @param float $value - * @param float $precision - * - * @return Token\ApproximateValueToken - */ - public static function approximate($value, $precision = 0) - { - return new Token\ApproximateValueToken($value, $precision); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php deleted file mode 100644 index a088f21..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php +++ /dev/null @@ -1,101 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument; - -/** - * Arguments wildcarding. - * - * @author Konstantin Kudryashov - */ -class ArgumentsWildcard -{ - /** - * @var Token\TokenInterface[] - */ - private $tokens = array(); - private $string; - - /** - * Initializes wildcard. - * - * @param array $arguments Array of argument tokens or values - */ - public function __construct(array $arguments) - { - foreach ($arguments as $argument) { - if (!$argument instanceof Token\TokenInterface) { - $argument = new Token\ExactValueToken($argument); - } - - $this->tokens[] = $argument; - } - } - - /** - * Calculates wildcard match score for provided arguments. - * - * @param array $arguments - * - * @return false|int False OR integer score (higher - better) - */ - public function scoreArguments(array $arguments) - { - if (0 == count($arguments) && 0 == count($this->tokens)) { - return 1; - } - - $arguments = array_values($arguments); - $totalScore = 0; - foreach ($this->tokens as $i => $token) { - $argument = isset($arguments[$i]) ? $arguments[$i] : null; - if (1 >= $score = $token->scoreArgument($argument)) { - return false; - } - - $totalScore += $score; - - if (true === $token->isLast()) { - return $totalScore; - } - } - - if (count($arguments) > count($this->tokens)) { - return false; - } - - return $totalScore; - } - - /** - * Returns string representation for wildcard. - * - * @return string - */ - public function __toString() - { - if (null === $this->string) { - $this->string = implode(', ', array_map(function ($token) { - return (string) $token; - }, $this->tokens)); - } - - return $this->string; - } - - /** - * @return array - */ - public function getTokens() - { - return $this->tokens; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php deleted file mode 100644 index 5098811..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php +++ /dev/null @@ -1,52 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Any single value token. - * - * @author Konstantin Kudryashov - */ -class AnyValueToken implements TokenInterface -{ - /** - * Always scores 3 for any argument. - * - * @param $argument - * - * @return int - */ - public function scoreArgument($argument) - { - return 3; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return '*'; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php deleted file mode 100644 index f76b17b..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php +++ /dev/null @@ -1,52 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Any values token. - * - * @author Konstantin Kudryashov - */ -class AnyValuesToken implements TokenInterface -{ - /** - * Always scores 2 for any argument. - * - * @param $argument - * - * @return int - */ - public function scoreArgument($argument) - { - return 2; - } - - /** - * Returns true to stop wildcard from processing other tokens. - * - * @return bool - */ - public function isLast() - { - return true; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return '* [, ...]'; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php deleted file mode 100644 index d4918b1..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php +++ /dev/null @@ -1,55 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Approximate value token - * - * @author Daniel Leech - */ -class ApproximateValueToken implements TokenInterface -{ - private $value; - private $precision; - - public function __construct($value, $precision = 0) - { - $this->value = $value; - $this->precision = $precision; - } - - /** - * {@inheritdoc} - */ - public function scoreArgument($argument) - { - return round($argument, $this->precision) === round($this->value, $this->precision) ? 10 : false; - } - - /** - * {@inheritdoc} - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('≅%s', round($this->value, $this->precision)); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php deleted file mode 100644 index 96b4bef..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php +++ /dev/null @@ -1,86 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Array elements count token. - * - * @author Boris Mikhaylov - */ - -class ArrayCountToken implements TokenInterface -{ - private $count; - - /** - * @param integer $value - */ - public function __construct($value) - { - $this->count = $value; - } - - /** - * Scores 6 when argument has preset number of elements. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - return $this->isCountable($argument) && $this->hasProperCount($argument) ? 6 : false; - } - - /** - * Returns false. - * - * @return boolean - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('count(%s)', $this->count); - } - - /** - * Returns true if object is either array or instance of \Countable - * - * @param $argument - * @return bool - */ - private function isCountable($argument) - { - return (is_array($argument) || $argument instanceof \Countable); - } - - /** - * Returns true if $argument has expected number of elements - * - * @param array|\Countable $argument - * - * @return bool - */ - private function hasProperCount($argument) - { - return $this->count === count($argument); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php deleted file mode 100644 index 0305fc7..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php +++ /dev/null @@ -1,143 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use Prophecy\Exception\InvalidArgumentException; - -/** - * Array entry token. - * - * @author Boris Mikhaylov - */ -class ArrayEntryToken implements TokenInterface -{ - /** @var \Prophecy\Argument\Token\TokenInterface */ - private $key; - /** @var \Prophecy\Argument\Token\TokenInterface */ - private $value; - - /** - * @param mixed $key exact value or token - * @param mixed $value exact value or token - */ - public function __construct($key, $value) - { - $this->key = $this->wrapIntoExactValueToken($key); - $this->value = $this->wrapIntoExactValueToken($value); - } - - /** - * Scores half of combined scores from key and value tokens for same entry. Capped at 8. - * If argument implements \ArrayAccess without \Traversable, then key token is restricted to ExactValueToken. - * - * @param array|\ArrayAccess|\Traversable $argument - * - * @throws \Prophecy\Exception\InvalidArgumentException - * @return bool|int - */ - public function scoreArgument($argument) - { - if ($argument instanceof \Traversable) { - $argument = iterator_to_array($argument); - } - - if ($argument instanceof \ArrayAccess) { - $argument = $this->convertArrayAccessToEntry($argument); - } - - if (!is_array($argument) || empty($argument)) { - return false; - } - - $keyScores = array_map(array($this->key,'scoreArgument'), array_keys($argument)); - $valueScores = array_map(array($this->value,'scoreArgument'), $argument); - $scoreEntry = function ($value, $key) { - return $value && $key ? min(8, ($key + $value) / 2) : false; - }; - - return max(array_map($scoreEntry, $valueScores, $keyScores)); - } - - /** - * Returns false. - * - * @return boolean - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('[..., %s => %s, ...]', $this->key, $this->value); - } - - /** - * Returns key - * - * @return TokenInterface - */ - public function getKey() - { - return $this->key; - } - - /** - * Returns value - * - * @return TokenInterface - */ - public function getValue() - { - return $this->value; - } - - /** - * Wraps non token $value into ExactValueToken - * - * @param $value - * @return TokenInterface - */ - private function wrapIntoExactValueToken($value) - { - return $value instanceof TokenInterface ? $value : new ExactValueToken($value); - } - - /** - * Converts instance of \ArrayAccess to key => value array entry - * - * @param \ArrayAccess $object - * - * @return array|null - * @throws \Prophecy\Exception\InvalidArgumentException - */ - private function convertArrayAccessToEntry(\ArrayAccess $object) - { - if (!$this->key instanceof ExactValueToken) { - throw new InvalidArgumentException(sprintf( - 'You can only use exact value tokens to match key of ArrayAccess object'.PHP_EOL. - 'But you used `%s`.', - $this->key - )); - } - - $key = $this->key->getValue(); - - return $object->offsetExists($key) ? array($key => $object[$key]) : array(); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php deleted file mode 100644 index 5d41fa4..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php +++ /dev/null @@ -1,82 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Array every entry token. - * - * @author Adrien Brault - */ -class ArrayEveryEntryToken implements TokenInterface -{ - /** - * @var TokenInterface - */ - private $value; - - /** - * @param mixed $value exact value or token - */ - public function __construct($value) - { - if (!$value instanceof TokenInterface) { - $value = new ExactValueToken($value); - } - - $this->value = $value; - } - - /** - * {@inheritdoc} - */ - public function scoreArgument($argument) - { - if (!$argument instanceof \Traversable && !is_array($argument)) { - return false; - } - - $scores = array(); - foreach ($argument as $key => $argumentEntry) { - $scores[] = $this->value->scoreArgument($argumentEntry); - } - - if (empty($scores) || in_array(false, $scores, true)) { - return false; - } - - return array_sum($scores) / count($scores); - } - - /** - * {@inheritdoc} - */ - public function isLast() - { - return false; - } - - /** - * {@inheritdoc} - */ - public function __toString() - { - return sprintf('[%s, ..., %s]', $this->value, $this->value); - } - - /** - * @return TokenInterface - */ - public function getValue() - { - return $this->value; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php deleted file mode 100644 index f45ba20..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php +++ /dev/null @@ -1,75 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use Prophecy\Exception\InvalidArgumentException; - -/** - * Callback-verified token. - * - * @author Konstantin Kudryashov - */ -class CallbackToken implements TokenInterface -{ - private $callback; - - /** - * Initializes token. - * - * @param callable $callback - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($callback) - { - if (!is_callable($callback)) { - throw new InvalidArgumentException(sprintf( - 'Callable expected as an argument to CallbackToken, but got %s.', - gettype($callback) - )); - } - - $this->callback = $callback; - } - - /** - * Scores 7 if callback returns true, false otherwise. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - return call_user_func($this->callback, $argument) ? 7 : false; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return 'callback()'; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php deleted file mode 100644 index aa960f3..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php +++ /dev/null @@ -1,116 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use SebastianBergmann\Comparator\ComparisonFailure; -use Prophecy\Comparator\Factory as ComparatorFactory; -use Prophecy\Util\StringUtil; - -/** - * Exact value token. - * - * @author Konstantin Kudryashov - */ -class ExactValueToken implements TokenInterface -{ - private $value; - private $string; - private $util; - private $comparatorFactory; - - /** - * Initializes token. - * - * @param mixed $value - * @param StringUtil $util - * @param ComparatorFactory $comparatorFactory - */ - public function __construct($value, StringUtil $util = null, ComparatorFactory $comparatorFactory = null) - { - $this->value = $value; - $this->util = $util ?: new StringUtil(); - - $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance(); - } - - /** - * Scores 10 if argument matches preset value. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - if (is_object($argument) && is_object($this->value)) { - $comparator = $this->comparatorFactory->getComparatorFor( - $argument, $this->value - ); - - try { - $comparator->assertEquals($argument, $this->value); - return 10; - } catch (ComparisonFailure $failure) {} - } - - // If either one is an object it should be castable to a string - if (is_object($argument) xor is_object($this->value)) { - if (is_object($argument) && !method_exists($argument, '__toString')) { - return false; - } - - if (is_object($this->value) && !method_exists($this->value, '__toString')) { - return false; - } - } elseif (is_numeric($argument) && is_numeric($this->value)) { - // noop - } elseif (gettype($argument) !== gettype($this->value)) { - return false; - } - - return $argument == $this->value ? 10 : false; - } - - /** - * Returns preset value against which token checks arguments. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - if (null === $this->string) { - $this->string = sprintf('exact(%s)', $this->util->stringify($this->value)); - } - - return $this->string; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php deleted file mode 100644 index 0b6d23a..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php +++ /dev/null @@ -1,74 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use Prophecy\Util\StringUtil; - -/** - * Identical value token. - * - * @author Florian Voutzinos - */ -class IdenticalValueToken implements TokenInterface -{ - private $value; - private $string; - private $util; - - /** - * Initializes token. - * - * @param mixed $value - * @param StringUtil $util - */ - public function __construct($value, StringUtil $util = null) - { - $this->value = $value; - $this->util = $util ?: new StringUtil(); - } - - /** - * Scores 11 if argument matches preset value. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - return $argument === $this->value ? 11 : false; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - if (null === $this->string) { - $this->string = sprintf('identical(%s)', $this->util->stringify($this->value)); - } - - return $this->string; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php deleted file mode 100644 index 4ee1b25..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php +++ /dev/null @@ -1,80 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Logical AND token. - * - * @author Boris Mikhaylov - */ -class LogicalAndToken implements TokenInterface -{ - private $tokens = array(); - - /** - * @param array $arguments exact values or tokens - */ - public function __construct(array $arguments) - { - foreach ($arguments as $argument) { - if (!$argument instanceof TokenInterface) { - $argument = new ExactValueToken($argument); - } - $this->tokens[] = $argument; - } - } - - /** - * Scores maximum score from scores returned by tokens for this argument if all of them score. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - if (0 === count($this->tokens)) { - return false; - } - - $maxScore = 0; - foreach ($this->tokens as $token) { - $score = $token->scoreArgument($argument); - if (false === $score) { - return false; - } - $maxScore = max($score, $maxScore); - } - - return $maxScore; - } - - /** - * Returns false. - * - * @return boolean - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('bool(%s)', implode(' AND ', $this->tokens)); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php deleted file mode 100644 index 623efa5..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php +++ /dev/null @@ -1,73 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Logical NOT token. - * - * @author Boris Mikhaylov - */ -class LogicalNotToken implements TokenInterface -{ - /** @var \Prophecy\Argument\Token\TokenInterface */ - private $token; - - /** - * @param mixed $value exact value or token - */ - public function __construct($value) - { - $this->token = $value instanceof TokenInterface? $value : new ExactValueToken($value); - } - - /** - * Scores 4 when preset token does not match the argument. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - return false === $this->token->scoreArgument($argument) ? 4 : false; - } - - /** - * Returns true if preset token is last. - * - * @return bool|int - */ - public function isLast() - { - return $this->token->isLast(); - } - - /** - * Returns originating token. - * - * @return TokenInterface - */ - public function getOriginatingToken() - { - return $this->token; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('not(%s)', $this->token); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php deleted file mode 100644 index d771077..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php +++ /dev/null @@ -1,104 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use SebastianBergmann\Comparator\ComparisonFailure; -use Prophecy\Comparator\Factory as ComparatorFactory; -use Prophecy\Util\StringUtil; - -/** - * Object state-checker token. - * - * @author Konstantin Kudryashov - */ -class ObjectStateToken implements TokenInterface -{ - private $name; - private $value; - private $util; - private $comparatorFactory; - - /** - * Initializes token. - * - * @param string $methodName - * @param mixed $value Expected return value - * @param null|StringUtil $util - * @param ComparatorFactory $comparatorFactory - */ - public function __construct( - $methodName, - $value, - StringUtil $util = null, - ComparatorFactory $comparatorFactory = null - ) { - $this->name = $methodName; - $this->value = $value; - $this->util = $util ?: new StringUtil; - - $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance(); - } - - /** - * Scores 8 if argument is an object, which method returns expected value. - * - * @param mixed $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - if (is_object($argument) && method_exists($argument, $this->name)) { - $actual = call_user_func(array($argument, $this->name)); - - $comparator = $this->comparatorFactory->getComparatorFor( - $this->value, $actual - ); - - try { - $comparator->assertEquals($this->value, $actual); - return 8; - } catch (ComparisonFailure $failure) { - return false; - } - } - - if (is_object($argument) && property_exists($argument, $this->name)) { - return $argument->{$this->name} === $this->value ? 8 : false; - } - - return false; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('state(%s(), %s)', - $this->name, - $this->util->stringify($this->value) - ); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php deleted file mode 100644 index 24ff8c2..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php +++ /dev/null @@ -1,67 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * String contains token. - * - * @author Peter Mitchell - */ -class StringContainsToken implements TokenInterface -{ - private $value; - - /** - * Initializes token. - * - * @param string $value - */ - public function __construct($value) - { - $this->value = $value; - } - - public function scoreArgument($argument) - { - return strpos($argument, $this->value) !== false ? 6 : false; - } - - /** - * Returns preset value against which token checks arguments. - * - * @return mixed - */ - public function getValue() - { - return $this->value; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('contains("%s")', $this->value); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php deleted file mode 100644 index 625d3ba..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php +++ /dev/null @@ -1,43 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -/** - * Argument token interface. - * - * @author Konstantin Kudryashov - */ -interface TokenInterface -{ - /** - * Calculates token match score for provided argument. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument); - - /** - * Returns true if this token prevents check of other tokens (is last one). - * - * @return bool|int - */ - public function isLast(); - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php deleted file mode 100644 index cb65132..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php +++ /dev/null @@ -1,76 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Argument\Token; - -use Prophecy\Exception\InvalidArgumentException; - -/** - * Value type token. - * - * @author Konstantin Kudryashov - */ -class TypeToken implements TokenInterface -{ - private $type; - - /** - * @param string $type - */ - public function __construct($type) - { - $checker = "is_{$type}"; - if (!function_exists($checker) && !interface_exists($type) && !class_exists($type)) { - throw new InvalidArgumentException(sprintf( - 'Type or class name expected as an argument to TypeToken, but got %s.', $type - )); - } - - $this->type = $type; - } - - /** - * Scores 5 if argument has the same type this token was constructed with. - * - * @param $argument - * - * @return bool|int - */ - public function scoreArgument($argument) - { - $checker = "is_{$this->type}"; - if (function_exists($checker)) { - return call_user_func($checker, $argument) ? 5 : false; - } - - return $argument instanceof $this->type ? 5 : false; - } - - /** - * Returns false. - * - * @return bool - */ - public function isLast() - { - return false; - } - - /** - * Returns string representation for token. - * - * @return string - */ - public function __toString() - { - return sprintf('type(%s)', $this->type); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php b/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php deleted file mode 100644 index 2f3fbad..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php +++ /dev/null @@ -1,127 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Call; - -use Exception; - -/** - * Call object. - * - * @author Konstantin Kudryashov - */ -class Call -{ - private $methodName; - private $arguments; - private $returnValue; - private $exception; - private $file; - private $line; - - /** - * Initializes call. - * - * @param string $methodName - * @param array $arguments - * @param mixed $returnValue - * @param Exception $exception - * @param null|string $file - * @param null|int $line - */ - public function __construct($methodName, array $arguments, $returnValue, - Exception $exception = null, $file, $line) - { - $this->methodName = $methodName; - $this->arguments = $arguments; - $this->returnValue = $returnValue; - $this->exception = $exception; - - if ($file) { - $this->file = $file; - $this->line = intval($line); - } - } - - /** - * Returns called method name. - * - * @return string - */ - public function getMethodName() - { - return $this->methodName; - } - - /** - * Returns called method arguments. - * - * @return array - */ - public function getArguments() - { - return $this->arguments; - } - - /** - * Returns called method return value. - * - * @return null|mixed - */ - public function getReturnValue() - { - return $this->returnValue; - } - - /** - * Returns exception that call thrown. - * - * @return null|Exception - */ - public function getException() - { - return $this->exception; - } - - /** - * Returns callee filename. - * - * @return string - */ - public function getFile() - { - return $this->file; - } - - /** - * Returns callee line number. - * - * @return int - */ - public function getLine() - { - return $this->line; - } - - /** - * Returns short notation for callee place. - * - * @return string - */ - public function getCallPlace() - { - if (null === $this->file) { - return 'unknown'; - } - - return sprintf('%s:%d', $this->file, $this->line); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php b/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php deleted file mode 100644 index 53b80f0..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php +++ /dev/null @@ -1,171 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Call; - -use Prophecy\Exception\Prophecy\MethodProphecyException; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Argument\ArgumentsWildcard; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Call\UnexpectedCallException; - -/** - * Calls receiver & manager. - * - * @author Konstantin Kudryashov - */ -class CallCenter -{ - private $util; - - /** - * @var Call[] - */ - private $recordedCalls = array(); - - /** - * Initializes call center. - * - * @param StringUtil $util - */ - public function __construct(StringUtil $util = null) - { - $this->util = $util ?: new StringUtil; - } - - /** - * Makes and records specific method call for object prophecy. - * - * @param ObjectProphecy $prophecy - * @param string $methodName - * @param array $arguments - * - * @return mixed Returns null if no promise for prophecy found or promise return value. - * - * @throws \Prophecy\Exception\Call\UnexpectedCallException If no appropriate method prophecy found - */ - public function makeCall(ObjectProphecy $prophecy, $methodName, array $arguments) - { - // For efficiency exclude 'args' from the generated backtrace - if (PHP_VERSION_ID >= 50400) { - // Limit backtrace to last 3 calls as we don't use the rest - // Limit argument was introduced in PHP 5.4.0 - $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3); - } elseif (defined('DEBUG_BACKTRACE_IGNORE_ARGS')) { - // DEBUG_BACKTRACE_IGNORE_ARGS was introduced in PHP 5.3.6 - $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - } else { - $backtrace = debug_backtrace(); - } - - $file = $line = null; - if (isset($backtrace[2]) && isset($backtrace[2]['file'])) { - $file = $backtrace[2]['file']; - $line = $backtrace[2]['line']; - } - - // If no method prophecies defined, then it's a dummy, so we'll just return null - if ('__destruct' === $methodName || 0 == count($prophecy->getMethodProphecies())) { - $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line); - - return null; - } - - // There are method prophecies, so it's a fake/stub. Searching prophecy for this call - $matches = array(); - foreach ($prophecy->getMethodProphecies($methodName) as $methodProphecy) { - if (0 < $score = $methodProphecy->getArgumentsWildcard()->scoreArguments($arguments)) { - $matches[] = array($score, $methodProphecy); - } - } - - // If fake/stub doesn't have method prophecy for this call - throw exception - if (!count($matches)) { - throw $this->createUnexpectedCallException($prophecy, $methodName, $arguments); - } - - // Sort matches by their score value - @usort($matches, function ($match1, $match2) { return $match2[0] - $match1[0]; }); - - // If Highest rated method prophecy has a promise - execute it or return null instead - $methodProphecy = $matches[0][1]; - $returnValue = null; - $exception = null; - if ($promise = $methodProphecy->getPromise()) { - try { - $returnValue = $promise->execute($arguments, $prophecy, $methodProphecy); - } catch (\Exception $e) { - $exception = $e; - } - } - - if ($methodProphecy->hasReturnVoid() && $returnValue !== null) { - throw new MethodProphecyException( - "The method \"$methodName\" has a void return type, but the promise returned a value", - $methodProphecy - ); - } - - $this->recordedCalls[] = new Call( - $methodName, $arguments, $returnValue, $exception, $file, $line - ); - - if (null !== $exception) { - throw $exception; - } - - return $returnValue; - } - - /** - * Searches for calls by method name & arguments wildcard. - * - * @param string $methodName - * @param ArgumentsWildcard $wildcard - * - * @return Call[] - */ - public function findCalls($methodName, ArgumentsWildcard $wildcard) - { - return array_values( - array_filter($this->recordedCalls, function (Call $call) use ($methodName, $wildcard) { - return $methodName === $call->getMethodName() - && 0 < $wildcard->scoreArguments($call->getArguments()) - ; - }) - ); - } - - private function createUnexpectedCallException(ObjectProphecy $prophecy, $methodName, - array $arguments) - { - $classname = get_class($prophecy->reveal()); - $argstring = implode(', ', array_map(array($this->util, 'stringify'), $arguments)); - $expected = implode("\n", array_map(function (MethodProphecy $methodProphecy) { - return sprintf(' - %s(%s)', - $methodProphecy->getMethodName(), - $methodProphecy->getArgumentsWildcard() - ); - }, call_user_func_array('array_merge', $prophecy->getMethodProphecies()))); - - return new UnexpectedCallException( - sprintf( - "Method call:\n". - " - %s(%s)\n". - "on %s was not expected, expected calls were:\n%s", - - $methodName, $argstring, $classname, $expected - ), - $prophecy, $methodName, $arguments - ); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php deleted file mode 100644 index 874e474..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php +++ /dev/null @@ -1,42 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Comparator; - -use SebastianBergmann\Comparator\Comparator; -use SebastianBergmann\Comparator\ComparisonFailure; - -/** - * Closure comparator. - * - * @author Konstantin Kudryashov - */ -final class ClosureComparator extends Comparator -{ - public function accepts($expected, $actual) - { - return is_object($expected) && $expected instanceof \Closure - && is_object($actual) && $actual instanceof \Closure; - } - - public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false) - { - throw new ComparisonFailure( - $expected, - $actual, - // we don't need a diff - '', - '', - false, - 'all closures are born different' - ); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php deleted file mode 100644 index 2070db1..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php +++ /dev/null @@ -1,47 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Comparator; - -use SebastianBergmann\Comparator\Factory as BaseFactory; - -/** - * Prophecy comparator factory. - * - * @author Konstantin Kudryashov - */ -final class Factory extends BaseFactory -{ - /** - * @var Factory - */ - private static $instance; - - public function __construct() - { - parent::__construct(); - - $this->register(new ClosureComparator()); - $this->register(new ProphecyComparator()); - } - - /** - * @return Factory - */ - public static function getInstance() - { - if (self::$instance === null) { - self::$instance = new Factory; - } - - return self::$instance; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php deleted file mode 100644 index 298a8e3..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php +++ /dev/null @@ -1,28 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Comparator; - -use Prophecy\Prophecy\ProphecyInterface; -use SebastianBergmann\Comparator\ObjectComparator; - -class ProphecyComparator extends ObjectComparator -{ - public function accepts($expected, $actual) - { - return is_object($expected) && is_object($actual) && $actual instanceof ProphecyInterface; - } - - public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false, array &$processed = array()) - { - parent::assertEquals($expected, $actual->reveal(), $delta, $canonicalize, $ignoreCase, $processed); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php deleted file mode 100644 index d6b6b1a..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php +++ /dev/null @@ -1,68 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -use ReflectionClass; - -/** - * Cached class doubler. - * Prevents mirroring/creation of the same structure twice. - * - * @author Konstantin Kudryashov - */ -class CachedDoubler extends Doubler -{ - private $classes = array(); - - /** - * {@inheritdoc} - */ - public function registerClassPatch(ClassPatch\ClassPatchInterface $patch) - { - $this->classes[] = array(); - - parent::registerClassPatch($patch); - } - - /** - * {@inheritdoc} - */ - protected function createDoubleClass(ReflectionClass $class = null, array $interfaces) - { - $classId = $this->generateClassId($class, $interfaces); - if (isset($this->classes[$classId])) { - return $this->classes[$classId]; - } - - return $this->classes[$classId] = parent::createDoubleClass($class, $interfaces); - } - - /** - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces - * - * @return string - */ - private function generateClassId(ReflectionClass $class = null, array $interfaces) - { - $parts = array(); - if (null !== $class) { - $parts[] = $class->getName(); - } - foreach ($interfaces as $interface) { - $parts[] = $interface->getName(); - } - sort($parts); - - return md5(implode('', $parts)); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php deleted file mode 100644 index d6d1968..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php +++ /dev/null @@ -1,48 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -/** - * Class patch interface. - * Class patches extend doubles functionality or help - * Prophecy to avoid some internal PHP bugs. - * - * @author Konstantin Kudryashov - */ -interface ClassPatchInterface -{ - /** - * Checks if patch supports specific class node. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node); - - /** - * Applies patch to the specific class node. - * - * @param ClassNode $node - * @return void - */ - public function apply(ClassNode $node); - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php deleted file mode 100644 index 61998fc..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php +++ /dev/null @@ -1,72 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; - -/** - * Disable constructor. - * Makes all constructor arguments optional. - * - * @author Konstantin Kudryashov - */ -class DisableConstructorPatch implements ClassPatchInterface -{ - /** - * Checks if class has `__construct` method. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - return true; - } - - /** - * Makes all class constructor arguments optional. - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - if (!$node->hasMethod('__construct')) { - $node->addMethod(new MethodNode('__construct', '')); - - return; - } - - $constructor = $node->getMethod('__construct'); - foreach ($constructor->getArguments() as $argument) { - $argument->setDefault(null); - } - - $constructor->setCode(<< - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -/** - * Exception patch for HHVM to remove the stubs from special methods - * - * @author Christophe Coevoet - */ -class HhvmExceptionPatch implements ClassPatchInterface -{ - /** - * Supports exceptions on HHVM. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - if (!defined('HHVM_VERSION')) { - return false; - } - - return 'Exception' === $node->getParentClass() || is_subclass_of($node->getParentClass(), 'Exception'); - } - - /** - * Removes special exception static methods from the doubled methods. - * - * @param ClassNode $node - * - * @return void - */ - public function apply(ClassNode $node) - { - if ($node->hasMethod('setTraceOptions')) { - $node->getMethod('setTraceOptions')->useParentCode(); - } - if ($node->hasMethod('getTraceOptions')) { - $node->getMethod('getTraceOptions')->useParentCode(); - } - } - - /** - * {@inheritdoc} - */ - public function getPriority() - { - return -50; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php deleted file mode 100644 index 41ea2fc..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php +++ /dev/null @@ -1,140 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -/** - * Remove method functionality from the double which will clash with php keywords. - * - * @author Milan Magudia - */ -class KeywordPatch implements ClassPatchInterface -{ - /** - * Support any class - * - * @param ClassNode $node - * - * @return boolean - */ - public function supports(ClassNode $node) - { - return true; - } - - /** - * Remove methods that clash with php keywords - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - $methodNames = array_keys($node->getMethods()); - $methodsToRemove = array_intersect($methodNames, $this->getKeywords()); - foreach ($methodsToRemove as $methodName) { - $node->removeMethod($methodName); - } - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority() - { - return 49; - } - - /** - * Returns array of php keywords. - * - * @return array - */ - private function getKeywords() - { - if (\PHP_VERSION_ID >= 70000) { - return array('__halt_compiler'); - } - - return array( - '__halt_compiler', - 'abstract', - 'and', - 'array', - 'as', - 'break', - 'callable', - 'case', - 'catch', - 'class', - 'clone', - 'const', - 'continue', - 'declare', - 'default', - 'die', - 'do', - 'echo', - 'else', - 'elseif', - 'empty', - 'enddeclare', - 'endfor', - 'endforeach', - 'endif', - 'endswitch', - 'endwhile', - 'eval', - 'exit', - 'extends', - 'final', - 'finally', - 'for', - 'foreach', - 'function', - 'global', - 'goto', - 'if', - 'implements', - 'include', - 'include_once', - 'instanceof', - 'insteadof', - 'interface', - 'isset', - 'list', - 'namespace', - 'new', - 'or', - 'print', - 'private', - 'protected', - 'public', - 'require', - 'require_once', - 'return', - 'static', - 'switch', - 'throw', - 'trait', - 'try', - 'unset', - 'use', - 'var', - 'while', - 'xor', - 'yield', - ); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php deleted file mode 100644 index 5f2c607..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php +++ /dev/null @@ -1,89 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; -use Prophecy\PhpDocumentor\ClassAndInterfaceTagRetriever; -use Prophecy\PhpDocumentor\MethodTagRetrieverInterface; - -/** - * Discover Magical API using "@method" PHPDoc format. - * - * @author Thomas Tourlourat - * @author Kévin Dunglas - * @author Théo FIDRY - */ -class MagicCallPatch implements ClassPatchInterface -{ - private $tagRetriever; - - public function __construct(MethodTagRetrieverInterface $tagRetriever = null) - { - $this->tagRetriever = null === $tagRetriever ? new ClassAndInterfaceTagRetriever() : $tagRetriever; - } - - /** - * Support any class - * - * @param ClassNode $node - * - * @return boolean - */ - public function supports(ClassNode $node) - { - return true; - } - - /** - * Discover Magical API - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - $types = array_filter($node->getInterfaces(), function ($interface) { - return 0 !== strpos($interface, 'Prophecy\\'); - }); - $types[] = $node->getParentClass(); - - foreach ($types as $type) { - $reflectionClass = new \ReflectionClass($type); - $tagList = $this->tagRetriever->getTagList($reflectionClass); - - foreach($tagList as $tag) { - $methodName = $tag->getMethodName(); - - if (empty($methodName)) { - continue; - } - - if (!$reflectionClass->hasMethod($methodName)) { - $methodNode = new MethodNode($methodName); - $methodNode->setStatic($tag->isStatic()); - $node->addMethod($methodNode); - } - } - } - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return integer Priority number (higher - earlier) - */ - public function getPriority() - { - return 50; - } -} - diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php deleted file mode 100644 index fc2cc4d..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php +++ /dev/null @@ -1,104 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; -use Prophecy\Doubler\Generator\Node\ArgumentNode; - -/** - * Add Prophecy functionality to the double. - * This is a core class patch for Prophecy. - * - * @author Konstantin Kudryashov - */ -class ProphecySubjectPatch implements ClassPatchInterface -{ - /** - * Always returns true. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - return true; - } - - /** - * Apply Prophecy functionality to class node. - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface'); - $node->addProperty('objectProphecy', 'private'); - - foreach ($node->getMethods() as $name => $method) { - if ('__construct' === strtolower($name)) { - continue; - } - - if ($method->getReturnType() === 'void') { - $method->setCode( - '$this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());' - ); - } else { - $method->setCode( - 'return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());' - ); - } - } - - $prophecySetter = new MethodNode('setProphecy'); - $prophecyArgument = new ArgumentNode('prophecy'); - $prophecyArgument->setTypeHint('Prophecy\Prophecy\ProphecyInterface'); - $prophecySetter->addArgument($prophecyArgument); - $prophecySetter->setCode('$this->objectProphecy = $prophecy;'); - - $prophecyGetter = new MethodNode('getProphecy'); - $prophecyGetter->setCode('return $this->objectProphecy;'); - - if ($node->hasMethod('__call')) { - $__call = $node->getMethod('__call'); - } else { - $__call = new MethodNode('__call'); - $__call->addArgument(new ArgumentNode('name')); - $__call->addArgument(new ArgumentNode('arguments')); - - $node->addMethod($__call); - } - - $__call->setCode(<<getProphecy(), func_get_arg(0) -); -PHP - ); - - $node->addMethod($prophecySetter); - $node->addMethod($prophecyGetter); - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority() - { - return 0; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php deleted file mode 100644 index 9166aee..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php +++ /dev/null @@ -1,57 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -/** - * ReflectionClass::newInstance patch. - * Makes first argument of newInstance optional, since it works but signature is misleading - * - * @author Florian Klein - */ -class ReflectionClassNewInstancePatch implements ClassPatchInterface -{ - /** - * Supports ReflectionClass - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - return 'ReflectionClass' === $node->getParentClass(); - } - - /** - * Updates newInstance's first argument to make it optional - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - foreach ($node->getMethod('newInstance')->getArguments() as $argument) { - $argument->setDefault(null); - } - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher = earlier) - */ - public function getPriority() - { - return 50; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php deleted file mode 100644 index ceee94a..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php +++ /dev/null @@ -1,123 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; - -/** - * SplFileInfo patch. - * Makes SplFileInfo and derivative classes usable with Prophecy. - * - * @author Konstantin Kudryashov - */ -class SplFileInfoPatch implements ClassPatchInterface -{ - /** - * Supports everything that extends SplFileInfo. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - if (null === $node->getParentClass()) { - return false; - } - return 'SplFileInfo' === $node->getParentClass() - || is_subclass_of($node->getParentClass(), 'SplFileInfo') - ; - } - - /** - * Updated constructor code to call parent one with dummy file argument. - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - if ($node->hasMethod('__construct')) { - $constructor = $node->getMethod('__construct'); - } else { - $constructor = new MethodNode('__construct'); - $node->addMethod($constructor); - } - - if ($this->nodeIsDirectoryIterator($node)) { - $constructor->setCode('return parent::__construct("' . __DIR__ . '");'); - - return; - } - - if ($this->nodeIsSplFileObject($node)) { - $filePath = str_replace('\\','\\\\',__FILE__); - $constructor->setCode('return parent::__construct("' . $filePath .'");'); - - return; - } - - if ($this->nodeIsSymfonySplFileInfo($node)) { - $filePath = str_replace('\\','\\\\',__FILE__); - $constructor->setCode('return parent::__construct("' . $filePath .'", "", "");'); - - return; - } - - $constructor->useParentCode(); - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority() - { - return 50; - } - - /** - * @param ClassNode $node - * @return boolean - */ - private function nodeIsDirectoryIterator(ClassNode $node) - { - $parent = $node->getParentClass(); - - return 'DirectoryIterator' === $parent - || is_subclass_of($parent, 'DirectoryIterator'); - } - - /** - * @param ClassNode $node - * @return boolean - */ - private function nodeIsSplFileObject(ClassNode $node) - { - $parent = $node->getParentClass(); - - return 'SplFileObject' === $parent - || is_subclass_of($parent, 'SplFileObject'); - } - - /** - * @param ClassNode $node - * @return boolean - */ - private function nodeIsSymfonySplFileInfo(ClassNode $node) - { - $parent = $node->getParentClass(); - - return 'Symfony\\Component\\Finder\\SplFileInfo' === $parent; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php deleted file mode 100644 index eea0202..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php +++ /dev/null @@ -1,83 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\ClassPatch; - -use Prophecy\Doubler\Generator\Node\ClassNode; -use Prophecy\Doubler\Generator\Node\MethodNode; - -/** - * Traversable interface patch. - * Forces classes that implement interfaces, that extend Traversable to also implement Iterator. - * - * @author Konstantin Kudryashov - */ -class TraversablePatch implements ClassPatchInterface -{ - /** - * Supports nodetree, that implement Traversable, but not Iterator or IteratorAggregate. - * - * @param ClassNode $node - * - * @return bool - */ - public function supports(ClassNode $node) - { - if (in_array('Iterator', $node->getInterfaces())) { - return false; - } - if (in_array('IteratorAggregate', $node->getInterfaces())) { - return false; - } - - foreach ($node->getInterfaces() as $interface) { - if ('Traversable' !== $interface && !is_subclass_of($interface, 'Traversable')) { - continue; - } - if ('Iterator' === $interface || is_subclass_of($interface, 'Iterator')) { - continue; - } - if ('IteratorAggregate' === $interface || is_subclass_of($interface, 'IteratorAggregate')) { - continue; - } - - return true; - } - - return false; - } - - /** - * Forces class to implement Iterator interface. - * - * @param ClassNode $node - */ - public function apply(ClassNode $node) - { - $node->addInterface('Iterator'); - - $node->addMethod(new MethodNode('current')); - $node->addMethod(new MethodNode('key')); - $node->addMethod(new MethodNode('next')); - $node->addMethod(new MethodNode('rewind')); - $node->addMethod(new MethodNode('valid')); - } - - /** - * Returns patch priority, which determines when patch will be applied. - * - * @return int Priority number (higher - earlier) - */ - public function getPriority() - { - return 100; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php deleted file mode 100644 index 699be3a..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -/** - * Core double interface. - * All doubled classes will implement this one. - * - * @author Konstantin Kudryashov - */ -interface DoubleInterface -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php deleted file mode 100644 index a378ae2..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php +++ /dev/null @@ -1,146 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -use Doctrine\Instantiator\Instantiator; -use Prophecy\Doubler\ClassPatch\ClassPatchInterface; -use Prophecy\Doubler\Generator\ClassMirror; -use Prophecy\Doubler\Generator\ClassCreator; -use Prophecy\Exception\InvalidArgumentException; -use ReflectionClass; - -/** - * Cached class doubler. - * Prevents mirroring/creation of the same structure twice. - * - * @author Konstantin Kudryashov - */ -class Doubler -{ - private $mirror; - private $creator; - private $namer; - - /** - * @var ClassPatchInterface[] - */ - private $patches = array(); - - /** - * @var \Doctrine\Instantiator\Instantiator - */ - private $instantiator; - - /** - * Initializes doubler. - * - * @param ClassMirror $mirror - * @param ClassCreator $creator - * @param NameGenerator $namer - */ - public function __construct(ClassMirror $mirror = null, ClassCreator $creator = null, - NameGenerator $namer = null) - { - $this->mirror = $mirror ?: new ClassMirror; - $this->creator = $creator ?: new ClassCreator; - $this->namer = $namer ?: new NameGenerator; - } - - /** - * Returns list of registered class patches. - * - * @return ClassPatchInterface[] - */ - public function getClassPatches() - { - return $this->patches; - } - - /** - * Registers new class patch. - * - * @param ClassPatchInterface $patch - */ - public function registerClassPatch(ClassPatchInterface $patch) - { - $this->patches[] = $patch; - - @usort($this->patches, function (ClassPatchInterface $patch1, ClassPatchInterface $patch2) { - return $patch2->getPriority() - $patch1->getPriority(); - }); - } - - /** - * Creates double from specific class or/and list of interfaces. - * - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces Array of ReflectionClass instances - * @param array $args Constructor arguments - * - * @return DoubleInterface - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function double(ReflectionClass $class = null, array $interfaces, array $args = null) - { - foreach ($interfaces as $interface) { - if (!$interface instanceof ReflectionClass) { - throw new InvalidArgumentException(sprintf( - "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n". - "a second argument to `Doubler::double(...)`, but got %s.", - is_object($interface) ? get_class($interface).' class' : gettype($interface) - )); - } - } - - $classname = $this->createDoubleClass($class, $interfaces); - $reflection = new ReflectionClass($classname); - - if (null !== $args) { - return $reflection->newInstanceArgs($args); - } - if ((null === $constructor = $reflection->getConstructor()) - || ($constructor->isPublic() && !$constructor->isFinal())) { - return $reflection->newInstance(); - } - - if (!$this->instantiator) { - $this->instantiator = new Instantiator(); - } - - return $this->instantiator->instantiate($classname); - } - - /** - * Creates double class and returns its FQN. - * - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces - * - * @return string - */ - protected function createDoubleClass(ReflectionClass $class = null, array $interfaces) - { - $name = $this->namer->name($class, $interfaces); - $node = $this->mirror->reflect($class, $interfaces); - - foreach ($this->patches as $patch) { - if ($patch->supports($node)) { - $patch->apply($node); - } - } - - $this->creator->create($name, $node); - - return $name; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php deleted file mode 100644 index 891faa8..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php +++ /dev/null @@ -1,129 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator; - -/** - * Class code creator. - * Generates PHP code for specific class node tree. - * - * @author Konstantin Kudryashov - */ -class ClassCodeGenerator -{ - /** - * @var TypeHintReference - */ - private $typeHintReference; - - public function __construct(TypeHintReference $typeHintReference = null) - { - $this->typeHintReference = $typeHintReference ?: new TypeHintReference(); - } - - /** - * Generates PHP code for class node. - * - * @param string $classname - * @param Node\ClassNode $class - * - * @return string - */ - public function generate($classname, Node\ClassNode $class) - { - $parts = explode('\\', $classname); - $classname = array_pop($parts); - $namespace = implode('\\', $parts); - - $code = sprintf("class %s extends \%s implements %s {\n", - $classname, $class->getParentClass(), implode(', ', - array_map(function ($interface) {return '\\'.$interface;}, $class->getInterfaces()) - ) - ); - - foreach ($class->getProperties() as $name => $visibility) { - $code .= sprintf("%s \$%s;\n", $visibility, $name); - } - $code .= "\n"; - - foreach ($class->getMethods() as $method) { - $code .= $this->generateMethod($method)."\n"; - } - $code .= "\n}"; - - return sprintf("namespace %s {\n%s\n}", $namespace, $code); - } - - private function generateMethod(Node\MethodNode $method) - { - $php = sprintf("%s %s function %s%s(%s)%s {\n", - $method->getVisibility(), - $method->isStatic() ? 'static' : '', - $method->returnsReference() ? '&':'', - $method->getName(), - implode(', ', $this->generateArguments($method->getArguments())), - $this->getReturnType($method) - ); - $php .= $method->getCode()."\n"; - - return $php.'}'; - } - - /** - * @return string - */ - private function getReturnType(Node\MethodNode $method) - { - if (version_compare(PHP_VERSION, '7.1', '>=')) { - if ($method->hasReturnType()) { - return $method->hasNullableReturnType() - ? sprintf(': ?%s', $method->getReturnType()) - : sprintf(': %s', $method->getReturnType()); - } - } - - if (version_compare(PHP_VERSION, '7.0', '>=')) { - return $method->hasReturnType() && $method->getReturnType() !== 'void' - ? sprintf(': %s', $method->getReturnType()) - : ''; - } - - return ''; - } - - private function generateArguments(array $arguments) - { - $typeHintReference = $this->typeHintReference; - return array_map(function (Node\ArgumentNode $argument) use ($typeHintReference) { - $php = ''; - - if (version_compare(PHP_VERSION, '7.1', '>=')) { - $php .= $argument->isNullable() ? '?' : ''; - } - - if ($hint = $argument->getTypeHint()) { - $php .= $typeHintReference->isBuiltInParamTypeHint($hint) ? $hint : '\\'.$hint; - } - - $php .= ' '.($argument->isPassedByReference() ? '&' : ''); - - $php .= $argument->isVariadic() ? '...' : ''; - - $php .= '$'.$argument->getName(); - - if ($argument->isOptional() && !$argument->isVariadic()) { - $php .= ' = '.var_export($argument->getDefault(), true); - } - - return $php; - }, $arguments); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php deleted file mode 100644 index 882a4a4..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php +++ /dev/null @@ -1,67 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator; - -use Prophecy\Exception\Doubler\ClassCreatorException; - -/** - * Class creator. - * Creates specific class in current environment. - * - * @author Konstantin Kudryashov - */ -class ClassCreator -{ - private $generator; - - /** - * Initializes creator. - * - * @param ClassCodeGenerator $generator - */ - public function __construct(ClassCodeGenerator $generator = null) - { - $this->generator = $generator ?: new ClassCodeGenerator; - } - - /** - * Creates class. - * - * @param string $classname - * @param Node\ClassNode $class - * - * @return mixed - * - * @throws \Prophecy\Exception\Doubler\ClassCreatorException - */ - public function create($classname, Node\ClassNode $class) - { - $code = $this->generator->generate($classname, $class); - $return = eval($code); - - if (!class_exists($classname, false)) { - if (count($class->getInterfaces())) { - throw new ClassCreatorException(sprintf( - 'Could not double `%s` and implement interfaces: [%s].', - $class->getParentClass(), implode(', ', $class->getInterfaces()) - ), $class); - } - - throw new ClassCreatorException( - sprintf('Could not double `%s`.', $class->getParentClass()), - $class - ); - } - - return $return; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php deleted file mode 100644 index 9f99239..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php +++ /dev/null @@ -1,258 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator; - -use Prophecy\Exception\InvalidArgumentException; -use Prophecy\Exception\Doubler\ClassMirrorException; -use ReflectionClass; -use ReflectionMethod; -use ReflectionParameter; - -/** - * Class mirror. - * Core doubler class. Mirrors specific class and/or interfaces into class node tree. - * - * @author Konstantin Kudryashov - */ -class ClassMirror -{ - private static $reflectableMethods = array( - '__construct', - '__destruct', - '__sleep', - '__wakeup', - '__toString', - '__call', - '__invoke' - ); - - /** - * Reflects provided arguments into class node. - * - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces - * - * @return Node\ClassNode - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function reflect(ReflectionClass $class = null, array $interfaces) - { - $node = new Node\ClassNode; - - if (null !== $class) { - if (true === $class->isInterface()) { - throw new InvalidArgumentException(sprintf( - "Could not reflect %s as a class, because it\n". - "is interface - use the second argument instead.", - $class->getName() - )); - } - - $this->reflectClassToNode($class, $node); - } - - foreach ($interfaces as $interface) { - if (!$interface instanceof ReflectionClass) { - throw new InvalidArgumentException(sprintf( - "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n". - "a second argument to `ClassMirror::reflect(...)`, but got %s.", - is_object($interface) ? get_class($interface).' class' : gettype($interface) - )); - } - if (false === $interface->isInterface()) { - throw new InvalidArgumentException(sprintf( - "Could not reflect %s as an interface, because it\n". - "is class - use the first argument instead.", - $interface->getName() - )); - } - - $this->reflectInterfaceToNode($interface, $node); - } - - $node->addInterface('Prophecy\Doubler\Generator\ReflectionInterface'); - - return $node; - } - - private function reflectClassToNode(ReflectionClass $class, Node\ClassNode $node) - { - if (true === $class->isFinal()) { - throw new ClassMirrorException(sprintf( - 'Could not reflect class %s as it is marked final.', $class->getName() - ), $class); - } - - $node->setParentClass($class->getName()); - - foreach ($class->getMethods(ReflectionMethod::IS_ABSTRACT) as $method) { - if (false === $method->isProtected()) { - continue; - } - - $this->reflectMethodToNode($method, $node); - } - - foreach ($class->getMethods(ReflectionMethod::IS_PUBLIC) as $method) { - if (0 === strpos($method->getName(), '_') - && !in_array($method->getName(), self::$reflectableMethods)) { - continue; - } - - if (true === $method->isFinal()) { - $node->addUnextendableMethod($method->getName()); - continue; - } - - $this->reflectMethodToNode($method, $node); - } - } - - private function reflectInterfaceToNode(ReflectionClass $interface, Node\ClassNode $node) - { - $node->addInterface($interface->getName()); - - foreach ($interface->getMethods() as $method) { - $this->reflectMethodToNode($method, $node); - } - } - - private function reflectMethodToNode(ReflectionMethod $method, Node\ClassNode $classNode) - { - $node = new Node\MethodNode($method->getName()); - - if (true === $method->isProtected()) { - $node->setVisibility('protected'); - } - - if (true === $method->isStatic()) { - $node->setStatic(); - } - - if (true === $method->returnsReference()) { - $node->setReturnsReference(); - } - - if (version_compare(PHP_VERSION, '7.0', '>=') && $method->hasReturnType()) { - $returnType = (string) $method->getReturnType(); - $returnTypeLower = strtolower($returnType); - - if ('self' === $returnTypeLower) { - $returnType = $method->getDeclaringClass()->getName(); - } - if ('parent' === $returnTypeLower) { - $returnType = $method->getDeclaringClass()->getParentClass()->getName(); - } - - $node->setReturnType($returnType); - - if (version_compare(PHP_VERSION, '7.1', '>=') && $method->getReturnType()->allowsNull()) { - $node->setNullableReturnType(true); - } - } - - if (is_array($params = $method->getParameters()) && count($params)) { - foreach ($params as $param) { - $this->reflectArgumentToNode($param, $node); - } - } - - $classNode->addMethod($node); - } - - private function reflectArgumentToNode(ReflectionParameter $parameter, Node\MethodNode $methodNode) - { - $name = $parameter->getName() == '...' ? '__dot_dot_dot__' : $parameter->getName(); - $node = new Node\ArgumentNode($name); - - $node->setTypeHint($this->getTypeHint($parameter)); - - if ($this->isVariadic($parameter)) { - $node->setAsVariadic(); - } - - if ($this->hasDefaultValue($parameter)) { - $node->setDefault($this->getDefaultValue($parameter)); - } - - if ($parameter->isPassedByReference()) { - $node->setAsPassedByReference(); - } - - $methodNode->addArgument($node); - } - - private function hasDefaultValue(ReflectionParameter $parameter) - { - if ($this->isVariadic($parameter)) { - return false; - } - - if ($parameter->isDefaultValueAvailable()) { - return true; - } - - return $parameter->isOptional() || $this->isNullable($parameter); - } - - private function getDefaultValue(ReflectionParameter $parameter) - { - if (!$parameter->isDefaultValueAvailable()) { - return null; - } - - return $parameter->getDefaultValue(); - } - - private function getTypeHint(ReflectionParameter $parameter) - { - if (null !== $className = $this->getParameterClassName($parameter)) { - return $className; - } - - if (true === $parameter->isArray()) { - return 'array'; - } - - if (version_compare(PHP_VERSION, '5.4', '>=') && true === $parameter->isCallable()) { - return 'callable'; - } - - if (version_compare(PHP_VERSION, '7.0', '>=') && true === $parameter->hasType()) { - return (string) $parameter->getType(); - } - - return null; - } - - private function isVariadic(ReflectionParameter $parameter) - { - return PHP_VERSION_ID >= 50600 && $parameter->isVariadic(); - } - - private function isNullable(ReflectionParameter $parameter) - { - return $parameter->allowsNull() && null !== $this->getTypeHint($parameter); - } - - private function getParameterClassName(ReflectionParameter $parameter) - { - try { - return $parameter->getClass() ? $parameter->getClass()->getName() : null; - } catch (\ReflectionException $e) { - preg_match('/\[\s\<\w+?>\s([\w,\\\]+)/s', $parameter, $matches); - - return isset($matches[1]) ? $matches[1] : null; - } - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php deleted file mode 100644 index dd29b68..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php +++ /dev/null @@ -1,102 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator\Node; - -/** - * Argument node. - * - * @author Konstantin Kudryashov - */ -class ArgumentNode -{ - private $name; - private $typeHint; - private $default; - private $optional = false; - private $byReference = false; - private $isVariadic = false; - private $isNullable = false; - - /** - * @param string $name - */ - public function __construct($name) - { - $this->name = $name; - } - - public function getName() - { - return $this->name; - } - - public function getTypeHint() - { - return $this->typeHint; - } - - public function setTypeHint($typeHint = null) - { - $this->typeHint = $typeHint; - } - - public function hasDefault() - { - return $this->isOptional() && !$this->isVariadic(); - } - - public function getDefault() - { - return $this->default; - } - - public function setDefault($default = null) - { - $this->optional = true; - $this->default = $default; - } - - public function isOptional() - { - return $this->optional; - } - - public function setAsPassedByReference($byReference = true) - { - $this->byReference = $byReference; - } - - public function isPassedByReference() - { - return $this->byReference; - } - - public function setAsVariadic($isVariadic = true) - { - $this->isVariadic = $isVariadic; - } - - public function isVariadic() - { - return $this->isVariadic; - } - - public function isNullable() - { - return $this->isNullable; - } - - public function setAsNullable($isNullable = true) - { - $this->isNullable = $isNullable; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php deleted file mode 100644 index 1499a1d..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php +++ /dev/null @@ -1,166 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator\Node; - -use Prophecy\Exception\Doubler\MethodNotExtendableException; -use Prophecy\Exception\InvalidArgumentException; - -/** - * Class node. - * - * @author Konstantin Kudryashov - */ -class ClassNode -{ - private $parentClass = 'stdClass'; - private $interfaces = array(); - private $properties = array(); - private $unextendableMethods = array(); - - /** - * @var MethodNode[] - */ - private $methods = array(); - - public function getParentClass() - { - return $this->parentClass; - } - - /** - * @param string $class - */ - public function setParentClass($class) - { - $this->parentClass = $class ?: 'stdClass'; - } - - /** - * @return string[] - */ - public function getInterfaces() - { - return $this->interfaces; - } - - /** - * @param string $interface - */ - public function addInterface($interface) - { - if ($this->hasInterface($interface)) { - return; - } - - array_unshift($this->interfaces, $interface); - } - - /** - * @param string $interface - * - * @return bool - */ - public function hasInterface($interface) - { - return in_array($interface, $this->interfaces); - } - - public function getProperties() - { - return $this->properties; - } - - public function addProperty($name, $visibility = 'public') - { - $visibility = strtolower($visibility); - - if (!in_array($visibility, array('public', 'private', 'protected'))) { - throw new InvalidArgumentException(sprintf( - '`%s` property visibility is not supported.', $visibility - )); - } - - $this->properties[$name] = $visibility; - } - - /** - * @return MethodNode[] - */ - public function getMethods() - { - return $this->methods; - } - - public function addMethod(MethodNode $method) - { - if (!$this->isExtendable($method->getName())){ - $message = sprintf( - 'Method `%s` is not extendable, so can not be added.', $method->getName() - ); - throw new MethodNotExtendableException($message, $this->getParentClass(), $method->getName()); - } - $this->methods[$method->getName()] = $method; - } - - public function removeMethod($name) - { - unset($this->methods[$name]); - } - - /** - * @param string $name - * - * @return MethodNode|null - */ - public function getMethod($name) - { - return $this->hasMethod($name) ? $this->methods[$name] : null; - } - - /** - * @param string $name - * - * @return bool - */ - public function hasMethod($name) - { - return isset($this->methods[$name]); - } - - /** - * @return string[] - */ - public function getUnextendableMethods() - { - return $this->unextendableMethods; - } - - /** - * @param string $unextendableMethod - */ - public function addUnextendableMethod($unextendableMethod) - { - if (!$this->isExtendable($unextendableMethod)){ - return; - } - $this->unextendableMethods[] = $unextendableMethod; - } - - /** - * @param string $method - * @return bool - */ - public function isExtendable($method) - { - return !in_array($method, $this->unextendableMethods); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php deleted file mode 100644 index c74b483..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php +++ /dev/null @@ -1,198 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator\Node; - -use Prophecy\Doubler\Generator\TypeHintReference; -use Prophecy\Exception\InvalidArgumentException; - -/** - * Method node. - * - * @author Konstantin Kudryashov - */ -class MethodNode -{ - private $name; - private $code; - private $visibility = 'public'; - private $static = false; - private $returnsReference = false; - private $returnType; - private $nullableReturnType = false; - - /** - * @var ArgumentNode[] - */ - private $arguments = array(); - - /** - * @var TypeHintReference - */ - private $typeHintReference; - - /** - * @param string $name - * @param string $code - */ - public function __construct($name, $code = null, TypeHintReference $typeHintReference = null) - { - $this->name = $name; - $this->code = $code; - $this->typeHintReference = $typeHintReference ?: new TypeHintReference(); - } - - public function getVisibility() - { - return $this->visibility; - } - - /** - * @param string $visibility - */ - public function setVisibility($visibility) - { - $visibility = strtolower($visibility); - - if (!in_array($visibility, array('public', 'private', 'protected'))) { - throw new InvalidArgumentException(sprintf( - '`%s` method visibility is not supported.', $visibility - )); - } - - $this->visibility = $visibility; - } - - public function isStatic() - { - return $this->static; - } - - public function setStatic($static = true) - { - $this->static = (bool) $static; - } - - public function returnsReference() - { - return $this->returnsReference; - } - - public function setReturnsReference() - { - $this->returnsReference = true; - } - - public function getName() - { - return $this->name; - } - - public function addArgument(ArgumentNode $argument) - { - $this->arguments[] = $argument; - } - - /** - * @return ArgumentNode[] - */ - public function getArguments() - { - return $this->arguments; - } - - public function hasReturnType() - { - return null !== $this->returnType; - } - - /** - * @param string $type - */ - public function setReturnType($type = null) - { - if ($type === '' || $type === null) { - $this->returnType = null; - return; - } - $typeMap = array( - 'double' => 'float', - 'real' => 'float', - 'boolean' => 'bool', - 'integer' => 'int', - ); - if (isset($typeMap[$type])) { - $type = $typeMap[$type]; - } - $this->returnType = $this->typeHintReference->isBuiltInReturnTypeHint($type) ? - $type : - '\\' . ltrim($type, '\\'); - } - - public function getReturnType() - { - return $this->returnType; - } - - /** - * @param bool $bool - */ - public function setNullableReturnType($bool = true) - { - $this->nullableReturnType = (bool) $bool; - } - - /** - * @return bool - */ - public function hasNullableReturnType() - { - return $this->nullableReturnType; - } - - /** - * @param string $code - */ - public function setCode($code) - { - $this->code = $code; - } - - public function getCode() - { - if ($this->returnsReference) - { - return "throw new \Prophecy\Exception\Doubler\ReturnByReferenceException('Returning by reference not supported', get_class(\$this), '{$this->name}');"; - } - - return (string) $this->code; - } - - public function useParentCode() - { - $this->code = sprintf( - 'return parent::%s(%s);', $this->getName(), implode(', ', - array_map(array($this, 'generateArgument'), $this->arguments) - ) - ); - } - - private function generateArgument(ArgumentNode $arg) - { - $argument = '$'.$arg->getName(); - - if ($arg->isVariadic()) { - $argument = '...'.$argument; - } - - return $argument; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php deleted file mode 100644 index d720b15..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler\Generator; - -/** - * Reflection interface. - * All reflected classes implement this interface. - * - * @author Konstantin Kudryashov - */ -interface ReflectionInterface -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php deleted file mode 100644 index ce95202..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php +++ /dev/null @@ -1,46 +0,0 @@ -= 50400; - - case 'bool': - case 'float': - case 'int': - case 'string': - return PHP_VERSION_ID >= 70000; - - case 'iterable': - return PHP_VERSION_ID >= 70100; - - case 'object': - return PHP_VERSION_ID >= 70200; - - default: - return false; - } - } - - public function isBuiltInReturnTypeHint($type) - { - if ($type === 'void') { - return PHP_VERSION_ID >= 70100; - } - - return $this->isBuiltInParamTypeHint($type); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php deleted file mode 100644 index 8a99c4c..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php +++ /dev/null @@ -1,127 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -use Prophecy\Exception\Doubler\DoubleException; -use Prophecy\Exception\Doubler\ClassNotFoundException; -use Prophecy\Exception\Doubler\InterfaceNotFoundException; -use ReflectionClass; - -/** - * Lazy double. - * Gives simple interface to describe double before creating it. - * - * @author Konstantin Kudryashov - */ -class LazyDouble -{ - private $doubler; - private $class; - private $interfaces = array(); - private $arguments = null; - private $double; - - /** - * Initializes lazy double. - * - * @param Doubler $doubler - */ - public function __construct(Doubler $doubler) - { - $this->doubler = $doubler; - } - - /** - * Tells doubler to use specific class as parent one for double. - * - * @param string|ReflectionClass $class - * - * @throws \Prophecy\Exception\Doubler\ClassNotFoundException - * @throws \Prophecy\Exception\Doubler\DoubleException - */ - public function setParentClass($class) - { - if (null !== $this->double) { - throw new DoubleException('Can not extend class with already instantiated double.'); - } - - if (!$class instanceof ReflectionClass) { - if (!class_exists($class)) { - throw new ClassNotFoundException(sprintf('Class %s not found.', $class), $class); - } - - $class = new ReflectionClass($class); - } - - $this->class = $class; - } - - /** - * Tells doubler to implement specific interface with double. - * - * @param string|ReflectionClass $interface - * - * @throws \Prophecy\Exception\Doubler\InterfaceNotFoundException - * @throws \Prophecy\Exception\Doubler\DoubleException - */ - public function addInterface($interface) - { - if (null !== $this->double) { - throw new DoubleException( - 'Can not implement interface with already instantiated double.' - ); - } - - if (!$interface instanceof ReflectionClass) { - if (!interface_exists($interface)) { - throw new InterfaceNotFoundException( - sprintf('Interface %s not found.', $interface), - $interface - ); - } - - $interface = new ReflectionClass($interface); - } - - $this->interfaces[] = $interface; - } - - /** - * Sets constructor arguments. - * - * @param array $arguments - */ - public function setArguments(array $arguments = null) - { - $this->arguments = $arguments; - } - - /** - * Creates double instance or returns already created one. - * - * @return DoubleInterface - */ - public function getInstance() - { - if (null === $this->double) { - if (null !== $this->arguments) { - return $this->double = $this->doubler->double( - $this->class, $this->interfaces, $this->arguments - ); - } - - $this->double = $this->doubler->double($this->class, $this->interfaces); - } - - return $this->double; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php deleted file mode 100644 index d67ec6a..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php +++ /dev/null @@ -1,52 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Doubler; - -use ReflectionClass; - -/** - * Name generator. - * Generates classname for double. - * - * @author Konstantin Kudryashov - */ -class NameGenerator -{ - private static $counter = 1; - - /** - * Generates name. - * - * @param ReflectionClass $class - * @param ReflectionClass[] $interfaces - * - * @return string - */ - public function name(ReflectionClass $class = null, array $interfaces) - { - $parts = array(); - - if (null !== $class) { - $parts[] = $class->getName(); - } else { - foreach ($interfaces as $interface) { - $parts[] = $interface->getShortName(); - } - } - - if (!count($parts)) { - $parts[] = 'stdClass'; - } - - return sprintf('Double\%s\P%d', implode('\\', $parts), self::$counter++); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php deleted file mode 100644 index 48ed225..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php +++ /dev/null @@ -1,40 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Call; - -use Prophecy\Exception\Prophecy\ObjectProphecyException; -use Prophecy\Prophecy\ObjectProphecy; - -class UnexpectedCallException extends ObjectProphecyException -{ - private $methodName; - private $arguments; - - public function __construct($message, ObjectProphecy $objectProphecy, - $methodName, array $arguments) - { - parent::__construct($message, $objectProphecy); - - $this->methodName = $methodName; - $this->arguments = $arguments; - } - - public function getMethodName() - { - return $this->methodName; - } - - public function getArguments() - { - return $this->arguments; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php deleted file mode 100644 index 822918a..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php +++ /dev/null @@ -1,31 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -use Prophecy\Doubler\Generator\Node\ClassNode; - -class ClassCreatorException extends \RuntimeException implements DoublerException -{ - private $node; - - public function __construct($message, ClassNode $node) - { - parent::__construct($message); - - $this->node = $node; - } - - public function getClassNode() - { - return $this->node; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php deleted file mode 100644 index 8fc53b8..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php +++ /dev/null @@ -1,31 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -use ReflectionClass; - -class ClassMirrorException extends \RuntimeException implements DoublerException -{ - private $class; - - public function __construct($message, ReflectionClass $class) - { - parent::__construct($message); - - $this->class = $class; - } - - public function getReflectedClass() - { - return $this->class; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php deleted file mode 100644 index 5bc826d..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php +++ /dev/null @@ -1,33 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -class ClassNotFoundException extends DoubleException -{ - private $classname; - - /** - * @param string $message - * @param string $classname - */ - public function __construct($message, $classname) - { - parent::__construct($message); - - $this->classname = $classname; - } - - public function getClassname() - { - return $this->classname; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php deleted file mode 100644 index 6642a58..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -use RuntimeException; - -class DoubleException extends RuntimeException implements DoublerException -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php deleted file mode 100644 index 9d6be17..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -use Prophecy\Exception\Exception; - -interface DoublerException extends Exception -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php deleted file mode 100644 index e344dea..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -class InterfaceNotFoundException extends ClassNotFoundException -{ - public function getInterfaceName() - { - return $this->getClassname(); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php deleted file mode 100644 index 56f47b1..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php +++ /dev/null @@ -1,41 +0,0 @@ -methodName = $methodName; - $this->className = $className; - } - - - /** - * @return string - */ - public function getMethodName() - { - return $this->methodName; - } - - /** - * @return string - */ - public function getClassName() - { - return $this->className; - } - - } diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php deleted file mode 100644 index a538349..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php +++ /dev/null @@ -1,60 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -class MethodNotFoundException extends DoubleException -{ - /** - * @var string|object - */ - private $classname; - - /** - * @var string - */ - private $methodName; - - /** - * @var array - */ - private $arguments; - - /** - * @param string $message - * @param string|object $classname - * @param string $methodName - * @param null|Argument\ArgumentsWildcard|array $arguments - */ - public function __construct($message, $classname, $methodName, $arguments = null) - { - parent::__construct($message); - - $this->classname = $classname; - $this->methodName = $methodName; - $this->arguments = $arguments; - } - - public function getClassname() - { - return $this->classname; - } - - public function getMethodName() - { - return $this->methodName; - } - - public function getArguments() - { - return $this->arguments; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php deleted file mode 100644 index 6303049..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php +++ /dev/null @@ -1,41 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Doubler; - -class ReturnByReferenceException extends DoubleException -{ - private $classname; - private $methodName; - - /** - * @param string $message - * @param string $classname - * @param string $methodName - */ - public function __construct($message, $classname, $methodName) - { - parent::__construct($message); - - $this->classname = $classname; - $this->methodName = $methodName; - } - - public function getClassname() - { - return $this->classname; - } - - public function getMethodName() - { - return $this->methodName; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php deleted file mode 100644 index ac9fe4d..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php +++ /dev/null @@ -1,26 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception; - -/** - * Core Prophecy exception interface. - * All Prophecy exceptions implement it. - * - * @author Konstantin Kudryashov - */ -interface Exception -{ - /** - * @return string - */ - public function getMessage(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php deleted file mode 100644 index bc91c69..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,16 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception; - -class InvalidArgumentException extends \InvalidArgumentException implements Exception -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php deleted file mode 100644 index 44b598a..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php +++ /dev/null @@ -1,50 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Prophecy\ObjectProphecy; - -class AggregateException extends \RuntimeException implements PredictionException -{ - private $exceptions = array(); - private $objectProphecy; - - public function append(PredictionException $exception) - { - $message = $exception->getMessage(); - $message = ' '.strtr($message, array("\n" => "\n "))."\n"; - - $this->message = rtrim($this->message.$message); - $this->exceptions[] = $exception; - } - - /** - * @return PredictionException[] - */ - public function getExceptions() - { - return $this->exceptions; - } - - public function setObjectProphecy(ObjectProphecy $objectProphecy) - { - $this->objectProphecy = $objectProphecy; - } - - /** - * @return ObjectProphecy - */ - public function getObjectProphecy() - { - return $this->objectProphecy; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php deleted file mode 100644 index bbbbc3d..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php +++ /dev/null @@ -1,24 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use RuntimeException; - -/** - * Basic failed prediction exception. - * Use it for custom prediction failures. - * - * @author Konstantin Kudryashov - */ -class FailedPredictionException extends RuntimeException implements PredictionException -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php deleted file mode 100644 index 05ea4aa..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Exception\Prophecy\MethodProphecyException; - -class NoCallsException extends MethodProphecyException implements PredictionException -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php deleted file mode 100644 index 2596b1e..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Exception\Exception; - -interface PredictionException extends Exception -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php deleted file mode 100644 index 9d90543..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php +++ /dev/null @@ -1,31 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Prophecy\MethodProphecy; - -class UnexpectedCallsCountException extends UnexpectedCallsException -{ - private $expectedCount; - - public function __construct($message, MethodProphecy $methodProphecy, $count, array $calls) - { - parent::__construct($message, $methodProphecy, $calls); - - $this->expectedCount = intval($count); - } - - public function getExpectedCount() - { - return $this->expectedCount; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php deleted file mode 100644 index 7a99c2d..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php +++ /dev/null @@ -1,32 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prediction; - -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Exception\Prophecy\MethodProphecyException; - -class UnexpectedCallsException extends MethodProphecyException implements PredictionException -{ - private $calls = array(); - - public function __construct($message, MethodProphecy $methodProphecy, array $calls) - { - parent::__construct($message, $methodProphecy); - - $this->calls = $calls; - } - - public function getCalls() - { - return $this->calls; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php deleted file mode 100644 index 1b03eaf..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php +++ /dev/null @@ -1,34 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prophecy; - -use Prophecy\Prophecy\MethodProphecy; - -class MethodProphecyException extends ObjectProphecyException -{ - private $methodProphecy; - - public function __construct($message, MethodProphecy $methodProphecy) - { - parent::__construct($message, $methodProphecy->getObjectProphecy()); - - $this->methodProphecy = $methodProphecy; - } - - /** - * @return MethodProphecy - */ - public function getMethodProphecy() - { - return $this->methodProphecy; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php deleted file mode 100644 index e345402..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php +++ /dev/null @@ -1,34 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prophecy; - -use Prophecy\Prophecy\ObjectProphecy; - -class ObjectProphecyException extends \RuntimeException implements ProphecyException -{ - private $objectProphecy; - - public function __construct($message, ObjectProphecy $objectProphecy) - { - parent::__construct($message); - - $this->objectProphecy = $objectProphecy; - } - - /** - * @return ObjectProphecy - */ - public function getObjectProphecy() - { - return $this->objectProphecy; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php deleted file mode 100644 index 9157332..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Exception\Prophecy; - -use Prophecy\Exception\Exception; - -interface ProphecyException extends Exception -{ -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php deleted file mode 100644 index 209821c..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php +++ /dev/null @@ -1,69 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\PhpDocumentor; - -use phpDocumentor\Reflection\DocBlock\Tag\MethodTag as LegacyMethodTag; -use phpDocumentor\Reflection\DocBlock\Tags\Method; - -/** - * @author Théo FIDRY - * - * @internal - */ -final class ClassAndInterfaceTagRetriever implements MethodTagRetrieverInterface -{ - private $classRetriever; - - public function __construct(MethodTagRetrieverInterface $classRetriever = null) - { - if (null !== $classRetriever) { - $this->classRetriever = $classRetriever; - - return; - } - - $this->classRetriever = class_exists('phpDocumentor\Reflection\DocBlockFactory') && class_exists('phpDocumentor\Reflection\Types\ContextFactory') - ? new ClassTagRetriever() - : new LegacyClassTagRetriever() - ; - } - - /** - * @param \ReflectionClass $reflectionClass - * - * @return LegacyMethodTag[]|Method[] - */ - public function getTagList(\ReflectionClass $reflectionClass) - { - return array_merge( - $this->classRetriever->getTagList($reflectionClass), - $this->getInterfacesTagList($reflectionClass) - ); - } - - /** - * @param \ReflectionClass $reflectionClass - * - * @return LegacyMethodTag[]|Method[] - */ - private function getInterfacesTagList(\ReflectionClass $reflectionClass) - { - $interfaces = $reflectionClass->getInterfaces(); - $tagList = array(); - - foreach($interfaces as $interface) { - $tagList = array_merge($tagList, $this->classRetriever->getTagList($interface)); - } - - return $tagList; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php deleted file mode 100644 index 1d2da8f..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php +++ /dev/null @@ -1,52 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\PhpDocumentor; - -use phpDocumentor\Reflection\DocBlock\Tags\Method; -use phpDocumentor\Reflection\DocBlockFactory; -use phpDocumentor\Reflection\Types\ContextFactory; - -/** - * @author Théo FIDRY - * - * @internal - */ -final class ClassTagRetriever implements MethodTagRetrieverInterface -{ - private $docBlockFactory; - private $contextFactory; - - public function __construct() - { - $this->docBlockFactory = DocBlockFactory::createInstance(); - $this->contextFactory = new ContextFactory(); - } - - /** - * @param \ReflectionClass $reflectionClass - * - * @return Method[] - */ - public function getTagList(\ReflectionClass $reflectionClass) - { - try { - $phpdoc = $this->docBlockFactory->create( - $reflectionClass, - $this->contextFactory->createFromReflector($reflectionClass) - ); - - return $phpdoc->getTagsByName('method'); - } catch (\InvalidArgumentException $e) { - return array(); - } - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php deleted file mode 100644 index c0dec3d..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php +++ /dev/null @@ -1,35 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\PhpDocumentor; - -use phpDocumentor\Reflection\DocBlock; -use phpDocumentor\Reflection\DocBlock\Tag\MethodTag as LegacyMethodTag; - -/** - * @author Théo FIDRY - * - * @internal - */ -final class LegacyClassTagRetriever implements MethodTagRetrieverInterface -{ - /** - * @param \ReflectionClass $reflectionClass - * - * @return LegacyMethodTag[] - */ - public function getTagList(\ReflectionClass $reflectionClass) - { - $phpdoc = new DocBlock($reflectionClass->getDocComment()); - - return $phpdoc->getTagsByName('method'); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php deleted file mode 100644 index d3989da..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\PhpDocumentor; - -use phpDocumentor\Reflection\DocBlock\Tag\MethodTag as LegacyMethodTag; -use phpDocumentor\Reflection\DocBlock\Tags\Method; - -/** - * @author Théo FIDRY - * - * @internal - */ -interface MethodTagRetrieverInterface -{ - /** - * @param \ReflectionClass $reflectionClass - * - * @return LegacyMethodTag[]|Method[] - */ - public function getTagList(\ReflectionClass $reflectionClass); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php deleted file mode 100644 index b478736..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php +++ /dev/null @@ -1,86 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Argument\ArgumentsWildcard; -use Prophecy\Argument\Token\AnyValuesToken; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Prediction\NoCallsException; - -/** - * Call prediction. - * - * @author Konstantin Kudryashov - */ -class CallPrediction implements PredictionInterface -{ - private $util; - - /** - * Initializes prediction. - * - * @param StringUtil $util - */ - public function __construct(StringUtil $util = null) - { - $this->util = $util ?: new StringUtil; - } - - /** - * Tests that there was at least one call. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws \Prophecy\Exception\Prediction\NoCallsException - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) - { - if (count($calls)) { - return; - } - - $methodCalls = $object->findProphecyMethodCalls( - $method->getMethodName(), - new ArgumentsWildcard(array(new AnyValuesToken)) - ); - - if (count($methodCalls)) { - throw new NoCallsException(sprintf( - "No calls have been made that match:\n". - " %s->%s(%s)\n". - "but expected at least one.\n". - "Recorded `%s(...)` calls:\n%s", - - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard(), - $method->getMethodName(), - $this->util->stringifyCalls($methodCalls) - ), $method); - } - - throw new NoCallsException(sprintf( - "No calls have been made that match:\n". - " %s->%s(%s)\n". - "but expected at least one.", - - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard() - ), $method); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php deleted file mode 100644 index 31c6c57..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php +++ /dev/null @@ -1,107 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Argument\ArgumentsWildcard; -use Prophecy\Argument\Token\AnyValuesToken; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Prediction\UnexpectedCallsCountException; - -/** - * Prediction interface. - * Predictions are logical test blocks, tied to `should...` keyword. - * - * @author Konstantin Kudryashov - */ -class CallTimesPrediction implements PredictionInterface -{ - private $times; - private $util; - - /** - * Initializes prediction. - * - * @param int $times - * @param StringUtil $util - */ - public function __construct($times, StringUtil $util = null) - { - $this->times = intval($times); - $this->util = $util ?: new StringUtil; - } - - /** - * Tests that there was exact amount of calls made. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws \Prophecy\Exception\Prediction\UnexpectedCallsCountException - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) - { - if ($this->times == count($calls)) { - return; - } - - $methodCalls = $object->findProphecyMethodCalls( - $method->getMethodName(), - new ArgumentsWildcard(array(new AnyValuesToken)) - ); - - if (count($calls)) { - $message = sprintf( - "Expected exactly %d calls that match:\n". - " %s->%s(%s)\n". - "but %d were made:\n%s", - - $this->times, - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard(), - count($calls), - $this->util->stringifyCalls($calls) - ); - } elseif (count($methodCalls)) { - $message = sprintf( - "Expected exactly %d calls that match:\n". - " %s->%s(%s)\n". - "but none were made.\n". - "Recorded `%s(...)` calls:\n%s", - - $this->times, - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard(), - $method->getMethodName(), - $this->util->stringifyCalls($methodCalls) - ); - } else { - $message = sprintf( - "Expected exactly %d calls that match:\n". - " %s->%s(%s)\n". - "but none were made.", - - $this->times, - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard() - ); - } - - throw new UnexpectedCallsCountException($message, $method, $this->times, $calls); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php deleted file mode 100644 index 44bc782..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php +++ /dev/null @@ -1,65 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Exception\InvalidArgumentException; -use Closure; - -/** - * Callback prediction. - * - * @author Konstantin Kudryashov - */ -class CallbackPrediction implements PredictionInterface -{ - private $callback; - - /** - * Initializes callback prediction. - * - * @param callable $callback Custom callback - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($callback) - { - if (!is_callable($callback)) { - throw new InvalidArgumentException(sprintf( - 'Callable expected as an argument to CallbackPrediction, but got %s.', - gettype($callback) - )); - } - - $this->callback = $callback; - } - - /** - * Executes preset callback. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) - { - $callback = $this->callback; - - if ($callback instanceof Closure && method_exists('Closure', 'bind')) { - $callback = Closure::bind($callback, $object); - } - - call_user_func($callback, $calls, $object, $method); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php deleted file mode 100644 index 46ac5bf..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php +++ /dev/null @@ -1,68 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Prediction\UnexpectedCallsException; - -/** - * No calls prediction. - * - * @author Konstantin Kudryashov - */ -class NoCallsPrediction implements PredictionInterface -{ - private $util; - - /** - * Initializes prediction. - * - * @param null|StringUtil $util - */ - public function __construct(StringUtil $util = null) - { - $this->util = $util ?: new StringUtil; - } - - /** - * Tests that there were no calls made. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws \Prophecy\Exception\Prediction\UnexpectedCallsException - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) - { - if (!count($calls)) { - return; - } - - $verb = count($calls) === 1 ? 'was' : 'were'; - - throw new UnexpectedCallsException(sprintf( - "No calls expected that match:\n". - " %s->%s(%s)\n". - "but %d %s made:\n%s", - get_class($object->reveal()), - $method->getMethodName(), - $method->getArgumentsWildcard(), - count($calls), - $verb, - $this->util->stringifyCalls($calls) - ), $method, $calls); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php deleted file mode 100644 index f7fb06a..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php +++ /dev/null @@ -1,37 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prediction; - -use Prophecy\Call\Call; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; - -/** - * Prediction interface. - * Predictions are logical test blocks, tied to `should...` keyword. - * - * @author Konstantin Kudryashov - */ -interface PredictionInterface -{ - /** - * Tests that double fulfilled prediction. - * - * @param Call[] $calls - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws object - * @return void - */ - public function check(array $calls, ObjectProphecy $object, MethodProphecy $method); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php deleted file mode 100644 index 5f406bf..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php +++ /dev/null @@ -1,66 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Exception\InvalidArgumentException; -use Closure; - -/** - * Callback promise. - * - * @author Konstantin Kudryashov - */ -class CallbackPromise implements PromiseInterface -{ - private $callback; - - /** - * Initializes callback promise. - * - * @param callable $callback Custom callback - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($callback) - { - if (!is_callable($callback)) { - throw new InvalidArgumentException(sprintf( - 'Callable expected as an argument to CallbackPromise, but got %s.', - gettype($callback) - )); - } - - $this->callback = $callback; - } - - /** - * Evaluates promise callback. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @return mixed - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) - { - $callback = $this->callback; - - if ($callback instanceof Closure && method_exists('Closure', 'bind')) { - $callback = Closure::bind($callback, $object); - } - - return call_user_func($callback, $args, $object, $method); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php deleted file mode 100644 index 382537b..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php +++ /dev/null @@ -1,35 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; - -/** - * Promise interface. - * Promises are logical blocks, tied to `will...` keyword. - * - * @author Konstantin Kudryashov - */ -interface PromiseInterface -{ - /** - * Evaluates promise. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @return mixed - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php deleted file mode 100644 index 39bfeea..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php +++ /dev/null @@ -1,61 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Prophecy\Exception\InvalidArgumentException; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; - -/** - * Return argument promise. - * - * @author Konstantin Kudryashov - */ -class ReturnArgumentPromise implements PromiseInterface -{ - /** - * @var int - */ - private $index; - - /** - * Initializes callback promise. - * - * @param int $index The zero-indexed number of the argument to return - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($index = 0) - { - if (!is_int($index) || $index < 0) { - throw new InvalidArgumentException(sprintf( - 'Zero-based index expected as argument to ReturnArgumentPromise, but got %s.', - $index - )); - } - $this->index = $index; - } - - /** - * Returns nth argument if has one, null otherwise. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @return null|mixed - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) - { - return count($args) > $this->index ? $args[$this->index] : null; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php deleted file mode 100644 index c7d5ac5..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php +++ /dev/null @@ -1,55 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; - -/** - * Return promise. - * - * @author Konstantin Kudryashov - */ -class ReturnPromise implements PromiseInterface -{ - private $returnValues = array(); - - /** - * Initializes promise. - * - * @param array $returnValues Array of values - */ - public function __construct(array $returnValues) - { - $this->returnValues = $returnValues; - } - - /** - * Returns saved values one by one until last one, then continuously returns last value. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @return mixed - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) - { - $value = array_shift($this->returnValues); - - if (!count($this->returnValues)) { - $this->returnValues[] = $value; - } - - return $value; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php deleted file mode 100644 index 7250fa3..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php +++ /dev/null @@ -1,99 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Promise; - -use Doctrine\Instantiator\Instantiator; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\MethodProphecy; -use Prophecy\Exception\InvalidArgumentException; -use ReflectionClass; - -/** - * Throw promise. - * - * @author Konstantin Kudryashov - */ -class ThrowPromise implements PromiseInterface -{ - private $exception; - - /** - * @var \Doctrine\Instantiator\Instantiator - */ - private $instantiator; - - /** - * Initializes promise. - * - * @param string|\Exception|\Throwable $exception Exception class name or instance - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function __construct($exception) - { - if (is_string($exception)) { - if (!class_exists($exception) || !$this->isAValidThrowable($exception)) { - throw new InvalidArgumentException(sprintf( - 'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.', - $exception - )); - } - } elseif (!$exception instanceof \Exception && !$exception instanceof \Throwable) { - throw new InvalidArgumentException(sprintf( - 'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.', - is_object($exception) ? get_class($exception) : gettype($exception) - )); - } - - $this->exception = $exception; - } - - /** - * Throws predefined exception. - * - * @param array $args - * @param ObjectProphecy $object - * @param MethodProphecy $method - * - * @throws object - */ - public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) - { - if (is_string($this->exception)) { - $classname = $this->exception; - $reflection = new ReflectionClass($classname); - $constructor = $reflection->getConstructor(); - - if ($constructor->isPublic() && 0 == $constructor->getNumberOfRequiredParameters()) { - throw $reflection->newInstance(); - } - - if (!$this->instantiator) { - $this->instantiator = new Instantiator(); - } - - throw $this->instantiator->instantiate($classname); - } - - throw $this->exception; - } - - /** - * @param string $exception - * - * @return bool - */ - private function isAValidThrowable($exception) - { - return is_a($exception, 'Exception', true) || is_subclass_of($exception, 'Throwable', true); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php deleted file mode 100644 index 90df1ef..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php +++ /dev/null @@ -1,464 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -use Prophecy\Argument; -use Prophecy\Prophet; -use Prophecy\Promise; -use Prophecy\Prediction; -use Prophecy\Exception\Doubler\MethodNotFoundException; -use Prophecy\Exception\InvalidArgumentException; -use Prophecy\Exception\Prophecy\MethodProphecyException; - -/** - * Method prophecy. - * - * @author Konstantin Kudryashov - */ -class MethodProphecy -{ - private $objectProphecy; - private $methodName; - private $argumentsWildcard; - private $promise; - private $prediction; - private $checkedPredictions = array(); - private $bound = false; - private $voidReturnType = false; - - /** - * Initializes method prophecy. - * - * @param ObjectProphecy $objectProphecy - * @param string $methodName - * @param null|Argument\ArgumentsWildcard|array $arguments - * - * @throws \Prophecy\Exception\Doubler\MethodNotFoundException If method not found - */ - public function __construct(ObjectProphecy $objectProphecy, $methodName, $arguments = null) - { - $double = $objectProphecy->reveal(); - if (!method_exists($double, $methodName)) { - throw new MethodNotFoundException(sprintf( - 'Method `%s::%s()` is not defined.', get_class($double), $methodName - ), get_class($double), $methodName, $arguments); - } - - $this->objectProphecy = $objectProphecy; - $this->methodName = $methodName; - - $reflectedMethod = new \ReflectionMethod($double, $methodName); - if ($reflectedMethod->isFinal()) { - throw new MethodProphecyException(sprintf( - "Can not add prophecy for a method `%s::%s()`\n". - "as it is a final method.", - get_class($double), - $methodName - ), $this); - } - - if (null !== $arguments) { - $this->withArguments($arguments); - } - - if (version_compare(PHP_VERSION, '7.0', '>=') && true === $reflectedMethod->hasReturnType()) { - $type = (string) $reflectedMethod->getReturnType(); - - if ('void' === $type) { - $this->voidReturnType = true; - return; - } - - $this->will(function () use ($type) { - switch ($type) { - case 'string': return ''; - case 'float': return 0.0; - case 'int': return 0; - case 'bool': return false; - case 'array': return array(); - - case 'callable': - case 'Closure': - return function () {}; - - case 'Traversable': - case 'Generator': - // Remove eval() when minimum version >=5.5 - /** @var callable $generator */ - $generator = eval('return function () { yield; };'); - return $generator(); - - default: - $prophet = new Prophet; - return $prophet->prophesize($type)->reveal(); - } - }); - } - } - - /** - * Sets argument wildcard. - * - * @param array|Argument\ArgumentsWildcard $arguments - * - * @return $this - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function withArguments($arguments) - { - if (is_array($arguments)) { - $arguments = new Argument\ArgumentsWildcard($arguments); - } - - if (!$arguments instanceof Argument\ArgumentsWildcard) { - throw new InvalidArgumentException(sprintf( - "Either an array or an instance of ArgumentsWildcard expected as\n". - 'a `MethodProphecy::withArguments()` argument, but got %s.', - gettype($arguments) - )); - } - - $this->argumentsWildcard = $arguments; - - return $this; - } - - /** - * Sets custom promise to the prophecy. - * - * @param callable|Promise\PromiseInterface $promise - * - * @return $this - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function will($promise) - { - if (is_callable($promise)) { - $promise = new Promise\CallbackPromise($promise); - } - - if (!$promise instanceof Promise\PromiseInterface) { - throw new InvalidArgumentException(sprintf( - 'Expected callable or instance of PromiseInterface, but got %s.', - gettype($promise) - )); - } - - $this->bindToObjectProphecy(); - $this->promise = $promise; - - return $this; - } - - /** - * Sets return promise to the prophecy. - * - * @see \Prophecy\Promise\ReturnPromise - * - * @return $this - */ - public function willReturn() - { - if ($this->voidReturnType) { - throw new MethodProphecyException( - "The method \"$this->methodName\" has a void return type, and so cannot return anything", - $this - ); - } - - return $this->will(new Promise\ReturnPromise(func_get_args())); - } - - /** - * Sets return argument promise to the prophecy. - * - * @param int $index The zero-indexed number of the argument to return - * - * @see \Prophecy\Promise\ReturnArgumentPromise - * - * @return $this - */ - public function willReturnArgument($index = 0) - { - if ($this->voidReturnType) { - throw new MethodProphecyException("The method \"$this->methodName\" has a void return type", $this); - } - - return $this->will(new Promise\ReturnArgumentPromise($index)); - } - - /** - * Sets throw promise to the prophecy. - * - * @see \Prophecy\Promise\ThrowPromise - * - * @param string|\Exception $exception Exception class or instance - * - * @return $this - */ - public function willThrow($exception) - { - return $this->will(new Promise\ThrowPromise($exception)); - } - - /** - * Sets custom prediction to the prophecy. - * - * @param callable|Prediction\PredictionInterface $prediction - * - * @return $this - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function should($prediction) - { - if (is_callable($prediction)) { - $prediction = new Prediction\CallbackPrediction($prediction); - } - - if (!$prediction instanceof Prediction\PredictionInterface) { - throw new InvalidArgumentException(sprintf( - 'Expected callable or instance of PredictionInterface, but got %s.', - gettype($prediction) - )); - } - - $this->bindToObjectProphecy(); - $this->prediction = $prediction; - - return $this; - } - - /** - * Sets call prediction to the prophecy. - * - * @see \Prophecy\Prediction\CallPrediction - * - * @return $this - */ - public function shouldBeCalled() - { - return $this->should(new Prediction\CallPrediction); - } - - /** - * Sets no calls prediction to the prophecy. - * - * @see \Prophecy\Prediction\NoCallsPrediction - * - * @return $this - */ - public function shouldNotBeCalled() - { - return $this->should(new Prediction\NoCallsPrediction); - } - - /** - * Sets call times prediction to the prophecy. - * - * @see \Prophecy\Prediction\CallTimesPrediction - * - * @param $count - * - * @return $this - */ - public function shouldBeCalledTimes($count) - { - return $this->should(new Prediction\CallTimesPrediction($count)); - } - - /** - * Checks provided prediction immediately. - * - * @param callable|Prediction\PredictionInterface $prediction - * - * @return $this - * - * @throws \Prophecy\Exception\InvalidArgumentException - */ - public function shouldHave($prediction) - { - if (is_callable($prediction)) { - $prediction = new Prediction\CallbackPrediction($prediction); - } - - if (!$prediction instanceof Prediction\PredictionInterface) { - throw new InvalidArgumentException(sprintf( - 'Expected callable or instance of PredictionInterface, but got %s.', - gettype($prediction) - )); - } - - if (null === $this->promise && !$this->voidReturnType) { - $this->willReturn(); - } - - $calls = $this->getObjectProphecy()->findProphecyMethodCalls( - $this->getMethodName(), - $this->getArgumentsWildcard() - ); - - try { - $prediction->check($calls, $this->getObjectProphecy(), $this); - $this->checkedPredictions[] = $prediction; - } catch (\Exception $e) { - $this->checkedPredictions[] = $prediction; - - throw $e; - } - - return $this; - } - - /** - * Checks call prediction. - * - * @see \Prophecy\Prediction\CallPrediction - * - * @return $this - */ - public function shouldHaveBeenCalled() - { - return $this->shouldHave(new Prediction\CallPrediction); - } - - /** - * Checks no calls prediction. - * - * @see \Prophecy\Prediction\NoCallsPrediction - * - * @return $this - */ - public function shouldNotHaveBeenCalled() - { - return $this->shouldHave(new Prediction\NoCallsPrediction); - } - - /** - * Checks no calls prediction. - * - * @see \Prophecy\Prediction\NoCallsPrediction - * @deprecated - * - * @return $this - */ - public function shouldNotBeenCalled() - { - return $this->shouldNotHaveBeenCalled(); - } - - /** - * Checks call times prediction. - * - * @see \Prophecy\Prediction\CallTimesPrediction - * - * @param int $count - * - * @return $this - */ - public function shouldHaveBeenCalledTimes($count) - { - return $this->shouldHave(new Prediction\CallTimesPrediction($count)); - } - - /** - * Checks currently registered [with should(...)] prediction. - */ - public function checkPrediction() - { - if (null === $this->prediction) { - return; - } - - $this->shouldHave($this->prediction); - } - - /** - * Returns currently registered promise. - * - * @return null|Promise\PromiseInterface - */ - public function getPromise() - { - return $this->promise; - } - - /** - * Returns currently registered prediction. - * - * @return null|Prediction\PredictionInterface - */ - public function getPrediction() - { - return $this->prediction; - } - - /** - * Returns predictions that were checked on this object. - * - * @return Prediction\PredictionInterface[] - */ - public function getCheckedPredictions() - { - return $this->checkedPredictions; - } - - /** - * Returns object prophecy this method prophecy is tied to. - * - * @return ObjectProphecy - */ - public function getObjectProphecy() - { - return $this->objectProphecy; - } - - /** - * Returns method name. - * - * @return string - */ - public function getMethodName() - { - return $this->methodName; - } - - /** - * Returns arguments wildcard. - * - * @return Argument\ArgumentsWildcard - */ - public function getArgumentsWildcard() - { - return $this->argumentsWildcard; - } - - /** - * @return bool - */ - public function hasReturnVoid() - { - return $this->voidReturnType; - } - - private function bindToObjectProphecy() - { - if ($this->bound) { - return; - } - - $this->getObjectProphecy()->addMethodProphecy($this); - $this->bound = true; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php deleted file mode 100644 index 8d8f8a1..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php +++ /dev/null @@ -1,281 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -use SebastianBergmann\Comparator\ComparisonFailure; -use Prophecy\Comparator\Factory as ComparatorFactory; -use Prophecy\Call\Call; -use Prophecy\Doubler\LazyDouble; -use Prophecy\Argument\ArgumentsWildcard; -use Prophecy\Call\CallCenter; -use Prophecy\Exception\Prophecy\ObjectProphecyException; -use Prophecy\Exception\Prophecy\MethodProphecyException; -use Prophecy\Exception\Prediction\AggregateException; -use Prophecy\Exception\Prediction\PredictionException; - -/** - * Object prophecy. - * - * @author Konstantin Kudryashov - */ -class ObjectProphecy implements ProphecyInterface -{ - private $lazyDouble; - private $callCenter; - private $revealer; - private $comparatorFactory; - - /** - * @var MethodProphecy[][] - */ - private $methodProphecies = array(); - - /** - * Initializes object prophecy. - * - * @param LazyDouble $lazyDouble - * @param CallCenter $callCenter - * @param RevealerInterface $revealer - * @param ComparatorFactory $comparatorFactory - */ - public function __construct( - LazyDouble $lazyDouble, - CallCenter $callCenter = null, - RevealerInterface $revealer = null, - ComparatorFactory $comparatorFactory = null - ) { - $this->lazyDouble = $lazyDouble; - $this->callCenter = $callCenter ?: new CallCenter; - $this->revealer = $revealer ?: new Revealer; - - $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance(); - } - - /** - * Forces double to extend specific class. - * - * @param string $class - * - * @return $this - */ - public function willExtend($class) - { - $this->lazyDouble->setParentClass($class); - - return $this; - } - - /** - * Forces double to implement specific interface. - * - * @param string $interface - * - * @return $this - */ - public function willImplement($interface) - { - $this->lazyDouble->addInterface($interface); - - return $this; - } - - /** - * Sets constructor arguments. - * - * @param array $arguments - * - * @return $this - */ - public function willBeConstructedWith(array $arguments = null) - { - $this->lazyDouble->setArguments($arguments); - - return $this; - } - - /** - * Reveals double. - * - * @return object - * - * @throws \Prophecy\Exception\Prophecy\ObjectProphecyException If double doesn't implement needed interface - */ - public function reveal() - { - $double = $this->lazyDouble->getInstance(); - - if (null === $double || !$double instanceof ProphecySubjectInterface) { - throw new ObjectProphecyException( - "Generated double must implement ProphecySubjectInterface, but it does not.\n". - 'It seems you have wrongly configured doubler without required ClassPatch.', - $this - ); - } - - $double->setProphecy($this); - - return $double; - } - - /** - * Adds method prophecy to object prophecy. - * - * @param MethodProphecy $methodProphecy - * - * @throws \Prophecy\Exception\Prophecy\MethodProphecyException If method prophecy doesn't - * have arguments wildcard - */ - public function addMethodProphecy(MethodProphecy $methodProphecy) - { - $argumentsWildcard = $methodProphecy->getArgumentsWildcard(); - if (null === $argumentsWildcard) { - throw new MethodProphecyException(sprintf( - "Can not add prophecy for a method `%s::%s()`\n". - "as you did not specify arguments wildcard for it.", - get_class($this->reveal()), - $methodProphecy->getMethodName() - ), $methodProphecy); - } - - $methodName = $methodProphecy->getMethodName(); - - if (!isset($this->methodProphecies[$methodName])) { - $this->methodProphecies[$methodName] = array(); - } - - $this->methodProphecies[$methodName][] = $methodProphecy; - } - - /** - * Returns either all or related to single method prophecies. - * - * @param null|string $methodName - * - * @return MethodProphecy[] - */ - public function getMethodProphecies($methodName = null) - { - if (null === $methodName) { - return $this->methodProphecies; - } - - if (!isset($this->methodProphecies[$methodName])) { - return array(); - } - - return $this->methodProphecies[$methodName]; - } - - /** - * Makes specific method call. - * - * @param string $methodName - * @param array $arguments - * - * @return mixed - */ - public function makeProphecyMethodCall($methodName, array $arguments) - { - $arguments = $this->revealer->reveal($arguments); - $return = $this->callCenter->makeCall($this, $methodName, $arguments); - - return $this->revealer->reveal($return); - } - - /** - * Finds calls by method name & arguments wildcard. - * - * @param string $methodName - * @param ArgumentsWildcard $wildcard - * - * @return Call[] - */ - public function findProphecyMethodCalls($methodName, ArgumentsWildcard $wildcard) - { - return $this->callCenter->findCalls($methodName, $wildcard); - } - - /** - * Checks that registered method predictions do not fail. - * - * @throws \Prophecy\Exception\Prediction\AggregateException If any of registered predictions fail - */ - public function checkProphecyMethodsPredictions() - { - $exception = new AggregateException(sprintf("%s:\n", get_class($this->reveal()))); - $exception->setObjectProphecy($this); - - foreach ($this->methodProphecies as $prophecies) { - foreach ($prophecies as $prophecy) { - try { - $prophecy->checkPrediction(); - } catch (PredictionException $e) { - $exception->append($e); - } - } - } - - if (count($exception->getExceptions())) { - throw $exception; - } - } - - /** - * Creates new method prophecy using specified method name and arguments. - * - * @param string $methodName - * @param array $arguments - * - * @return MethodProphecy - */ - public function __call($methodName, array $arguments) - { - $arguments = new ArgumentsWildcard($this->revealer->reveal($arguments)); - - foreach ($this->getMethodProphecies($methodName) as $prophecy) { - $argumentsWildcard = $prophecy->getArgumentsWildcard(); - $comparator = $this->comparatorFactory->getComparatorFor( - $argumentsWildcard, $arguments - ); - - try { - $comparator->assertEquals($argumentsWildcard, $arguments); - return $prophecy; - } catch (ComparisonFailure $failure) {} - } - - return new MethodProphecy($this, $methodName, $arguments); - } - - /** - * Tries to get property value from double. - * - * @param string $name - * - * @return mixed - */ - public function __get($name) - { - return $this->reveal()->$name; - } - - /** - * Tries to set property value to double. - * - * @param string $name - * @param mixed $value - */ - public function __set($name, $value) - { - $this->reveal()->$name = $this->revealer->reveal($value); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php deleted file mode 100644 index 462f15a..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -/** - * Core Prophecy interface. - * - * @author Konstantin Kudryashov - */ -interface ProphecyInterface -{ - /** - * Reveals prophecy object (double) . - * - * @return object - */ - public function reveal(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php deleted file mode 100644 index 2d83958..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php +++ /dev/null @@ -1,34 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -/** - * Controllable doubles interface. - * - * @author Konstantin Kudryashov - */ -interface ProphecySubjectInterface -{ - /** - * Sets subject prophecy. - * - * @param ProphecyInterface $prophecy - */ - public function setProphecy(ProphecyInterface $prophecy); - - /** - * Returns subject prophecy. - * - * @return ProphecyInterface - */ - public function getProphecy(); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php deleted file mode 100644 index 60ecdac..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php +++ /dev/null @@ -1,44 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -/** - * Basic prophecies revealer. - * - * @author Konstantin Kudryashov - */ -class Revealer implements RevealerInterface -{ - /** - * Unwraps value(s). - * - * @param mixed $value - * - * @return mixed - */ - public function reveal($value) - { - if (is_array($value)) { - return array_map(array($this, __FUNCTION__), $value); - } - - if (!is_object($value)) { - return $value; - } - - if ($value instanceof ProphecyInterface) { - $value = $value->reveal(); - } - - return $value; - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php deleted file mode 100644 index ffc82bb..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php +++ /dev/null @@ -1,29 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Prophecy; - -/** - * Prophecies revealer interface. - * - * @author Konstantin Kudryashov - */ -interface RevealerInterface -{ - /** - * Unwraps value(s). - * - * @param mixed $value - * - * @return mixed - */ - public function reveal($value); -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophet.php b/vendor/phpspec/prophecy/src/Prophecy/Prophet.php deleted file mode 100644 index ac64923..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Prophet.php +++ /dev/null @@ -1,134 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy; - -use Prophecy\Doubler\Doubler; -use Prophecy\Doubler\LazyDouble; -use Prophecy\Doubler\ClassPatch; -use Prophecy\Prophecy\ObjectProphecy; -use Prophecy\Prophecy\RevealerInterface; -use Prophecy\Prophecy\Revealer; -use Prophecy\Call\CallCenter; -use Prophecy\Util\StringUtil; -use Prophecy\Exception\Prediction\PredictionException; -use Prophecy\Exception\Prediction\AggregateException; - -/** - * Prophet creates prophecies. - * - * @author Konstantin Kudryashov - */ -class Prophet -{ - private $doubler; - private $revealer; - private $util; - - /** - * @var ObjectProphecy[] - */ - private $prophecies = array(); - - /** - * Initializes Prophet. - * - * @param null|Doubler $doubler - * @param null|RevealerInterface $revealer - * @param null|StringUtil $util - */ - public function __construct(Doubler $doubler = null, RevealerInterface $revealer = null, - StringUtil $util = null) - { - if (null === $doubler) { - $doubler = new Doubler; - $doubler->registerClassPatch(new ClassPatch\SplFileInfoPatch); - $doubler->registerClassPatch(new ClassPatch\TraversablePatch); - $doubler->registerClassPatch(new ClassPatch\DisableConstructorPatch); - $doubler->registerClassPatch(new ClassPatch\ProphecySubjectPatch); - $doubler->registerClassPatch(new ClassPatch\ReflectionClassNewInstancePatch); - $doubler->registerClassPatch(new ClassPatch\HhvmExceptionPatch()); - $doubler->registerClassPatch(new ClassPatch\MagicCallPatch); - $doubler->registerClassPatch(new ClassPatch\KeywordPatch); - } - - $this->doubler = $doubler; - $this->revealer = $revealer ?: new Revealer; - $this->util = $util ?: new StringUtil; - } - - /** - * Creates new object prophecy. - * - * @param null|string $classOrInterface Class or interface name - * - * @return ObjectProphecy - */ - public function prophesize($classOrInterface = null) - { - $this->prophecies[] = $prophecy = new ObjectProphecy( - new LazyDouble($this->doubler), - new CallCenter($this->util), - $this->revealer - ); - - if ($classOrInterface && class_exists($classOrInterface)) { - return $prophecy->willExtend($classOrInterface); - } - - if ($classOrInterface && interface_exists($classOrInterface)) { - return $prophecy->willImplement($classOrInterface); - } - - return $prophecy; - } - - /** - * Returns all created object prophecies. - * - * @return ObjectProphecy[] - */ - public function getProphecies() - { - return $this->prophecies; - } - - /** - * Returns Doubler instance assigned to this Prophet. - * - * @return Doubler - */ - public function getDoubler() - { - return $this->doubler; - } - - /** - * Checks all predictions defined by prophecies of this Prophet. - * - * @throws Exception\Prediction\AggregateException If any prediction fails - */ - public function checkPredictions() - { - $exception = new AggregateException("Some predictions failed:\n"); - foreach ($this->prophecies as $prophecy) { - try { - $prophecy->checkProphecyMethodsPredictions(); - } catch (PredictionException $e) { - $exception->append($e); - } - } - - if (count($exception->getExceptions())) { - throw $exception; - } - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php b/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php deleted file mode 100644 index 50dd3f3..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php +++ /dev/null @@ -1,212 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * This class is a modification from sebastianbergmann/exporter - * @see https://github.com/sebastianbergmann/exporter - */ -class ExportUtil -{ - /** - * Exports a value as a string - * - * The output of this method is similar to the output of print_r(), but - * improved in various aspects: - * - * - NULL is rendered as "null" (instead of "") - * - TRUE is rendered as "true" (instead of "1") - * - FALSE is rendered as "false" (instead of "") - * - Strings are always quoted with single quotes - * - Carriage returns and newlines are normalized to \n - * - Recursion and repeated rendering is treated properly - * - * @param mixed $value - * @param int $indentation The indentation level of the 2nd+ line - * @return string - */ - public static function export($value, $indentation = 0) - { - return self::recursiveExport($value, $indentation); - } - - /** - * Converts an object to an array containing all of its private, protected - * and public properties. - * - * @param mixed $value - * @return array - */ - public static function toArray($value) - { - if (!is_object($value)) { - return (array) $value; - } - - $array = array(); - - foreach ((array) $value as $key => $val) { - // properties are transformed to keys in the following way: - // private $property => "\0Classname\0property" - // protected $property => "\0*\0property" - // public $property => "property" - if (preg_match('/^\0.+\0(.+)$/', $key, $matches)) { - $key = $matches[1]; - } - - // See https://github.com/php/php-src/commit/5721132 - if ($key === "\0gcdata") { - continue; - } - - $array[$key] = $val; - } - - // Some internal classes like SplObjectStorage don't work with the - // above (fast) mechanism nor with reflection in Zend. - // Format the output similarly to print_r() in this case - if ($value instanceof \SplObjectStorage) { - // However, the fast method does work in HHVM, and exposes the - // internal implementation. Hide it again. - if (property_exists('\SplObjectStorage', '__storage')) { - unset($array['__storage']); - } elseif (property_exists('\SplObjectStorage', 'storage')) { - unset($array['storage']); - } - - if (property_exists('\SplObjectStorage', '__key')) { - unset($array['__key']); - } - - foreach ($value as $key => $val) { - $array[spl_object_hash($val)] = array( - 'obj' => $val, - 'inf' => $value->getInfo(), - ); - } - } - - return $array; - } - - /** - * Recursive implementation of export - * - * @param mixed $value The value to export - * @param int $indentation The indentation level of the 2nd+ line - * @param \SebastianBergmann\RecursionContext\Context $processed Previously processed objects - * @return string - * @see SebastianBergmann\Exporter\Exporter::export - */ - protected static function recursiveExport(&$value, $indentation, $processed = null) - { - if ($value === null) { - return 'null'; - } - - if ($value === true) { - return 'true'; - } - - if ($value === false) { - return 'false'; - } - - if (is_float($value) && floatval(intval($value)) === $value) { - return "$value.0"; - } - - if (is_resource($value)) { - return sprintf( - 'resource(%d) of type (%s)', - $value, - get_resource_type($value) - ); - } - - if (is_string($value)) { - // Match for most non printable chars somewhat taking multibyte chars into account - if (preg_match('/[^\x09-\x0d\x20-\xff]/', $value)) { - return 'Binary String: 0x' . bin2hex($value); - } - - return "'" . - str_replace(array("\r\n", "\n\r", "\r"), array("\n", "\n", "\n"), $value) . - "'"; - } - - $whitespace = str_repeat(' ', 4 * $indentation); - - if (!$processed) { - $processed = new Context; - } - - if (is_array($value)) { - if (($key = $processed->contains($value)) !== false) { - return 'Array &' . $key; - } - - $array = $value; - $key = $processed->add($value); - $values = ''; - - if (count($array) > 0) { - foreach ($array as $k => $v) { - $values .= sprintf( - '%s %s => %s' . "\n", - $whitespace, - self::recursiveExport($k, $indentation), - self::recursiveExport($value[$k], $indentation + 1, $processed) - ); - } - - $values = "\n" . $values . $whitespace; - } - - return sprintf('Array &%s (%s)', $key, $values); - } - - if (is_object($value)) { - $class = get_class($value); - - if ($value instanceof ProphecyInterface) { - return sprintf('%s Object (*Prophecy*)', $class); - } elseif ($hash = $processed->contains($value)) { - return sprintf('%s:%s Object', $class, $hash); - } - - $hash = $processed->add($value); - $values = ''; - $array = self::toArray($value); - - if (count($array) > 0) { - foreach ($array as $k => $v) { - $values .= sprintf( - '%s %s => %s' . "\n", - $whitespace, - self::recursiveExport($k, $indentation), - self::recursiveExport($v, $indentation + 1, $processed) - ); - } - - $values = "\n" . $values . $whitespace; - } - - return sprintf('%s:%s Object (%s)', $class, $hash, $values); - } - - return var_export($value, true); - } -} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php b/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php deleted file mode 100644 index bb90156..0000000 --- a/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php +++ /dev/null @@ -1,89 +0,0 @@ - - * Marcello Duarte - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Prophecy\Util; - -use Prophecy\Call\Call; - -/** - * String utility. - * - * @author Konstantin Kudryashov - */ -class StringUtil -{ - /** - * Stringifies any provided value. - * - * @param mixed $value - * @param boolean $exportObject - * - * @return string - */ - public function stringify($value, $exportObject = true) - { - if (is_array($value)) { - if (range(0, count($value) - 1) === array_keys($value)) { - return '['.implode(', ', array_map(array($this, __FUNCTION__), $value)).']'; - } - - $stringify = array($this, __FUNCTION__); - - return '['.implode(', ', array_map(function ($item, $key) use ($stringify) { - return (is_integer($key) ? $key : '"'.$key.'"'). - ' => '.call_user_func($stringify, $item); - }, $value, array_keys($value))).']'; - } - if (is_resource($value)) { - return get_resource_type($value).':'.$value; - } - if (is_object($value)) { - return $exportObject ? ExportUtil::export($value) : sprintf('%s:%s', get_class($value), spl_object_hash($value)); - } - if (true === $value || false === $value) { - return $value ? 'true' : 'false'; - } - if (is_string($value)) { - $str = sprintf('"%s"', str_replace("\n", '\\n', $value)); - - if (50 <= strlen($str)) { - return substr($str, 0, 50).'"...'; - } - - return $str; - } - if (null === $value) { - return 'null'; - } - - return (string) $value; - } - - /** - * Stringifies provided array of calls. - * - * @param Call[] $calls Array of Call instances - * - * @return string - */ - public function stringifyCalls(array $calls) - { - $self = $this; - - return implode(PHP_EOL, array_map(function (Call $call) use ($self) { - return sprintf(' - %s(%s) @ %s', - $call->getMethodName(), - implode(', ', array_map(array($self, 'stringify'), $call->getArguments())), - str_replace(GETCWD().DIRECTORY_SEPARATOR, '', $call->getCallPlace()) - ); - }, $calls)); - } -} diff --git a/vendor/phpunit/php-code-coverage/.gitattributes b/vendor/phpunit/php-code-coverage/.gitattributes deleted file mode 100644 index 461090b..0000000 --- a/vendor/phpunit/php-code-coverage/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.php diff=php diff --git a/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md b/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md deleted file mode 100644 index 76a4345..0000000 --- a/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md +++ /dev/null @@ -1 +0,0 @@ -Please refer to [https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md) for details on how to contribute to this project. diff --git a/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md b/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index dc8e3b0..0000000 --- a/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,18 +0,0 @@ -| Q | A -| --------------------------| --------------- -| php-code-coverage version | x.y.z -| PHP version | x.y.z -| Driver | Xdebug / PHPDBG -| Xdebug version (if used) | x.y.z -| Installation Method | Composer / PHPUnit PHAR -| Usage Method | PHPUnit / other -| PHPUnit version (if used) | x.y.z - - - diff --git a/vendor/phpunit/php-code-coverage/.gitignore b/vendor/phpunit/php-code-coverage/.gitignore deleted file mode 100644 index 603bc9e..0000000 --- a/vendor/phpunit/php-code-coverage/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/tests/_files/tmp -/vendor -/composer.lock -/.idea -/.php_cs.cache - diff --git a/vendor/phpunit/php-code-coverage/.php_cs b/vendor/phpunit/php-code-coverage/.php_cs deleted file mode 100644 index cda5846..0000000 --- a/vendor/phpunit/php-code-coverage/.php_cs +++ /dev/null @@ -1,145 +0,0 @@ - - -For the full copyright and license information, please view the LICENSE -file that was distributed with this source code. -EOF; - -return PhpCsFixer\Config::create() - ->setRiskyAllowed(true) - ->setRules( - [ - 'array_syntax' => ['syntax' => 'short'], - 'binary_operator_spaces' => [ - 'align_double_arrow' => true, - 'align_equals' => true - ], - 'blank_line_after_namespace' => true, - 'blank_line_before_statement' => [ - 'statements' => [ - 'break', - 'continue', - 'return', - 'throw', - 'try', - ], - ], - 'braces' => true, - 'cast_spaces' => true, - 'compact_nullable_typehint' => true, - 'concat_space' => ['spacing' => 'one'], - 'declare_equal_normalize' => ['space' => 'none'], - 'dir_constant' => true, - 'elseif' => true, - 'encoding' => true, - 'full_opening_tag' => true, - 'function_declaration' => true, - 'header_comment' => ['header' => $header, 'separate' => 'none'], - 'indentation_type' => true, - 'line_ending' => true, - 'list_syntax' => ['syntax' => 'short'], - 'lowercase_cast' => true, - 'lowercase_constants' => true, - 'lowercase_keywords' => true, - 'magic_constant_casing' => true, - 'method_argument_space' => ['ensure_fully_multiline' => true], - 'method_separation' => true, - 'modernize_types_casting' => true, - 'native_function_casing' => true, - 'native_function_invocation' => true, - 'no_alias_functions' => true, - 'no_blank_lines_after_class_opening' => true, - 'no_blank_lines_after_phpdoc' => true, - 'no_closing_tag' => true, - 'no_empty_comment' => true, - 'no_empty_phpdoc' => true, - 'no_empty_statement' => true, - 'no_extra_consecutive_blank_lines' => true, - 'no_homoglyph_names' => true, - 'no_leading_import_slash' => true, - 'no_leading_namespace_whitespace' => true, - 'no_mixed_echo_print' => ['use' => 'print'], - 'no_null_property_initialization' => true, - 'no_short_bool_cast' => true, - 'no_short_echo_tag' => true, - 'no_singleline_whitespace_before_semicolons' => true, - 'no_spaces_after_function_name' => true, - 'no_spaces_inside_parenthesis' => true, - 'no_superfluous_elseif' => true, - 'no_trailing_comma_in_list_call' => true, - 'no_trailing_comma_in_singleline_array' => true, - 'no_trailing_whitespace' => true, - 'no_trailing_whitespace_in_comment' => true, - 'no_unneeded_control_parentheses' => true, - 'no_unneeded_curly_braces' => true, - 'no_unneeded_final_method' => true, - 'no_unreachable_default_argument_value' => true, - 'no_unused_imports' => true, - 'no_useless_else' => true, - 'no_whitespace_before_comma_in_array' => true, - 'no_whitespace_in_blank_line' => true, - 'non_printable_character' => true, - 'normalize_index_brace' => true, - 'object_operator_without_whitespace' => true, - 'ordered_class_elements' => [ - 'use_trait', - 'constant_public', - 'constant_protected', - 'constant_private', - 'property_public', - 'property_protected', - 'property_private', - 'construct', - 'destruct', - 'magic', - 'phpunit', - 'method_public', - 'method_protected', - 'method_private' - ], - 'ordered_imports' => true, - 'phpdoc_add_missing_param_annotation' => true, - 'phpdoc_align' => true, - 'phpdoc_annotation_without_dot' => true, - 'phpdoc_indent' => true, - 'phpdoc_no_access' => true, - 'phpdoc_no_empty_return' => true, - 'phpdoc_no_package' => true, - 'phpdoc_order' => true, - 'phpdoc_return_self_reference' => true, - 'phpdoc_scalar' => true, - 'phpdoc_separation' => true, - 'phpdoc_single_line_var_spacing' => true, - 'phpdoc_to_comment' => true, - 'phpdoc_trim' => true, - 'phpdoc_types' => true, - 'phpdoc_types_order' => true, - 'phpdoc_var_without_name' => true, - 'pow_to_exponentiation' => true, - 'protected_to_private' => true, - 'return_type_declaration' => ['space_before' => 'none'], - 'self_accessor' => true, - 'short_scalar_cast' => true, - 'simplified_null_return' => true, - 'single_blank_line_at_eof' => true, - 'single_import_per_statement' => true, - 'single_line_after_imports' => true, - 'single_quote' => true, - 'standardize_not_equals' => true, - 'ternary_to_null_coalescing' => true, - 'trim_array_spaces' => true, - 'unary_operator_spaces' => true, - 'visibility_required' => true, - //'void_return' => true, - 'whitespace_after_comma_in_array' => true, - ] - ) - ->setFinder( - PhpCsFixer\Finder::create() - ->files() - ->in(__DIR__ . '/src') - ->name('*.php') - ); diff --git a/vendor/phpunit/php-code-coverage/.travis.yml b/vendor/phpunit/php-code-coverage/.travis.yml deleted file mode 100644 index 5ddff29..0000000 --- a/vendor/phpunit/php-code-coverage/.travis.yml +++ /dev/null @@ -1,39 +0,0 @@ -language: php - -sudo: false - -php: - - 7.1 - - 7.2 - - master - -matrix: - allow_failures: - - php: master - fast_finish: true - -env: - matrix: - - DEPENDENCIES="high" - - DEPENDENCIES="low" - global: - - DEFAULT_COMPOSER_FLAGS="--no-interaction --no-ansi --no-progress --no-suggest" - -before_install: - - composer self-update - - composer clear-cache - -install: - - if [[ "$DEPENDENCIES" = 'high' ]]; then travis_retry composer update $DEFAULT_COMPOSER_FLAGS; fi - - if [[ "$DEPENDENCIES" = 'low' ]]; then travis_retry composer update $DEFAULT_COMPOSER_FLAGS --prefer-lowest; fi - -script: - - if [[ "$DRIVER" = 'phpdbg' ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml; fi - - if [[ "$DRIVER" = 'xdebug' ]]; then vendor/bin/phpunit --coverage-clover=coverage.xml; fi - -after_success: - - bash <(curl -s https://codecov.io/bash) - -notifications: - email: false - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-2.2.md b/vendor/phpunit/php-code-coverage/ChangeLog-2.2.md deleted file mode 100644 index 353b6f6..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-2.2.md +++ /dev/null @@ -1,56 +0,0 @@ -# Changes in PHP_CodeCoverage 2.2 - -All notable changes of the PHP_CodeCoverage 2.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [2.2.4] - 2015-10-06 - -### Fixed - -* Fixed [#391](https://github.com/sebastianbergmann/php-code-coverage/pull/391): Missing `` tag - -## [2.2.3] - 2015-09-14 - -### Fixed - -* Fixed [#368](https://github.com/sebastianbergmann/php-code-coverage/pull/368): Blacklists and whitelists are not merged when merging data sets -* Fixed [#370](https://github.com/sebastianbergmann/php-code-coverage/issues/370): Confusing statistics for source file that declares a class without methods -* Fixed [#372](https://github.com/sebastianbergmann/php-code-coverage/pull/372): Nested classes and functions are not handled correctly -* Fixed [#382](https://github.com/sebastianbergmann/php-code-coverage/issues/382): Crap4J report generates incorrect XML logfile - -## [2.2.2] - 2015-08-04 - -### Added - -* Reintroduced the `PHP_CodeCoverage_Driver_HHVM` driver as an extension of `PHP_CodeCoverage_Driver_Xdebug` that does not use `xdebug_start_code_coverage()` with options not supported by HHVM - -### Changed - -* Bumped required version of `sebastian/environment` to 1.3.2 for [#365](https://github.com/sebastianbergmann/php-code-coverage/issues/365) - -## [2.2.1] - 2015-08-02 - -### Changed - -* Bumped required version of `sebastian/environment` to 1.3.1 for [#365](https://github.com/sebastianbergmann/php-code-coverage/issues/365) - -## [2.2.0] - 2015-08-01 - -### Added - -* Added a driver for PHPDBG (requires PHP 7) -* Added `PHP_CodeCoverage::setDisableIgnoredLines()` to disable the ignoring of lines using annotations such as `@codeCoverageIgnore` - -### Changed - -* Annotating a method with `@deprecated` now has the same effect as annotating it with `@codeCoverageIgnore` - -### Removed - -* The dedicated driver for HHVM, `PHP_CodeCoverage_Driver_HHVM` has been removed - -[2.2.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.3...2.2.4 -[2.2.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.2...2.2.3 -[2.2.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.1...2.2.2 -[2.2.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.0...2.2.1 -[2.2.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.1...2.2.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-3.0.md b/vendor/phpunit/php-code-coverage/ChangeLog-3.0.md deleted file mode 100644 index a39fa8d..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-3.0.md +++ /dev/null @@ -1,31 +0,0 @@ -# Changes in PHP_CodeCoverage 3.0 - -All notable changes of the PHP_CodeCoverage 3.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [3.0.2] - 2015-11-12 - -### Changed - -* It is now optional that `@deprecated` code is ignored - -## [3.0.1] - 2015-10-06 - -### Fixed - -* Fixed [#391](https://github.com/sebastianbergmann/php-code-coverage/pull/391): Missing `` tag - -## [3.0.0] - 2015-10-02 - -### Changed - -* It is now mandatory to configure a whitelist - -### Removed - -* The blacklist functionality has been removed -* PHP_CodeCoverage is no longer supported on PHP 5.3, PHP 5.4, and PHP 5.5 - -[3.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.0.1...3.0.2 -[3.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.0.0...3.0.1 -[3.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2...3.0.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-3.1.md b/vendor/phpunit/php-code-coverage/ChangeLog-3.1.md deleted file mode 100644 index f7a0de9..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-3.1.md +++ /dev/null @@ -1,30 +0,0 @@ -# Changes in PHP_CodeCoverage 3.1 - -All notable changes of the PHP_CodeCoverage 3.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [3.1.1] - 2016-02-04 - -### Changed - -* Allow version 2.0.x of `sebastian/version` dependency - -## [3.1.0] - 2016-01-11 - -### Added - -* Implemented [#234](https://github.com/sebastianbergmann/php-code-coverage/issues/234): Optionally raise an exception when a specified unit of code is not executed - -### Changed - -* The Clover XML report now contains cyclomatic complexity information -* The Clover XML report now contains method visibility information -* Cleanup and refactoring of various areas of code -* Added missing test cases - -### Removed - -* The functionality controlled by the `mapTestClassNameToCoveredClassName` setting has been removed - -[3.1.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.1.0...3.1.1 -[3.1.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.0...3.1.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-3.2.md b/vendor/phpunit/php-code-coverage/ChangeLog-3.2.md deleted file mode 100644 index 34c65cf..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-3.2.md +++ /dev/null @@ -1,23 +0,0 @@ -# Changes in PHP_CodeCoverage 3.2 - -All notable changes of the PHP_CodeCoverage 3.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [3.2.1] - 2016-02-18 - -### Changed - -* Updated dependency information in `composer.json` - -## [3.2.0] - 2016-02-13 - -### Added - -* Added optional check for missing `@covers` annotation when the usage of `@covers` annotations is forced - -### Changed - -* Improved `PHP_CodeCoverage_UnintentionallyCoveredCodeException` message - -[3.2.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.2.0...3.2.1 -[3.2.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.1...3.2.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-3.3.md b/vendor/phpunit/php-code-coverage/ChangeLog-3.3.md deleted file mode 100644 index 2cf1522..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-3.3.md +++ /dev/null @@ -1,33 +0,0 @@ -# Changes in PHP_CodeCoverage 3.3 - -All notable changes of the PHP_CodeCoverage 3.3 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [3.3.3] - 2016-MM-DD - -### Fixed - -* Fixed [#438](https://github.com/sebastianbergmann/php-code-coverage/issues/438): Wrong base directory for Clover reports - -## [3.3.2] - 2016-05-25 - -### Changed - -* The constructor of `PHP_CodeCoverage_Report_Text` now has default values for its parameters - -## [3.3.1] - 2016-04-08 - -### Fixed - -* Fixed handling of lines that contain `declare` statements - -## [3.3.0] - 2016-03-03 - -### Added - -* Added support for whitelisting classes for the unintentionally covered code unit check - -[3.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3.2...3.3.3 -[3.3.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3.1...3.3.2 -[3.3.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3.0...3.3.1 -[3.3.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.2...3.3.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-4.0.md b/vendor/phpunit/php-code-coverage/ChangeLog-4.0.md deleted file mode 100644 index 30df010..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-4.0.md +++ /dev/null @@ -1,67 +0,0 @@ -# Changes in PHP_CodeCoverage 4.0 - -All notable changes of the PHP_CodeCoverage 4.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [4.0.8] - 2017-04-02 - -* Fixed [#515](https://github.com/sebastianbergmann/php-code-coverage/pull/515): Wrong use of recursive iterator causing duplicate entries in XML coverage report - -## [4.0.7] - 2017-03-01 - -### Changed - -* Cleaned up requirements in `composer.json` - -## [4.0.6] - 2017-02-23 - -### Changed - -* Added support for `phpunit/php-token-stream` 2.0 -* Updated HTML report assets - -## [4.0.5] - 2017-01-20 - -### Fixed - -* Fixed formatting of executed lines percentage for classes in file view - -## [4.0.4] - 2016-12-20 - -### Changed - -* Implemented [#432](https://github.com/sebastianbergmann/php-code-coverage/issues/432): Change how files with no executable lines are displayed in the HTML report - -## [4.0.3] - 2016-11-28 - -### Changed - -* The check for unintentionally covered code is no longer performed for `@medium` and `@large` tests - -## [4.0.2] - 2016-11-01 - -### Fixed - -* Fixed [#440](https://github.com/sebastianbergmann/php-code-coverage/pull/440): Dashboard charts not showing tooltips for data points - -## [4.0.1] - 2016-07-26 - -### Fixed - -* Fixed [#458](https://github.com/sebastianbergmann/php-code-coverage/pull/458): XML report does not know about warning status - -## [4.0.0] - 2016-06-03 - -### Changed - -* This component now uses namespaces - -[4.0.8]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.7...4.0.8 -[4.0.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.6...4.0.7 -[4.0.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.5...4.0.6 -[4.0.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.4...4.0.5 -[4.0.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.3...4.0.4 -[4.0.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.2...4.0.3 -[4.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.1...4.0.2 -[4.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.0...4.0.1 -[4.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3...4.0.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-5.0.md b/vendor/phpunit/php-code-coverage/ChangeLog-5.0.md deleted file mode 100644 index a1f9152..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-5.0.md +++ /dev/null @@ -1,45 +0,0 @@ -# Changes in PHP_CodeCoverage 5.0 - -All notable changes of the PHP_CodeCoverage 5.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [5.0.4] - 2017-04-02 - -### Added - -* Added `SebastianBergmann\CodeCoverage\Version::id()` method - -### Fixed - -* Fixed [#515](https://github.com/sebastianbergmann/php-code-coverage/pull/515): Wrong use of recursive iterator causing duplicate entries in XML coverage report - -## [5.0.3] - 2017-03-06 - -### Fixed - -* Fixed [#451](https://github.com/sebastianbergmann/php-code-coverage/pull/451): Conflict between HTML report assets and directories named `css`, `fonts`, or `js` -* Fixed [#485](https://github.com/sebastianbergmann/php-code-coverage/issues/485): Large popover contents cannot be viewed - -## [5.0.2] - 2017-03-01 - -### Changed - -* Cleaned up requirements in `composer.json` - -## [5.0.1] - 2017-02-23 - -### Added - -* Implemented [#508](https://github.com/sebastianbergmann/php-code-coverage/pull/508): Support for HackLang's `ENUM` declaration - -## [5.0.0] - 2017-02-03 - -### Removed - -* This component is no longer supported on PHP 5 - -[5.0.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0.3...5.0.4 -[5.0.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0.2...5.0.3 -[5.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0.1...5.0.2 -[5.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0.0...5.0.1 -[5.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0...5.0.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-5.1.md b/vendor/phpunit/php-code-coverage/ChangeLog-5.1.md deleted file mode 100644 index 7cf7023..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-5.1.md +++ /dev/null @@ -1,19 +0,0 @@ -# Changes in PHP_CodeCoverage 5.1 - -All notable changes of the PHP_CodeCoverage 5.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [5.1.1] - 2017-04-12 - -## Fixed - -* Fixed [#420](https://github.com/sebastianbergmann/php-code-coverage/issues/420): Check for unexecuted covered or used code is too strict - -## [5.1.0] - 2017-04-07 - -## Changed - -* Implemented [#516](https://github.com/sebastianbergmann/php-code-coverage/pull/516): Add more information to XML code coverage report - -[5.1.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.1.0...5.1.1 -[5.1.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.0...5.1.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-5.2.md b/vendor/phpunit/php-code-coverage/ChangeLog-5.2.md deleted file mode 100644 index caf1013..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-5.2.md +++ /dev/null @@ -1,44 +0,0 @@ -# Changes in PHP_CodeCoverage 5.2 - -All notable changes of the PHP_CodeCoverage 5.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [5.2.4] - 2017-11-27 - -### Fixed - -* Fixed [#424](https://github.com/sebastianbergmann/php-code-coverage/issues/424): Rest of a function or method is ignored after an anonymous function -* Fixed [#455](https://github.com/sebastianbergmann/php-code-coverage/issues/455): Dashboard does not handle namespaced classes properly -* Fixed [#468](https://github.com/sebastianbergmann/php-code-coverage/issues/468): Global functions are not properly counted -* Fixed [#560](https://github.com/sebastianbergmann/php-code-coverage/issues/560): Uncovered whitelisted files are missing from the report - -## [5.2.3] - 2017-11-03 - -### Fixed - -* Fixed [#540](https://github.com/sebastianbergmann/php-code-coverage/issues/540): Missing attribute `type` in the CSS `` elements -* Fixed [#554](https://github.com/sebastianbergmann/php-code-coverage/pull/554): `Parameter must be an array or an object that implements Countable` - -## [5.2.2] - 2017-08-03 - -## Changed - -* Bumped required versions of dependencies - -## [5.2.1] - 2017-04-21 - -## Changed - -* Version 3 of `sebastian/environment` is now required - -## [5.2.0] - 2017-04-20 - -## Changed - -* Implemented [#518](https://github.com/sebastianbergmann/php-code-coverage/pull/518): Add more information to XML code coverage report - -[5.2.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2.3...5.2.4 -[5.2.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2.2...5.2.3 -[5.2.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2.1...5.2.2 -[5.2.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2.0...5.2.1 -[5.2.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.1...5.2.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-5.3.md b/vendor/phpunit/php-code-coverage/ChangeLog-5.3.md deleted file mode 100644 index aa286eb..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-5.3.md +++ /dev/null @@ -1,23 +0,0 @@ -# Changes in PHP_CodeCoverage 5.3 - -All notable changes of the PHP_CodeCoverage 5.3 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [5.3.1] - 2017-MM-DD - -### Fixed - -* Fixed [#559](https://github.com/sebastianbergmann/php-code-coverage/issues/559): Ignored classes and methods are reported as 100% covered - -## [5.3.0] - 2017-12-06 - -### Added - -* Added option to ignore the `forceCoversAnnotation="true"` setting for a single test - -### Fixed - -* Fixed [#564](https://github.com/sebastianbergmann/php-code-coverage/issues/564): `setDisableIgnoredLines(true)` disables more than it should - -[5.3.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.3.0...5.3.1 -[5.3.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2...5.3.0 - diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-6.0.md b/vendor/phpunit/php-code-coverage/ChangeLog-6.0.md deleted file mode 100644 index 36067ec..0000000 --- a/vendor/phpunit/php-code-coverage/ChangeLog-6.0.md +++ /dev/null @@ -1,27 +0,0 @@ -# Changes in PHP_CodeCoverage 6.0 - -All notable changes of the PHP_CodeCoverage 6.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. - -## [6.0.1] - 2018-02-02 - -* Fixed [#584](https://github.com/sebastianbergmann/php-code-coverage/issues/584): Target directories are not created recursively - -## [6.0.0] - 2018-02-01 - -### Changed - -* Almost all classes are now final - -### Fixed - -* Fixed [#409](https://github.com/sebastianbergmann/php-code-coverage/issues/409): Merging of code coverage information does not work correctly - -### Removed - -* Implemented [#561](https://github.com/sebastianbergmann/php-code-coverage/issues/561): Remove HHVM driver -* Implemented [#562](https://github.com/sebastianbergmann/php-code-coverage/issues/562): Remove code specific to Hack language constructs -* Implemented [#563](https://github.com/sebastianbergmann/php-code-coverage/issues/563): Drop support for PHP 7.0 - -[6.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/6.0.0...6.0.1 -[6.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/5.2...6.0.0 - diff --git a/vendor/phpunit/php-code-coverage/LICENSE b/vendor/phpunit/php-code-coverage/LICENSE deleted file mode 100644 index 9b9787d..0000000 --- a/vendor/phpunit/php-code-coverage/LICENSE +++ /dev/null @@ -1,33 +0,0 @@ -PHP_CodeCoverage - -Copyright (c) 2009-2017, Sebastian Bergmann . -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - * Neither the name of Sebastian Bergmann nor the names of his - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/phpunit/php-code-coverage/README.md b/vendor/phpunit/php-code-coverage/README.md deleted file mode 100644 index bd4a169..0000000 --- a/vendor/phpunit/php-code-coverage/README.md +++ /dev/null @@ -1,40 +0,0 @@ -[![Latest Stable Version](https://poser.pugx.org/phpunit/php-code-coverage/v/stable.png)](https://packagist.org/packages/phpunit/php-code-coverage) -[![Build Status](https://travis-ci.org/sebastianbergmann/php-code-coverage.svg?branch=master)](https://travis-ci.org/sebastianbergmann/php-code-coverage) - -# SebastianBergmann\CodeCoverage - -**SebastianBergmann\CodeCoverage** is a library that provides collection, processing, and rendering functionality for PHP code coverage information. - -## Installation - -You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): - - composer require phpunit/php-code-coverage - -If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: - - composer require --dev phpunit/php-code-coverage - -## Using the SebastianBergmann\CodeCoverage API - -```php -filter()->addDirectoryToWhitelist('/path/to/src'); - -$coverage->start(''); - -// ... - -$coverage->stop(); - -$writer = new \SebastianBergmann\CodeCoverage\Report\Clover; -$writer->process($coverage, '/tmp/clover.xml'); - -$writer = new \SebastianBergmann\CodeCoverage\Report\Html\Facade; -$writer->process($coverage, '/tmp/code-coverage-report'); -``` - diff --git a/vendor/phpunit/php-code-coverage/build.xml b/vendor/phpunit/php-code-coverage/build.xml deleted file mode 100644 index 40eeeec..0000000 --- a/vendor/phpunit/php-code-coverage/build.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/vendor/phpunit/php-code-coverage/composer.json b/vendor/phpunit/php-code-coverage/composer.json deleted file mode 100644 index 4e44d0a..0000000 --- a/vendor/phpunit/php-code-coverage/composer.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "phpunit/php-code-coverage", - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "type": "library", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "license": "BSD-3-Clause", - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues" - }, - "config": { - "optimize-autoloader": true, - "sort-packages": true - }, - "prefer-stable": true, - "require": { - "php": "^7.1", - "ext-dom": "*", - "ext-xmlwriter": "*", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-token-stream": "^3.0", - "phpunit/php-text-template": "^1.2.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^7.0" - }, - "suggest": { - "ext-xdebug": "^2.6.0" - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "extra": { - "branch-alias": { - "dev-master": "6.0-dev" - } - } -} diff --git a/vendor/phpunit/php-code-coverage/phpunit.xml b/vendor/phpunit/php-code-coverage/phpunit.xml deleted file mode 100644 index 37e2219..0000000 --- a/vendor/phpunit/php-code-coverage/phpunit.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - tests/tests - - - - - src - - - - - - - - diff --git a/vendor/phpunit/php-code-coverage/src/CodeCoverage.php b/vendor/phpunit/php-code-coverage/src/CodeCoverage.php deleted file mode 100644 index 57bf8bc..0000000 --- a/vendor/phpunit/php-code-coverage/src/CodeCoverage.php +++ /dev/null @@ -1,981 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -use PHPUnit\Framework\TestCase; -use PHPUnit\Runner\PhptTestCase; -use PHPUnit\Util\Test; -use SebastianBergmann\CodeCoverage\Driver\Driver; -use SebastianBergmann\CodeCoverage\Driver\PHPDBG; -use SebastianBergmann\CodeCoverage\Driver\Xdebug; -use SebastianBergmann\CodeCoverage\Node\Builder; -use SebastianBergmann\CodeCoverage\Node\Directory; -use SebastianBergmann\CodeUnitReverseLookup\Wizard; -use SebastianBergmann\Environment\Runtime; - -/** - * Provides collection functionality for PHP code coverage information. - */ -final class CodeCoverage -{ - /** - * @var Driver - */ - private $driver; - - /** - * @var Filter - */ - private $filter; - - /** - * @var Wizard - */ - private $wizard; - - /** - * @var bool - */ - private $cacheTokens = false; - - /** - * @var bool - */ - private $checkForUnintentionallyCoveredCode = false; - - /** - * @var bool - */ - private $forceCoversAnnotation = false; - - /** - * @var bool - */ - private $checkForUnexecutedCoveredCode = false; - - /** - * @var bool - */ - private $checkForMissingCoversAnnotation = false; - - /** - * @var bool - */ - private $addUncoveredFilesFromWhitelist = true; - - /** - * @var bool - */ - private $processUncoveredFilesFromWhitelist = false; - - /** - * @var bool - */ - private $ignoreDeprecatedCode = false; - - /** - * @var PhptTestCase|string|TestCase - */ - private $currentId; - - /** - * Code coverage data. - * - * @var array - */ - private $data = []; - - /** - * @var array - */ - private $ignoredLines = []; - - /** - * @var bool - */ - private $disableIgnoredLines = false; - - /** - * Test data. - * - * @var array - */ - private $tests = []; - - /** - * @var string[] - */ - private $unintentionallyCoveredSubclassesWhitelist = []; - - /** - * Determine if the data has been initialized or not - * - * @var bool - */ - private $isInitialized = false; - - /** - * Determine whether we need to check for dead and unused code on each test - * - * @var bool - */ - private $shouldCheckForDeadAndUnused = true; - - /** - * @var Directory - */ - private $report; - - /** - * @throws RuntimeException - */ - public function __construct(Driver $driver = null, Filter $filter = null) - { - if ($driver === null) { - $driver = $this->selectDriver(); - } - - if ($filter === null) { - $filter = new Filter; - } - - $this->driver = $driver; - $this->filter = $filter; - - $this->wizard = new Wizard; - } - - /** - * Returns the code coverage information as a graph of node objects. - */ - public function getReport(): Directory - { - if ($this->report === null) { - $builder = new Builder; - - $this->report = $builder->build($this); - } - - return $this->report; - } - - /** - * Clears collected code coverage data. - */ - public function clear(): void - { - $this->isInitialized = false; - $this->currentId = null; - $this->data = []; - $this->tests = []; - $this->report = null; - } - - /** - * Returns the filter object used. - */ - public function filter(): Filter - { - return $this->filter; - } - - /** - * Returns the collected code coverage data. - * Set $raw = true to bypass all filters. - */ - public function getData(bool $raw = false): array - { - if (!$raw && $this->addUncoveredFilesFromWhitelist) { - $this->addUncoveredFilesFromWhitelist(); - } - - return $this->data; - } - - /** - * Sets the coverage data. - */ - public function setData(array $data): void - { - $this->data = $data; - $this->report = null; - } - - /** - * Returns the test data. - */ - public function getTests(): array - { - return $this->tests; - } - - /** - * Sets the test data. - */ - public function setTests(array $tests): void - { - $this->tests = $tests; - } - - /** - * Start collection of code coverage information. - * - * @param PhptTestCase|string|TestCase $id - * @param bool $clear - * - * @throws RuntimeException - */ - public function start($id, bool $clear = false): void - { - if ($clear) { - $this->clear(); - } - - if ($this->isInitialized === false) { - $this->initializeData(); - } - - $this->currentId = $id; - - $this->driver->start($this->shouldCheckForDeadAndUnused); - } - - /** - * Stop collection of code coverage information. - * - * @param array|false $linesToBeCovered - * - * @throws MissingCoversAnnotationException - * @throws CoveredCodeNotExecutedException - * @throws RuntimeException - * @throws InvalidArgumentException - * @throws \ReflectionException - */ - public function stop(bool $append = true, $linesToBeCovered = [], array $linesToBeUsed = [], bool $ignoreForceCoversAnnotation = false): array - { - if (!\is_array($linesToBeCovered) && $linesToBeCovered !== false) { - throw InvalidArgumentException::create( - 2, - 'array or false' - ); - } - - $data = $this->driver->stop(); - $this->append($data, null, $append, $linesToBeCovered, $linesToBeUsed, $ignoreForceCoversAnnotation); - - $this->currentId = null; - - return $data; - } - - /** - * Appends code coverage data. - * - * @param PhptTestCase|string|TestCase $id - * @param array|false $linesToBeCovered - * - * @throws \SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException - * @throws \SebastianBergmann\CodeCoverage\MissingCoversAnnotationException - * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException - * @throws \ReflectionException - * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException - * @throws RuntimeException - */ - public function append(array $data, $id = null, bool $append = true, $linesToBeCovered = [], array $linesToBeUsed = [], bool $ignoreForceCoversAnnotation = false): void - { - if ($id === null) { - $id = $this->currentId; - } - - if ($id === null) { - throw new RuntimeException; - } - - $this->applyWhitelistFilter($data); - $this->applyIgnoredLinesFilter($data); - $this->initializeFilesThatAreSeenTheFirstTime($data); - - if (!$append) { - return; - } - - if ($id !== 'UNCOVERED_FILES_FROM_WHITELIST') { - $this->applyCoversAnnotationFilter( - $data, - $linesToBeCovered, - $linesToBeUsed, - $ignoreForceCoversAnnotation - ); - } - - if (empty($data)) { - return; - } - - $size = 'unknown'; - $status = null; - - if ($id instanceof TestCase) { - $_size = $id->getSize(); - - if ($_size === Test::SMALL) { - $size = 'small'; - } elseif ($_size === Test::MEDIUM) { - $size = 'medium'; - } elseif ($_size === Test::LARGE) { - $size = 'large'; - } - - $status = $id->getStatus(); - $id = \get_class($id) . '::' . $id->getName(); - } elseif ($id instanceof PhptTestCase) { - $size = 'large'; - $id = $id->getName(); - } - - $this->tests[$id] = ['size' => $size, 'status' => $status]; - - foreach ($data as $file => $lines) { - if (!$this->filter->isFile($file)) { - continue; - } - - foreach ($lines as $k => $v) { - if ($v === Driver::LINE_EXECUTED) { - if (empty($this->data[$file][$k]) || !\in_array($id, $this->data[$file][$k])) { - $this->data[$file][$k][] = $id; - } - } - } - } - - $this->report = null; - } - - /** - * Merges the data from another instance. - * - * @param CodeCoverage $that - */ - public function merge(self $that): void - { - $this->filter->setWhitelistedFiles( - \array_merge($this->filter->getWhitelistedFiles(), $that->filter()->getWhitelistedFiles()) - ); - - foreach ($that->data as $file => $lines) { - if (!isset($this->data[$file])) { - if (!$this->filter->isFiltered($file)) { - $this->data[$file] = $lines; - } - - continue; - } - - if ((\count($lines) > 0) && (\count($this->data[$file]) > 0) && (\count($lines) != \count($this->data[$file]))) { - if (\count($lines) > \count($ours = $this->data[$file])) { - // More lines in the one being added in - $lines = \array_filter( - $lines, - function ($value, $key) use ($ours) { - return \array_key_exists($key, $ours); - }, - \ARRAY_FILTER_USE_BOTH - ); - } else { - // More lines in the one we currently have - $this->data[$file] = \array_filter( - $this->data[$file], - function ($value, $key) use ($lines) { - return \array_key_exists($key, $lines); - }, - \ARRAY_FILTER_USE_BOTH - ); - } - } - - foreach ($lines as $line => $data) { - if ($data !== null) { - if (!isset($this->data[$file][$line])) { - $this->data[$file][$line] = $data; - } else { - $this->data[$file][$line] = \array_unique( - \array_merge($this->data[$file][$line], $data) - ); - } - } - } - } - - $this->tests = \array_merge($this->tests, $that->getTests()); - $this->report = null; - } - - public function setCacheTokens(bool $flag): void - { - $this->cacheTokens = $flag; - } - - public function getCacheTokens(): bool - { - return $this->cacheTokens; - } - - public function setCheckForUnintentionallyCoveredCode(bool $flag): void - { - $this->checkForUnintentionallyCoveredCode = $flag; - } - - public function setForceCoversAnnotation(bool $flag): void - { - $this->forceCoversAnnotation = $flag; - } - - public function setCheckForMissingCoversAnnotation(bool $flag): void - { - $this->checkForMissingCoversAnnotation = $flag; - } - - public function setCheckForUnexecutedCoveredCode(bool $flag): void - { - $this->checkForUnexecutedCoveredCode = $flag; - } - - public function setAddUncoveredFilesFromWhitelist(bool $flag): void - { - $this->addUncoveredFilesFromWhitelist = $flag; - } - - public function setProcessUncoveredFilesFromWhitelist(bool $flag): void - { - $this->processUncoveredFilesFromWhitelist = $flag; - } - - public function setDisableIgnoredLines(bool $flag): void - { - $this->disableIgnoredLines = $flag; - } - - public function setIgnoreDeprecatedCode(bool $flag): void - { - $this->ignoreDeprecatedCode = $flag; - } - - public function setUnintentionallyCoveredSubclassesWhitelist(array $whitelist): void - { - $this->unintentionallyCoveredSubclassesWhitelist = $whitelist; - } - - /** - * Applies the @covers annotation filtering. - * - * @param array|false $linesToBeCovered - * - * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException - * @throws \ReflectionException - * @throws MissingCoversAnnotationException - * @throws UnintentionallyCoveredCodeException - */ - private function applyCoversAnnotationFilter(array &$data, $linesToBeCovered, array $linesToBeUsed, bool $ignoreForceCoversAnnotation): void - { - if ($linesToBeCovered === false || - ($this->forceCoversAnnotation && empty($linesToBeCovered) && !$ignoreForceCoversAnnotation)) { - if ($this->checkForMissingCoversAnnotation) { - throw new MissingCoversAnnotationException; - } - - $data = []; - - return; - } - - if (empty($linesToBeCovered)) { - return; - } - - if ($this->checkForUnintentionallyCoveredCode && - (!$this->currentId instanceof TestCase || - (!$this->currentId->isMedium() && !$this->currentId->isLarge()))) { - $this->performUnintentionallyCoveredCodeCheck($data, $linesToBeCovered, $linesToBeUsed); - } - - if ($this->checkForUnexecutedCoveredCode) { - $this->performUnexecutedCoveredCodeCheck($data, $linesToBeCovered, $linesToBeUsed); - } - - $data = \array_intersect_key($data, $linesToBeCovered); - - foreach (\array_keys($data) as $filename) { - $_linesToBeCovered = \array_flip($linesToBeCovered[$filename]); - $data[$filename] = \array_intersect_key($data[$filename], $_linesToBeCovered); - } - } - - private function applyWhitelistFilter(array &$data): void - { - foreach (\array_keys($data) as $filename) { - if ($this->filter->isFiltered($filename)) { - unset($data[$filename]); - } - } - } - - /** - * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException - */ - private function applyIgnoredLinesFilter(array &$data): void - { - foreach (\array_keys($data) as $filename) { - if (!$this->filter->isFile($filename)) { - continue; - } - - foreach ($this->getLinesToBeIgnored($filename) as $line) { - unset($data[$filename][$line]); - } - } - } - - private function initializeFilesThatAreSeenTheFirstTime(array $data): void - { - foreach ($data as $file => $lines) { - if (!isset($this->data[$file]) && $this->filter->isFile($file)) { - $this->data[$file] = []; - - foreach ($lines as $k => $v) { - $this->data[$file][$k] = $v === -2 ? null : []; - } - } - } - } - - /** - * @throws CoveredCodeNotExecutedException - * @throws InvalidArgumentException - * @throws MissingCoversAnnotationException - * @throws RuntimeException - * @throws UnintentionallyCoveredCodeException - * @throws \ReflectionException - */ - private function addUncoveredFilesFromWhitelist(): void - { - $data = []; - $uncoveredFiles = \array_diff( - $this->filter->getWhitelist(), - \array_keys($this->data) - ); - - foreach ($uncoveredFiles as $uncoveredFile) { - if (!\file_exists($uncoveredFile)) { - continue; - } - - $data[$uncoveredFile] = []; - - $lines = \count(\file($uncoveredFile)); - - for ($i = 1; $i <= $lines; $i++) { - $data[$uncoveredFile][$i] = Driver::LINE_NOT_EXECUTED; - } - } - - $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); - } - - private function getLinesToBeIgnored(string $fileName): array - { - if (isset($this->ignoredLines[$fileName])) { - return $this->ignoredLines[$fileName]; - } - - $this->ignoredLines[$fileName] = []; - - $lines = \file($fileName); - - foreach ($lines as $index => $line) { - if (!\trim($line)) { - $this->ignoredLines[$fileName][] = $index + 1; - } - } - - if ($this->cacheTokens) { - $tokens = \PHP_Token_Stream_CachingFactory::get($fileName); - } else { - $tokens = new \PHP_Token_Stream($fileName); - } - - foreach ($tokens->getInterfaces() as $interface) { - $interfaceStartLine = $interface['startLine']; - $interfaceEndLine = $interface['endLine']; - - foreach (\range($interfaceStartLine, $interfaceEndLine) as $line) { - $this->ignoredLines[$fileName][] = $line; - } - } - - foreach (\array_merge($tokens->getClasses(), $tokens->getTraits()) as $classOrTrait) { - $classOrTraitStartLine = $classOrTrait['startLine']; - $classOrTraitEndLine = $classOrTrait['endLine']; - - if (empty($classOrTrait['methods'])) { - foreach (\range($classOrTraitStartLine, $classOrTraitEndLine) as $line) { - $this->ignoredLines[$fileName][] = $line; - } - - continue; - } - - $firstMethod = \array_shift($classOrTrait['methods']); - $firstMethodStartLine = $firstMethod['startLine']; - $firstMethodEndLine = $firstMethod['endLine']; - $lastMethodEndLine = $firstMethodEndLine; - - do { - $lastMethod = \array_pop($classOrTrait['methods']); - } while ($lastMethod !== null && 0 === \strpos($lastMethod['signature'], 'anonymousFunction')); - - if ($lastMethod !== null) { - $lastMethodEndLine = $lastMethod['endLine']; - } - - foreach (\range($classOrTraitStartLine, $firstMethodStartLine) as $line) { - $this->ignoredLines[$fileName][] = $line; - } - - foreach (\range($lastMethodEndLine + 1, $classOrTraitEndLine) as $line) { - $this->ignoredLines[$fileName][] = $line; - } - } - - if ($this->disableIgnoredLines) { - $this->ignoredLines[$fileName] = \array_unique($this->ignoredLines[$fileName]); - \sort($this->ignoredLines[$fileName]); - - return $this->ignoredLines[$fileName]; - } - - $ignore = false; - $stop = false; - - foreach ($tokens->tokens() as $token) { - switch (\get_class($token)) { - case \PHP_Token_COMMENT::class: - case \PHP_Token_DOC_COMMENT::class: - $_token = \trim($token); - $_line = \trim($lines[$token->getLine() - 1]); - - if ($_token === '// @codeCoverageIgnore' || - $_token === '//@codeCoverageIgnore') { - $ignore = true; - $stop = true; - } elseif ($_token === '// @codeCoverageIgnoreStart' || - $_token === '//@codeCoverageIgnoreStart') { - $ignore = true; - } elseif ($_token === '// @codeCoverageIgnoreEnd' || - $_token === '//@codeCoverageIgnoreEnd') { - $stop = true; - } - - if (!$ignore) { - $start = $token->getLine(); - $end = $start + \substr_count($token, "\n"); - - // Do not ignore the first line when there is a token - // before the comment - if (0 !== \strpos($_token, $_line)) { - $start++; - } - - for ($i = $start; $i < $end; $i++) { - $this->ignoredLines[$fileName][] = $i; - } - - // A DOC_COMMENT token or a COMMENT token starting with "/*" - // does not contain the final \n character in its text - if (isset($lines[$i - 1]) && 0 === \strpos($_token, '/*') && '*/' === \substr(\trim($lines[$i - 1]), -2)) { - $this->ignoredLines[$fileName][] = $i; - } - } - - break; - - case \PHP_Token_INTERFACE::class: - case \PHP_Token_TRAIT::class: - case \PHP_Token_CLASS::class: - case \PHP_Token_FUNCTION::class: - /* @var \PHP_Token_Interface $token */ - - $docblock = $token->getDocblock(); - - $this->ignoredLines[$fileName][] = $token->getLine(); - - if (\strpos($docblock, '@codeCoverageIgnore') || ($this->ignoreDeprecatedCode && \strpos($docblock, '@deprecated'))) { - $endLine = $token->getEndLine(); - - for ($i = $token->getLine(); $i <= $endLine; $i++) { - $this->ignoredLines[$fileName][] = $i; - } - } - - break; - - /* @noinspection PhpMissingBreakStatementInspection */ - case \PHP_Token_NAMESPACE::class: - $this->ignoredLines[$fileName][] = $token->getEndLine(); - - // Intentional fallthrough - case \PHP_Token_DECLARE::class: - case \PHP_Token_OPEN_TAG::class: - case \PHP_Token_CLOSE_TAG::class: - case \PHP_Token_USE::class: - $this->ignoredLines[$fileName][] = $token->getLine(); - - break; - } - - if ($ignore) { - $this->ignoredLines[$fileName][] = $token->getLine(); - - if ($stop) { - $ignore = false; - $stop = false; - } - } - } - - $this->ignoredLines[$fileName][] = \count($lines) + 1; - - $this->ignoredLines[$fileName] = \array_unique( - $this->ignoredLines[$fileName] - ); - - $this->ignoredLines[$fileName] = \array_unique($this->ignoredLines[$fileName]); - \sort($this->ignoredLines[$fileName]); - - return $this->ignoredLines[$fileName]; - } - - /** - * @throws \ReflectionException - * @throws UnintentionallyCoveredCodeException - */ - private function performUnintentionallyCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed): void - { - $allowedLines = $this->getAllowedLines( - $linesToBeCovered, - $linesToBeUsed - ); - - $unintentionallyCoveredUnits = []; - - foreach ($data as $file => $_data) { - foreach ($_data as $line => $flag) { - if ($flag === 1 && !isset($allowedLines[$file][$line])) { - $unintentionallyCoveredUnits[] = $this->wizard->lookup($file, $line); - } - } - } - - $unintentionallyCoveredUnits = $this->processUnintentionallyCoveredUnits($unintentionallyCoveredUnits); - - if (!empty($unintentionallyCoveredUnits)) { - throw new UnintentionallyCoveredCodeException( - $unintentionallyCoveredUnits - ); - } - } - - /** - * @throws CoveredCodeNotExecutedException - */ - private function performUnexecutedCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed): void - { - $executedCodeUnits = $this->coverageToCodeUnits($data); - $message = ''; - - foreach ($this->linesToCodeUnits($linesToBeCovered) as $codeUnit) { - if (!\in_array($codeUnit, $executedCodeUnits)) { - $message .= \sprintf( - '- %s is expected to be executed (@covers) but was not executed' . "\n", - $codeUnit - ); - } - } - - foreach ($this->linesToCodeUnits($linesToBeUsed) as $codeUnit) { - if (!\in_array($codeUnit, $executedCodeUnits)) { - $message .= \sprintf( - '- %s is expected to be executed (@uses) but was not executed' . "\n", - $codeUnit - ); - } - } - - if (!empty($message)) { - throw new CoveredCodeNotExecutedException($message); - } - } - - private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed): array - { - $allowedLines = []; - - foreach (\array_keys($linesToBeCovered) as $file) { - if (!isset($allowedLines[$file])) { - $allowedLines[$file] = []; - } - - $allowedLines[$file] = \array_merge( - $allowedLines[$file], - $linesToBeCovered[$file] - ); - } - - foreach (\array_keys($linesToBeUsed) as $file) { - if (!isset($allowedLines[$file])) { - $allowedLines[$file] = []; - } - - $allowedLines[$file] = \array_merge( - $allowedLines[$file], - $linesToBeUsed[$file] - ); - } - - foreach (\array_keys($allowedLines) as $file) { - $allowedLines[$file] = \array_flip( - \array_unique($allowedLines[$file]) - ); - } - - return $allowedLines; - } - - /** - * @throws RuntimeException - */ - private function selectDriver(): Driver - { - $runtime = new Runtime; - - if (!$runtime->canCollectCodeCoverage()) { - throw new RuntimeException('No code coverage driver available'); - } - - if ($runtime->isPHPDBG()) { - return new PHPDBG; - } - - if ($runtime->hasXdebug()) { - return new Xdebug; - } - - throw new RuntimeException('No code coverage driver available'); - } - - private function processUnintentionallyCoveredUnits(array $unintentionallyCoveredUnits): array - { - $unintentionallyCoveredUnits = \array_unique($unintentionallyCoveredUnits); - \sort($unintentionallyCoveredUnits); - - foreach (\array_keys($unintentionallyCoveredUnits) as $k => $v) { - $unit = \explode('::', $unintentionallyCoveredUnits[$k]); - - if (\count($unit) !== 2) { - continue; - } - - $class = new \ReflectionClass($unit[0]); - - foreach ($this->unintentionallyCoveredSubclassesWhitelist as $whitelisted) { - if ($class->isSubclassOf($whitelisted)) { - unset($unintentionallyCoveredUnits[$k]); - - break; - } - } - } - - return \array_values($unintentionallyCoveredUnits); - } - - /** - * @throws CoveredCodeNotExecutedException - * @throws InvalidArgumentException - * @throws MissingCoversAnnotationException - * @throws RuntimeException - * @throws UnintentionallyCoveredCodeException - * @throws \ReflectionException - */ - private function initializeData(): void - { - $this->isInitialized = true; - - if ($this->processUncoveredFilesFromWhitelist) { - $this->shouldCheckForDeadAndUnused = false; - - $this->driver->start(); - - foreach ($this->filter->getWhitelist() as $file) { - if ($this->filter->isFile($file)) { - include_once $file; - } - } - - $data = []; - $coverage = $this->driver->stop(); - - foreach ($coverage as $file => $fileCoverage) { - if ($this->filter->isFiltered($file)) { - continue; - } - - foreach (\array_keys($fileCoverage) as $key) { - if ($fileCoverage[$key] === Driver::LINE_EXECUTED) { - $fileCoverage[$key] = Driver::LINE_NOT_EXECUTED; - } - } - - $data[$file] = $fileCoverage; - } - - $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); - } - } - - private function coverageToCodeUnits(array $data): array - { - $codeUnits = []; - - foreach ($data as $filename => $lines) { - foreach ($lines as $line => $flag) { - if ($flag === 1) { - $codeUnits[] = $this->wizard->lookup($filename, $line); - } - } - } - - return \array_unique($codeUnits); - } - - private function linesToCodeUnits(array $data): array - { - $codeUnits = []; - - foreach ($data as $filename => $lines) { - foreach ($lines as $line) { - $codeUnits[] = $this->wizard->lookup($filename, $line); - } - } - - return \array_unique($codeUnits); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/Driver.php b/vendor/phpunit/php-code-coverage/src/Driver/Driver.php deleted file mode 100644 index aeca383..0000000 --- a/vendor/phpunit/php-code-coverage/src/Driver/Driver.php +++ /dev/null @@ -1,48 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Driver; - -/** - * Interface for code coverage drivers. - */ -interface Driver -{ - /** - * @var int - * - * @see http://xdebug.org/docs/code_coverage - */ - public const LINE_EXECUTED = 1; - - /** - * @var int - * - * @see http://xdebug.org/docs/code_coverage - */ - public const LINE_NOT_EXECUTED = -1; - - /** - * @var int - * - * @see http://xdebug.org/docs/code_coverage - */ - public const LINE_NOT_EXECUTABLE = -2; - - /** - * Start collection of code coverage information. - */ - public function start(bool $determineUnusedAndDead = true): void; - - /** - * Stop collection of code coverage information. - */ - public function stop(): array; -} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php b/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php deleted file mode 100644 index 859b3ac..0000000 --- a/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Driver; - -use SebastianBergmann\CodeCoverage\RuntimeException; - -/** - * Driver for PHPDBG's code coverage functionality. - * - * @codeCoverageIgnore - */ -final class PHPDBG implements Driver -{ - /** - * @throws RuntimeException - */ - public function __construct() - { - if (PHP_SAPI !== 'phpdbg') { - throw new RuntimeException( - 'This driver requires the PHPDBG SAPI' - ); - } - - if (!\function_exists('phpdbg_start_oplog')) { - throw new RuntimeException( - 'This build of PHPDBG does not support code coverage' - ); - } - } - - /** - * Start collection of code coverage information. - */ - public function start(bool $determineUnusedAndDead = true): void - { - \phpdbg_start_oplog(); - } - - /** - * Stop collection of code coverage information. - */ - public function stop(): array - { - static $fetchedLines = []; - - $dbgData = \phpdbg_end_oplog(); - - if ($fetchedLines == []) { - $sourceLines = \phpdbg_get_executable(); - } else { - $newFiles = \array_diff(\get_included_files(), \array_keys($fetchedLines)); - - $sourceLines = []; - - if ($newFiles) { - $sourceLines = phpdbg_get_executable(['files' => $newFiles]); - } - } - - foreach ($sourceLines as $file => $lines) { - foreach ($lines as $lineNo => $numExecuted) { - $sourceLines[$file][$lineNo] = self::LINE_NOT_EXECUTED; - } - } - - $fetchedLines = \array_merge($fetchedLines, $sourceLines); - - return $this->detectExecutedLines($fetchedLines, $dbgData); - } - - /** - * Convert phpdbg based data into the format CodeCoverage expects - */ - private function detectExecutedLines(array $sourceLines, array $dbgData): array - { - foreach ($dbgData as $file => $coveredLines) { - foreach ($coveredLines as $lineNo => $numExecuted) { - // phpdbg also reports $lineNo=0 when e.g. exceptions get thrown. - // make sure we only mark lines executed which are actually executable. - if (isset($sourceLines[$file][$lineNo])) { - $sourceLines[$file][$lineNo] = self::LINE_EXECUTED; - } - } - } - - return $sourceLines; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php b/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php deleted file mode 100644 index 0bf04ac..0000000 --- a/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Driver; - -use SebastianBergmann\CodeCoverage\RuntimeException; - -/** - * Driver for Xdebug's code coverage functionality. - * - * @codeCoverageIgnore - */ -final class Xdebug implements Driver -{ - /** - * @var array - */ - private $cacheNumLines = []; - - /** - * @throws RuntimeException - */ - public function __construct() - { - if (!\extension_loaded('xdebug')) { - throw new RuntimeException('This driver requires Xdebug'); - } - - if (!\ini_get('xdebug.coverage_enable')) { - throw new RuntimeException('xdebug.coverage_enable=On has to be set in php.ini'); - } - } - - /** - * Start collection of code coverage information. - */ - public function start(bool $determineUnusedAndDead = true): void - { - if ($determineUnusedAndDead) { - \xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE); - } else { - \xdebug_start_code_coverage(); - } - } - - /** - * Stop collection of code coverage information. - */ - public function stop(): array - { - $data = \xdebug_get_code_coverage(); - - \xdebug_stop_code_coverage(); - - return $this->cleanup($data); - } - - private function cleanup(array $data): array - { - foreach (\array_keys($data) as $file) { - unset($data[$file][0]); - - if (\strpos($file, 'xdebug://debug-eval') !== 0 && \file_exists($file)) { - $numLines = $this->getNumberOfLinesInFile($file); - - foreach (\array_keys($data[$file]) as $line) { - if ($line > $numLines) { - unset($data[$file][$line]); - } - } - } - } - - return $data; - } - - private function getNumberOfLinesInFile(string $fileName): int - { - if (!isset($this->cacheNumLines[$fileName])) { - $buffer = \file_get_contents($fileName); - $lines = \substr_count($buffer, "\n"); - - if (\substr($buffer, -1) !== "\n") { - $lines++; - } - - $this->cacheNumLines[$fileName] = $lines; - } - - return $this->cacheNumLines[$fileName]; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php b/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php deleted file mode 100644 index 1b6b753..0000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Exception that is raised when covered code is not executed. - */ -final class CoveredCodeNotExecutedException extends RuntimeException -{ -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/Exception.php b/vendor/phpunit/php-code-coverage/src/Exception/Exception.php deleted file mode 100644 index a3ba4c4..0000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/Exception.php +++ /dev/null @@ -1,18 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Exception interface for php-code-coverage component. - */ -interface Exception -{ -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php b/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php deleted file mode 100644 index f68e41b..0000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -final class InvalidArgumentException extends \InvalidArgumentException implements Exception -{ - /** - * @param int $argument - * @param string $type - * @param mixed $value - * - * @return InvalidArgumentException - */ - public static function create($argument, $type, $value = null): self - { - $stack = \debug_backtrace(0); - - return new self( - \sprintf( - 'Argument #%d%sof %s::%s() must be a %s', - $argument, - $value !== null ? ' (' . \gettype($value) . '#' . $value . ')' : ' (No Value) ', - $stack[1]['class'], - $stack[1]['function'], - $type - ) - ); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php b/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php deleted file mode 100644 index 9f824ef..0000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Exception that is raised when @covers must be used but is not. - */ -final class MissingCoversAnnotationException extends RuntimeException -{ -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php b/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php deleted file mode 100644 index c143db7..0000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php +++ /dev/null @@ -1,15 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -class RuntimeException extends \RuntimeException implements Exception -{ -} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php b/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php deleted file mode 100644 index b111400..0000000 --- a/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Exception that is raised when code is unintentionally covered. - */ -final class UnintentionallyCoveredCodeException extends RuntimeException -{ - /** - * @var array - */ - private $unintentionallyCoveredUnits = []; - - /** - * @param array $unintentionallyCoveredUnits - */ - public function __construct(array $unintentionallyCoveredUnits) - { - $this->unintentionallyCoveredUnits = $unintentionallyCoveredUnits; - - parent::__construct($this->toString()); - } - - /** - * @return array - */ - public function getUnintentionallyCoveredUnits(): array - { - return $this->unintentionallyCoveredUnits; - } - - /** - * @return string - */ - private function toString(): string - { - $message = ''; - - foreach ($this->unintentionallyCoveredUnits as $unit) { - $message .= '- ' . $unit . "\n"; - } - - return $message; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Filter.php b/vendor/phpunit/php-code-coverage/src/Filter.php deleted file mode 100644 index 1196db8..0000000 --- a/vendor/phpunit/php-code-coverage/src/Filter.php +++ /dev/null @@ -1,149 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage; - -/** - * Filter for whitelisting of code coverage information. - */ -final class Filter -{ - /** - * Source files that are whitelisted. - * - * @var array - */ - private $whitelistedFiles = []; - - /** - * Adds a directory to the whitelist (recursively). - */ - public function addDirectoryToWhitelist(string $directory, string $suffix = '.php', string $prefix = ''): void - { - $facade = new \File_Iterator_Facade; - $files = $facade->getFilesAsArray($directory, $suffix, $prefix); - - foreach ($files as $file) { - $this->addFileToWhitelist($file); - } - } - - /** - * Adds a file to the whitelist. - */ - public function addFileToWhitelist(string $filename): void - { - $this->whitelistedFiles[\realpath($filename)] = true; - } - - /** - * Adds files to the whitelist. - * - * @param string[] $files - */ - public function addFilesToWhitelist(array $files): void - { - foreach ($files as $file) { - $this->addFileToWhitelist($file); - } - } - - /** - * Removes a directory from the whitelist (recursively). - */ - public function removeDirectoryFromWhitelist(string $directory, string $suffix = '.php', string $prefix = ''): void - { - $facade = new \File_Iterator_Facade; - $files = $facade->getFilesAsArray($directory, $suffix, $prefix); - - foreach ($files as $file) { - $this->removeFileFromWhitelist($file); - } - } - - /** - * Removes a file from the whitelist. - */ - public function removeFileFromWhitelist(string $filename): void - { - $filename = \realpath($filename); - - unset($this->whitelistedFiles[$filename]); - } - - /** - * Checks whether a filename is a real filename. - */ - public function isFile(string $filename): bool - { - if ($filename === '-' || - \strpos($filename, 'vfs://') === 0 || - \strpos($filename, 'xdebug://debug-eval') !== false || - \strpos($filename, 'eval()\'d code') !== false || - \strpos($filename, 'runtime-created function') !== false || - \strpos($filename, 'runkit created function') !== false || - \strpos($filename, 'assert code') !== false || - \strpos($filename, 'regexp code') !== false) { - return false; - } - - return \file_exists($filename); - } - - /** - * Checks whether or not a file is filtered. - */ - public function isFiltered(string $filename): bool - { - if (!$this->isFile($filename)) { - return true; - } - - $filename = \realpath($filename); - - return !isset($this->whitelistedFiles[$filename]); - } - - /** - * Returns the list of whitelisted files. - * - * @return string[] - */ - public function getWhitelist(): array - { - return \array_keys($this->whitelistedFiles); - } - - /** - * Returns whether this filter has a whitelist. - */ - public function hasWhitelist(): bool - { - return !empty($this->whitelistedFiles); - } - - /** - * Returns the whitelisted files. - * - * @return string[] - */ - public function getWhitelistedFiles(): array - { - return $this->whitelistedFiles; - } - - /** - * Sets the whitelisted files. - */ - public function setWhitelistedFiles(array $whitelistedFiles): void - { - $this->whitelistedFiles = $whitelistedFiles; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php b/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php deleted file mode 100644 index f50a4c5..0000000 --- a/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php +++ /dev/null @@ -1,329 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -use SebastianBergmann\CodeCoverage\Util; - -/** - * Base class for nodes in the code coverage information tree. - */ -abstract class AbstractNode implements \Countable -{ - /** - * @var string - */ - private $name; - - /** - * @var string - */ - private $path; - - /** - * @var array - */ - private $pathArray; - - /** - * @var AbstractNode - */ - private $parent; - - /** - * @var string - */ - private $id; - - public function __construct(string $name, self $parent = null) - { - if (\substr($name, -1) == '/') { - $name = \substr($name, 0, -1); - } - - $this->name = $name; - $this->parent = $parent; - } - - public function getName(): string - { - return $this->name; - } - - public function getId(): string - { - if ($this->id === null) { - $parent = $this->getParent(); - - if ($parent === null) { - $this->id = 'index'; - } else { - $parentId = $parent->getId(); - - if ($parentId === 'index') { - $this->id = \str_replace(':', '_', $this->name); - } else { - $this->id = $parentId . '/' . $this->name; - } - } - } - - return $this->id; - } - - public function getPath(): string - { - if ($this->path === null) { - if ($this->parent === null || $this->parent->getPath() === null || $this->parent->getPath() === false) { - $this->path = $this->name; - } else { - $this->path = $this->parent->getPath() . '/' . $this->name; - } - } - - return $this->path; - } - - public function getPathAsArray(): array - { - if ($this->pathArray === null) { - if ($this->parent === null) { - $this->pathArray = []; - } else { - $this->pathArray = $this->parent->getPathAsArray(); - } - - $this->pathArray[] = $this; - } - - return $this->pathArray; - } - - public function getParent(): ?self - { - return $this->parent; - } - - /** - * Returns the percentage of classes that has been tested. - * - * @return int|string - */ - public function getTestedClassesPercent(bool $asString = true) - { - return Util::percent( - $this->getNumTestedClasses(), - $this->getNumClasses(), - $asString - ); - } - - /** - * Returns the percentage of traits that has been tested. - * - * @return int|string - */ - public function getTestedTraitsPercent(bool $asString = true) - { - return Util::percent( - $this->getNumTestedTraits(), - $this->getNumTraits(), - $asString - ); - } - - /** - * Returns the percentage of classes and traits that has been tested. - * - * @return int|string - */ - public function getTestedClassesAndTraitsPercent(bool $asString = true) - { - return Util::percent( - $this->getNumTestedClassesAndTraits(), - $this->getNumClassesAndTraits(), - $asString - ); - } - - /** - * Returns the percentage of functions that has been tested. - * - * @return int|string - */ - public function getTestedFunctionsPercent(bool $asString = true) - { - return Util::percent( - $this->getNumTestedFunctions(), - $this->getNumFunctions(), - $asString - ); - } - - /** - * Returns the percentage of methods that has been tested. - * - * @return int|string - */ - public function getTestedMethodsPercent(bool $asString = true) - { - return Util::percent( - $this->getNumTestedMethods(), - $this->getNumMethods(), - $asString - ); - } - - /** - * Returns the percentage of functions and methods that has been tested. - * - * @return int|string - */ - public function getTestedFunctionsAndMethodsPercent(bool $asString = true) - { - return Util::percent( - $this->getNumTestedFunctionsAndMethods(), - $this->getNumFunctionsAndMethods(), - $asString - ); - } - - /** - * Returns the percentage of executed lines. - * - * @return int|string - */ - public function getLineExecutedPercent(bool $asString = true) - { - return Util::percent( - $this->getNumExecutedLines(), - $this->getNumExecutableLines(), - $asString - ); - } - - /** - * Returns the number of classes and traits. - */ - public function getNumClassesAndTraits(): int - { - return $this->getNumClasses() + $this->getNumTraits(); - } - - /** - * Returns the number of tested classes and traits. - */ - public function getNumTestedClassesAndTraits(): int - { - return $this->getNumTestedClasses() + $this->getNumTestedTraits(); - } - - /** - * Returns the classes and traits of this node. - */ - public function getClassesAndTraits(): array - { - return \array_merge($this->getClasses(), $this->getTraits()); - } - - /** - * Returns the number of functions and methods. - */ - public function getNumFunctionsAndMethods(): int - { - return $this->getNumFunctions() + $this->getNumMethods(); - } - - /** - * Returns the number of tested functions and methods. - */ - public function getNumTestedFunctionsAndMethods(): int - { - return $this->getNumTestedFunctions() + $this->getNumTestedMethods(); - } - - /** - * Returns the functions and methods of this node. - */ - public function getFunctionsAndMethods(): array - { - return \array_merge($this->getFunctions(), $this->getMethods()); - } - - /** - * Returns the classes of this node. - */ - abstract public function getClasses(): array; - - /** - * Returns the traits of this node. - */ - abstract public function getTraits(): array; - - /** - * Returns the functions of this node. - */ - abstract public function getFunctions(): array; - - /** - * Returns the LOC/CLOC/NCLOC of this node. - */ - abstract public function getLinesOfCode(): array; - - /** - * Returns the number of executable lines. - */ - abstract public function getNumExecutableLines(): int; - - /** - * Returns the number of executed lines. - */ - abstract public function getNumExecutedLines(): int; - - /** - * Returns the number of classes. - */ - abstract public function getNumClasses(): int; - - /** - * Returns the number of tested classes. - */ - abstract public function getNumTestedClasses(): int; - - /** - * Returns the number of traits. - */ - abstract public function getNumTraits(): int; - - /** - * Returns the number of tested traits. - */ - abstract public function getNumTestedTraits(): int; - - /** - * Returns the number of methods. - */ - abstract public function getNumMethods(): int; - - /** - * Returns the number of tested methods. - */ - abstract public function getNumTestedMethods(): int; - - /** - * Returns the number of functions. - */ - abstract public function getNumFunctions(): int; - - /** - * Returns the number of tested functions. - */ - abstract public function getNumTestedFunctions(): int; -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/Builder.php b/vendor/phpunit/php-code-coverage/src/Node/Builder.php deleted file mode 100644 index eaa494a..0000000 --- a/vendor/phpunit/php-code-coverage/src/Node/Builder.php +++ /dev/null @@ -1,226 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -use SebastianBergmann\CodeCoverage\CodeCoverage; - -final class Builder -{ - public function build(CodeCoverage $coverage): Directory - { - $files = $coverage->getData(); - $commonPath = $this->reducePaths($files); - $root = new Directory( - $commonPath, - null - ); - - $this->addItems( - $root, - $this->buildDirectoryStructure($files), - $coverage->getTests(), - $coverage->getCacheTokens() - ); - - return $root; - } - - private function addItems(Directory $root, array $items, array $tests, bool $cacheTokens): void - { - foreach ($items as $key => $value) { - if (\substr($key, -2) == '/f') { - $key = \substr($key, 0, -2); - - if (\file_exists($root->getPath() . DIRECTORY_SEPARATOR . $key)) { - $root->addFile($key, $value, $tests, $cacheTokens); - } - } else { - $child = $root->addDirectory($key); - $this->addItems($child, $value, $tests, $cacheTokens); - } - } - } - - /** - * Builds an array representation of the directory structure. - * - * For instance, - * - * - * Array - * ( - * [Money.php] => Array - * ( - * ... - * ) - * - * [MoneyBag.php] => Array - * ( - * ... - * ) - * ) - * - * - * is transformed into - * - * - * Array - * ( - * [.] => Array - * ( - * [Money.php] => Array - * ( - * ... - * ) - * - * [MoneyBag.php] => Array - * ( - * ... - * ) - * ) - * ) - * - */ - private function buildDirectoryStructure(array $files): array - { - $result = []; - - foreach ($files as $path => $file) { - $path = \explode('/', $path); - $pointer = &$result; - $max = \count($path); - - for ($i = 0; $i < $max; $i++) { - $type = ''; - - if ($i == ($max - 1)) { - $type = '/f'; - } - - $pointer = &$pointer[$path[$i] . $type]; - } - - $pointer = $file; - } - - return $result; - } - - /** - * Reduces the paths by cutting the longest common start path. - * - * For instance, - * - * - * Array - * ( - * [/home/sb/Money/Money.php] => Array - * ( - * ... - * ) - * - * [/home/sb/Money/MoneyBag.php] => Array - * ( - * ... - * ) - * ) - * - * - * is reduced to - * - * - * Array - * ( - * [Money.php] => Array - * ( - * ... - * ) - * - * [MoneyBag.php] => Array - * ( - * ... - * ) - * ) - * - */ - private function reducePaths(array &$files): string - { - if (empty($files)) { - return '.'; - } - - $commonPath = ''; - $paths = \array_keys($files); - - if (\count($files) === 1) { - $commonPath = \dirname($paths[0]) . '/'; - $files[\basename($paths[0])] = $files[$paths[0]]; - - unset($files[$paths[0]]); - - return $commonPath; - } - - $max = \count($paths); - - for ($i = 0; $i < $max; $i++) { - // strip phar:// prefixes - if (\strpos($paths[$i], 'phar://') === 0) { - $paths[$i] = \substr($paths[$i], 7); - $paths[$i] = \str_replace('/', DIRECTORY_SEPARATOR, $paths[$i]); - } - $paths[$i] = \explode(DIRECTORY_SEPARATOR, $paths[$i]); - - if (empty($paths[$i][0])) { - $paths[$i][0] = DIRECTORY_SEPARATOR; - } - } - - $done = false; - $max = \count($paths); - - while (!$done) { - for ($i = 0; $i < $max - 1; $i++) { - if (!isset($paths[$i][0]) || - !isset($paths[$i + 1][0]) || - $paths[$i][0] != $paths[$i + 1][0]) { - $done = true; - - break; - } - } - - if (!$done) { - $commonPath .= $paths[0][0]; - - if ($paths[0][0] != DIRECTORY_SEPARATOR) { - $commonPath .= DIRECTORY_SEPARATOR; - } - - for ($i = 0; $i < $max; $i++) { - \array_shift($paths[$i]); - } - } - } - - $original = \array_keys($files); - $max = \count($original); - - for ($i = 0; $i < $max; $i++) { - $files[\implode('/', $paths[$i])] = $files[$original[$i]]; - unset($files[$original[$i]]); - } - - \ksort($files); - - return \substr($commonPath, 0, -1); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/Directory.php b/vendor/phpunit/php-code-coverage/src/Node/Directory.php deleted file mode 100644 index 938e67f..0000000 --- a/vendor/phpunit/php-code-coverage/src/Node/Directory.php +++ /dev/null @@ -1,428 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -use SebastianBergmann\CodeCoverage\InvalidArgumentException; - -/** - * Represents a directory in the code coverage information tree. - */ -final class Directory extends AbstractNode implements \IteratorAggregate -{ - /** - * @var AbstractNode[] - */ - private $children = []; - - /** - * @var Directory[] - */ - private $directories = []; - - /** - * @var File[] - */ - private $files = []; - - /** - * @var array - */ - private $classes; - - /** - * @var array - */ - private $traits; - - /** - * @var array - */ - private $functions; - - /** - * @var array - */ - private $linesOfCode; - - /** - * @var int - */ - private $numFiles = -1; - - /** - * @var int - */ - private $numExecutableLines = -1; - - /** - * @var int - */ - private $numExecutedLines = -1; - - /** - * @var int - */ - private $numClasses = -1; - - /** - * @var int - */ - private $numTestedClasses = -1; - - /** - * @var int - */ - private $numTraits = -1; - - /** - * @var int - */ - private $numTestedTraits = -1; - - /** - * @var int - */ - private $numMethods = -1; - - /** - * @var int - */ - private $numTestedMethods = -1; - - /** - * @var int - */ - private $numFunctions = -1; - - /** - * @var int - */ - private $numTestedFunctions = -1; - - /** - * Returns the number of files in/under this node. - */ - public function count(): int - { - if ($this->numFiles === -1) { - $this->numFiles = 0; - - foreach ($this->children as $child) { - $this->numFiles += \count($child); - } - } - - return $this->numFiles; - } - - /** - * Returns an iterator for this node. - */ - public function getIterator(): \RecursiveIteratorIterator - { - return new \RecursiveIteratorIterator( - new Iterator($this), - \RecursiveIteratorIterator::SELF_FIRST - ); - } - - /** - * Adds a new directory. - */ - public function addDirectory(string $name): self - { - $directory = new self($name, $this); - - $this->children[] = $directory; - $this->directories[] = &$this->children[\count($this->children) - 1]; - - return $directory; - } - - /** - * Adds a new file. - * - * @throws InvalidArgumentException - */ - public function addFile(string $name, array $coverageData, array $testData, bool $cacheTokens): File - { - $file = new File($name, $this, $coverageData, $testData, $cacheTokens); - - $this->children[] = $file; - $this->files[] = &$this->children[\count($this->children) - 1]; - - $this->numExecutableLines = -1; - $this->numExecutedLines = -1; - - return $file; - } - - /** - * Returns the directories in this directory. - */ - public function getDirectories(): array - { - return $this->directories; - } - - /** - * Returns the files in this directory. - */ - public function getFiles(): array - { - return $this->files; - } - - /** - * Returns the child nodes of this node. - */ - public function getChildNodes(): array - { - return $this->children; - } - - /** - * Returns the classes of this node. - */ - public function getClasses(): array - { - if ($this->classes === null) { - $this->classes = []; - - foreach ($this->children as $child) { - $this->classes = \array_merge( - $this->classes, - $child->getClasses() - ); - } - } - - return $this->classes; - } - - /** - * Returns the traits of this node. - */ - public function getTraits(): array - { - if ($this->traits === null) { - $this->traits = []; - - foreach ($this->children as $child) { - $this->traits = \array_merge( - $this->traits, - $child->getTraits() - ); - } - } - - return $this->traits; - } - - /** - * Returns the functions of this node. - */ - public function getFunctions(): array - { - if ($this->functions === null) { - $this->functions = []; - - foreach ($this->children as $child) { - $this->functions = \array_merge( - $this->functions, - $child->getFunctions() - ); - } - } - - return $this->functions; - } - - /** - * Returns the LOC/CLOC/NCLOC of this node. - */ - public function getLinesOfCode(): array - { - if ($this->linesOfCode === null) { - $this->linesOfCode = ['loc' => 0, 'cloc' => 0, 'ncloc' => 0]; - - foreach ($this->children as $child) { - $linesOfCode = $child->getLinesOfCode(); - - $this->linesOfCode['loc'] += $linesOfCode['loc']; - $this->linesOfCode['cloc'] += $linesOfCode['cloc']; - $this->linesOfCode['ncloc'] += $linesOfCode['ncloc']; - } - } - - return $this->linesOfCode; - } - - /** - * Returns the number of executable lines. - */ - public function getNumExecutableLines(): int - { - if ($this->numExecutableLines === -1) { - $this->numExecutableLines = 0; - - foreach ($this->children as $child) { - $this->numExecutableLines += $child->getNumExecutableLines(); - } - } - - return $this->numExecutableLines; - } - - /** - * Returns the number of executed lines. - */ - public function getNumExecutedLines(): int - { - if ($this->numExecutedLines === -1) { - $this->numExecutedLines = 0; - - foreach ($this->children as $child) { - $this->numExecutedLines += $child->getNumExecutedLines(); - } - } - - return $this->numExecutedLines; - } - - /** - * Returns the number of classes. - */ - public function getNumClasses(): int - { - if ($this->numClasses === -1) { - $this->numClasses = 0; - - foreach ($this->children as $child) { - $this->numClasses += $child->getNumClasses(); - } - } - - return $this->numClasses; - } - - /** - * Returns the number of tested classes. - */ - public function getNumTestedClasses(): int - { - if ($this->numTestedClasses === -1) { - $this->numTestedClasses = 0; - - foreach ($this->children as $child) { - $this->numTestedClasses += $child->getNumTestedClasses(); - } - } - - return $this->numTestedClasses; - } - - /** - * Returns the number of traits. - */ - public function getNumTraits(): int - { - if ($this->numTraits === -1) { - $this->numTraits = 0; - - foreach ($this->children as $child) { - $this->numTraits += $child->getNumTraits(); - } - } - - return $this->numTraits; - } - - /** - * Returns the number of tested traits. - */ - public function getNumTestedTraits(): int - { - if ($this->numTestedTraits === -1) { - $this->numTestedTraits = 0; - - foreach ($this->children as $child) { - $this->numTestedTraits += $child->getNumTestedTraits(); - } - } - - return $this->numTestedTraits; - } - - /** - * Returns the number of methods. - */ - public function getNumMethods(): int - { - if ($this->numMethods === -1) { - $this->numMethods = 0; - - foreach ($this->children as $child) { - $this->numMethods += $child->getNumMethods(); - } - } - - return $this->numMethods; - } - - /** - * Returns the number of tested methods. - */ - public function getNumTestedMethods(): int - { - if ($this->numTestedMethods === -1) { - $this->numTestedMethods = 0; - - foreach ($this->children as $child) { - $this->numTestedMethods += $child->getNumTestedMethods(); - } - } - - return $this->numTestedMethods; - } - - /** - * Returns the number of functions. - */ - public function getNumFunctions(): int - { - if ($this->numFunctions === -1) { - $this->numFunctions = 0; - - foreach ($this->children as $child) { - $this->numFunctions += $child->getNumFunctions(); - } - } - - return $this->numFunctions; - } - - /** - * Returns the number of tested functions. - */ - public function getNumTestedFunctions(): int - { - if ($this->numTestedFunctions === -1) { - $this->numTestedFunctions = 0; - - foreach ($this->children as $child) { - $this->numTestedFunctions += $child->getNumTestedFunctions(); - } - } - - return $this->numTestedFunctions; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/File.php b/vendor/phpunit/php-code-coverage/src/Node/File.php deleted file mode 100644 index acb586b..0000000 --- a/vendor/phpunit/php-code-coverage/src/Node/File.php +++ /dev/null @@ -1,659 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -/** - * Represents a file in the code coverage information tree. - */ -final class File extends AbstractNode -{ - /** - * @var array - */ - private $coverageData; - - /** - * @var array - */ - private $testData; - - /** - * @var int - */ - private $numExecutableLines = 0; - - /** - * @var int - */ - private $numExecutedLines = 0; - - /** - * @var array - */ - private $classes = []; - - /** - * @var array - */ - private $traits = []; - - /** - * @var array - */ - private $functions = []; - - /** - * @var array - */ - private $linesOfCode = []; - - /** - * @var int - */ - private $numClasses; - - /** - * @var int - */ - private $numTestedClasses = 0; - - /** - * @var int - */ - private $numTraits; - - /** - * @var int - */ - private $numTestedTraits = 0; - - /** - * @var int - */ - private $numMethods; - - /** - * @var int - */ - private $numTestedMethods; - - /** - * @var int - */ - private $numTestedFunctions; - - /** - * @var array - */ - private $startLines = []; - - /** - * @var array - */ - private $endLines = []; - - /** - * @var bool - */ - private $cacheTokens; - - public function __construct(string $name, AbstractNode $parent, array $coverageData, array $testData, bool $cacheTokens) - { - parent::__construct($name, $parent); - - $this->coverageData = $coverageData; - $this->testData = $testData; - $this->cacheTokens = $cacheTokens; - - $this->calculateStatistics(); - } - - /** - * Returns the number of files in/under this node. - */ - public function count(): int - { - return 1; - } - - /** - * Returns the code coverage data of this node. - */ - public function getCoverageData(): array - { - return $this->coverageData; - } - - /** - * Returns the test data of this node. - */ - public function getTestData(): array - { - return $this->testData; - } - - /** - * Returns the classes of this node. - */ - public function getClasses(): array - { - return $this->classes; - } - - /** - * Returns the traits of this node. - */ - public function getTraits(): array - { - return $this->traits; - } - - /** - * Returns the functions of this node. - */ - public function getFunctions(): array - { - return $this->functions; - } - - /** - * Returns the LOC/CLOC/NCLOC of this node. - */ - public function getLinesOfCode(): array - { - return $this->linesOfCode; - } - - /** - * Returns the number of executable lines. - */ - public function getNumExecutableLines(): int - { - return $this->numExecutableLines; - } - - /** - * Returns the number of executed lines. - */ - public function getNumExecutedLines(): int - { - return $this->numExecutedLines; - } - - /** - * Returns the number of classes. - */ - public function getNumClasses(): int - { - if ($this->numClasses === null) { - $this->numClasses = 0; - - foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0) { - $this->numClasses++; - - continue 2; - } - } - } - } - - return $this->numClasses; - } - - /** - * Returns the number of tested classes. - */ - public function getNumTestedClasses(): int - { - return $this->numTestedClasses; - } - - /** - * Returns the number of traits. - */ - public function getNumTraits(): int - { - if ($this->numTraits === null) { - $this->numTraits = 0; - - foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0) { - $this->numTraits++; - - continue 2; - } - } - } - } - - return $this->numTraits; - } - - /** - * Returns the number of tested traits. - */ - public function getNumTestedTraits(): int - { - return $this->numTestedTraits; - } - - /** - * Returns the number of methods. - */ - public function getNumMethods(): int - { - if ($this->numMethods === null) { - $this->numMethods = 0; - - foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0) { - $this->numMethods++; - } - } - } - - foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0) { - $this->numMethods++; - } - } - } - } - - return $this->numMethods; - } - - /** - * Returns the number of tested methods. - */ - public function getNumTestedMethods(): int - { - if ($this->numTestedMethods === null) { - $this->numTestedMethods = 0; - - foreach ($this->classes as $class) { - foreach ($class['methods'] as $method) { - if ($method['executableLines'] > 0 && - $method['coverage'] == 100) { - $this->numTestedMethods++; - } - } - } - - foreach ($this->traits as $trait) { - foreach ($trait['methods'] as $method) { - if ($method['executableLines'] > 0 && - $method['coverage'] == 100) { - $this->numTestedMethods++; - } - } - } - } - - return $this->numTestedMethods; - } - - /** - * Returns the number of functions. - */ - public function getNumFunctions(): int - { - return \count($this->functions); - } - - /** - * Returns the number of tested functions. - */ - public function getNumTestedFunctions(): int - { - if ($this->numTestedFunctions === null) { - $this->numTestedFunctions = 0; - - foreach ($this->functions as $function) { - if ($function['executableLines'] > 0 && - $function['coverage'] == 100) { - $this->numTestedFunctions++; - } - } - } - - return $this->numTestedFunctions; - } - - private function calculateStatistics(): void - { - $classStack = $functionStack = []; - - if ($this->cacheTokens) { - $tokens = \PHP_Token_Stream_CachingFactory::get($this->getPath()); - } else { - $tokens = new \PHP_Token_Stream($this->getPath()); - } - - $this->processClasses($tokens); - $this->processTraits($tokens); - $this->processFunctions($tokens); - $this->linesOfCode = $tokens->getLinesOfCode(); - unset($tokens); - - for ($lineNumber = 1; $lineNumber <= $this->linesOfCode['loc']; $lineNumber++) { - if (isset($this->startLines[$lineNumber])) { - // Start line of a class. - if (isset($this->startLines[$lineNumber]['className'])) { - if (isset($currentClass)) { - $classStack[] = &$currentClass; - } - - $currentClass = &$this->startLines[$lineNumber]; - } // Start line of a trait. - elseif (isset($this->startLines[$lineNumber]['traitName'])) { - $currentTrait = &$this->startLines[$lineNumber]; - } // Start line of a method. - elseif (isset($this->startLines[$lineNumber]['methodName'])) { - $currentMethod = &$this->startLines[$lineNumber]; - } // Start line of a function. - elseif (isset($this->startLines[$lineNumber]['functionName'])) { - if (isset($currentFunction)) { - $functionStack[] = &$currentFunction; - } - - $currentFunction = &$this->startLines[$lineNumber]; - } - } - - if (isset($this->coverageData[$lineNumber])) { - if (isset($currentClass)) { - $currentClass['executableLines']++; - } - - if (isset($currentTrait)) { - $currentTrait['executableLines']++; - } - - if (isset($currentMethod)) { - $currentMethod['executableLines']++; - } - - if (isset($currentFunction)) { - $currentFunction['executableLines']++; - } - - $this->numExecutableLines++; - - if (\count($this->coverageData[$lineNumber]) > 0) { - if (isset($currentClass)) { - $currentClass['executedLines']++; - } - - if (isset($currentTrait)) { - $currentTrait['executedLines']++; - } - - if (isset($currentMethod)) { - $currentMethod['executedLines']++; - } - - if (isset($currentFunction)) { - $currentFunction['executedLines']++; - } - - $this->numExecutedLines++; - } - } - - if (isset($this->endLines[$lineNumber])) { - // End line of a class. - if (isset($this->endLines[$lineNumber]['className'])) { - unset($currentClass); - - if ($classStack) { - \end($classStack); - $key = \key($classStack); - $currentClass = &$classStack[$key]; - unset($classStack[$key]); - } - } // End line of a trait. - elseif (isset($this->endLines[$lineNumber]['traitName'])) { - unset($currentTrait); - } // End line of a method. - elseif (isset($this->endLines[$lineNumber]['methodName'])) { - unset($currentMethod); - } // End line of a function. - elseif (isset($this->endLines[$lineNumber]['functionName'])) { - unset($currentFunction); - - if ($functionStack) { - \end($functionStack); - $key = \key($functionStack); - $currentFunction = &$functionStack[$key]; - unset($functionStack[$key]); - } - } - } - } - - foreach ($this->traits as &$trait) { - foreach ($trait['methods'] as &$method) { - if ($method['executableLines'] > 0) { - $method['coverage'] = ($method['executedLines'] / - $method['executableLines']) * 100; - } else { - $method['coverage'] = 100; - } - - $method['crap'] = $this->crap( - $method['ccn'], - $method['coverage'] - ); - - $trait['ccn'] += $method['ccn']; - } - - if ($trait['executableLines'] > 0) { - $trait['coverage'] = ($trait['executedLines'] / - $trait['executableLines']) * 100; - - if ($trait['coverage'] == 100) { - $this->numTestedClasses++; - } - } else { - $trait['coverage'] = 100; - } - - $trait['crap'] = $this->crap( - $trait['ccn'], - $trait['coverage'] - ); - } - - foreach ($this->classes as &$class) { - foreach ($class['methods'] as &$method) { - if ($method['executableLines'] > 0) { - $method['coverage'] = ($method['executedLines'] / - $method['executableLines']) * 100; - } else { - $method['coverage'] = 100; - } - - $method['crap'] = $this->crap( - $method['ccn'], - $method['coverage'] - ); - - $class['ccn'] += $method['ccn']; - } - - if ($class['executableLines'] > 0) { - $class['coverage'] = ($class['executedLines'] / - $class['executableLines']) * 100; - - if ($class['coverage'] == 100) { - $this->numTestedClasses++; - } - } else { - $class['coverage'] = 100; - } - - $class['crap'] = $this->crap( - $class['ccn'], - $class['coverage'] - ); - } - - foreach ($this->functions as &$function) { - if ($function['executableLines'] > 0) { - $function['coverage'] = ($function['executedLines'] / - $function['executableLines']) * 100; - } else { - $function['coverage'] = 100; - } - - if ($function['coverage'] == 100) { - $this->numTestedFunctions++; - } - - $function['crap'] = $this->crap( - $function['ccn'], - $function['coverage'] - ); - } - } - - private function processClasses(\PHP_Token_Stream $tokens): void - { - $classes = $tokens->getClasses(); - - $link = $this->getId() . '.html#'; - - foreach ($classes as $className => $class) { - if (!empty($class['package']['namespace'])) { - $className = $class['package']['namespace'] . '\\' . $className; - } - - $this->classes[$className] = [ - 'className' => $className, - 'methods' => [], - 'startLine' => $class['startLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'ccn' => 0, - 'coverage' => 0, - 'crap' => 0, - 'package' => $class['package'], - 'link' => $link . $class['startLine'] - ]; - - $this->startLines[$class['startLine']] = &$this->classes[$className]; - $this->endLines[$class['endLine']] = &$this->classes[$className]; - - foreach ($class['methods'] as $methodName => $method) { - $this->classes[$className]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); - - $this->startLines[$method['startLine']] = &$this->classes[$className]['methods'][$methodName]; - $this->endLines[$method['endLine']] = &$this->classes[$className]['methods'][$methodName]; - } - } - } - - private function processTraits(\PHP_Token_Stream $tokens): void - { - $traits = $tokens->getTraits(); - - $link = $this->getId() . '.html#'; - - foreach ($traits as $traitName => $trait) { - $this->traits[$traitName] = [ - 'traitName' => $traitName, - 'methods' => [], - 'startLine' => $trait['startLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'ccn' => 0, - 'coverage' => 0, - 'crap' => 0, - 'package' => $trait['package'], - 'link' => $link . $trait['startLine'] - ]; - - $this->startLines[$trait['startLine']] = &$this->traits[$traitName]; - $this->endLines[$trait['endLine']] = &$this->traits[$traitName]; - - foreach ($trait['methods'] as $methodName => $method) { - $this->traits[$traitName]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); - - $this->startLines[$method['startLine']] = &$this->traits[$traitName]['methods'][$methodName]; - $this->endLines[$method['endLine']] = &$this->traits[$traitName]['methods'][$methodName]; - } - } - } - - private function processFunctions(\PHP_Token_Stream $tokens): void - { - $functions = $tokens->getFunctions(); - - $link = $this->getId() . '.html#'; - - foreach ($functions as $functionName => $function) { - $this->functions[$functionName] = [ - 'functionName' => $functionName, - 'signature' => $function['signature'], - 'startLine' => $function['startLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'ccn' => $function['ccn'], - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $function['startLine'] - ]; - - $this->startLines[$function['startLine']] = &$this->functions[$functionName]; - $this->endLines[$function['endLine']] = &$this->functions[$functionName]; - } - } - - private function crap(int $ccn, float $coverage): string - { - if ($coverage === 0) { - return (string) ($ccn ** 2 + $ccn); - } - - if ($coverage >= 95) { - return (string) $ccn; - } - - return \sprintf( - '%01.2F', - $ccn ** 2 * (1 - $coverage / 100) ** 3 + $ccn - ); - } - - private function newMethod(string $methodName, array $method, string $link): array - { - return [ - 'methodName' => $methodName, - 'visibility' => $method['visibility'], - 'signature' => $method['signature'], - 'startLine' => $method['startLine'], - 'endLine' => $method['endLine'], - 'executableLines' => 0, - 'executedLines' => 0, - 'ccn' => $method['ccn'], - 'coverage' => 0, - 'crap' => 0, - 'link' => $link . $method['startLine'], - ]; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Node/Iterator.php b/vendor/phpunit/php-code-coverage/src/Node/Iterator.php deleted file mode 100644 index 935ad6c..0000000 --- a/vendor/phpunit/php-code-coverage/src/Node/Iterator.php +++ /dev/null @@ -1,92 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Node; - -/** - * Recursive iterator for node object graphs. - */ -final class Iterator implements \RecursiveIterator -{ - /** - * @var int - */ - private $position; - - /** - * @var AbstractNode[] - */ - private $nodes; - - public function __construct(Directory $node) - { - $this->nodes = $node->getChildNodes(); - } - - /** - * Rewinds the Iterator to the first element. - */ - public function rewind(): void - { - $this->position = 0; - } - - /** - * Checks if there is a current element after calls to rewind() or next(). - */ - public function valid(): bool - { - return $this->position < \count($this->nodes); - } - - /** - * Returns the key of the current element. - */ - public function key(): int - { - return $this->position; - } - - /** - * Returns the current element. - */ - public function current(): AbstractNode - { - return $this->valid() ? $this->nodes[$this->position] : null; - } - - /** - * Moves forward to next element. - */ - public function next(): void - { - $this->position++; - } - - /** - * Returns the sub iterator for the current element. - * - * @return Iterator - */ - public function getChildren(): self - { - return new self($this->nodes[$this->position]); - } - - /** - * Checks whether the current element has children. - * - * @return bool - */ - public function hasChildren(): bool - { - return $this->nodes[$this->position] instanceof Directory; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Clover.php b/vendor/phpunit/php-code-coverage/src/Report/Clover.php deleted file mode 100644 index 27052c5..0000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Clover.php +++ /dev/null @@ -1,246 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report; - -use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Node\File; - -/** - * Generates a Clover XML logfile from a code coverage object. - */ -final class Clover -{ - /** - * @throws \RuntimeException - */ - public function process(CodeCoverage $coverage, ?string $target = null, ?string $name = null): string - { - $xmlDocument = new \DOMDocument('1.0', 'UTF-8'); - $xmlDocument->formatOutput = true; - - $xmlCoverage = $xmlDocument->createElement('coverage'); - $xmlCoverage->setAttribute('generated', (int) $_SERVER['REQUEST_TIME']); - $xmlDocument->appendChild($xmlCoverage); - - $xmlProject = $xmlDocument->createElement('project'); - $xmlProject->setAttribute('timestamp', (int) $_SERVER['REQUEST_TIME']); - - if (\is_string($name)) { - $xmlProject->setAttribute('name', $name); - } - - $xmlCoverage->appendChild($xmlProject); - - $packages = []; - $report = $coverage->getReport(); - - foreach ($report as $item) { - if (!$item instanceof File) { - continue; - } - - /* @var File $item */ - - $xmlFile = $xmlDocument->createElement('file'); - $xmlFile->setAttribute('name', $item->getPath()); - - $classes = $item->getClassesAndTraits(); - $coverageData = $item->getCoverageData(); - $lines = []; - $namespace = 'global'; - - foreach ($classes as $className => $class) { - $classStatements = 0; - $coveredClassStatements = 0; - $coveredMethods = 0; - $classMethods = 0; - - foreach ($class['methods'] as $methodName => $method) { - if ($method['executableLines'] == 0) { - continue; - } - - $classMethods++; - $classStatements += $method['executableLines']; - $coveredClassStatements += $method['executedLines']; - - if ($method['coverage'] == 100) { - $coveredMethods++; - } - - $methodCount = 0; - - foreach (\range($method['startLine'], $method['endLine']) as $line) { - if (isset($coverageData[$line]) && ($coverageData[$line] !== null)) { - $methodCount = \max($methodCount, \count($coverageData[$line])); - } - } - - $lines[$method['startLine']] = [ - 'ccn' => $method['ccn'], - 'count' => $methodCount, - 'crap' => $method['crap'], - 'type' => 'method', - 'visibility' => $method['visibility'], - 'name' => $methodName - ]; - } - - if (!empty($class['package']['namespace'])) { - $namespace = $class['package']['namespace']; - } - - $xmlClass = $xmlDocument->createElement('class'); - $xmlClass->setAttribute('name', $className); - $xmlClass->setAttribute('namespace', $namespace); - - if (!empty($class['package']['fullPackage'])) { - $xmlClass->setAttribute( - 'fullPackage', - $class['package']['fullPackage'] - ); - } - - if (!empty($class['package']['category'])) { - $xmlClass->setAttribute( - 'category', - $class['package']['category'] - ); - } - - if (!empty($class['package']['package'])) { - $xmlClass->setAttribute( - 'package', - $class['package']['package'] - ); - } - - if (!empty($class['package']['subpackage'])) { - $xmlClass->setAttribute( - 'subpackage', - $class['package']['subpackage'] - ); - } - - $xmlFile->appendChild($xmlClass); - - $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('complexity', $class['ccn']); - $xmlMetrics->setAttribute('methods', $classMethods); - $xmlMetrics->setAttribute('coveredmethods', $coveredMethods); - $xmlMetrics->setAttribute('conditionals', 0); - $xmlMetrics->setAttribute('coveredconditionals', 0); - $xmlMetrics->setAttribute('statements', $classStatements); - $xmlMetrics->setAttribute('coveredstatements', $coveredClassStatements); - $xmlMetrics->setAttribute('elements', $classMethods + $classStatements /* + conditionals */); - $xmlMetrics->setAttribute('coveredelements', $coveredMethods + $coveredClassStatements /* + coveredconditionals */); - $xmlClass->appendChild($xmlMetrics); - } - - foreach ($coverageData as $line => $data) { - if ($data === null || isset($lines[$line])) { - continue; - } - - $lines[$line] = [ - 'count' => \count($data), 'type' => 'stmt' - ]; - } - - \ksort($lines); - - foreach ($lines as $line => $data) { - $xmlLine = $xmlDocument->createElement('line'); - $xmlLine->setAttribute('num', $line); - $xmlLine->setAttribute('type', $data['type']); - - if (isset($data['name'])) { - $xmlLine->setAttribute('name', $data['name']); - } - - if (isset($data['visibility'])) { - $xmlLine->setAttribute('visibility', $data['visibility']); - } - - if (isset($data['ccn'])) { - $xmlLine->setAttribute('complexity', $data['ccn']); - } - - if (isset($data['crap'])) { - $xmlLine->setAttribute('crap', $data['crap']); - } - - $xmlLine->setAttribute('count', $data['count']); - $xmlFile->appendChild($xmlLine); - } - - $linesOfCode = $item->getLinesOfCode(); - - $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); - $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); - $xmlMetrics->setAttribute('classes', $item->getNumClassesAndTraits()); - $xmlMetrics->setAttribute('methods', $item->getNumMethods()); - $xmlMetrics->setAttribute('coveredmethods', $item->getNumTestedMethods()); - $xmlMetrics->setAttribute('conditionals', 0); - $xmlMetrics->setAttribute('coveredconditionals', 0); - $xmlMetrics->setAttribute('statements', $item->getNumExecutableLines()); - $xmlMetrics->setAttribute('coveredstatements', $item->getNumExecutedLines()); - $xmlMetrics->setAttribute('elements', $item->getNumMethods() + $item->getNumExecutableLines() /* + conditionals */); - $xmlMetrics->setAttribute('coveredelements', $item->getNumTestedMethods() + $item->getNumExecutedLines() /* + coveredconditionals */); - $xmlFile->appendChild($xmlMetrics); - - if ($namespace === 'global') { - $xmlProject->appendChild($xmlFile); - } else { - if (!isset($packages[$namespace])) { - $packages[$namespace] = $xmlDocument->createElement( - 'package' - ); - - $packages[$namespace]->setAttribute('name', $namespace); - $xmlProject->appendChild($packages[$namespace]); - } - - $packages[$namespace]->appendChild($xmlFile); - } - } - - $linesOfCode = $report->getLinesOfCode(); - - $xmlMetrics = $xmlDocument->createElement('metrics'); - $xmlMetrics->setAttribute('files', \count($report)); - $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); - $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); - $xmlMetrics->setAttribute('classes', $report->getNumClassesAndTraits()); - $xmlMetrics->setAttribute('methods', $report->getNumMethods()); - $xmlMetrics->setAttribute('coveredmethods', $report->getNumTestedMethods()); - $xmlMetrics->setAttribute('conditionals', 0); - $xmlMetrics->setAttribute('coveredconditionals', 0); - $xmlMetrics->setAttribute('statements', $report->getNumExecutableLines()); - $xmlMetrics->setAttribute('coveredstatements', $report->getNumExecutedLines()); - $xmlMetrics->setAttribute('elements', $report->getNumMethods() + $report->getNumExecutableLines() /* + conditionals */); - $xmlMetrics->setAttribute('coveredelements', $report->getNumTestedMethods() + $report->getNumExecutedLines() /* + coveredconditionals */); - $xmlProject->appendChild($xmlMetrics); - - $buffer = $xmlDocument->saveXML(); - - if ($target !== null) { - if (!@\mkdir(\dirname($target), 0777, true) && !\is_dir(\dirname($target))) { - throw new \RuntimeException(\sprintf('Directory "%s" was not created', \dirname($target))); - } - - \file_put_contents($target, $buffer); - } - - return $buffer; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php b/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php deleted file mode 100644 index 05dba0a..0000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php +++ /dev/null @@ -1,157 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report; - -use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Node\File; - -final class Crap4j -{ - /** - * @var int - */ - private $threshold; - - public function __construct(int $threshold = 30) - { - $this->threshold = $threshold; - } - - /** - * @throws \RuntimeException - */ - public function process(CodeCoverage $coverage, ?string $target = null, ?string $name = null): string - { - $document = new \DOMDocument('1.0', 'UTF-8'); - $document->formatOutput = true; - - $root = $document->createElement('crap_result'); - $document->appendChild($root); - - $project = $document->createElement('project', \is_string($name) ? $name : ''); - $root->appendChild($project); - $root->appendChild($document->createElement('timestamp', \date('Y-m-d H:i:s', (int) $_SERVER['REQUEST_TIME']))); - - $stats = $document->createElement('stats'); - $methodsNode = $document->createElement('methods'); - - $report = $coverage->getReport(); - unset($coverage); - - $fullMethodCount = 0; - $fullCrapMethodCount = 0; - $fullCrapLoad = 0; - $fullCrap = 0; - - foreach ($report as $item) { - $namespace = 'global'; - - if (!$item instanceof File) { - continue; - } - - $file = $document->createElement('file'); - $file->setAttribute('name', $item->getPath()); - - $classes = $item->getClassesAndTraits(); - - foreach ($classes as $className => $class) { - foreach ($class['methods'] as $methodName => $method) { - $crapLoad = $this->getCrapLoad($method['crap'], $method['ccn'], $method['coverage']); - - $fullCrap += $method['crap']; - $fullCrapLoad += $crapLoad; - $fullMethodCount++; - - if ($method['crap'] >= $this->threshold) { - $fullCrapMethodCount++; - } - - $methodNode = $document->createElement('method'); - - if (!empty($class['package']['namespace'])) { - $namespace = $class['package']['namespace']; - } - - $methodNode->appendChild($document->createElement('package', $namespace)); - $methodNode->appendChild($document->createElement('className', $className)); - $methodNode->appendChild($document->createElement('methodName', $methodName)); - $methodNode->appendChild($document->createElement('methodSignature', \htmlspecialchars($method['signature']))); - $methodNode->appendChild($document->createElement('fullMethod', \htmlspecialchars($method['signature']))); - $methodNode->appendChild($document->createElement('crap', $this->roundValue($method['crap']))); - $methodNode->appendChild($document->createElement('complexity', $method['ccn'])); - $methodNode->appendChild($document->createElement('coverage', $this->roundValue($method['coverage']))); - $methodNode->appendChild($document->createElement('crapLoad', \round($crapLoad))); - - $methodsNode->appendChild($methodNode); - } - } - } - - $stats->appendChild($document->createElement('name', 'Method Crap Stats')); - $stats->appendChild($document->createElement('methodCount', $fullMethodCount)); - $stats->appendChild($document->createElement('crapMethodCount', $fullCrapMethodCount)); - $stats->appendChild($document->createElement('crapLoad', \round($fullCrapLoad))); - $stats->appendChild($document->createElement('totalCrap', $fullCrap)); - - $crapMethodPercent = 0; - - if ($fullMethodCount > 0) { - $crapMethodPercent = $this->roundValue((100 * $fullCrapMethodCount) / $fullMethodCount); - } - - $stats->appendChild($document->createElement('crapMethodPercent', $crapMethodPercent)); - - $root->appendChild($stats); - $root->appendChild($methodsNode); - - $buffer = $document->saveXML(); - - if ($target !== null) { - if (!@\mkdir(\dirname($target), 0777, true) && !\is_dir(\dirname($target))) { - throw new \RuntimeException(\sprintf('Directory "%s" was not created', \dirname($target))); - } - - \file_put_contents($target, $buffer); - } - - return $buffer; - } - - /** - * @param float $crapValue - * @param int $cyclomaticComplexity - * @param float $coveragePercent - * - * @return float - */ - private function getCrapLoad($crapValue, $cyclomaticComplexity, $coveragePercent): float - { - $crapLoad = 0; - - if ($crapValue >= $this->threshold) { - $crapLoad += $cyclomaticComplexity * (1.0 - $coveragePercent / 100); - $crapLoad += $cyclomaticComplexity / $this->threshold; - } - - return $crapLoad; - } - - /** - * @param float $value - * - * @return float - */ - private function roundValue($value): float - { - return \round($value, 2); - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php deleted file mode 100644 index 05b0609..0000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php +++ /dev/null @@ -1,175 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report\Html; - -use SebastianBergmann\CodeCoverage\CodeCoverage; -use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; -use SebastianBergmann\CodeCoverage\RuntimeException; - -/** - * Generates an HTML report from a code coverage object. - */ -final class Facade -{ - /** - * @var string - */ - private $templatePath; - - /** - * @var string - */ - private $generator; - - /** - * @var int - */ - private $lowUpperBound; - - /** - * @var int - */ - private $highLowerBound; - - public function __construct(int $lowUpperBound = 50, int $highLowerBound = 90, string $generator = '') - { - $this->generator = $generator; - $this->highLowerBound = $highLowerBound; - $this->lowUpperBound = $lowUpperBound; - $this->templatePath = __DIR__ . '/Renderer/Template/'; - } - - /** - * @throws RuntimeException - * @throws \InvalidArgumentException - * @throws \RuntimeException - */ - public function process(CodeCoverage $coverage, string $target): void - { - $target = $this->getDirectory($target); - $report = $coverage->getReport(); - - if (!isset($_SERVER['REQUEST_TIME'])) { - $_SERVER['REQUEST_TIME'] = \time(); - } - - $date = \date('D M j G:i:s T Y', $_SERVER['REQUEST_TIME']); - - $dashboard = new Dashboard( - $this->templatePath, - $this->generator, - $date, - $this->lowUpperBound, - $this->highLowerBound - ); - - $directory = new Directory( - $this->templatePath, - $this->generator, - $date, - $this->lowUpperBound, - $this->highLowerBound - ); - - $file = new File( - $this->templatePath, - $this->generator, - $date, - $this->lowUpperBound, - $this->highLowerBound - ); - - $directory->render($report, $target . 'index.html'); - $dashboard->render($report, $target . 'dashboard.html'); - - foreach ($report as $node) { - $id = $node->getId(); - - if ($node instanceof DirectoryNode) { - if (!@\mkdir($target . $id, 0777, true) && !\is_dir($target . $id)) { - throw new \RuntimeException(\sprintf('Directory "%s" was not created', $target . $id)); - } - - $directory->render($node, $target . $id . '/index.html'); - $dashboard->render($node, $target . $id . '/dashboard.html'); - } else { - $dir = \dirname($target . $id); - - if (!@\mkdir($dir, 0777, true) && !\is_dir($dir)) { - throw new \RuntimeException(\sprintf('Directory "%s" was not created', $dir)); - } - - $file->render($node, $target . $id . '.html'); - } - } - - $this->copyFiles($target); - } - - /** - * @throws RuntimeException - */ - private function copyFiles(string $target): void - { - $dir = $this->getDirectory($target . '.css'); - - \file_put_contents( - $dir . 'bootstrap.min.css', - \str_replace( - 'url(../fonts/', - 'url(../.fonts/', - \file_get_contents($this->templatePath . 'css/bootstrap.min.css') - ) - - ); - - \copy($this->templatePath . 'css/nv.d3.min.css', $dir . 'nv.d3.min.css'); - \copy($this->templatePath . 'css/style.css', $dir . 'style.css'); - - $dir = $this->getDirectory($target . '.fonts'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.eot', $dir . 'glyphicons-halflings-regular.eot'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.svg', $dir . 'glyphicons-halflings-regular.svg'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.ttf', $dir . 'glyphicons-halflings-regular.ttf'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff', $dir . 'glyphicons-halflings-regular.woff'); - \copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff2', $dir . 'glyphicons-halflings-regular.woff2'); - - $dir = $this->getDirectory($target . '.js'); - \copy($this->templatePath . 'js/bootstrap.min.js', $dir . 'bootstrap.min.js'); - \copy($this->templatePath . 'js/d3.min.js', $dir . 'd3.min.js'); - \copy($this->templatePath . 'js/holder.min.js', $dir . 'holder.min.js'); - \copy($this->templatePath . 'js/html5shiv.min.js', $dir . 'html5shiv.min.js'); - \copy($this->templatePath . 'js/jquery.min.js', $dir . 'jquery.min.js'); - \copy($this->templatePath . 'js/nv.d3.min.js', $dir . 'nv.d3.min.js'); - \copy($this->templatePath . 'js/respond.min.js', $dir . 'respond.min.js'); - \copy($this->templatePath . 'js/file.js', $dir . 'file.js'); - } - - /** - * @throws RuntimeException - */ - private function getDirectory(string $directory): string - { - if (\substr($directory, -1, 1) != DIRECTORY_SEPARATOR) { - $directory .= DIRECTORY_SEPARATOR; - } - - if (!@\mkdir($directory, 0777, true) && !\is_dir($directory)) { - throw new RuntimeException( - \sprintf( - 'Directory "%s" does not exist.', - $directory - ) - ); - } - - return $directory; - } -} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php deleted file mode 100644 index 9afbcd9..0000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php +++ /dev/null @@ -1,270 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SebastianBergmann\CodeCoverage\Report\Html; - -use SebastianBergmann\CodeCoverage\Node\AbstractNode; -use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; -use SebastianBergmann\CodeCoverage\Node\File as FileNode; -use SebastianBergmann\CodeCoverage\Version; -use SebastianBergmann\Environment\Runtime; - -/** - * Base class for node renderers. - */ -abstract class Renderer -{ - /** - * @var string - */ - protected $templatePath; - - /** - * @var string - */ - protected $generator; - - /** - * @var string - */ - protected $date; - - /** - * @var int - */ - protected $lowUpperBound; - - /** - * @var int - */ - protected $highLowerBound; - - /** - * @var string - */ - protected $version; - - public function __construct(string $templatePath, string $generator, string $date, int $lowUpperBound, int $highLowerBound) - { - $this->templatePath = $templatePath; - $this->generator = $generator; - $this->date = $date; - $this->lowUpperBound = $lowUpperBound; - $this->highLowerBound = $highLowerBound; - $this->version = Version::id(); - } - - protected function renderItemTemplate(\Text_Template $template, array $data): string - { - $numSeparator = ' / '; - - if (isset($data['numClasses']) && $data['numClasses'] > 0) { - $classesLevel = $this->getColorLevel($data['testedClassesPercent']); - - $classesNumber = $data['numTestedClasses'] . $numSeparator . - $data['numClasses']; - - $classesBar = $this->getCoverageBar( - $data['testedClassesPercent'] - ); - } else { - $classesLevel = ''; - $classesNumber = '0' . $numSeparator . '0'; - $classesBar = ''; - $data['testedClassesPercentAsString'] = 'n/a'; - } - - if ($data['numMethods'] > 0) { - $methodsLevel = $this->getColorLevel($data['testedMethodsPercent']); - - $methodsNumber = $data['numTestedMethods'] . $numSeparator . - $data['numMethods']; - - $methodsBar = $this->getCoverageBar( - $data['testedMethodsPercent'] - ); - } else { - $methodsLevel = ''; - $methodsNumber = '0' . $numSeparator . '0'; - $methodsBar = ''; - $data['testedMethodsPercentAsString'] = 'n/a'; - } - - if ($data['numExecutableLines'] > 0) { - $linesLevel = $this->getColorLevel($data['linesExecutedPercent']); - - $linesNumber = $data['numExecutedLines'] . $numSeparator . - $data['numExecutableLines']; - - $linesBar = $this->getCoverageBar( - $data['linesExecutedPercent'] - ); - } else { - $linesLevel = ''; - $linesNumber = '0' . $numSeparator . '0'; - $linesBar = ''; - $data['linesExecutedPercentAsString'] = 'n/a'; - } - - $template->setVar( - [ - 'icon' => $data['icon'] ?? '', - 'crap' => $data['crap'] ?? '', - 'name' => $data['name'], - 'lines_bar' => $linesBar, - 'lines_executed_percent' => $data['linesExecutedPercentAsString'], - 'lines_level' => $linesLevel, - 'lines_number' => $linesNumber, - 'methods_bar' => $methodsBar, - 'methods_tested_percent' => $data['testedMethodsPercentAsString'], - 'methods_level' => $methodsLevel, - 'methods_number' => $methodsNumber, - 'classes_bar' => $classesBar, - 'classes_tested_percent' => $data['testedClassesPercentAsString'] ?? '', - 'classes_level' => $classesLevel, - 'classes_number' => $classesNumber - ] - ); - - return $template->render(); - } - - protected function setCommonTemplateVariables(\Text_Template $template, AbstractNode $node): void - { - $template->setVar( - [ - 'id' => $node->getId(), - 'full_path' => $node->getPath(), - 'path_to_root' => $this->getPathToRoot($node), - 'breadcrumbs' => $this->getBreadcrumbs($node), - 'date' => $this->date, - 'version' => $this->version, - 'runtime' => $this->getRuntimeString(), - 'generator' => $this->generator, - 'low_upper_bound' => $this->lowUpperBound, - 'high_lower_bound' => $this->highLowerBound - ] - ); - } - - protected function getBreadcrumbs(AbstractNode $node): string - { - $breadcrumbs = ''; - $path = $node->getPathAsArray(); - $pathToRoot = []; - $max = \count($path); - - if ($node instanceof FileNode) { - $max--; - } - - for ($i = 0; $i < $max; $i++) { - $pathToRoot[] = \str_repeat('../', $i); - } - - foreach ($path as $step) { - if ($step !== $node) { - $breadcrumbs .= $this->getInactiveBreadcrumb( - $step, - \array_pop($pathToRoot) - ); - } else { - $breadcrumbs .= $this->getActiveBreadcrumb($step); - } - } - - return $breadcrumbs; - } - - protected function getActiveBreadcrumb(AbstractNode $node): string - { - $buffer = \sprintf( - '

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

    Classes

    -
    -
    -
    -
    -

    Coverage Distribution

    -
    - -
    -
    -
    -

    Complexity

    -
    - -
    -
    -
    -
    -
    -

    Insufficient Coverage

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

    Project Risks

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

    Methods

    -
    -
    -
    -
    -

    Coverage Distribution

    -
    - -
    -
    -
    -

    Complexity

    -
    - -
    -
    -
    -
    -
    -

    Insufficient Coverage

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

    Project Risks

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

    Legend

    -

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

    -

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

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

    Legend

    -

    - Executed - Not Executed - Dead Code -

    -

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

    - -
    -
    - - - - - - diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist deleted file mode 100644 index 756fdd6..0000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist +++ /dev/null @@ -1,14 +0,0 @@ - - {{name}} - {{classes_bar}} -
    {{classes_tested_percent}}
    -
    {{classes_number}}
    - {{methods_bar}} -
    {{methods_tested_percent}}
    -
    {{methods_number}}
    - {{crap}} - {{lines_bar}} -
    {{lines_executed_percent}}
    -
    {{lines_number}}
    - - diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index b93a4953fff68df523aa7656497ee339d6026d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20127 zcma%hV{j!vx9y2-`@~L8?1^pLwlPU2wr$&<*tR|KBoo`2;LUg6eW-eW-tKDb)vH%` z^`A!Vd<6hNSRMcX|Cb;E|1qflDggj6Kmr)xA10^t-vIc3*Z+F{r%|K(GyE^?|I{=9 zNq`(c8=wS`0!RZy0g3{M(8^tv41d}oRU?8#IBFtJy*9zAN5dcxqGlMZGL>GG%R#)4J zDJ2;)4*E1pyHia%>lMv3X7Q`UoFyoB@|xvh^)kOE3)IL&0(G&i;g08s>c%~pHkN&6 z($7!kyv|A2DsV2mq-5Ku)D#$Kn$CzqD-wm5Q*OtEOEZe^&T$xIb0NUL}$)W)Ck`6oter6KcQG9Zcy>lXip)%e&!lQgtQ*N`#abOlytt!&i3fo)cKV zP0BWmLxS1gQv(r_r|?9>rR0ZeEJPx;Vi|h1!Eo*dohr&^lJgqJZns>&vexP@fs zkPv93Nyw$-kM5Mw^{@wPU47Y1dSkiHyl3dtHLwV&6Tm1iv{ve;sYA}Z&kmH802s9Z zyJEn+cfl7yFu#1^#DbtP7k&aR06|n{LnYFYEphKd@dJEq@)s#S)UA&8VJY@S2+{~> z(4?M();zvayyd^j`@4>xCqH|Au>Sfzb$mEOcD7e4z8pPVRTiMUWiw;|gXHw7LS#U< zsT(}Z5SJ)CRMXloh$qPnK77w_)ctHmgh}QAe<2S{DU^`!uwptCoq!Owz$u6bF)vnb zL`bM$%>baN7l#)vtS3y6h*2?xCk z>w+s)@`O4(4_I{L-!+b%)NZcQ&ND=2lyP+xI#9OzsiY8$c)ys-MI?TG6 zEP6f=vuLo!G>J7F4v|s#lJ+7A`^nEQScH3e?B_jC&{sj>m zYD?!1z4nDG_Afi$!J(<{>z{~Q)$SaXWjj~%ZvF152Hd^VoG14rFykR=_TO)mCn&K$ z-TfZ!vMBvnToyBoKRkD{3=&=qD|L!vb#jf1f}2338z)e)g>7#NPe!FoaY*jY{f)Bf>ohk-K z4{>fVS}ZCicCqgLuYR_fYx2;*-4k>kffuywghn?15s1dIOOYfl+XLf5w?wtU2Og*f z%X5x`H55F6g1>m~%F`655-W1wFJtY>>qNSdVT`M`1Mlh!5Q6#3j={n5#za;!X&^OJ zgq;d4UJV-F>gg?c3Y?d=kvn3eV)Jb^ zO5vg0G0yN0%}xy#(6oTDSVw8l=_*2k;zTP?+N=*18H5wp`s90K-C67q{W3d8vQGmr zhpW^>1HEQV2TG#8_P_0q91h8QgHT~8=-Ij5snJ3cj?Jn5_66uV=*pq(j}yHnf$Ft;5VVC?bz%9X31asJeQF2jEa47H#j` zk&uxf3t?g!tltVP|B#G_UfDD}`<#B#iY^i>oDd-LGF}A@Fno~dR72c&hs6bR z2F}9(i8+PR%R|~FV$;Ke^Q_E_Bc;$)xN4Ti>Lgg4vaip!%M z06oxAF_*)LH57w|gCW3SwoEHwjO{}}U=pKhjKSZ{u!K?1zm1q? zXyA6y@)}_sONiJopF}_}(~}d4FDyp|(@w}Vb;Fl5bZL%{1`}gdw#i{KMjp2@Fb9pg ziO|u7qP{$kxH$qh8%L+)AvwZNgUT6^zsZq-MRyZid{D?t`f|KzSAD~C?WT3d0rO`0 z=qQ6{)&UXXuHY{9g|P7l_nd-%eh}4%VVaK#Nik*tOu9lBM$<%FS@`NwGEbP0&;Xbo zObCq=y%a`jSJmx_uTLa{@2@}^&F4c%z6oe-TN&idjv+8E|$FHOvBqg5hT zMB=7SHq`_-E?5g=()*!V>rIa&LcX(RU}aLm*38U_V$C_g4)7GrW5$GnvTwJZdBmy6 z*X)wi3=R8L=esOhY0a&eH`^fSpUHV8h$J1|o^3fKO|9QzaiKu>yZ9wmRkW?HTkc<*v7i*ylJ#u#j zD1-n&{B`04oG>0Jn{5PKP*4Qsz{~`VVA3578gA+JUkiPc$Iq!^K|}*p_z3(-c&5z@ zKxmdNpp2&wg&%xL3xZNzG-5Xt7jnI@{?c z25=M>-VF|;an2Os$Nn%HgQz7m(ujC}Ii0Oesa(y#8>D+P*_m^X##E|h$M6tJr%#=P zWP*)Px>7z`E~U^2LNCNiy%Z7!!6RI%6fF@#ZY3z`CK91}^J$F!EB0YF1je9hJKU7!S5MnXV{+#K;y zF~s*H%p@vj&-ru7#(F2L+_;IH46X(z{~HTfcThqD%b{>~u@lSc<+f5#xgt9L7$gSK ziDJ6D*R%4&YeUB@yu@4+&70MBNTnjRyqMRd+@&lU#rV%0t3OmouhC`mkN}pL>tXin zY*p)mt=}$EGT2E<4Q>E2`6)gZ`QJhGDNpI}bZL9}m+R>q?l`OzFjW?)Y)P`fUH(_4 zCb?sm1=DD0+Q5v}BW#0n5;Nm(@RTEa3(Y17H2H67La+>ptQHJ@WMy2xRQT$|7l`8c zYHCxYw2o-rI?(fR2-%}pbs$I%w_&LPYE{4bo}vRoAW>3!SY_zH3`ofx3F1PsQ?&iq z*BRG>?<6%z=x#`NhlEq{K~&rU7Kc7Y-90aRnoj~rVoKae)L$3^z*Utppk?I`)CX&& zZ^@Go9fm&fN`b`XY zt0xE5aw4t@qTg_k=!-5LXU+_~DlW?53!afv6W(k@FPPX-`nA!FBMp7b!ODbL1zh58 z*69I}P_-?qSLKj}JW7gP!la}K@M}L>v?rDD!DY-tu+onu9kLoJz20M4urX_xf2dfZ zORd9Zp&28_ff=wdMpXi%IiTTNegC}~RLkdYjA39kWqlA?jO~o1`*B&85Hd%VPkYZT z48MPe62;TOq#c%H(`wX5(Bu>nlh4Fbd*Npasdhh?oRy8a;NB2(eb}6DgwXtx=n}fE zx67rYw=(s0r?EsPjaya}^Qc-_UT5|*@|$Q}*|>V3O~USkIe6a0_>vd~6kHuP8=m}_ zo2IGKbv;yA+TBtlCpnw)8hDn&eq?26gN$Bh;SdxaS04Fsaih_Cfb98s39xbv)=mS0 z6M<@pM2#pe32w*lYSWG>DYqB95XhgAA)*9dOxHr{t)er0Xugoy)!Vz#2C3FaUMzYl zCxy{igFB901*R2*F4>grPF}+G`;Yh zGi@nRjWyG3mR(BVOeBPOF=_&}2IWT%)pqdNAcL{eP`L*^FDv#Rzql5U&Suq_X%JfR_lC!S|y|xd5mQ0{0!G#9hV46S~A` z0B!{yI-4FZEtol5)mNWXcX(`x&Pc*&gh4k{w%0S#EI>rqqlH2xv7mR=9XNCI$V#NG z4wb-@u{PfQP;tTbzK>(DF(~bKp3;L1-A*HS!VB)Ae>Acnvde15Anb`h;I&0)aZBS6 z55ZS7mL5Wp!LCt45^{2_70YiI_Py=X{I3>$Px5Ez0ahLQ+ z9EWUWSyzA|+g-Axp*Lx-M{!ReQO07EG7r4^)K(xbj@%ZU=0tBC5shl)1a!ifM5OkF z0w2xQ-<+r-h1fi7B6waX15|*GGqfva)S)dVcgea`lQ~SQ$KXPR+(3Tn2I2R<0 z9tK`L*pa^+*n%>tZPiqt{_`%v?Bb7CR-!GhMON_Fbs0$#|H}G?rW|{q5fQhvw!FxI zs-5ZK>hAbnCS#ZQVi5K0X3PjL1JRdQO+&)*!oRCqB{wen60P6!7bGiWn@vD|+E@Xq zb!!_WiU^I|@1M}Hz6fN-m04x=>Exm{b@>UCW|c8vC`aNbtA@KCHujh^2RWZC}iYhL^<*Z93chIBJYU&w>$CGZDRcHuIgF&oyesDZ#&mA;?wxx4Cm#c0V$xYG?9OL(Smh}#fFuX(K;otJmvRP{h ze^f-qv;)HKC7geB92_@3a9@MGijS(hNNVd%-rZ;%@F_f7?Fjinbe1( zn#jQ*jKZTqE+AUTEd3y6t>*=;AO##cmdwU4gc2&rT8l`rtKW2JF<`_M#p>cj+)yCG zgKF)y8jrfxTjGO&ccm8RU>qn|HxQ7Z#sUo$q)P5H%8iBF$({0Ya51-rA@!It#NHN8MxqK zrYyl_&=}WVfQ?+ykV4*@F6)=u_~3BebR2G2>>mKaEBPmSW3(qYGGXj??m3L zHec{@jWCsSD8`xUy0pqT?Sw0oD?AUK*WxZn#D>-$`eI+IT)6ki>ic}W)t$V32^ITD zR497@LO}S|re%A+#vdv-?fXsQGVnP?QB_d0cGE+U84Q=aM=XrOwGFN3`Lpl@P0fL$ zKN1PqOwojH*($uaQFh8_)H#>Acl&UBSZ>!2W1Dinei`R4dJGX$;~60X=|SG6#jci} z&t4*dVDR*;+6Y(G{KGj1B2!qjvDYOyPC}%hnPbJ@g(4yBJrViG1#$$X75y+Ul1{%x zBAuD}Q@w?MFNqF-m39FGpq7RGI?%Bvyyig&oGv)lR>d<`Bqh=p>urib5DE;u$c|$J zwim~nPb19t?LJZsm{<(Iyyt@~H!a4yywmHKW&=1r5+oj*Fx6c89heW@(2R`i!Uiy* zp)=`Vr8sR!)KChE-6SEIyi(dvG3<1KoVt>kGV=zZiG7LGonH1+~yOK-`g0)r#+O|Q>)a`I2FVW%wr3lhO(P{ksNQuR!G_d zeTx(M!%brW_vS9?IF>bzZ2A3mWX-MEaOk^V|4d38{1D|KOlZSjBKrj7Fgf^>JyL0k zLoI$adZJ0T+8i_Idsuj}C;6jgx9LY#Ukh;!8eJ^B1N}q=Gn4onF*a2vY7~`x$r@rJ z`*hi&Z2lazgu{&nz>gjd>#eq*IFlXed(%$s5!HRXKNm zDZld+DwDI`O6hyn2uJ)F^{^;ESf9sjJ)wMSKD~R=DqPBHyP!?cGAvL<1|7K-(=?VO zGcKcF1spUa+ki<`6K#@QxOTsd847N8WSWztG~?~ z!gUJn>z0O=_)VCE|56hkT~n5xXTp}Ucx$Ii%bQ{5;-a4~I2e|{l9ur#*ghd*hSqO= z)GD@ev^w&5%k}YYB~!A%3*XbPPU-N6&3Lp1LxyP@|C<{qcn&?l54+zyMk&I3YDT|E z{lXH-e?C{huu<@~li+73lMOk&k)3s7Asn$t6!PtXJV!RkA`qdo4|OC_a?vR!kE_}k zK5R9KB%V@R7gt@9=TGL{=#r2gl!@3G;k-6sXp&E4u20DgvbY$iE**Xqj3TyxK>3AU z!b9}NXuINqt>Htt6fXIy5mj7oZ{A&$XJ&thR5ySE{mkxq_YooME#VCHm2+3D!f`{) zvR^WSjy_h4v^|!RJV-RaIT2Ctv=)UMMn@fAgjQV$2G+4?&dGA8vK35c-8r)z9Qqa=%k(FU)?iec14<^olkOU3p zF-6`zHiDKPafKK^USUU+D01>C&Wh{{q?>5m zGQp|z*+#>IIo=|ae8CtrN@@t~uLFOeT{}vX(IY*;>wAU=u1Qo4c+a&R);$^VCr>;! zv4L{`lHgc9$BeM)pQ#XA_(Q#=_iSZL4>L~8Hx}NmOC$&*Q*bq|9Aq}rWgFnMDl~d*;7c44GipcpH9PWaBy-G$*MI^F0 z?Tdxir1D<2ui+Q#^c4?uKvq=p>)lq56=Eb|N^qz~w7rsZu)@E4$;~snz+wIxi+980O6M#RmtgLYh@|2}9BiHSpTs zacjGKvwkUwR3lwTSsCHlwb&*(onU;)$yvdhikonn|B44JMgs*&Lo!jn`6AE>XvBiO z*LKNX3FVz9yLcsnmL!cRVO_qv=yIM#X|u&}#f%_?Tj0>8)8P_0r0!AjWNw;S44tst zv+NXY1{zRLf9OYMr6H-z?4CF$Y%MdbpFIN@a-LEnmkcOF>h16cH_;A|e)pJTuCJ4O zY7!4FxT4>4aFT8a92}84>q0&?46h>&0Vv0p>u~k&qd5$C1A6Q$I4V(5X~6{15;PD@ ze6!s9xh#^QI`J+%8*=^(-!P!@9%~buBmN2VSAp@TOo6}C?az+ALP8~&a0FWZk*F5N z^8P8IREnN`N0i@>O0?{i-FoFShYbUB`D7O4HB`Im2{yzXmyrg$k>cY6A@>bf7i3n0 z5y&cf2#`zctT>dz+hNF&+d3g;2)U!#vsb-%LC+pqKRTiiSn#FH#e!bVwR1nAf*TG^ z!RKcCy$P>?Sfq6n<%M{T0I8?p@HlgwC!HoWO>~mT+X<{Ylm+$Vtj9};H3$EB}P2wR$3y!TO#$iY8eO-!}+F&jMu4%E6S>m zB(N4w9O@2=<`WNJay5PwP8javDp~o~xkSbd4t4t8)9jqu@bHmJHq=MV~Pt|(TghCA}fhMS?s-{klV>~=VrT$nsp7mf{?cze~KKOD4 z_1Y!F)*7^W+BBTt1R2h4f1X4Oy2%?=IMhZU8c{qk3xI1=!na*Sg<=A$?K=Y=GUR9@ zQ(ylIm4Lgm>pt#%p`zHxok%vx_=8Fap1|?OM02|N%X-g5_#S~sT@A!x&8k#wVI2lo z1Uyj{tDQRpb*>c}mjU^gYA9{7mNhFAlM=wZkXcA#MHXWMEs^3>p9X)Oa?dx7b%N*y zLz@K^%1JaArjgri;8ptNHwz1<0y8tcURSbHsm=26^@CYJ3hwMaEvC7 z3Wi-@AaXIQ)%F6#i@%M>?Mw7$6(kW@?et@wbk-APcvMCC{>iew#vkZej8%9h0JSc? zCb~K|!9cBU+))^q*co(E^9jRl7gR4Jihyqa(Z(P&ID#TPyysVNL7(^;?Gan!OU>au zN}miBc&XX-M$mSv%3xs)bh>Jq9#aD_l|zO?I+p4_5qI0Ms*OZyyxA`sXcyiy>-{YN zA70%HmibZYcHW&YOHk6S&PQ+$rJ3(utuUra3V0~@=_~QZy&nc~)AS>v&<6$gErZC3 zcbC=eVkV4Vu0#}E*r=&{X)Kgq|8MGCh(wsH4geLj@#8EGYa})K2;n z{1~=ghoz=9TSCxgzr5x3@sQZZ0FZ+t{?klSI_IZa16pSx6*;=O%n!uXVZ@1IL;JEV zfOS&yyfE9dtS*^jmgt6>jQDOIJM5Gx#Y2eAcC3l^lmoJ{o0T>IHpECTbfYgPI4#LZq0PKqnPCD}_ zyKxz;(`fE0z~nA1s?d{X2!#ZP8wUHzFSOoTWQrk%;wCnBV_3D%3@EC|u$Ao)tO|AO z$4&aa!wbf}rbNcP{6=ajgg(`p5kTeu$ji20`zw)X1SH*x zN?T36{d9TY*S896Ijc^!35LLUByY4QO=ARCQ#MMCjudFc7s!z%P$6DESz%zZ#>H|i zw3Mc@v4~{Eke;FWs`5i@ifeYPh-Sb#vCa#qJPL|&quSKF%sp8*n#t?vIE7kFWjNFh zJC@u^bRQ^?ra|%39Ux^Dn4I}QICyDKF0mpe+Bk}!lFlqS^WpYm&xwIYxUoS-rJ)N9 z1Tz*6Rl9;x`4lwS1cgW^H_M*)Dt*DX*W?ArBf?-t|1~ge&S}xM0K;U9Ibf{okZHf~ z#4v4qc6s6Zgm8iKch5VMbQc~_V-ZviirnKCi*ouN^c_2lo&-M;YSA>W>>^5tlXObg zacX$k0=9Tf$Eg+#9k6yV(R5-&F{=DHP8!yvSQ`Y~XRnUx@{O$-bGCksk~3&qH^dqX zkf+ZZ?Nv5u>LBM@2?k%k&_aUb5Xjqf#!&7%zN#VZwmv65ezo^Y4S#(ed0yUn4tFOB zh1f1SJ6_s?a{)u6VdwUC!Hv=8`%T9(^c`2hc9nt$(q{Dm2X)dK49ba+KEheQ;7^0) ziFKw$%EHy_B1)M>=yK^=Z$U-LT36yX>EKT zvD8IAom2&2?bTmX@_PBR4W|p?6?LQ+&UMzXxqHC5VHzf@Eb1u)kwyfy+NOM8Wa2y@ zNNDL0PE$F;yFyf^jy&RGwDXQwYw6yz>OMWvJt98X@;yr!*RQDBE- zE*l*u=($Zi1}0-Y4lGaK?J$yQjgb+*ljUvNQ!;QYAoCq@>70=sJ{o{^21^?zT@r~hhf&O;Qiq+ ziGQQLG*D@5;LZ%09mwMiE4Q{IPUx-emo*;a6#DrmWr(zY27d@ezre)Z1BGZdo&pXn z+);gOFelKDmnjq#8dL7CTiVH)dHOqWi~uE|NM^QI3EqxE6+_n>IW67~UB#J==QOGF zp_S)c8TJ}uiaEiaER}MyB(grNn=2m&0yztA=!%3xUREyuG_jmadN*D&1nxvjZ6^+2 zORi7iX1iPi$tKasppaR9$a3IUmrrX)m*)fg1>H+$KpqeB*G>AQV((-G{}h=qItj|d zz~{5@{?&Dab6;0c7!!%Se>w($RmlG7Jlv_zV3Ru8b2rugY0MVPOOYGlokI7%nhIy& z-B&wE=lh2dtD!F?noD{z^O1~Tq4MhxvchzuT_oF3-t4YyA*MJ*n&+1X3~6quEN z@m~aEp=b2~mP+}TUP^FmkRS_PDMA{B zaSy(P=$T~R!yc^Ye0*pl5xcpm_JWI;@-di+nruhqZ4gy7cq-)I&s&Bt3BkgT(Zdjf zTvvv0)8xzntEtp4iXm}~cT+pi5k{w{(Z@l2XU9lHr4Vy~3ycA_T?V(QS{qwt?v|}k z_ST!s;C4!jyV5)^6xC#v!o*uS%a-jQ6< z)>o?z7=+zNNtIz1*F_HJ(w@=`E+T|9TqhC(g7kKDc8z~?RbKQ)LRMn7A1p*PcX2YR zUAr{);~c7I#3Ssv<0i-Woj0&Z4a!u|@Xt2J1>N-|ED<3$o2V?OwL4oQ%$@!zLamVz zB)K&Ik^~GOmDAa143{I4?XUk1<3-k{<%?&OID&>Ud%z*Rkt*)mko0RwC2=qFf-^OV z=d@47?tY=A;=2VAh0mF(3x;!#X!%{|vn;U2XW{(nu5b&8kOr)Kop3-5_xnK5oO_3y z!EaIb{r%D{7zwtGgFVri4_!yUIGwR(xEV3YWSI_+E}Gdl>TINWsIrfj+7DE?xp+5^ zlr3pM-Cbse*WGKOd3+*Qen^*uHk)+EpH-{u@i%y}Z!YSid<}~kA*IRSk|nf+I1N=2 zIKi+&ej%Al-M5`cP^XU>9A(m7G>58>o|}j0ZWbMg&x`*$B9j#Rnyo0#=BMLdo%=ks zLa3(2EinQLXQ(3zDe7Bce%Oszu%?8PO648TNst4SMFvj=+{b%)ELyB!0`B?9R6aO{i-63|s@|raSQGL~s)9R#J#duFaTSZ2M{X z1?YuM*a!!|jP^QJ(hAisJuPOM`8Y-Hzl~%d@latwj}t&0{DNNC+zJARnuQfiN`HQ# z?boY_2?*q;Qk)LUB)s8(Lz5elaW56p&fDH*AWAq7Zrbeq1!?FBGYHCnFgRu5y1jwD zc|yBz+UW|X`zDsc{W~8m$sh@VVnZD$lLnKlq@Hg^;ky!}ZuPdKNi2BI70;hrpvaA4+Q_+K)I@|)q1N-H zrycZU`*YUW``Qi^`bDX-j7j^&bO+-Xg$cz2#i##($uyW{Nl&{DK{=lLWV3|=<&si||2)l=8^8_z+Vho-#5LB0EqQ3v5U#*DF7 zxT)1j^`m+lW}p$>WSIG1eZ>L|YR-@Feu!YNWiw*IZYh03mq+2QVtQ}1ezRJM?0PA< z;mK(J5@N8>u@<6Y$QAHWNE};rR|)U_&bv8dsnsza7{=zD1VBcxrALqnOf-qW(zzTn zTAp|pEo#FsQ$~*$j|~Q;$Zy&Liu9OM;VF@#_&*nL!N2hH!Q6l*OeTxq!l>dEc{;Hw zCQni{iN%jHU*C;?M-VUaXxf0FEJ_G=C8)C-wD!DvhY+qQ#FT3}Th8;GgV&AV94F`D ztT6=w_Xm8)*)dBnDkZd~UWL|W=Glu!$hc|1w7_7l!3MAt95oIp4Xp{M%clu&TXehO z+L-1#{mjkpTF@?|w1P98OCky~S%@OR&o75P&ZHvC}Y=(2_{ib(-Al_7aZ^U?s34#H}= zGfFi5%KnFVCKtdO^>Htpb07#BeCXMDO8U}crpe1Gm`>Q=6qB4i=nLoLZ%p$TY=OcP z)r}Et-Ed??u~f09d3Nx3bS@ja!fV(Dfa5lXxRs#;8?Y8G+Qvz+iv7fiRkL3liip}) z&G0u8RdEC9c$$rdU53=MH`p!Jn|DHjhOxHK$tW_pw9wCTf0Eo<){HoN=zG!!Gq4z4 z7PwGh)VNPXW-cE#MtofE`-$9~nmmj}m zlzZscQ2+Jq%gaB9rMgVJkbhup0Ggpb)&L01T=%>n7-?v@I8!Q(p&+!fd+Y^Pu9l+u zek(_$^HYFVRRIFt@0Fp52g5Q#I`tC3li`;UtDLP*rA{-#Yoa5qp{cD)QYhldihWe+ zG~zuaqLY~$-1sjh2lkbXCX;lq+p~!2Z=76cvuQe*Fl>IFwpUBP+d^&E4BGc{m#l%Kuo6#{XGoRyFc%Hqhf|%nYd<;yiC>tyEyk z4I+a`(%%Ie=-*n z-{mg=j&t12)LH3R?@-B1tEb7FLMePI1HK0`Ae@#)KcS%!Qt9p4_fmBl5zhO10n401 zBSfnfJ;?_r{%R)hh}BBNSl=$BiAKbuWrNGQUZ)+0=Mt&5!X*D@yGCSaMNY&@`;^a4 z;v=%D_!K!WXV1!3%4P-M*s%V2b#2jF2bk!)#2GLVuGKd#vNpRMyg`kstw0GQ8@^k^ zuqK5uR<>FeRZ#3{%!|4X!hh7hgirQ@Mwg%%ez8pF!N$xhMNQN((yS(F2-OfduxxKE zxY#7O(VGfNuLv-ImAw5+h@gwn%!ER;*Q+001;W7W^waWT%@(T+5k!c3A-j)a8y11t zx4~rSN0s$M8HEOzkcWW4YbKK9GQez2XJ|Nq?TFy;jmGbg;`m&%U4hIiarKmdTHt#l zL=H;ZHE?fYxKQQXKnC+K!TAU}r086{4m}r()-QaFmU(qWhJlc$eas&y?=H9EYQy8N$8^bni9TpDp zkA^WRs?KgYgjxX4T6?`SMs$`s3vlut(YU~f2F+id(Rf_)$BIMibk9lACI~LA+i7xn z%-+=DHV*0TCTJp~-|$VZ@g2vmd*|2QXV;HeTzt530KyK>v&253N1l}bP_J#UjLy4) zBJili9#-ey8Kj(dxmW^ctorxd;te|xo)%46l%5qE-YhAjP`Cc03vT)vV&GAV%#Cgb zX~2}uWNvh`2<*AuxuJpq>SyNtZwzuU)r@@dqC@v=Ocd(HnnzytN+M&|Qi#f4Q8D=h ziE<3ziFW%+!yy(q{il8H44g^5{_+pH60Mx5Z*FgC_3hKxmeJ+wVuX?T#ZfOOD3E4C zRJsj#wA@3uvwZwHKKGN{{Ag+8^cs?S4N@6(Wkd$CkoCst(Z&hp+l=ffZ?2m%%ffI3 zdV7coR`R+*dPbNx=*ivWeNJK=Iy_vKd`-_Hng{l?hmp=|T3U&epbmgXXWs9ySE|=G zeQ|^ioL}tveN{s72_&h+F+W;G}?;?_s@h5>DX(rp#eaZ!E=NivgLI zWykLKev+}sHH41NCRm7W>K+_qdoJ8x9o5Cf!)|qLtF7Izxk*p|fX8UqEY)_sI_45O zL2u>x=r5xLE%s|d%MO>zU%KV6QKFiEeo12g#bhei4!Hm+`~Fo~4h|BJ)%ENxy9)Up zOxupSf1QZWun=)gF{L0YWJ<(r0?$bPFANrmphJ>kG`&7E+RgrWQi}ZS#-CQJ*i#8j zM_A0?w@4Mq@xvk^>QSvEU|VYQoVI=TaOrsLTa`RZfe8{9F~mM{L+C`9YP9?OknLw| zmkvz>cS6`pF0FYeLdY%>u&XpPj5$*iYkj=m7wMzHqzZ5SG~$i_^f@QEPEC+<2nf-{ zE7W+n%)q$!5@2pBuXMxhUSi*%F>e_g!$T-_`ovjBh(3jK9Q^~OR{)}!0}vdTE^M+m z9QWsA?xG>EW;U~5gEuKR)Ubfi&YWnXV;3H6Zt^NE725*`;lpSK4HS1sN?{~9a4JkD z%}23oAovytUKfRN87XTH2c=kq1)O5(fH_M3M-o{{@&~KD`~TRot-gqg7Q2U2o-iiF}K>m?CokhmODaLB z1p6(6JYGntNOg(s!(>ZU&lzDf+Ur)^Lirm%*}Z>T)9)fAZ9>k(kvnM;ab$ptA=hoh zVgsVaveXbMpm{|4*d<0>?l_JUFOO8A3xNLQOh%nVXjYI6X8h?a@6kDe5-m&;M0xqx z+1U$s>(P9P)f0!{z%M@E7|9nn#IWgEx6A6JNJ(7dk`%6$3@!C!l;JK-p2?gg+W|d- ziEzgk$w7k48NMqg$CM*4O~Abj3+_yUKTyK1p6GDsGEs;}=E_q>^LI-~pym$qhXPJf z2`!PJDp4l(TTm#|n@bN!j;-FFOM__eLl!6{*}z=)UAcGYloj?bv!-XY1TA6Xz;82J zLRaF{8ayzGa|}c--}|^xh)xgX>6R(sZD|Z|qX50gu=d`gEwHqC@WYU7{%<5VOnf9+ zB@FX?|UL%`8EIAe!*UdYl|6wRz6Y>(#8x92$#y}wMeE|ZM2X*c}dKJ^4NIf;Fm zNwzq%QcO?$NR-7`su!*$dlIKo2y(N;qgH@1|8QNo$0wbyyJ2^}$iZ>M{BhBjTdMjK z>gPEzgX4;g3$rU?jvDeOq`X=>)zdt|jk1Lv3u~bjHI=EGLfIR&+K3ldcc4D&Um&04 z3^F*}WaxR(ZyaB>DlmF_UP@+Q*h$&nsOB#gwLt{1#F4i-{A5J@`>B9@{^i?g_Ce&O z<<}_We-RUFU&&MHa1#t56u_oM(Ljn7djja!T|gcxSoR=)@?owC*NkDarpBj=W4}=i1@)@L|C) zQKA+o<(pMVp*Su(`zBC0l1yTa$MRfQ#uby|$mlOMs=G`4J|?apMzKei%jZql#gP@IkOaOjB7MJM=@1j(&!jNnyVkn5;4lvro1!vq ztXiV8HYj5%)r1PPpIOj)f!>pc^3#LvfZ(hz}C@-3R(Cx7R427*Fwd!XO z4~j&IkPHcBm0h_|iG;ZNrYdJ4HI!$rSyo&sibmwIgm1|J#g6%>=ML1r!kcEhm(XY& zD@mIJt;!O%WP7CE&wwE3?1-dt;RTHdm~LvP7K`ccWXkZ0kfFa2S;wGtx_a}S2lslw z$<4^Jg-n#Ypc(3t2N67Juasu=h)j&UNTPNDil4MQMTlnI81kY46uMH5B^U{~nmc6+ z9>(lGhhvRK9ITfpAD!XQ&BPphL3p8B4PVBN0NF6U49;ZA0Tr75AgGw7(S=Yio+xg_ zepZ*?V#KD;sHH+15ix&yCs0eSB-Z%D%uujlXvT#V$Rz@$+w!u#3GIo*AwMI#Bm^oO zLr1e}k5W~G0xaO!C%Mb{sarxWZ4%Dn9vG`KHmPC9GWZwOOm11XJp#o0-P-${3m4g( z6~)X9FXw%Xm~&99tj>a-ri})ZcnsfJtc10F@t9xF5vq6E)X!iUXHq-ohlO`gQdS&k zZl})3k||u)!_=nNlvMbz%AuIr89l#I$;rG}qvDGiK?xTd5HzMQkw*p$YvFLGyQM!J zNC^gD!kP{A84nGosi~@MLKqWQNacfs7O$dkZtm4-BZ~iA8xWZPkTK!HpA5zr!9Z&+icfAJ1)NWkTd!-9`NWU>9uXXUr;`Js#NbKFgrNhTcY4GNv*71}}T zFJh?>=EcbUd2<|fiL+H=wMw8hbX6?+_cl4XnCB#ddwdG>bki* zt*&6Dy&EIPluL@A3_;R%)shA-tDQA1!Tw4ffBRyy;2n)vm_JV06(4Or&QAOKNZB5f(MVC}&_!B>098R{Simr!UG}?CW1Ah+X+0#~0`X)od zLYablwmFxN21L))!_zc`IfzWi`5>MxPe(DmjjO1}HHt7TJtAW+VXHt!aKZk>y6PoMsbDXRJnov;D~Ur~2R_7(Xr)aa%wJwZhS3gr7IGgt%@;`jpL@gyc6bGCVx!9CE7NgIbUNZ!Ur1RHror0~ zr(j$^yM4j`#c2KxSP61;(Tk^pe7b~}LWj~SZC=MEpdKf;B@on9=?_n|R|0q;Y*1_@ z>nGq>)&q!;u-8H)WCwtL&7F4vbnnfSAlK1mwnRq2&gZrEr!b1MA z(3%vAbh3aU-IX`d7b@q`-WiT6eitu}ZH9x#d&qx}?CtDuAXak%5<-P!{a`V=$|XmJ zUn@4lX6#ulB@a=&-9HG)a>KkH=jE7>&S&N~0X0zD=Q=t|7w;kuh#cU=NN7gBGbQTT z;?bdSt8V&IIi}sDTzA0dkU}Z-Qvg;RDe8v>468p3*&hbGT1I3hi9hh~Z(!H}{+>eUyF)H&gdrX=k$aB%J6I;6+^^kn1mL+E+?A!A}@xV(Qa@M%HD5C@+-4Mb4lI=Xp=@9+^x+jhtOc zYgF2aVa(uSR*n(O)e6tf3JEg2xs#dJfhEmi1iOmDYWk|wXNHU?g23^IGKB&yHnsm7 zm_+;p?YpA#N*7vXCkeN2LTNG`{QDa#U3fcFz7SB)83=<8rF)|udrEbrZL$o6W?oDR zQx!178Ih9B#D9Ko$H(jD{4MME&<|6%MPu|TfOc#E0B}!j^MMpV69D#h2`vsEQ{(?c zJ3Lh!3&=yS5fWL~;1wCZ?)%nmK`Eqgcu)O6rD^3%ijcxL50^z?OI(LaVDvfL0#zjZ z2?cPvC$QCzpxpt5jMFp05OxhK0F!Q`rPhDi5)y=-0C} zIM~ku&S@pl1&0=jl+rlS<4`riV~LC-#pqNde@44MB(j%)On$0Ko(@q?4`1?4149Z_ zZi!5aU@2vM$dHR6WSZpj+VboK+>u-CbNi7*lw4K^ZxxM#24_Yc`jvb9NPVi75L+MlM^U~`;a7`4H0L|TYK>%hfEfXLsu1JGM zbh|8{wuc7ucV+`Ys1kqxsj`dajwyM;^X^`)#<+a~$WFy8b2t_RS{8yNYKKlnv+>vB zX(QTf$kqrJ;%I@EwEs{cIcH@Z3|#^S@M+5jsP<^`@8^I4_8MlBb`~cE^n+{{;qW2q z=p1=&+fUo%T{GhVX@;56kH8K_%?X=;$OTYqW1L*)hzelm^$*?_K;9JyIWhsn4SK(| zSmXLTUE8VQX{se#8#Rj*lz`xHtT<61V~fb;WZUpu(M)f#;I+2_zR+)y5Jv?l`CxAinx|EY!`IJ*x9_gf_k&Gx2alL!hK zUWj1T_pk|?iv}4EP#PZvYD_-LpzU!NfcLL%fK&r$W8O1KH9c2&GV~N#T$kaXGvAOl)|T zuF9%6(i=Y3q?X%VK-D2YIYFPH3f|g$TrXW->&^Ab`WT z7>Oo!u1u40?jAJ8Hy`bv}qbgs8)cF0&qeVjD?e+3Ggn1Im>K77ZSpbU*08 zfZkIFcv?y)!*B{|>nx@cE{KoutP+seQU?bCGE`tS0GKUO3PN~t=2u7q_6$l;uw^4c zVu^f{uaqsZ{*a-N?2B8ngrLS8E&s6}Xtv9rR9C^b`@q8*iH)pFzf1|kCfiLw6u{Z%aC z!X^5CzF6qofFJgklJV3oc|Qc2XdFl+y5M9*P8}A>Kh{ zWRgRwMSZ(?Jw;m%0etU5BsWT-Dj-5F;Q$OQJrQd+lv`i6>MhVo^p*^w6{~=fhe|bN z*37oV0kji)4an^%3ABbg5RC;CS50@PV5_hKfXjYx+(DqQdKC^JIEMo6X66$qDdLRc z!YJPSKnbY`#Ht6`g@xGzJmKzzn|abYbP+_Q(v?~~ z96%cd{E0BCsH^0HaWt{y(Cuto4VE7jhB1Z??#UaU(*R&Eo+J`UN+8mcb51F|I|n*J zJCZ3R*OdyeS9hWkc_mA7-br>3Tw=CX2bl(=TpVt#WP8Bg^vE_9bP&6ccAf3lFMgr` z{3=h@?Ftb$RTe&@IQtiJfV;O&4fzh)e1>7seG; z=%mA4@c7{aXeJnhEg2J@Bm;=)j=O=cl#^NNkQ<{r;Bm|8Hg}bJ-S^g4`|itx)~!LN zXtL}?f1Hs6UQ+f0-X6&TBCW=A4>bU0{rv8C4T!(wD-h>VCK4YJk`6C9$by!fxOYw- zV#n+0{E(0ttq_#16B} ze8$E#X9o{B!0vbq#WUwmv5Xz6{(!^~+}sBW{xctdNHL4^vDk!0E}(g|W_q;jR|ZK< z8w>H-8G{%R#%f!E7cO_^B?yFRKLOH)RT9GJsb+kAKq~}WIF)NRLwKZ^Q;>!2MNa|} z-mh?=B;*&D{Nd-mQRcfVnHkChI=DRHU4ga%xJ%+QkBd|-d9uRI76@BT(bjsjwS+r) zvx=lGNLv1?SzZ;P)Gnn>04fO7Culg*?LmbEF0fATG8S@)oJ>NT3pYAXa*vX!eUTDF ziBrp(QyDqr0ZMTr?4uG_Nqs6f%S0g?h`1vO5fo=5S&u#wI2d4+3hWiolEU!=3_oFo zfie?+4W#`;1dd#X@g9Yj<53S<6OB!TM8w8})7k-$&q5(smc%;r z(BlXkTp`C47+%4JA{2X}MIaPbVF!35P#p;u7+fR*46{T+LR8+j25oduCfDzDv6R-hU{TVVo9fz?^N3ShMt!t0NsH)pB zRK8-S{Dn*y3b|k^*?_B70<2gHt==l7c&cT>r`C#{S}J2;s#d{M)ncW(#Y$C*lByLQ z&?+{dR7*gpdT~(1;M(FfF==3z`^eW)=5a9RqvF-)2?S-(G zhS;p(u~_qBum*q}On@$#08}ynd0+spzyVco0%G6;<-i5&016cV5UKzhQ~)fX03|>L z8ej+HzzgVr6_5ZUpa4HW0Ca!=r1%*}Oo;2no&Zz8DfR)L!@r<5 z2viSZpmvo5XqXyAz{Ms7`7kX>fnr1gi4X~7KpznRT0{Xc5Cfz@43PjBMBoH@z_{~( z(Wd}IPJ9hH+%)Fc)0!hrV+(A;76rhtI|YHbEDeERV~Ya>SQg^IvlazFkSK(KG9&{q zkPIR~EeQaaBmwA<20}mBO?)N$(z1@p)5?%}rM| zGF()~Z&Kx@OIDRI$d0T8;JX@vj3^2%pd_+@l9~a4lntZ;AvUIjqIZbuNTR6@hNJoV zk4F;ut)LN4ARuyn2M6F~eg-e#UH%2P;8uPGFW^vq1vj8mdIayFOZo(tphk8C7hpT~ z1Fv8?b_LNR3QD9J+!v=p%}# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 1413fc609ab6f21774de0cb7e01360095584f65b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45404 zcmd?Sd0-pWwLh*qi$?oCk~i6sWlOeWJC3|4juU5JNSu9hSVACzERcmjLV&P^utNzg zIE4Kr1=5g!SxTX#Ern9_%4&01rlrW`Z!56xXTGQR4C z3vR~wXq>NDx$c~e?;ia3YjJ*$!C>69a?2$lLyhpI!CFfJsP=|`8@K0|bbMpWwVUEygg0=0x_)HeHpGSJagJNLA3c!$EuOV>j$wi! zbo{vZ(s8tl>@!?}dmNHXo)ABy7ohD7_1G-P@SdJWT8*oeyBVYVW9*vn}&VI4q++W;Z+uz=QTK}^C75!`aFYCX# zf7fC2;o`%!huaTNJAB&VWrx=szU=VLhwnbT`vc<#<`4WI6n_x@AofA~2d90o?1L3w z9!I|#P*NQ)$#9aASijuw>JRld^-t)Zhmy|i-`Iam|IWkguaMR%lhi4p~cX-9& zjfbx}yz}s`4-6>D^+6FzihR)Y!GsUy=_MWi_v7y#KmYi-{iZ+s@ekkq!@Wxz!~BQwiI&ti z>hC&iBe2m(dpNVvSbZe3DVgl(dxHt-k@{xv;&`^c8GJY%&^LpM;}7)B;5Qg5J^E${ z7z~k8eWOucjX6)7q1a%EVtmnND8cclz8R1=X4W@D8IDeUGXxEWe&p>Z*voO0u_2!! zj3dT(Ki+4E;uykKi*yr?w6!BW2FD55PD6SMj`OfBLwXL5EA-9KjpMo4*5Eqs^>4&> z8PezAcn!9jk-h-Oo!E9EjX8W6@EkTHeI<@AY{f|5fMW<-Ez-z)xCvW3()Z#x0oydB zzm4MzY^NdpIF9qMp-jU;99LjlgY@@s+=z`}_%V*xV7nRV*Kwrx-i`FzI0BZ#yOI8# z!SDeNA5b6u9!Imj89v0(g$;dT_y|Yz!3V`i{{_dez8U@##|X9A};s^7vEd!3AcdyVlhVk$v?$O442KIM1-wX^R{U7`JW&lPr3N(%kXfXT_`7w^? z=#ntx`tTF|N$UT?pELvw7T*2;=Q-x@KmDUIbLyXZ>f5=y7z1DT<7>Bp0k;eItHF?1 zErzhlD2B$Tm|^7DrxnTYm-tgg`Mt4Eivp5{r$o9e)8(fXBO4g|G^6Xy?y$SM*&V52 z6SR*%`%DZC^w(gOWQL?6DRoI*hBNT)xW9sxvmi@!vI^!mI$3kvAMmR_q#SGn3zRb_ zGe$=;Tv3dXN~9XuIHow*NEU4y&u}FcZEZoSlXb9IBOA}!@J3uovp}yerhPMaiI8|SDhvWVr z^BE&yx6e3&RYqIg;mYVZ*3#A-cDJ;#ms4txEmwm@g^s`BB}KmSr7K+ruIoKs=s|gOXP|2 zb1!)87h9?(+1^QRWb(Vo8+@G=o24gyuzF3ytfsKjTHZJ}o{YznGcTDm!s)DRnmOX} z3pPL4wExoN$kyc2>#J`k+<67sy-VsfbQ-1u+HkyFR?9G`9r6g4*8!(!c65Be-5hUg zZHY$M0k(Yd+DT1*8)G(q)1&tDl=g9H7!bZTOvEEFnBOk_K=DXF(d4JOaH zI}*A3jGmy{gR>s}EQzyJa_q_?TYPNXRU1O;fcV_&TQZhd{@*8Tgpraf~nT0BYktu*n{a~ub^UUqQPyr~yBY{k2O zgV)honv{B_CqY|*S~3up%Wn%7i*_>Lu|%5~j)}rQLT1ZN?5%QN`LTJ}vA!EE=1`So z!$$Mv?6T)xk)H8JTrZ~m)oNXxS}pwPd#);<*>zWsYoL6iK!gRSBB{JCgB28C#E{T? z5VOCMW^;h~eMke(w6vLlKvm!!TyIf;k*RtK)|Q>_@nY#J%=h%aVb)?Ni_By)XNxY)E3`|}_u}fn+Kp^3p4RbhFUBRtGsDyx9Eolg77iWN z2iH-}CiM!pfYDIn7;i#Ui1KG01{3D<{e}uWTdlX4Vr*nsb^>l0%{O?0L9tP|KGw8w z+T5F}md>3qDZQ_IVkQ|BzuN08uN?SsVt$~wcHO4pB9~ykFTJO3g<4X({-Tm1w{Ufo zI03<6KK`ZjqVyQ(>{_aMxu7Zm^ck&~)Q84MOsQ-XS~{6j>0lTl@lMtfWjj;PT{nlZ zIn0YL?kK7CYJa)(8?unZ)j8L(O}%$5S#lTcq{rr5_gqqtZ@*0Yw4}OdjL*kBv+>+@ z&*24U=y{Nl58qJyW1vTwqsvs=VRAzojm&V zEn6=WzdL1y+^}%Vg!ap>x%%nFi=V#wn# zUuheBR@*KS)5Mn0`f=3fMwR|#-rPMQJg(fW*5e`7xO&^UUH{L(U8D$JtI!ac!g(Ze89<`UiO@L+)^D zjPk2_Ie0p~4|LiI?-+pHXuRaZKG$%zVT0jn!yTvvM^jlcp`|VSHRt-G@_&~<4&qW@ z?b#zIN)G(}L|60jer*P7#KCu*Af;{mpWWvYK$@Squ|n-Vtfgr@ZOmR5Xpl;0q~VILmjk$$mgp+`<2jP z@+nW5Oap%fF4nFwnVwR7rpFaOdmnfB$-rkO6T3#w^|*rft~acgCP|ZkgA6PHD#Of| zY%E!3tXtsWS`udLsE7cSE8g@p$ceu*tI71V31uA7jwmXUCT7+Cu3uv|W>ZwD{&O4Nfjjvl43N#A$|FWxId! z%=X!HSiQ-#4nS&smww~iXRn<-`&zc)nR~js?|Ei-cei$^$KsqtxNDZvl1oavXK#Pz zT&%Wln^Y5M95w=vJxj0a-ko_iQt(LTX_5x#*QfQLtPil;kkR|kz}`*xHiLWr35ajx zHRL-QQv$|PK-$ges|NHw8k6v?&d;{A$*q15hz9{}-`e6ys1EQ1oNNKDFGQ0xA!x^( zkG*-ueZT(GukSnK&Bs=4+w|(kuWs5V_2#3`!;f}q?>xU5IgoMl^DNf+Xd<=sl2XvkqviJ>d?+G@Z5nxxd5Sqd$*ENUB_mb8Z+7CyyU zA6mDQ&e+S~w49csl*UePzY;^K)Fbs^%?7;+hFc(xz#mWoek4_&QvmT7Fe)*{h-9R4 zqyXuN5{)HdQ6yVi#tRUO#M%;pL>rQxN~6yoZ)*{{!?jU)RD*oOxDoTjVh6iNmhWNC zB5_{R=o{qvxEvi(khbRS`FOXmOO|&Dj$&~>*oo)bZz%lPhEA@ zQ;;w5eu5^%i;)w?T&*=UaK?*|U3~{0tC`rvfEsRPgR~16;~{_S2&=E{fE2=c>{+y} zx1*NTv-*zO^px5TA|B```#NetKg`19O!BK*-#~wDM@KEllk^nfQ2quy25G%)l72<> zzL$^{DDM#jKt?<>m;!?E2p0l12`j+QJjr{Lx*47Nq(v6i3M&*P{jkZB{xR?NOSPN% zU>I+~d_ny=pX??qjF*E78>}Mgts@_yn`)C`wN-He_!OyE+gRI?-a>Om>Vh~3OX5+& z6MX*d1`SkdXwvb7KH&=31RCC|&H!aA1g_=ZY0hP)-Wm6?A7SG0*|$mC7N^SSBh@MG z9?V0tv_sE>X==yV{)^LsygK2=$Mo_0N!JCOU?r}rmWdHD%$h~~G3;bt`lH& zAuOOZ=G1Mih**0>lB5x+r)X^8mz!0K{SScj4|a=s^VhUEp#2M=^#WRqe?T&H9GnWa zYOq{+gBn9Q0e0*Zu>C(BAX=I-Af9wIFhCW6_>TsIH$d>|{fIrs&BX?2G>GvFc=<8` zVJ`#^knMU~65dWGgXcht`Kb>{V2oo%<{NK|iH+R^|Gx%q+env#Js*(EBT3V0=w4F@W+oLFsA)l7Qy8mx_;6Vrk;F2RjKFvmeq} zro&>@b^(?f))OoQ#^#s)tRL>b0gzhRYRG}EU%wr9GjQ#~Rpo|RSkeik^p9x2+=rUr}vfnQoeFAlv=oX%YqbLpvyvcZ3l$B z5bo;hDd(fjT;9o7g9xUg3|#?wU2#BJ0G&W1#wn?mfNR{O7bq747tc~mM%m%t+7YN}^tMa24O4@w<|$lk@pGx!;%pKiq&mZB z?3h<&w>un8r?Xua6(@Txu~Za9tI@|C4#!dmHMzDF_-_~Jolztm=e)@vG11bZQAs!tFvd9{C;oxC7VfWq377Y(LR^X_TyX9bn$)I765l=rJ%9uXcjggX*r?u zk|0!db_*1$&i8>d&G3C}A`{Fun_1J;Vx0gk7P_}8KBZDowr*8$@X?W6v^LYmNWI)lN92yQ;tDpN zOUdS-W4JZUjwF-X#w0r;97;i(l}ZZT$DRd4u#?pf^e2yaFo zbm>I@5}#8FjsmigM8w_f#m4fEP~r~_?OWB%SGWcn$ThnJ@Y`ZI-O&Qs#Y14To( zWAl>9Gw7#}eT(!c%D0m>5D8**a@h;sLW=6_AsT5v1Sd_T-C4pgu_kvc?7+X&n_fct znkHy(_LExh=N%o3I-q#f$F4QJpy>jZBW zRF7?EhqTGk)w&Koi}QQY3sVh?@e-Z3C9)P!(hMhxmXLC zF_+ZSTQU`Gqx@o(~B$dbr zHlEUKoK&`2gl>zKXlEi8w6}`X3kh3as1~sX5@^`X_nYl}hlbpeeVlj#2sv)CIMe%b zBs7f|37f8qq}gA~Is9gj&=te^wN8ma?;vF)7gce;&sZ64!7LqpR!fy)?4cEZposQ8 zf;rZF7Q>YMF1~eQ|Z*!5j0DuA=`~VG$Gg6B?Om1 z6fM@`Ck-K*k(eJ)Kvysb8sccsFf@7~3vfnC=<$q+VNv)FyVh6ZsWw}*vs>%k3$)9| zR9ek-@pA23qswe1io)(Vz!vS1o*XEN*LhVYOq#T`;rDkgt86T@O`23xW~;W_#ZS|x zvwx-XMb7_!hIte-#JNpFxskMMpo2OYhHRr0Yn8d^(jh3-+!CNs0K2B!1dL$9UuAD= zQ%7Ae(Y@}%Cd~!`h|wAdm$2WoZ(iA1(a_-1?znZ%8h72o&Mm*4x8Ta<4++;Yr6|}u zW8$p&izhdqF=m8$)HyS2J6cKyo;Yvb>DTfx4`4R{ zPSODe9E|uflE<`xTO=r>u~u=NuyB&H!(2a8vwh!jP!yfE3N>IiO1jI>7e&3rR#RO3_}G23W?gwDHgSgekzQ^PU&G5z&}V5GO? zfg#*72*$DP1T8i`S7=P;bQ8lYF9_@8^C(|;9v8ZaK2GnWz4$Th2a0$)XTiaxNWfdq z;yNi9veH!j)ba$9pke8`y2^63BP zIyYKj^7;2don3se!P&%I2jzFf|LA&tQ=NDs{r9fIi-F{-yiG-}@2`VR^-LIFN8BC4 z&?*IvLiGHH5>NY(Z^CL_A;yISNdq58}=u~9!Ia7 zm7MkDiK~lsfLpvmPMo!0$keA$`%Tm`>Fx9JpG^EfEb(;}%5}B4Dw!O3BCkf$$W-dF z$BupUPgLpHvr<<+QcNX*w@+Rz&VQz)Uh!j4|DYeKm5IC05T$KqVV3Y|MSXom+Jn8c zgUEaFW1McGi^44xoG*b0JWE4T`vka7qTo#dcS4RauUpE{O!ZQ?r=-MlY#;VBzhHGU zS@kCaZ*H73XX6~HtHd*4qr2h}Pf0Re@!WOyvres_9l2!AhPiV$@O2sX>$21)-3i+_ z*sHO4Ika^!&2utZ@5%VbpH(m2wE3qOPn-I5Tbnt&yn9{k*eMr3^u6zG-~PSr(w$p> zw)x^a*8Ru$PE+{&)%VQUvAKKiWiwvc{`|GqK2K|ZMy^Tv3g|zENL86z7i<c zW`W>zV1u}X%P;Ajn+>A)2iXZbJ5YB_r>K-h5g^N=LkN^h0Y6dPFfSBh(L`G$D%7c` z&0RXDv$}c7#w*7!x^LUes_|V*=bd&aP+KFi((tG*gakSR+FA26%{QJdB5G1F=UuU&koU*^zQA=cEN9}Vd?OEh| zgzbFf1?@LlPkcXH$;YZe`WEJ3si6&R2MRb}LYK&zK9WRD=kY-JMPUurX-t4(Wy{%` zZ@0WM2+IqPa9D(^*+MXw2NWwSX-_WdF0nMWpEhAyotIgqu5Y$wA=zfuXJ0Y2lL3#ji26-P3Z?-&0^KBc*`T$+8+cqp`%g0WB zTH9L)FZ&t073H4?t=(U6{8B+uRW_J_n*vW|p`DugT^3xe8Tomh^d}0k^G7$3wLgP& zn)vTWiMA&=bR8lX9H=uh4G04R6>C&Zjnx_f@MMY!6HK5v$T%vaFm;E8q=`w2Y}ucJ zkz~dKGqv9$E80NTtnx|Rf_)|3wxpnY6nh3U9<)fv2-vhQ6v=WhKO@~@X57N-`7Ppc zF;I7)eL?RN23FmGh0s;Z#+p)}-TgTJE%&>{W+}C`^-sy{gTm<$>rR z-X7F%MB9Sf%6o7A%ZHReD4R;imU6<9h81{%avv}hqugeaf=~^3A=x(Om6Lku-Pn9i zC;LP%Q7Xw*0`Kg1)X~nAsUfdV%HWrpr8dZRpd-#%)c#Fu^mqo|^b{9Mam`^Zw_@j@ zR&ZdBr3?@<@%4Z-%LT&RLgDUFs4a(CTah_5x4X`xDRugi#vI-cw*^{ncwMtA4NKjByYBza)Y$hozZCpuxL{IP&=tw6ZO52WY3|iwGf&IJCn+u(>icK zZB1~bWXCmwAUz|^<&ysd#*!DSp8}DLNbl5lRFat4NkvItxy;9tpp9~|@ z;JctShv^Iq4(z+y7^j&I?GCdKMVg&jCwtCkc4*@O7HY*veGDBtAIn*JgD$QftP}8= zxFAdF=(S>Ra6(4slk#h%b?EOU-96TIX$Jbfl*_7IY-|R%H zF8u|~hYS-YwWt5+^!uGcnKL~jM;)ObZ#q68ZkA?}CzV-%6_vPIdzh_wHT_$mM%vws9lxUj;E@#1UX?WO2R^41(X!nk$+2oJGr!sgcbn1f^yl1 z#pbPB&Bf;1&2+?};Jg5qgD1{4_|%X#s48rOLE!vx3@ktstyBsDQWwDz4GYlcgu$UJ zp|z_32yN72T*oT$SF8<}>e;FN^X&vWNCz>b2W0rwK#<1#kbV)Cf`vN-F$&knLo5T& z8!sO-*^x4=kJ$L&*h%rQ@49l?7_9IG99~xJDDil00<${~D&;kiqRQqeW5*22A`8I2 z(^@`qZoF7_`CO_e;8#qF!&g>UY;wD5MxWU>azoo=E{kW(GU#pbOi%XAn%?W{b>-bTt&2?G=E&BnK9m0zs{qr$*&g8afR_x`B~o zd#dxPpaap;I=>1j8=9Oj)i}s@V}oXhP*{R|@DAQXzQJekJnmuQ;vL90_)H_nD1g6e zS1H#dzg)U&6$fz0g%|jxDdz|FQN{KJ&Yx0vfuzAFewJjv`pdMRpY-wU`-Y6WQnJ(@ zGVb!-8DRJZvHnRFiR3PG3Tu^nCn(CcZHh7hQvyd7i6Q3&ot86XI{jo%WZqCPcTR0< zMRg$ZE=PQx66ovJDvI_JChN~k@L^Pyxv#?X^<)-TS5gk`M~d<~j%!UOWG;ZMi1af< z+86U0=sm!qAVJAIqqU`Qs1uJhQJA&n@9F1PUrYuW!-~IT>l$I!#5dBaiAK}RUufjg{$#GdQBkxF1=KU2E@N=i^;xgG2Y4|{H>s` z$t`k8c-8`fS7Yfb1FM#)vPKVE4Uf(Pk&%HLe z%^4L>@Z^9Z{ZOX<^e)~adVRkKJDanJ6VBC_m@6qUq_WF@Epw>AYqf%r6qDzQ~AEJ!jtUvLp^CcqZ^G-;Kz3T;O4WG45Z zFhrluCxlY`M+OKr2SeI697btH7Kj`O>A!+2DTEQ=48cR>Gg2^5uqp(+y5Sl09MRl* zp|28!v*wvMd_~e2DdKDMMQ|({HMn3D%%ATEecGG8V9>`JeL)T0KG}=}6K8NiSN5W< z79-ZdYWRUb`T}(b{RjN8>?M~opnSRl$$^gT`B27kMym5LNHu-k;A;VF8R(HtDYJHS zU7;L{a@`>jd0svOYKbwzq+pWSC(C~SPgG~nWR3pBA8@OICK$Cy#U`kS$I;?|^-SBC zBFkoO8Z^%8Fc-@X!KebF2Ob3%`8zlVHj6H;^(m7J35(_bS;cZPd}TY~qixY{MhykQ zV&7u7s%E=?i`}Ax-7dB0ih47w*7!@GBt<*7ImM|_mYS|9_K7CH+i}?*#o~a&tF-?C zlynEu1DmiAbGurEX2Flfy$wEVk7AU;`k#=IQE*6DMWafTL|9-vT0qs{A3mmZGzOyN zcM9#Rgo7WgB_ujU+?Q@Ql?V-!E=jbypS+*chI&zA+C_3_@aJal}!Q54?qsL0In({Ly zjH;e+_SK8yi0NQB%TO+Dl77jp#2pMGtwsgaC>K!)NimXG3;m7y`W+&<(ZaV>N*K$j zLL~I+6ouPk6_(iO>61cIsinx`5}DcKSaHjYkkMuDoVl>mKO<4$F<>YJ5J9A2Vl}#BP7+u~L8C6~D zsk`pZ$9Bz3teQS1Wb|8&c2SZ;qo<#F&gS;j`!~!ADr(jJXMtcDJ9cVi>&p3~{bqaP zgo%s8i+8V{UrYTc9)HiUR_c?cfx{Yan2#%PqJ{%?Wux4J;T$#cumM0{Es3@$>}DJg zqe*c8##t;X(4$?A`ve)e@YU3d2Balcivot{1(ahlE5qg@S-h(mPNH&`pBX$_~HdG48~)$x5p z{>ghzqqn_t8~pY<5?-To>cy^6o~mifr;KWvx_oMtXOw$$d6jddXG)V@a#lL4o%N@A zNJlQAz6R8{7jax-kQsH6JU_u*En%k^NHlvBB!$JAK!cYmS)HkLAkm0*9G3!vwMIWv zo#)+EamIJHEUV|$d|<)2iJ`lqBQLx;HgD}c3mRu{iK23C>G{0Mp1K)bt6OU?xC4!_ zZLqpFzeu&+>O1F>%g-%U^~yRg(-wSp@vmD-PT#bCWy!%&H;qT7rfuRCEgw67V!Qob z&tvPU@*4*$YF#2_>M0(75QxqrJr3Tvh~iDeFhxl=MzV@(psx%G8|I{~9;tv#BBE`l z3)_98eZqFNwEF1h)uqhBmT~mSmT8k$7vSHdR97K~kM)P9PuZdS;|Op4A?O<*%!?h` zn`}r_j%xvffs46x2hCWuo0BfIQWCw9aKkH==#B(TJ%p}p-RuIVzsRlaPL_Co{&R0h zQrqn=g1PGjQg3&sc2IlKG0Io#v%@p>tFwF)RG0ahYs@Zng6}M*d}Xua)+h&?$`%rb z;>M=iMh5eIHuJ5c$aC`y@CYjbFsJnSPH&}LQz4}za9YjDuao>Z^EdL@%saRm&LGQWXs*;FzwN#pH&j~SLhDZ+QzhplV_ij(NyMl z;v|}amvxRddO81LJFa~2QFUs z+Lk zZck)}9uK^buJNMo4G(rSdX{57(7&n=Q6$QZ@lIO9#<3pA2ceDpO_340B*pHlh_y{>i&c1?vdpN1j>3UN-;;Yq?P+V5oY`4Z(|P8SwWq<)n`W@AwcQ?E9 zd5j8>FT^m=MHEWfN9jS}UHHsU`&SScib$qd0i=ky0>4dz5ADy70AeIuSzw#gHhQ_c zOp1!v6qU)@8MY+ zMNIID?(CysRc2uZQ$l*QZVY)$X?@4$VT^>djbugLQJdm^P>?51#lXBkdXglYm|4{L zL%Sr?2f`J+xrcN@=0tiJt(<-=+v>tHy{XaGj7^cA6felUn_KPa?V4ebfq7~4i~GKE zpm)e@1=E;PP%?`vK6KVPKXjUXyLS1^NbnQ&?z>epHCd+J$ktT1G&L~T)nQeExe;0Z zlei}<_ni ztFo}j7nBl$)s_3odmdafVieFxc)m!wM+U`2u%yhJ90giFcU1`dR6BBTKc2cQ*d zm-{?M&%(={xYHy?VCx!ogr|4g5;V{2q(L?QzJGsirn~kWHU`l`rHiIrc-Nan!hR7zaLsPr4uR zG{En&gaRK&B@lyWV@yfFpD_^&z>84~_0Rd!v(Nr%PJhFF_ci3D#ixf|(r@$igZiWw za*qbXIJ_Hm4)TaQ=zW^g)FC6uvyO~Hg-#Z5Vsrybz6uOTF>Rq1($JS`imyNB7myWWpxYL(t7`H8*voI3Qz6mvm z$JxtArLJ(1wlCO_te?L{>8YPzQ})xJlvc5wv8p7Z=HviPYB#^#_vGO#*`<0r%MR#u zN_mV4vaBb2RwtoOYCw)X^>r{2a0kK|WyEYoBjGxcObFl&P*??)WEWKU*V~zG5o=s@ z;rc~uuQQf9wf)MYWsWgPR!wKGt6q;^8!cD_vxrG8GMoFGOVV=(J3w6Xk;}i)9(7*U zwR4VkP_5Zx7wqn8%M8uDj4f1aP+vh1Wue&ry@h|wuN(D2W;v6b1^ z`)7XBZ385zg;}&Pt@?dunQ=RduGRJn^9HLU&HaeUE_cA1{+oSIjmj3z+1YiOGiu-H zf8u-oVnG%KfhB8H?cg%@#V5n+L$MO2F4>XoBjBeX>css^h}Omu#)ExTfUE^07KOQS znMfQY2wz?!7!{*C^)aZ^UhMZf=TJNDv8VrrW;JJ9`=|L0`w9DE8MS>+o{f#{7}B4P z{I34>342vLsP}o=ny1eZkEabr@niT5J2AhByUz&i3Ck0H*H`LRHz;>3C_ru!X+EhJ z6(+(lI#4c`2{`q0o9aZhI|jRjBZOV~IA_km7ItNtUa(Wsr*Hmb;b4=;R(gF@GmsRI`pF+0tmq0zy~wnoJD(LSEwHjTOt4xb0XB-+ z&4RO{Snw4G%gS9w#uSUK$Zbb#=jxEl;}6&!b-rSY$0M4pftat-$Q)*y!bpx)R%P>8 zrB&`YEX2%+s#lFCIV;cUFUTIR$Gn2%F(3yLeiG8eG8&)+cpBlzx4)sK?>uIlH+$?2 z9q9wk5zY-xr_fzFSGxYp^KSY0s%1BhsI>ai2VAc8&JiwQ>3RRk?ITx!t~r45qsMnj zkX4bl06ojFCMq<9l*4NHMAtIxDJOX)H=K*$NkkNG<^nl46 zHWH1GXb?Og1f0S+8-((5yaeegCT62&4N*pNQY;%asz9r9Lfr;@Bl${1@a4QAvMLbV6JDp>8SO^q1)#(o%k!QiRSd0eTmzC< zNIFWY5?)+JTl1Roi=nS4%@5iF+%XztpR^BSuM~DX9q`;Mv=+$M+GgE$_>o+~$#?*y zAcD4nd~L~EsAjXV-+li6Lua4;(EFdi|M2qV53`^4|7gR8AJI;0Xb6QGLaYl1zr&eu zH_vFUt+Ouf4SXA~ z&Hh8K@ms^`(hJfdicecj>J^Aqd00^ccqN!-f-!=N7C1?`4J+`_f^nV!B3Q^|fuU)7 z1NDNT04hd4QqE+qBP+>ZE7{v;n3OGN`->|lHjNL5w40pePJ?^Y6bFk@^k%^5CXZ<+4qbOplxpe)l7c6m%o-l1oWmCx%c6@rx85hi(F=v(2 zJ$jN>?yPgU#DnbDXPkHLeQwED5)W5sH#-eS z%#^4dxiVs{+q(Yd^ShMN3GH)!h!@W&N`$L!SbElXCuvnqh{U7lcCvHI#{ZjwnKvu~ zAeo7Pqot+Ohm{8|RJsTr3J4GjCy5UTo_u_~p)MS&Z5UrUc|+;Mc(YS+ju|m3Y_Dvt zonVtpBWlM718YwaN3a3wUNqX;7TqvAFnVUoD5v5WTh~}r)KoLUDw%8Rrqso~bJqd> z_T!&Rmr6ebpV^4|knJZ%qmzL;OvG3~A*loGY7?YS%hS{2R0%NQ@fRoEK52Aiu%gj( z_7~a}eQUh8PnyI^J!>pxB(x7FeINHHC4zLDT`&C*XUpp@s0_B^!k5Uu)^j_uuu^T> z8WW!QK0SgwFHTA%M!L`bl3hHjPp)|wL5Var_*A1-H8LV?uY5&ou{hRjj>#X@rxV>5%-9hbP+v?$4}3EfoRH;l_wSiz{&1<+`Y5%o%q~4rdpRF0jOsCoLnWY5x?V)0ga>CDo`NpqS) z@x`mh1QGkx;f)p-n^*g5M^zRTHz%b2IkLBY{F+HsjrFC9_H(=9Z5W&Eymh~A_FUJ} znhTc9KG((OnjFO=+q>JQZJbeOoUM77M{)$)qQMcxK9f;=L;IOv_J>*~w^YOW744QZ zoG;!b9VD3ww}OX<8sZ0F##8hvfDP{hpa3HjaLsKbLJ8 z0WpY2E!w?&cWi7&N%bOMZD~o7QT*$xCRJ@{t31~qx~+0yYrLXubXh2{_L699Nl_pn z6)9eu+uUTUdjHXYs#pX^L)AIb!FjjNsTp7C399w&B{Q4q%yKfmy}T2uQdU|1EpNcY zDk~(h#AdxybjfzB+mg6rdU9mDZ^V>|U13Dl$Gj+pAL}lR2a1u!SJXU_YqP9N{ose4 zk+$v}BIHX60WSGVWv;S%zvHOWdDP(-ceo(<8`y@Goy%4wDu>57QZNJc)f>Ls+}9h7 z^N=#3q3|l?aG8K#HwiW2^PJu{v|x5;awYfahC?>_af3$LmMc4%N~JwVlRZa4c+eW2 zE!zosAjOv&UeCeu;Bn5OQUC=jtZjF;NDk9$fGbxf3d29SUBekX1!a$Vmq_VK*MHQ4)eB!dQrHH)LVYNF%-t8!d`@!cb z2CsKs3|!}T^7fSZm?0dJ^JE`ZGxA&a!jC<>6_y67On0M)hd$m*RAzo_qM?aeqkm`* zXpDYcc_>TFZYaC3JV>{>mp(5H^efu!Waa7hGTAts29jjuVd1vI*fEeB?A&uG<8dLZ z(j6;-%vJ7R0U9}XkH)1g>&uptXPHBEA*7PSO2TZ+dbhVxspNW~ZQT3fApz}2 z_@0-lZODcd>dLrYp!mHn4k>>7kibI!Em+Vh*;z}l?0qro=aJt68joCr5Jo(Vk<@i) z5BCKb4p6Gdr9=JSf(2Mgr=_6}%4?SwhV+JZj3Ox^_^OrQk$B^v?eNz}d^xRaz&~ zKVnlLnK#8^y=If2f1zmb~^5lPLe?%l}>?~wN4IN((2~U{e9fKhLMtYFj)I$(y zgnKv?R+ZpxA$f)Q2l=aqE6EPTK=i0sY&MDFJp!vQayyvzh4wee<}kybNthRlX>SHh z7S}9he^EBOqzBCww^duHu!u+dnf9veG{HjW!}aT7aJqzze9K6-Z~8pZAgdm1n~aDs z8_s7?WXMPJ3EPJHi}NL&d;lZP8hDhAXf5Hd!x|^kEHu`6QukXrVdLnq5zbI~oPo?7 z2Cbu8U?$K!Z4_yNM1a(bL!GRe!@{Qom+DxjrJ!B99qu5b*Ma%^&-=6UEbC+S2zX&= zQ!%bgJTvmv^2}hhvNQg!l=kbapAgM^hruE3k@jTxsG(B6d=4thBC*4tzVpCYXFc$a zeqgVB^zua)y-YjpiibCCdU%txXYeNFnXcbNj*D?~)5AGjL+!!ij_4{5EWKGav0^={~M^q}baAFOPzxfUM>`KPf|G z&hsaR*7(M6KzTj8Z?;45zX@L#xU{4n$9Q_<-ac(y4g~S|Hyp^-<*d8+P4NHe?~vfm z@y309=`lGdvN8*jw-CL<;o#DKc-%lb0i9a3%{v&2X($|Qxv(_*()&=xD=5oBg=$B0 zU?41h9)JKvP0yR{KsHoC>&`(Uz>?_`tlLjw1&5tPH3FoB%}j;yffm$$s$C=RHi`I3*m@%CPqWnP@B~%DEe;7ZT{9!IMTo1hT3Q347HJ&!)BM2 z3~aClf>aFh0_9||4G}(Npu`9xYY1*SD|M~9!CCFn{-J$u2&Dg*=5$_nozpoD2nxqq zB!--eA8UWZlcEDp4r#vhZ6|vq^9sFvRnA9HpHch5Mq4*T)oGbruj!U8Lx_G%Lby}o zTQ-_4A7b)5A42vA0U}hUJq6&wQ0J%$`w#ph!EGmW96)@{AUx>q6E>-r^Emk!iCR+X zdIaNH`$}7%57D1FyTccs3}Aq0<0Ei{`=S7*>pyg=Kv3nrqblqZcpsCWSQl^uMSsdj zYzh73?6th$c~CI0>%5@!Ej`o)Xm38u0fp9=HE@Sa6l2oX9^^4|Aq%GA z3(AbFR9gA_2T2i%Ck5V2Q2WW-(a&(j#@l6wE4Z`xg#S za#-UWUpU2U!TmIo`CN0JwG^>{+V#9;zvx;ztc$}@NlcyJr?q(Y`UdW6qhq!aWyB5xV1#Jb{I-ghFNO0 zFU~+QgPs{FY1AbiU&S$QSix>*rqYVma<-~s%ALhFyVhAYepId1 zs!gOB&weC18yhE-v6ltKZMV|>JwTX+X)Y_EI(Ff^3$WTD|Ea-1HlP;6L~&40Q&5{0 z$e$2KhUgH8ucMJxJV#M%cs!d~#hR^nRwk|uuCSf6irJCkSyI<%CR==tftx6d%;?ef zYIcjZrP@APzbtOeUe>m-TW}c-ugh+U*RbL1eIY{?>@8aW9bb1NGRy@MTse@>= za%;5=U}X%K2tKTYe9gjMcBvX%qrC&uZ`d(t)g)X8snf?vBe3H%dG=bl^rv8Z@YN$gd9yveHY0@Wt0$s zh^7jCp(q+6XDoekb;=%y=Wr8%6;z0ANH5dDR_VudDG|&_lYykJaiR+(y{zpR=qL3|2e${8 z2V;?jgHj7}Kl(d8C9xWRjhpf_)KOXl+@c4wrHy zL3#9U(`=N59og2KqVh>nK~g9>fX*PI0`>i;;b6KF|8zg+k2hViCt}4dfMdvb1NJ-Rfa7vL2;lPK{Lq*u`JT>S zoM_bZ_?UY6oV6Ja14X^;LqJPl+w?vf*C!nGK;uU^0GRN|UeFF@;H(Hgp8x^|;ygh? zIZx3DuO(lD01ksanR@Mn#lti=p28RTNYY6yK={RMFiVd~k8!@a&^jicZ&rxD3CCI! zVb=fI?;c#f{K4Pp2lnb8iF2mig)|6JEmU86Y%l}m>(VnI*Bj`a6qk8QL&~PFDxI8b z2mcsQBe9$q`Q$LfG2wdvK`M1}7?SwLAV&)nO;kAk`SAz%x9CDVHVbUd$O(*aI@D|s zLxJW7W(QeGpQY<$dSD6U$ja(;Hb3{Zx@)*fIQaW{8<$KJ&fS0caI2Py^clOq9@Irt z7th7F?7W`j{&UmM==Lo~T&^R7A?G=K_e-zfTX|)i`pLitlNE(~tq*}sS1x2}Jlul6 z5+r#4SpQu8h{ntIv#qCVH`uG~+I8l+7ZG&d`Dm!+(rZQDV*1LS^WfH%-!5aTAxry~ z4xl&rot5ct{xQ$w$MtVTUi6tBFSJWq2Rj@?HAX1H$eL*fk{Hq;E`x|hghRkipYNyt zKCO=*KSziiVk|+)qQCGrTYH9X!Z0$k{Nde~0Wl`P{}ca%nv<6fnYw^~9dYxTnTZB&&962jX0DM&wy&8fdxX8xeHSe=UU&Mq zRTaUKnQO|A>E#|PUo+F=Q@dMdt`P*6e92za(TH{5C*2I2S~p?~O@hYiT>1(n^Lqqn zqewq3ctAA%0E)r53*P-a8Ak32mGtUG`L^WVcm`QovX`ecB4E9X60wrA(6NZ7z~*_DV_e z8$I*eZ8m=WtChE{#QzeyHpZ%7GwFHlwo2*tAuloI-j2exx3#x7EL^&D;Re|Kj-XT- zt908^soV2`7s+Hha!d^#J+B)0-`{qIF_x=B811SZlbUe%kvPce^xu7?LY|C z@f1gRPha1jq|=f}Se)}v-7MWH9)YAs*FJ&v3ZT9TSi?e#jarin0tjPNmxZNU_JFJG z+tZi!q)JP|4pQ)?l8$hRaPeoKf!3>MM-bp06RodLa*wD=g3)@pYJ^*YrwSIO!SaZo zDTb!G9d!hb%Y0QdYxqNSCT5o0I!GDD$Z@N!8J3eI@@0AiJmD7brkvF!pJGg_AiJ1I zO^^cKe`w$DsO|1#^_|`6XTfw6E3SJ(agG*G9qj?JiqFSL|6tSD6vUwK?Cwr~gg)Do zp@$D~7~66-=p4`!!UzJDKAymb!!R(}%O?Uel|rMH>OpRGINALtg%gpg`=}M^Q#V5( zMgJY&gF)+;`e38QHI*c%B}m94o&tOfae;og&!J2;6ENW}QeL73jatbI1*9X~y=$Dm%6FwDcnCyMRL}zo`0=y7=}*Uw zo3!qZncAL{HCgY!+}eKr{P8o27ye+;qJP;kOB%RpSesGoHLT6tcYp*6v~Z9NCyb6m zP#qds0jyqXX46qMNhXDn3pyIxw2f_z;L_X9EIB}AhyC`FYI}G3$WnW>#NMy{0aw}nB%1=Z4&*(FaCn5QG(zvdG^pQRU25;{wwG4h z@kuLO0F->{@g2!;NNd!PfqM-;@F0;&wK}0fT9UrH}(8A5I zt33(+&U;CLN|8+71@g z(s!f-kZZZILUG$QXm9iYiE*>2w;gpM>lgM{R9vT3q>qI{ELO2hJHVi`)*jzOk$r)9 zq}$VrE0$GUCm6A3H5J-=Z9i*biw8ng zi<1nM0lo^KqRY@Asucc#DMmWsnCS;5uPR)GL3pL=-IqSd>4&D&NKSGHH?pG;=Xo`w zw~VV9ddkwbp~m>9G0*b?j7-0fOwR?*U#BE#n7A=_fDS>`fwatxQ+`FzhBGQUAyIRZ??eJt46vHBlR>9m!vfb6I)8!v6TmtZ%G6&E|1e zOtx5xy%yOSu+<9Ul5w5N=&~4Oph?I=ZKLX5DXO(*&Po>5KjbY7s@tp$8(fO|`Xy}Y z;NmMypLoG7r#Xz4aHz7n)MYZ7Z1v;DFHLNV{)to;(;TJ=bbMgud96xRMME#0d$z-S z-r1ROBbW^&YdQWA>U|Y>{whex#~K!ZgEEk=LYG8Wqo28NFv)!t!~}quaAt}I^y-m| z8~E{9H2VnyVxb_wCZ7v%y(B@VrM6lzk~|ywCi3HeiSV`TF>j+Ijd|p*kyn;=mqtf8&DK^|*f+y$38+9!sis9N=S)nINm9=CJ<;Y z!t&C>MIeyou4XLM*ywT_JuOXR>VkpFwuT9j5>667A=CU*{TBrMTgb4HuW&!%Yt`;#md7-`R`ouOi$rEd!ErI zo#>qggAcx?C7`rQ2;)~PYCw%CkS(@EJHZ|!!lhi@Dp$*n^mgrrImsS~(ioGak>3)w zvop0lq@IISuA0Ou*#1JkG{U>xSQV1e}c)!d$L1plFX5XDXX5N7Ns{kT{y5|6MfhBD+esT)e7&CgSW8FxsXTAY=}?0A!j_V9 zJ;IJ~d%av<@=fNPJ9)T3qE78kaz64E>dJaYab5uaU`n~Zdp2h{8DV%SKE5G^$LfuOTRRjB;TnT(Jk$r{Pfe4CO!SM_7d)I zquW~FVCpSycJ~c*B*V8?Qqo=GwU8CkmmLFugfHQ7;A{yCy1OL-+X=twLYg9|H=~8H znnN@|tCs^ZLlCBl5wHvYF}2vo>a6%mUWpTds_mt*@wMN4-r`%NTA%+$(`m6{MNpi@ zMx)8f>U4hd!row@gM&PVo&Hx+lV@$j9yWTjTue zG9n0DP<*HUmJ7ZZWwI2x+{t3QEfr6?T}2iXl=6e0b~)J>X3`!fXd9+2wc1%cj&F@Z zgYR|r5Xd5jy9;YW&=4{-0rJ*L5CgDPj9^3%bp-`HkyBs`j1iTUGD4?WilZ6RO8mIE z+~Joc?GID6K96dyuv(dWREK9Os~%?$$FxswxQsoOi8M?RnL%B~Lyk&(-09D0M?^Jy zWjP)n(b)TF<-|CG%!Vz?8Fu&6iU<>oG#kGcrcrrBlfZMVl0wOJvsq%RL9To%iCW@)#& zZAJWhgzYAq)#NTNb~3GBcD%ZZOc43!YWSyA7TD6xkk)n^FaRAz73b}%9d&YisBic(?mv=Iq^r%Ug zzHq-rRrhfOOF+yR=AN!a9*Rd#sM9ONt5h~w)yMP7Dl9lfpi$H0%GPW^lS4~~?vI8Z z%^ToK#NOe0ExmUsb`lLO$W*}yXNOxPe@zD*90uTDULnH6C?InP3J=jYEO2d)&e|mP z1DSd0QOZeuLWo*NqZzopA+LXy9)fJC00NSX=_4Mi1Z)YyZVC>C!g}cY(Amaj%QN+bev|Xxd2OPD zk!dfkY6k!(sDBvsFC2r^?}hb81(WG5Lt9|riT`2?P;B%jaf5UX<~OJ;uAL$=Ien+V zC!V8u0v?CUa)4*Q+Q_u zkx{q;NjLcvyMuU*{+uDsCQ4U{JLowYby-tn@hatL zy}X>9y08#}oytdn^qfFesF)Tt(2!XGw#r%?7&zzFFh2U;#U9XBO8W--#gOpfbJ`Ey z|M8FCKlWQrOJwE;@Sm02l9OBr7N}go4V8ur)}M@m2uWjggb)DC4s`I4d7_8O&E(j; z?3$9~R$QDxNM^rNh9Y;6P7w+bo2q}NEd6f&_raor-v`UCaTM3TT8HK2-$|n{N@U>_ zL-`P7EXoEU5JRMa)?tNUEe8XFis+w8g9k(QQ)%?&Oac}S`2V$b?%`DwXBgja&&fR@ zH_XidF$p1wA)J|Wk1;?lCl?fgc)=TB3>Y8;BoMqHwJqhL)Tgydv9(?(TBX)fq%=~C zmLj!iX-kn7QA(9snzk0LRf<%SzO&~IhLor6A3f*U^UcoAygRe!H#@UCv$JUP&vPxs zeDj$1%#<2T1!e|!7xI+~_VXLl5|jHqvOhU7ZDUGee;HnkcPP=_k_FFxPjXg*9KyI+ zIh0@+s)1JDSuKMeaDZ3|<_*J8{TUFDLl|mXmY8B>Wj_?4mC#=XjsCKPEO=p0c&t&Z zd1%kHxR#o9S*C?du*}tEHfAC7WetnvS}`<%j=o7YVna)6pw(xzkUi7f#$|^y4WQ{7 zu@@lu=j6xr*11VEIY+`B{tgd(c3zO8%nGk0U^%ec6h)G_`ki|XQXr!?NsQkxzV6Bn1ea9L+@ z(Zr7CU_oXaW>VOdfzENm+FlFQ7Se0ROrNdw(QLvb6{f}HRQ{$Je>(c&rws#{dFI^r zZ4^(`J*G0~Pu_+p5AAh>RRpkcbaS2a?Fe&JqxDTp`dIW9;DL%0wxX5;`KxyA4F{(~_`93>NF@bj4LF!NC&D6Zm+Di$Q-tb2*Q z&csGmXyqA%Z9s(AxNO3@Ij=WGt=UG6J7F;r*uqdQa z?7j!nV{8eQE-cwY7L(3AEXF3&V*9{DpSYdyCjRhv#&2johwf{r+k`QB81%!aRVN<& z@b*N^xiw_lU>H~@4MWzgHxSOGVfnD|iC7=hf0%CPm_@@4^t-nj#GHMug&S|FJtr?i z^JVrobltd(-?Ll>)6>jwgX=dUy+^n_ifzM>3)an3iOzpG9Tu;+96TP<0Jm_PIqof3 zMn=~M!#Ky{CTN_2f7Y-i#|gW~32RCWKA4-J9sS&>kYpTOx#xVNLCo)A$LUme^fVNH z@^S7VU^UJ0YR8?Oy$^IYuG*bm|g;@aX~i60%`7XLy*AYpYvZ^F^U(!|RW z*C!rJ@+7TGdL=nNd1gv^%B+;Fcr$y)i0!GRsZXRHPs>QVGVR{9r_#&Qd(wL|5;H;> zD>HUw=4CF++&{7$<8G@j*nGjhEO%BQYfjeItp4mPvY*JYb1HKd!{HJ9*)(3%BR%{Pp?AM&*yHAJsW({ivOzj*qS!-7|XEn6@zo z3L*tBT%<4RxoAh>q{0n_JBmgW6&8hx?kL(_^k%VL>?xjAyrKBmSl`$=V|SK}ELl}@ zd|d0eo#RfG`bw9SK3%r4Y+rdvc}w}~ixV%tqawbdqvE-WcgE+BUpxMT%F@btm76MG zn=oQRWWuTm+a{dy)Oc2V4yX(@M{QAkx>(QB59*`dLT`Pz3Lsj9iB=HSHAiCq()ns|Cr)1*c605Cx}3V&x}Lg?b+6Q?)z7Kl zQh&1Hx`y6JY-Cwvd*ozeps}a1xAA0CR+Da;+O(i)P1C;SjOI}Dtmf6tPqo-Bl`U78 zv$kYgPntPp@G)n1an9tEoL*Vumu9`>_@I(;+5+fBa-*?fEx=mTEjZ7wq}#@Gd5_cW z!mP{N=yqEntDo)|>oy6{9cu+-3*GTnmb^`O0^FzRPO^&aG`f@F_R*aQ_e{F+_9%NW z4KG_B`@X3EVV9L>?_RNDMddA>w=e0KfAiw5?#i1NFT%Zz#nuv(&!yIU>lVxmzYKQ` zzJ*0w9<&L4aJ6A;0j|_~i>+y(q-=;2Xxhx2v%CYY^{} z^J@LO()eLo|7!{ghQ+(u$wxO*xY#)cL(|miH2_ck2yN{mu4O9=hBW*pM_()-_YdH#Ru{JtwJ^R2}3?!>>m1pohh zrn(!xCjE0Q&EH1QK?zA%sxVh&H99cObJUY$veZhQ)MLu-h%`!*G)s$2k;~+A z)Kk->Ri?`oGDEJEtI*wijm(s5f$W78FH{+qBxiU{~kq((J3uK{m z$|C8K#j-?hm8H@x%VfFqpnvu@xn1s%J7uNZC9C99a<_b1J|mx%)$%!6gPU|~<@2&m zz99GDp`|a%m*iggvfL;4%X;~WY>)@!tMWB@P`)k?$;0x9JSrRI8?s3rlgH(o@`OAo zn{f*gZ#t2u6K??hx|aElOM`Xd0t+SAIUEHvFw%?Wsm$s zUXq{6UU?a>Nc@@Xlb_2k9M1Ctr<#+O?yd}rv z_wu&=_t$!Yngd@N_AUj}T; z#*Ce|%XZr_sQcsWcsl{pCnnj+c8ZNIMmx<;w=-g$Q>BU;9k;w|zQ;4!W32Xg2Cd?{ zvmO3kuKQ^Hv;o>6ZHP8ZJ2`4~Bx?N;cf<0fi=!*G^^WzbTF3e$b&d^qqB{>nqLG81 zs94bBh%|Vj+hLu=!8(b9brJ>ZBns9^6s(gdSVyP9qnu2_I{Sg8j-rloG6{d`De5We zDe5WeY3ga}Y3ga}Y3ga}Y3ga}Y3ga}d8y~6o|k%F>UpW>rJk31Ug~+N=cS&HdOqs; zsOO`ek9t1p`Kafko{xGy>iMbXr=FjBxZMYc8a#gL`Kjlpo}YSt>iMY`pk9DF0qO*( z6QE9jIsxhgs1u-0kUBx8D@eT{^@7w3QZGooAoYUO3sNscy%6<6)C*BBM7L`dk$Xk%6}eZQXgo#!75P`>Uy*-B{uTLGUy*-B{uTLGUy*-B{uTLG))v8{5gt_uj9!t5)^yb-JtjRGrhi zYInOUNJxNyf_yKX01)K=WP|Si>HqEj|B{eUl?MR<)%<1&{(~)D+NPwKxWqT-@~snp zg9KCz1VTZDiS?UH`PRk1VPM{29cgT9=D?!Wc_@}qzggFv;gb@2cJQAYWWtpEZ7?y@jSVqjx${B5UV@SO|wH<<0; z{><1KdVI%Ki}>~<`46C0AggwUwx-|QcU;iiZ{NZu`ur>hd*|Hb(|6veERqxu=b@5Bab=rqptGxd{QJg!4*-i_$sES~)AB46}Fjg|ea#e@?J}z%CUJ zOsLWRQR1#ng^sD)A4FDuY!iUhzlgfJh(J@BRqd&P#v2B`+saBx>m+M&q7vk-75$NH%T5pi%m z5FX?`2-5l53=a&GkC9^NZCLpN5(DMKMwwab$FDIs?q>4!!xBS}75gX_5;(luk;3Vl zLCLd5a_8`Iyz}K}+#RMwu6DVk3O_-}n>aE!4NaD*sQn`GxY?cHe!Bl9n?u&g6?aKm z-P8z&;Q3gr;h`YIxX%z^o&GZZg1=>_+hP2$$-DnL_?7?3^!WAsY4I7|@K;aL<>OTK zByfjl2PA$T83*LM9(;espx-qB%wv7H2i6CFsfAg<9V>Pj*OpwX)l?^mQfr$*OPPS$ z=`mzTYs{*(UW^ij1U8UfXjNoY7GK*+YHht(2oKE&tfZuvAyoN(;_OF>-J6AMmS5fB z^sY6wea&&${+!}@R1f$5oC-2J>J-A${@r(dRzc`wnK>a7~8{Y-scc|ETOI8 zjtNY%Y2!PI;8-@a=O}+{ap1Ewk0@T`C`q!|=KceX9gK8wtOtIC96}-^7)v23Mu;MH zhKyLGOQMujfRG$p(s`(2*nP4EH7*J57^=|%t(#PwCcW7U%e=8Jb>p6~>RAlY4a*ts=pl}_J{->@kKzxH|8XQ5{t=E zV&o`$D#ZHdv&iZWFa)(~oBh-Osl{~CS0hfM7?PyWUWsr5oYlsyC1cwULoQ4|Y5RHA2*rN+EnFPnu z`Y_&Yz*#550YJwDy@brZU>0pWV^RxRjL221@2ABq)AtA%Cz?+FG(}Yh?^v)1Lnh%D zeM{{3&-4#F9rZhS@DT0E(WRkrG!jC#5?OFjZv*xQjUP~XsaxL2rqRKvPW$zHqHr8Urp2Z)L z+)EvQeoeJ8c6A#Iy9>3lxiH3=@86uiTbnnJJJoypZ7gco_*HvKOH97B? zWiwp>+r}*Zf9b3ImxwvjL~h~j<<3shN8$k-$V1p|96I!=N6VBqmb==Bec|*;HUg?) z4!5#R*(#Fe)w%+RH#y{8&%%!|fQ5JcFzUE;-yVYR^&Ek55AXb{^w|@j|&G z|6C-+*On%j;W|f8mj?;679?!qY86c{(s1-PI2Wahoclf%1*8%JAvRh1(0)5Vu37Iz z`JY?RW@qKr+FMmBC{TC7k@}fv-k8t6iO}4K-i3WkF!Lc=D`nuD)v#Na zA|R*no51fkUN3^rmI;tty#IK284*2Zu!kG13!$OlxJAt@zLU`kvsazO25TpJLbK&;M8kw*0)*14kpf*)3;GiDh;C(F}$- z1;!=OBkW#ctacN=je*Pr)lnGzX=OwgNZjTpVbFxqb;8kTc@X&L2XR0A7oc!Mf2?u9 zcctQLCCr+tYipa_k=;1ETIpHt!Jeo;iy^xqBES^Ct6-+wHi%2g&)?7N^Yy zUrMIu){Jk)luDa@7We5U!$$3XFNbyRT!YPIbMKj5$IEpTX1IOtVP~(UPO2-+9ZFi6 z-$3<|{Xb#@tABt0M0s1TVCWKwveDy^S!!@4$s|DAqhsEv--Z}Dl)t%0G>U#ycJ7cy z^8%;|pg32=7~MJmqlC-x07Sd!2YX^|2D`?y;-$a!rZ3R5ia{v1QI_^>gi(HSS_e%2 zUbdg^zjMBBiLr8eSI^BqXM6HKKg#@-w`a**w(}RMe%XWl3MipvBODo*hi?+ykYq)z ziqy4goZw0@VIUY65+L7DaM5q=KWFd$;W3S!Zi>sOzpEF#(*3V-27N;^pDRoMh~(ZD zJLZXIam0lM7U#)119Hm947W)p3$%V`0Tv+*n=&ybF&}h~FA}7hEpA&1Y!BiYIb~~D z$TSo9#3ee02e^%*@4|*+=Nq6&JG5>zX4k5f?)z*#pI-G(+j|jye%13CUdcSP;rNlY z#Q!X%zHf|V)GWIcEz-=fW6AahfxI~y7w7i|PK6H@@twdgH>D_R@>&OtKl}%MuAQ7I zcpFmV^~w~8$4@zzh~P~+?B~%L@EM3x(^KXJSgc6I=;)B6 zpRco2LKIlURPE*XUmZ^|1vb?w*ZfF}EXvY13I4af+()bAI5V?BRbFp`Sb{8GRJHd* z4S2s%4A)6Uc=PK%4@PbJ<{1R6+2THMk0c+kif**#ZGE)w6WsqH z`r^DL&r8|OEAumm^qyrryd(HQ9olv$ltnVGB{aY?_76Uk%6p;e)2DTvF(;t=Q+|8b zqfT(u5@BP);6;jmRAEV057E*2d^wx@*aL1GqWU|$6h5%O@cQtVtC^isd%gD7PZ_Io z_BDP5w(2*)Mu&JxS@X%%ByH_@+l>y07jIc~!@;Raw)q_;9oy@*U#mCnc7%t85qa4? z%_Vr5tkN^}(^>`EFhag;!MpRh!&bKnveQZAJ4)gEJo1@wHtT$Gs6IpznN$Lk-$NcM z3ReVC&qcXvfGX$I0nfkS$a|Pm%x+lq{WweNc;K>a1M@EAVWs2IBcQPiEJNt}+Ea8~WiapASoMvo(&PdUO}AfC~>ZGzqWjd)4no( ziLi#e3lOU~sI*XPH&n&J0cWfoh*}eWEEZW%vX?YK!$?w}htY|GALx3;YZoo=JCF4@ zdiaA-uq!*L5;Yg)z-_`MciiIwDAAR3-snC4V+KA>&V%Ak;p{1u>{Lw$NFj)Yn0Ms2*kxUZ)OTddbiJM}PK!DM}Ot zczn?EZXhx3wyu6i{QMz_Ht%b?K&-@5r;8b076YDir`KXF0&2i9NQ~#JYaq*}Ylb}^ z<{{6xy&;dQ;|@k_(31PDr!}}W$zF7Jv@f%um0M$#=8ygpu%j(VU-d5JtQwT714#f0z+Cm$F9JjGr_G!~NS@L9P;C1? z;Ij2YVYuv}tzU+HugU=f9b1Wbx3418+xj$RKD;$gf$0j_A&c;-OhoF*z@DhEW@d9o zbQBjqEQnn2aG?N9{bmD^A#Um6SDKsm0g{g_<4^dJjg_l_HXdDMk!p`oFv8+@_v_9> zq;#WkQ!GNGfLT7f8m60H@$tu?p;o_It#TApmE`xnZr|_|cb3XXE)N^buLE`9R=Qbg zXJu}6r07me2HU<)S7m?@GzrQDTE3UH?FXM7V+-lT#l}P(U>Fvnyw8T7RTeP`R579m zj=Y>qDw1h-;|mX-)cSXCc$?hr;43LQt)7z$1QG^pyclQ1Bd!jbzsVEgIg~u9b38;> zfsRa%U`l%did6HzPRd;TK{_EW;n^Ivp-%pu0%9G-z@Au{Ry+EqEcqW=z-#6;-!{WA z;l+xC6Zke>dl+(R1q7B^Hu~HmrG~Kt575mzve>x*cL-shl+zqp6yuGX)DDGm`cid! znlnZY=+a5*xQ=$qM}5$N+o!^(TqTFHDdyCcL8NM4VY@2gnNXF|D?5a558Lb*Yfm4) z_;0%2EF7k{)i(tTvS`l5he^KvW%l&-suPwpIlWB_Za1Hfa$@J!emrcyPpTKKM@NqL z?X_SqHt#DucWm<3Lp}W|&YyQE27zbGP55=HtZmB(k*WZA79f##?TweCt{%5yuc+Kx zgfSrIZI*Y57FOD9l@H0nzqOu|Bhrm&^m_RK6^Z<^N($=DDxyyPLA z+J)E(gs9AfaO`5qk$IGGY+_*tEk0n_wrM}n4G#So>8Dw6#K7tx@g;U`8hN_R;^Uw9JLRUgOQ?PTMr4YD5H7=ryv)bPtl=<&4&% z*w6k|D-%Tg*F~sh0Ns(h&mOQ_Qf{`#_XU44(VDY8b})RFpLykg10uxUztD>gswTH} z&&xgt>zc(+=GdM2gIQ%3V4AGxPFW0*l0YsbA|nFZpN~ih4u-P!{39d@_MN)DC%d1w z7>SaUs-g@Hp7xqZ3Tn)e z7x^sC`xJ{V<3YrmbB{h9i5rdancCEyL=9ZOJXoVHo@$$-%ZaNm-75Z-Ry9Z%!^+STWyv~To>{^T&MW0-;$3yc9L2mhq z;ZbQ5LGNM+aN628)Cs16>p55^T^*8$Dw&ss_~4G5Go63gW^CY+0+Z07f2WB4Dh0^q z-|6QgV8__5>~&z1gq0FxDWr`OzmR}3aJmCA^d_eufde7;d|OCrKdnaM>4(M%4V`PxpCJc~UhEuddx9)@)9qe_|i z)0EA%&P@_&9&o#9eqZCUCbh?`j!zgih5sJ%c4(7_#|Xt#r7MVL&Q+^PQEg3MBW;4T zG^4-*8L%s|A}R%*eGdx&i}B1He(mLygTmIAc^G(9Si zK7e{Ngoq>r-r-zhyygK)*9cj8_%g z)`>ANlipCdzw(raeqP-+ldhyUv_VOht+!w*>Sh+Z7(7(l=9~_Vk ztsM|g1xW`?)?|@m2jyAgC_IB`Mtz(O`mwgP15`lPb2V+VihV#29>y=H6ujE#rdnK` zH`EaHzABs~teIrh`ScxMz}FC**_Ii?^EbL(n90b(F0r0PMQ70UkL}tv;*4~bKCiYm zqngRuGy`^c_*M6{*_~%7FmOMquOEZXAg1^kM`)0ZrFqgC>C%RJvQSo_OAA(WF3{euE}GaeA?tu5kF@#62mM$a051I zNhE>u>!gFE8g#Jj95BqHQS%|>DOj71MZ?EYfM+MiJcX?>*}vKfGaBfQFZ3f^Q-R1# znhyK1*RvO@nHb|^i4Ep_0s{lZwCNa;Ix<{E5cUReguJf+72QRZIc%`9-Vy)D zWKhb?FbluyDTgT^naN%l2|rm}oO6D0=3kfXO2L{tqj(kDqjbl(pYz9DykeZlk4iW5 zER`)vqJxx(NOa;so@buE!389-YLbEi@6rZG0#GBsC+Z0fzT6+d7deYVU;dy!rPXiE zmu73@Jr&~K{-9MVQD}&`)e>yLNWr>Yh8CXae9XqfvVQ&eC_;#zpoaMxZ0GpZz7xjx z`t_Q-F?u=vrRPaj3r<9&t6K=+egimiJ8D4gh-rUYvaVy zG($v+3zk5sMuOhjxkH7bQ}(5{PD3Mg?!@8PkK&w>n7tO8FmAmoF30_#^B~c(Q_`4L zYWOoDVSnK|1=p{+@`Fk^Qb81Xf89_S`RSTzv(a4ID%71nll%{Wad$!CKfeTKkyC?n zCkMKHU#*nz_(tO$M)UP&ZfJ#*q(0Gr!E(l5(ce<3xut+_i8XrK8?Xr7_oeHz(bZ?~8q5q~$Rah{5@@7SMN zx9PnJ-5?^xeW2m?yC_7A#WK*B@oIy*Y@iC1n7lYKj&m7vV;KP4TVll=II)$39dOJ^czLRU>L> z68P*PFMN+WXxdAu=Hyt3g$l(GTeTVOZYw3KY|W0Fk-$S_`@9`K=60)bEy?Z%tT+Iq z7f>%M9P)FGg3EY$ood+v$pdsXvG? zd2q3abeu-}LfAQWY@=*+#`CX8RChoA`=1!hS1x5dOF)rGjX4KFg!iPHZE2E=rv|A} zro(8h38LLFljl^>?nJkc+wdY&MOOlVa@6>vBki#gKhNVv+%Add{g6#-@Z$k*ps}0Y zQ=8$)+Nm||)mVz^aa4b-Vpg=1daRaOU)8@BY4jS>=5n#6abG@(F2`=k-eQ9@u# zxfNFHv=z2w@{p1dzSOgHokX1AUGT0DY4jQI@YMw)EWQ~q5wmR$KQ}Y;(HPMSQCwzu zdli|G?bj(>++CP)yQ4s6YfpDc3KqPmquQSxg%*EnTWumWugbDW5ef%8j-rT#3rJu? z)5n;4b2c*;2LIW%LmvUu6t1~di~}0&Svy}QX#ER|hDFZwl!~zUP&}B1oKAxIzt~so zb!GaJYOb#&qRUjEI1xe_`@7qv_-LggQ$JE8+{ryT4%ldwC5ete+{G3C#g@^oxfY3#F zcLlj(l2G8>tC<5XWV|6_DZQZ7ow?MD8EZ9mM2oV~WoV-uoExmbwpzc6eMV}%J_{3l zW(4t2a-o}XRlU|NSiYn!*nR(Sc>*@TuU*(S77gfCi7+WR%2b;4#RiyxWR3(u5BIdf zo@#g4wQjtG3T$PqdX$2z8Zi|QP~I^*9iC+(!;?qkyk&Q7v>DLJGjS44q|%yBz}}>i z&Ve%^6>xY<=Pi9WlwpWB%K10Iz`*#gS^YqMeV9$4qFchMFO}(%y}xs2Hn_E}s4=*3 z+lAeCKtS}9E{l(P=PBI;rsYVG-gw}-_x;KwUefIB@V%RLA&}WU2XCL_?hZHoR<7ED zY}4#P_MmX(_G_lqfp=+iX|!*)RdLCr-1w`4rB_@bI&Uz# z!>9C3&LdoB$r+O#n);WTPi;V52OhNeKfW6_NLnw zpFTuLC^@aPy~ZGUPZr;)=-p|b$-R8htO)JXy{ecE5a|b{{&0O%H2rN&9(VHxmvNly zbY?sVk}@^{aw)%#J}|UW=ucLWs%%j)^n7S%8D1Woi$UT}VuU6@Sd6zc2+t_2IMBxd zb4R#ykMr8s5gKy=v+opw6;4R&&46$V+OOpDZwp3iR0Osqpjx))joB*iX+diVl?E~Q zc|$qmb#T#7Kcal042LUNAoPTPUxF-iGFw>ZFnUqU@y$&s8%h-HGD`EoNBbe#S>Y-4 zlkeAP>62k~-N zHQqXXyN67hGD6CxQIq_zoepU&j0 zYO&}<4cS^2sp!;5))(aAD!KmUED#QGr48DVlwbyft31WlS2yU<1>#VMp?>D1BCFfB z_JJ-kxTB{OLI}5XcPHXUo}x~->VP%of!G_N-(3Snvq`*gX3u0GR&}*fFwHo3-vIw0 zeiWskq3ZT9hTg^je{sC^@+z3FAd}KNhbpE5RO+lsLgv$;1igG7pRwI|;BO7o($2>mS(E z$CO@qYf5i=Zh6-xB=U8@mR7Yjk%OUp;_MMBfe_v1A(Hqk6!D})x%JNl838^ZA13Xu zz}LyD@X2;5o1P61Rc$%jcUnJ>`;6r{h5yrEbnbM$$ntA@P2IS1PyW^RyG0$S2tUlh z8?E(McS?7}X3nAAJs2u_n{^05)*D7 zW{Y>o99!I9&KQdzgtG(k@BT|J*;{Pt*b|?A_})e98pXCbMWbhBZ$t&YbNQOwN^=F) z_yIb_az2Pyya2530n@Y@s>s>n?L79;U-O9oPY$==~f1gXro5Y z*3~JaenSl_I}1*&dpYD?i8s<7w%~sEojqq~iFnaYyLgM#so%_ZZ^WTV0`R*H@{m2+ zja4MX^|#>xS9YQo{@F1I)!%RhM{4ZUapHTKgLZLcn$ehRq(emb8 z9<&Nx*RLcS#)SdTxcURrJhxPM2IBP%I zf1bWu&uRf{60-?Gclb5(IFI*!%tU*7d`i!l@>TaHzYQqH4_Y*6!Wy0d-B#Lz7Rg3l zqKsvXUk9@6iKV6#!bDy5n&j9MYpcKm!vG7z*2&4G*Yl}iccl*@WqKZWQSJCgQSj+d ze&}E1mAs^hP}>`{BJ6lv*>0-ft<;P@`u&VFI~P3qRtufE11+|#Y6|RJccqo27Wzr}Tp|DH z`G4^v)_8}R24X3}=6X&@Uqu;hKEQV^-)VKnBzI*|Iskecw~l?+R|WKO*~(1LrpdJ? z0!JKnCe<|m*WR>m+Qm+NKNH<_yefIml z+x32qzkNRrhR^IhT#yCiYU{3oq196nC3ePkB)f%7X1G^Ibog$ZnYu4(HyHUiFB`6x zo$ty-8pknmO|B9|(5TzoHG|%>s#7)CM(i=M7Nl=@GyDi-*ng6ahK(&-_4h(lyUN-oOa$` zo+P;C4d@m^p9J4c~rbi$rq9nhGxayFjhg+Rqa{l#`Y z!(P6K7fK3T;y!VZhGiC#)|pl$QX?a)a9$(4l(usVSH>2&5pIu5ALn*CqBt)9$yAl; z-{fOmgu><7YJ5k>*0Q~>lq72!XFX6P5Z{vW&zLsraKq5H%Z26}$OKDMv=sim;K?vsoVs(JNbgTU8-M%+ zN(+7Xl}`BDl=KDkUHM9fLlV)gN&PqbyX)$86!Wv!y+r*~kAyjFUKPDWL3A)m$@ir9 zjJ;uQV9#3$*`Dqo1Cy5*;^8DQcid^Td=CivAP+D;gl4b7*xa9IQ-R|lY5tIpiM~9- z%Hm9*vDV@_1FfiR|Kqh_5Ml0sm?abD>@peo(cnhiSWs$uy&$RYcd+m`6%X9FN%?w}s~Q=3!pJzbN~iJ}bbM*PPi@!E0eN zhKcuT=kAsz8TQo76CMO+FW#hr6da({mqpGK2K4T|xv9SNIXZ}a=4_K5pbz1HE6T}9 zbApW~m0C`q)S^F}B9Kw5!eT)Bj_h9vlCX8%VRvMOg8PJ*>PU>%yt-hyGOhjg!2pZR4{ z=VR_*?Hw|aai##~+^H>3p$W@6Zi`o4^iO2Iy=FPdEAI58Ebc~*%1#sh8KzUKOVHs( z<3$LMSCFP|!>fmF^oESZR|c|2JI3|gucuLq4R(||_!8L@gHU8hUQZKn2S#z@EVf3? zTroZd&}JK(mJLe>#x8xL)jfx$6`okcHP?8i%dW?F%nZh=VJ)32CmY;^y5C1^?V0;M z<3!e8GZcPej-h&-Osc>6PU2f4x=XhA*<_K*D6U6R)4xbEx~{3*ldB#N+7QEXD^v=I z+i^L+V7_2ld}O2b-(#bmv*PyZI4|U#Q5|22a(-VLOTZc3!9ns1RI-? zA<~h|tPH0y*bO1#EMrsWN>4yJM7vqFZr?uw$H8*PhiHRQg1U9YoscX-G|gck+SSRX!(e7@~eeUEw+POsT;=W9J&=EV`cUc{PIg_#TQVGnZsQbCs7#Q-)v#BicxLw#Fb?#)8TYbu zN)5R=MI1i7FHhF|X}xEl=sW~`-kf;fOR^h1yjthSw?%#F{HqrY2$q>7!nbw~nZ8q9 zh{vY! z%i=H!!P&wh z7_E%pB7l5)*VU>_O-S~d5Z!+;f{pQ4e86*&);?G<9*Q$JEJ!ZxY;Oj5&@^eg0Zs!iLCAR`2K?MSFzjX;kHD6)^`&=EZOIdW>L#O`J zf~$M4}JiV}v6B-e{NUBGFgj-*H%NG zfY0X(@|S8?V)drF;2OQcpDl2LV=~=%gGx?_$fbSsi@%J~taHcMTLLpjNF8FkjnjyM zW;4sSf6RHaa~LijL#EJ0W2m!BmQP(f=%Km_N@hsBFw%q#7{Er?y1V~UEPEih87B`~ zv$jE%>Ug9&=o+sZVZL7^+sp)PSrS;ZIJac4S-M>#V;T--4FXZ*>CI7w%583<{>tb6 zOZ8gZ#B0jplyTbzto2VOs)s9U%trre`m=RlKf{I_Nwdxn(xNG%zaVNurEYiMV3*g| z``3;{j7`UyfFrjlEbIJN{0db|r>|LA@=vX9CHFZYiexnkn$b%8Rvw0TZOQIXa;oTI zv@j;ZP+#~|!J(aBz9S{wL7W%Dr1H)G-XUNt9-lP?ijJ-XEj1e*CI~-Xz@4(Xg;UoG z{uzBf-U+(SHe}6oG%;A*93Zb=oE>uTb^%qsL>|bQf?7_6=KIiPU`I|r;YcZ!YG7y~ zQu@UldAwz$^|uoz3mz1;An-WVBtefSh-pv<`n&TU3oM!hrEI?l@v8A4#^$4t&~T32 zl*J=1q~h+60sNc43>0aVvhzyfjshgPYZoQ(OOh>LbUIoblb@1z~zp?))n?^)q6WGuDh}gMUaA9|X z3qq-XlcNldy5==T4rq*~g@XVY!9sYZjo#R7 zr{n)r5^S{9+$+8l7IVB*3_k5%-TBY@C%`P@&tZf>82sm#nfw7L%92>nN$663yW!yt zhS>EfLcE_Z)gv-Y^h1;xj(<4nD4GY{C-nWUgQc9cMmH{qpa!uEznrGF^?bbJHApScQ$j>$JZHAX80DdXu z--AMgrA0$Otdd#N9#!cg2Z~N8&lj1d+wDh+^ZObWJ$J)_h(&2#msu>q0B$DEERy{1 zCJN{7M@%#E@8pda`@u!v@{gcT3bA*>g*xYLXlbb&o@1vX*x+l}Voys6o~^_7>#GB| z*r!R%kA9k%J`?m>1tMHB9x$ZRe0$r~ui}X}jOC)9LH=Po*2SLdtf3^4?VKnu2ox&mV~0oDgi` z;9d}P$g~9%ThTK8s}5ow2V4?(-lU*ed8ro|}mU}pk% z;bqB0bx3AOk<0Joeh}Vl@_7Po&C`Cg>>gff>e7fu41U3Ic{JQu1W%+!Gvz3GDO2ixKd;KF6UEw8F_cDAh08gB>@ zaRH2Q96sBJ>`4aXvrF0xPtIWoA1pPsRQtU~xDtnEfTJnl{A9u5pR^K8=UdNq%T8F$)FbN> zgK+_(BF#D>R>kK!M#OT~=@@}3yAYqm33?{Bv?2iBr|-aRK0@uapzuXI)wE0=R@m^7 zQ`wLBn(M*wg!mgmQT1d!@3<2z>~rmDW)KG0*B4>_R6LjiI0^9QT8gtDDT|Lclxppm z+OeL6H3QpearJAB%1ellZ6d*)wBQ(hPbE=%?y6i^uf%`RXm*JW*WQ%>&J+=V(=qf{ zri~yItvTZbII+7S0>4Q0U9@>HnMP$X>8TqAfD(vAh};2P{QK)ik`a6$W$nG<{bR2Ufd!^iE z#1K58$gW!xpeYHeehuhQCXZ9p%N8m zB+l~T_u-Ycr!U>!?xu!!*6rNxq37{`DhMMfY6NpD3Jw zkYQDstvt30Hc_SaZuuMP2YrdW@HsPMbf^Y9lI<9$bnMil2X7`Ba-DGLbzgqP>mxwe zf1&JkDH54D3nLar2KjJ3z`*R+rUABq4;>>4Kjc2iQEj7pVLcZYZ~pteAG4rm1{>PQy=!QiV5G|tVk)53 zP?Azw+N)Yq3zZ`dW7Q9Bq@Y*jSK0<1f`HM;_>GH57pf_S%Ounz_yhTY8lplQSM`xx zU{r-Deqs+*I~sLI$Oq`>i`J1kJ(+yNOYy$_>R3Jfi680<|^u#J@aY%Q>O zqfI~sCbk#3--^zMkV&Yj0D(R^rK}+_npgPr_4^kYuG=pO%$C_7v{s@-{M-P@RL3^<`kO@b=YdKMuccfO1ZW# zeRYE%D~CMAgPlo?T!O6?b|pOZv{iMWb;sN=jF%=?$Iz_5zH?K;aFGU^8l7u%zHgiy z%)~y|k;Es-7YX69AMj^epGX#&^c@pp+lc}kKc`5CjPN4Z$$e58$Yn*J?81%`0~A)D zPg-db*pj-t4-G9>ImW4IMi*v#9z^9VD9h@9t;3jMAUVxt=oor+16yHf{lT|G4 zya6{4#BxFw!!~UTRwXXawKU4iz$$GMY6=Z8VM{2@0{=5A0+A#p6$aT3ubRyWMWPq9 zCEH5(Il0v4e4=Yxg(tDglfYAy!UpC>&^4=x7#6_S&Ktds)a8^`^tp6RnRd{KImB^o z2n=t#>iKx<*evmvoE{+fH#@WXGWs$)Uxrtf?r>AaxV0?kf0o@oDboJ6z0cgP@A$;k>SK1UqC?Q_ zk_I?j74;}uNXhOf_5ZxQSgB4otDEb9JJrX1kq`-o%T>g%M5~xXf!2_4P~K64tKgXq z&KHZ0@!cPvUJG4kw-0;tPo$zJrU-Nop>Uo65Pm|yaNvKjhi7V1g98;^N1~V3% zTR>yWa+X2FJ_wpPwz3i^6AGwOa_VMS-&`*KoKgF2&oR10Jn6{!pvVG@n=Jk@vjNuY zL~P7aDGhg~O9G^!bHi$8?G9v9Gp0cmekYkK;(q=47;~gI>h-kx-ceM{ml$#8KI$4ltyjaqP zki^cyDERloAb)dcDBU4na9C(pfD{P@eBGA}0|Rb)p{ISqi60=^FUEdF!ok{Gs;vb) zfj9(#1QA64w*ud^YsN5&PeiI>c`VioE8h)e}W%S9NMA55Gs zrWL6l+@3CKd@8(UQLTwe12SGWMqRn+j)QZRj*g)Xua)%ayzpqs{pD(WWESJYL3{M$ z%qkpM`jFoqLYVv6{IbCkL?fEiJj$VG=$taup&RL9e{s(Sgse2xVJlw0h74EXJKt2eX|dxz{->0)3W`JN7Bv!rLvRZc z0tAOZ2yVe4g9iq826qXAg`f!*+}(o1;1FDb>kKexumFS40KvK0yH1_@Z=LgWZ+}(Y zwYsa;OLz6tTA%gS=>8$=Z7pLh>|K2QElL)E=Q*(n*H`8R`8={-@4mTD-SWBOYRxV? zmF(-rJB8^Wlp?319rTrh^?QEP?|Msxrv?WbJ-+id+V#F2Y4(JPJ6U9bv+U1cIIH^W z)lg$_=g^Ma>2~Pyd_YOAv29Cb-U6DJO?NxnW7~QP*SmYi*vdUVuW#LWQ_u0`hymZi zaQS3Nb^4`ro$>0G%zbXmr5|D|iq0R<;S@?kr0j5Ruq87-Z1>crx%EzVZ9#U;{?}ti zW2W%*9MQg3Nbh%Ti6LhDd|-aFSgXoPG`mHlUU1iCHr>ru>DX?W_#13(`u*!Plu2OP z6jk=2>BC0l)aw;HCmxoYD1i4b%m$1`DYC_^L~ zIEAnFcHvad=-aO3(_MI=9#`z6-9*_!&$?<%meb5;jGd5Qp=MGf z6BD{%`L#TAOq%z%@*ib95Ey7NbUF=BlszVk3Iu3imD&*91N-ij%hW?W@~2TtdHTfP z#n0@Xd7X8Dyu36n{k#PwQ~T~X7mAO^cNV+z<HO@3X-# z_@rAn$k~(l@kciCC;&Qd*fWRI>=;fL{UPlciNDWyj$bX<#r^(r;EE8wwUVQm&7~QY zCXRj!**r^xybAEPq>h3W$uvI1j=yNIyzkE_D7fpGw)OV{U*Uwm{xB;mEg2(|y|ICd zMdQVqzMb-=XM6|E-a9kNh)^9lY`-DjhhHD1w5lufRcy+QLgJ47!fFne86#F; zX{ufroVBEZJOY?rDo!;Te6aOZ^1SO!dYRxQ*2njyA~dCWawn)>!*k7~>8Ikt&e*0>>V5ZbO|*1+2LFOqVe zXHb!aMk03^h%&9L8GMy7UDI2Kev>V@(R}*Iu6x+!Hn4~D@wj`P%#Hdbf(lK{+DD7f zJ&(v*mhn_e(R$^5L#bM^^Q@-!*b!l|+Xrb(q*MRFJYnrE7*xko!SJOy9LngR2|q5k zY`Ioiu+YBfzF{Labszk-E#*BYQk>$()=xWEGZRKwY)*UxP}0dGuPLZOkNJDI9Hy zFjfwiK6RjhH#rHW#B0(MW}i%V`943<6@Z*Nd^JEP5uZonXm=u%AM>{H^U@&Jy*i0s za_Da^xI6pMtXzHc{e~_ZcnKP*;=YL2Z^RmzDl{dJTk7*}E_h*NvgnhnxVKB59Duh~ zqouS_WoOR*{UvUw_K#OWz;gMracr%8>QQ&V*jv!8)ho;U8}9~8EU{N<=Z_gR%IpMT zbkePUG_afm=#|iIfFmdqkpLMGxY5D$`?I}&T7>TexU@v zkBx09kG)O;09ckj#(_Uov6vv{{HOcr-%H#DUQ@*GzF8Zh{iSM13%fuB%>wjdU@3Nf zlnYE!GTyNrqes|;nLFXfWU*Wg-9wmr=NBd$nCk+H?iwNvcd0Wab^3CT9a`>3V~oWI z9=_H+N-Q=MQ(io4u4mpdQ;k&5FXnKV5M7R`@WJ9h(GrAirO#XXOU{qQpk^B^Vd=Dt{wiqT zg-#j9J~@o%H2;W9mg)o6@*Vo;BSs2*4HAHpDk02mndAsov08R_48zJZ@J)s7+hyCo zy*0L#y)?AqZt-wX%+_Vx`8*A95OLHvs1$k~{h-_N_vov_gHJE=`X>L?5K+ zD?u59=mjtImMvd1GsDytuYp{IyUkW&?h zF>$#`n$~bZ)KN0B$XGeMYh&`;g8 zo_2-koaO6+8O!+L>SpIQbG(i;QW9UJi{Ecewlo?s&D!^>i$|#jaW}#HJuxt|W48=? zb^Y&O$a1s5ddr8DIt!sD!t=y1g(d4GR(s;s-HfV$GXl&m;+sAAxB^rk(3_NjE$p#L z*t4em?tA0d+XwRxN^OQwzbDZMuSE0J1)Ky{mq)^t4bnSl*)s>zNM@mMdtd78&ebHN z`!(|lE5q-p+TsRaNnMXwALaN5QIZ2IUi^Z22tsN5>nvIO+YU}Q*xh6}ee6@rR~<&1 z(PB4z>9ZBUMXZwSMmd9-aKKsmJeJq^G|#JclOh*xf0?^e0(`40nsg1z)(48;4}B_( zGwPI)yo|{oX{dVDL-5-aMGr;~vU1cPtJP5JM(sswz&Q`e<@0?y{YhsO9YK8EYJA;L z>7oG_Mts+(wCBC*Md82#XdKw&J*IizR?9k^rf1r{Ot-&>V^ke{9nI9zavlcNkIJtN z7T>?o|4rENk-?|lewZ(EfdR;%BUrzKJ^UkCpsM)EA9QHBVV8trT&*O(9?FO{MLTFL z=5P0H+T6C^jAuX0k4U;~GM!x`!X2N~3_n?qXY$HI>x@(DHEy&Q3ucT1R6fj28wX!I zC=&d$@bJ_v^%?W2Ngl}e8ww`b%BrN-PzGH;$@B2Ky1?%GMkm#~Okj(-Admyy;qya| zOi73kr_pwt?5Nj3p=&H>81!w#>Agj z(QXx{j0r=pTl>micAI_5vUw<3`Sht?Z}-j2Wx~F8DKCUQrsXl2?W8hur42(F_ zsSJ)_36&x6A|YkY6c<2a94SXbv~d>4CC4nkDPvf9Z5Fys^6^5r0j5=E>Cgy_Dk@tS z%?c}9!qB?t6t8(XMH%le8UeNWp@Nsma~Ql+^3Bo%_npMryeQJz4V=BAqE~T?dejng z3ge{fjCHoNAfYBvsfq;G%VL|j7t z`X0sy1EEgpyD;)tS1x+fnv-?C@glP0{RCW}Ma?3qpoq_&IJAYOy3G#s`rsh5=3>`K zkj``=;|*x5HSjZC zXNvPLh372q;=+6ja|SC!R-`JcL}}wwskajjTUGTpL(1zkN-p?BA2lmf+J3WsB7!k`0Brx8^cLTF9h)r+LZ$vsZo}`OpOs)?c6$hclR!R#MAeh|_DY|9r zy+_3c%IO9h9X?ksp?an&>Lw;QeQ`T-Ku6HaK~H?E9-Z5$cZu{YU;1+-6B$|JD;%!^ zt(4l>F8}a-UkC4YtOxFHckhl4VKr6P$P_O*U!)IDory%}Wz`YeFx6TO{y2Y${SBm?H9cTWV=WWJ z`_*CGso!ZN>l@~_jkeXtV}fczfA{TUkyeD>)i3|NFGcCsBmK3HXp&ol_@GVs7PIpfULy!hi zs+%KYgS%(n7_z_}6)hblk~W#LZ@&2)fwm6xkFP%&Ju|MFWbNiTwy{{g-pV1RK`L&=RE2D z4|g;~vd8xd|teYS%w!IlT4W$&FTrk-hcTADX!P?*f1YWEIRwq$Ys%^(Z9w&HT$>} zsMD#6Df=uJrX!JHP7<>Or;e_Cf=}`!`qR=i8fBj)$6Lxx{HRzd8Tnzd0p>kSps{OG zKJkml>bUj8$u|F=``l(-aMxWBC@CGZ#FXClQZ<4|&%jN}Tkg#q8z)=>Ly{$i0`rjU zvt|QddO&i=91e?h3>s~i;+6{ z8X4i6a1wDLrSuE#W(zhan+U*Zq+8p3a))JFVF4ffaV51K^YgTso~3;Y*NmM; zx8T?y-N0uyWY(8=me-HUC9xtABvX5~%yg+Cp&XF$Bq=OcK6T*D7eZ2EmIoCFWm{$S z1PNw8HDpe5hHeCusN8kdeb&f2#=3M^A~7YwJ7FRrhq*)PG9x?JIAaC{MV}5}g#7R$-Ly%)4=IUkRCGOR|XTMjn&okRmFjaO^YF5^* z@)#MCBOBezD)*xQNxydlUyN?dW{fS(s-T`gv*0BEnk}`BdmrbmPO8q8y(X$AA}*RH%I7Av!~84pudHb&%Q5-j zt?=6x(iR?<^_7X0v6Ys#VAL}dKk^hcjI=|EY;kPcZ_w<*H`_*|N7SacaM1ERD@6ab zg`!iTm7$URV+lpW_{V$ruR&A>jrX68k4x2wo$45}&wf7o<|o(@B!u-L@bKyQBAGwy z4#}UrRAu>^>Vb6k2-th^>WjvP;Nl|i3WrjWv3ISkj{m{eAcQIW^_ndxSX@|8T(ASJ z?_$fcP2u*6uOBk-{d>^ z0vWlfGQMvysI%R=iE|A+!!Nw?C917EU*_$`;;)px?s83CRd3i_jBN)k#nR5t$dJ(+ z_sP;wG@Ad)^(3LRj7q}0b2O(b`|i0~5SYb%Sjk^*5ISZ-Ab+}DGu$-X1n^TF1Ndw_ zF|e*1)cI2%`TR&AW~XpqpFb!=3cHbS>np9hYD_Mr5}y5Y`SY^r7isA2Q4(z zazRQEqWDKT2zIEbjSYdCPi1ZOGz80Nsl}gxO^DWMY0AV<2K&OL{&^6#@L1?lXu#6xSMh%3^5c*}oM6DQGY#(a^@z<&D zF(43I9e&5`h|A$5!+UFuOH0>F3$shBV4`0#M4RSB8=6F0ZgIbq<2LQ$Hh^(kAJu=! zt8ZGXTacD{(3W{V1$j_{Jc)Ka7t6u}ho`4kF+4@t_0!mCBn z)}o%eA}L)_L?=jw6BIfll7tb3n}?*yLt&XADa=rW>qz=_6s9ziOd5sXjil>FVFx3r zf>Feewk0v#W9>Gp4GacTRr>Sd2T6dWi-{YX`v!D)kCWzG5xQB=?es5ON(%nkwUhNl zV>@xkWWWv*N+{e$(SrExvN6BXzU(Hxlx27{VYHf+LpIbTO+Yu(ltMk<;)3A(LU@ytVYFkYvTa79idMtUFhfxx?P!)2F`prNWW#Fub#l>N2s@nh&n_ zA4{#}|AIs9|A4P0ZF%fy=hDN!t#ifH<)4u2kirK~JUpjQ-J+~cXOZI&dIts;P}UeXslP6zKvpEKSN-$y>kJ^nw2tC9bv zo(|lT@?vZ!{_l|d^8Yh)eEBh*5ABh+Lzjw+?V)o z#P-W7361>E(Y4;@`sv;VKn G`u_lkUM?>H diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 deleted file mode 100644 index 64539b54c3751a6d9adb44c8e3a45ba5a73b77f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18028 zcmV(~K+nH-Pew8T0RR9107h&84*&oF0I^&E07eM_0Rl|`00000000000000000000 z0000#Mn+Uk92y`7U;vDA2m}!b3WBL5f#qcZHUcCAhI9*rFaQJ~1&1OBl~F%;WnyLq z8)b|&?3j;$^FW}&KmNW53flIFARDZ7_Wz%hpoWaWlgHTHEHf()GI0&dMi#DFPaEt6 zCO)z0v0~C~q&0zBj^;=tv8q{$8JxX)>_`b}WQGgXi46R*CHJ}6r+;}OrvwA{_SY+o zK)H-vy{l!P`+NG*`*x6^PGgHH4!dsolgU4RKj@I8Xz~F6o?quCX&=VQ$Q{w01;M0? zKe|5r<_7CD z=eO3*x!r$aX2iFh3;}xNfx0v;SwBfGG+@Z;->HhvqfF4r__4$mU>Dl_1w;-9`~5rF~@!3;r~xP-hZvOfOx)A z#>8O3N{L{naf215f>m=bzbp7_(ssu&cx)Qo-{)!)Yz3A@Z0uZaM2yJ8#OGlzm?JO5gbrj~@)NB4@?>KE(K-$w}{};@dKY#K3+Vi64S<@!Z{(I{7l=!p9 z&kjG^P~0f46i13(w!hEDJga;*Eb z`!n|++@H8VaKG<9>VDh(y89J#=;Z$ei=GnD5TesW#|Wf)^D+9NKN4J3H5PF_t=V+Z zdeo8*h9+8&Zfc?>>1|E4B7MAx)^uy$L>szyXre7W|81fjy+RZ1>Gd}@@${~PCOXo) z$#HZd3)V3@lNGG%(3PyIbvyJTOJAWcN@Uh!FqUkx^&BuAvc)G}0~SKI`8ZZXw$*xP zum-ZdtPciTAUn$XWb6vrS=JX~f5?M%9S(=QsdYP?K%Odn0S0-Ad<-tBtS3W06I^FK z8}d2eR_n!(uK~APZ-#tl@SycxkRJ@5wmypdWV{MFtYBUY#g-Vv?5AEBj1 z`$T^tRKca*sn7gt%s@XUD-t>bij-4q-ilku9^;QJ3Mpc`HJ_EX4TGGQ-Og)`c~qm51<|gp7D@ zp#>Grssv^#A)&M8>ulnDM_5t#Al`#jaFpZ<#YJ@>!a$w@kEZ1<@PGs#L~kxOSz7jj zEhb?;W)eS}0IQQuk4~JT30>4rFJ3!b+77}>$_>v#2FFEnN^%(ls*o80pv0Q>#t#%H z@`Yy-FXQ9ULKh{Up&oA_A4B!(x^9&>i`+T|eD!&QOLVd(_avv-bFX~4^>o{%mzzrg_i~SBnr%DeE|i+^}|8?kaV(Z32{`vA^l!sp15>Z72z52FgXf z^8ZITvJ9eXBT1~iQjW|Q`Fac^ak$^N-vI^*geh5|*CdMz;n16gV_zk|Z7q8tFfCvU zJK^Pptnn0Rc~egGIAK}uv99VZm2WLPezQQ5K<`f zg{8Ll|GioPYfNheMj-7-S87=w4N0WxHP`1V6Y)0M&SkYzVrwp>yfsEF7wj&T0!}dB z)R~gGfP9pOR;GY_e0~K^^oJ-3AT+m~?Al!{>>5gNe17?OWz)$)sMH*xuQiB>FT2{i zQ>6U_8}Ay~r4li;jzG+$&?S12{)+<*k9 z<^SX#xY|jvlvTxt(m~C7{y{3g>7TX#o2q$xQO|fc<%8rE@A3=UW(o?gVg?gDV!0q6O!{MlX$6-Bu_m&0ms66 znWS&zr{O_4O&{2uCLQvA?xC5vGZ}KV1v6)#oTewgIMSnBur0PtM0&{R5t#UEy3I9) z`LVP?3f;o}sz*7g5qdTxJl^gk3>;8%SOPH@B)rmFOJ)m6?PlYa$y=RX%;}KId{m9R#2=LNwosF@OTivgMqxpRGe}5=LtAn?VVl6VWCFLD z7l#^^H8jY~42hR)OoVF#YDW(md!g(&pJ;yMj|UBAQa}UH?ED@%ci=*(q~Opn>kE2Q z_4Kgf|0kEA6ary41A;)^Ku(*nirvP!Y>{FZYBLXLP6QL~vRL+uMlZ?jWukMV*(dsn zL~~KA@jU)(UeoOz^4Gkw{fJsYQ%|UA7i79qO5=DOPBcWlv%pK!A+)*F`3WJ}t9FU3 zXhC4xMV7Z%5RjDs0=&vC4WdvD?Zi5tg4@xg8-GLUI>N$N&3aS4bHrp%3_1u9wqL)i z)XQLsI&{Hd&bQE!3m&D0vd!4D`l1$rt_{3NS?~lj#|$GN5RmvP(j3hzJOk=+0B*2v z)Bw133RMUM%wu_+$vbzOy?yk#kvR?xGsg-ipX4wKyXqd zROKp5))>tNy$HByaEHK%$mqd>-{Yoj`oSBK;w>+eZ&TVcj^DyXjo{DDbZ>vS2cCWB z(6&~GZ}kUdN(*2-nI!hvbnVy@z2E#F394OZD&Jb04}`Tgaj?MoY?1`{ejE2iud51% zQ~J0sijw(hqr_Ckbj@pm$FAVASKY(D4BS0GYPkSMqSDONRaFH+O2+jL{hIltJSJT~e)TNDr(}=Xt7|UhcU9eoXl&QZRR<9WomW%&m)FT~j zTgGd3-j}Uk%CRD;$@X)NNV9+RJbifYu>yr{FkO;p>_&njI> zyBHh_72bW;8}oGeY0gpHOxiV597j7mY<#?WMmkf5x~Kfk*re(&tG_mX<3&2cON*2u%V29tsXUv{#-ijs2>EuNH-x3) zPBpi+V6gI=wn}u164_j8xi-y(B?Au2o;UO=r6&)i5S3Mx*)*{_;u}~i4dh$`VgUS- zMG6t*?DXDYX0D2Oj31MI!HF>|aG8rjrOPnxHu4wZl;!=NGjjDoBpXf?ntrwt^dqxm zs(lE@*QB3NH)!`rH)5kks-D89g@UX&@DU9jvrsY)aI=9b4nPy3bfdX_U;#?zsan{G>DKob2LnhCJv8o}duQK)qP{7iaaf2=K`a-VNcfC582d4a z>sBJA*%S|NEazDxXcGPW_uZ&d7xG`~JB!U>U(}acUSn=FqOA~(pn^!aMXRnqiL0;? zebEZYouRv}-0r;Dq&z9>s#Rt1HL`0p4bB)A&sMyn|rE_9nh z?NO*RrjET8D4s(-`nS{MrdYtv*kyCnJKbsftG2D#ia@;42!8xd?a3P(&Y?vCf9na< zQ&Ni*1Qel&Xq{Z?=%f0SRqQt5m|Myg+8T=GDc)@^};=tM>9IDr7hdvE9-M@@<0pqv45xZTeNecbL- zWFQt4t`9>j8~X%lz}%We>Kzh_=`XO}!;4!OWH?=p*DOs#Nt({k^IvtBEL~Qafn)I^ zm*k{y7_bIs9YE}0B6%r`EIUH8US+MGY!KQA1fi-jCx9*}oz2k1nBsXp;4K<_&SN}}w<)!EylI_)v7}3&c)V;Cfuj*eJ2yc8LK=vugqTL><#65r6%#2e| zdYzZ)9Uq7)A$ol&ynM!|RDHc_7?FlWqjW>8TIHc`jExt)f5W|;D%GC#$u!%B*S%Z0 zsj&;bIU2jrt_7%$=!h4Q29n*A^^AI8R|stsW%O@?i+pN0YOU`z;TVuPy!N#~F8Z29 zzZh1`FU(q31wa>kmw{$q=MY>XBprL<1)Py~5TW4mgY%rg$S=4C^0qr+*A^T)Q)Q-U zGgRb9%MdE-&i#X3xW=I`%xDzAG95!RG9)s?v_5+qx`7NdkQ)If5}BoEp~h}XoeK>kweAMxJ8tehagx~;Nr_WP?jXa zJ&j7%Ef3w*XWf?V*nR)|IOMrX;$*$e23m?QN` zk>sC^GE=h6?*Cr~596s_QE@>Nnr?{EU+_^G=LZr#V&0fEXQ3IWtrM{=t^qJ62Sp=e zrrc>bzX^6yFV!^v7;>J9>j;`qHDQ4uc92eVe6nO@c>H=ouLQot``E~KLNqMqJ7(G+?GWO9Ol+q$w z!^kMv!n{vF?RqLnxVk{a_Ar;^sw0@=+~6!4&;SCh^utT=I zo&$CwvhNOjQpenw2`5*a6Gos6cs~*TD`8H9P4=#jOU_`%L!W;$57NjN%4 z39(61ZC#s7^tv`_4j}wMRT9rgDo*XtZwN-L;Qc$6v8kKkhmRrxSDkUAzGPgJ?}~_t zkwoGS4=6lsD`=RL|8L3O9L()N)lmEn-M15fRC{dhZ}7eYV%O-R^gsAp{q4 z!C1}_T8gy^v@SZ5R&Li5JMJy+K8iZw3LOGA0pN1~y@w7RRl#F()ii6Y5mr~Mdy@Kz z@FT4cm^I&#Fu_9IX(HAFP{XLbRALqm&)>m_we>a`hfv?eE|t z?YdDp2yAhj-~vuw^wzVDuj%w?exOcOT(ls(F*ceCe(C5HlN{lcQ;}|mRPqFDqLEzw zR7ldY+M6xe$$qLwekmk{Z&5cME$gpC?-8)f0m$rqaS|mj9ATNJvvyCgs(f2{r;2E!oy$k5{jik#(;S>do<#m0wVcU<}>)VtYmF9O0%(C>GDzPgh6X z9OkQLMR~y7=|MtaU!LDPPY7O)L{X#SC+M|v^X2CZ?$GS>U_|aC(VA(mIvCNk+biD| zSpj>gd(v>_Cbq>~-x^Y3o|?eHmuC?E&z>;Ij`%{$Pm$hI}bl0Kd`9KD~AchY+goL1?igDxf$qxL9< z4sW@sD)nwWr`T>e2B8MQN|p*DVTT8)3(%AZ&D|@Zh6`cJFT4G^y6`(UdPLY-&bJYJ z*L06f2~BX9qX}u)nrpmHPG#La#tiZ23<>`R@u8k;ueM6 znuSTY7>XEc+I-(VvL?Y>)adHo(cZ;1I7QP^q%hu#M{BEd8&mG_!EWR7ZV_&EGO;d(hGGJzX|tqyYEg2-m0zLT}a{COi$9!?9yK zGN7&yP$a|0gL`dPUt=4d^}?zrLN?HfKP0_gdRvb}1D73Hx!tXq>7{DWPV;^X{-)cm zFa^H5oBDL3uLkaFDWgFF@HL6Bt+_^g~*o*t`Hgy3M?nHhWvTp^|AQDc9_H< zg>IaSMzd7c(Sey;1SespO=8YUUArZaCc~}}tZZX80w%)fNpMExki-qB+;8xVX@dr; z#L52S6*aM-_$P9xFuIui;dN#qZ_MYy^C^hrY;YAMg;K`!ZpKKFc z9feHsool)`tFSS}Su|cL0%F;h!lpR+ym|P>kE-O`3QnHbJ%gJ$dQ_HPTT~>6WNX41 zoDEUpX-g&Hh&GP3koF4##?q*MX1K`@=W6(Gxm1=2Tb{hn8{sJyhQBoq}S>bZT zisRz-xDBYoYxt6--g2M1yh{#QWFCISux}4==r|7+fYdS$%DZ zXVQu{yPO<)Hn=TK`E@;l!09aY{!TMbT)H-l!(l{0j=SEj@JwW0a_h-2F0MZNpyucb zPPb+4&j?a!6ZnPTB>$t`(XSf-}`&+#rI#`GB> zl=$3HORwccTnA2%>$Nmz)u7j%_ywoGri1UXVNRxSf(<@vDLKKxFo;5pTI$R~a|-sQ zd5Rfwj+$k1t0{J`qOL^q>vZUHc7a^`cKKVa{66z?wMuQAfdZBaVVv@-wamPmes$d! z>gv^xx<0jXOz;7HIQS z4RBIFD?7{o^IQ=sNQ-k!ao*+V*|-^I2=UF?{d>bE9avsWbAs{sRE-y`7r zxVAKA9amvo4T}ZAHSF-{y1GqUHlDp4DO9I3mz5h8n|}P-9nKD|$r9AS3gbF1AX=2B zyaK3TbKYqv%~JHKQH8v+%zQ8UVEGDZY|mb>Oe3JD_Z{+Pq%HB+J1s*y6JOlk`6~H) zKt)YMZ*RkbU!GPHzJltmW-=6zqO=5;S)jz{ zFSx?ryqSMxgx|Nhv3z#kFBTuTBHsViaOHs5e&vXZ@l@mVI37<+^KvTE51!pB4Tggq zz!NlRY2ZLno0&6bA|KHPYOMY;;LZG&_lzuLy{@i$&B(}_*~Zk2 z>bkQ7u&Ww%CFh{aqkT{HCbPbRX&EvPRp=}WKmyHc>S_-qbwAr0<20vEoJ(!?-ucjE zKQ+nSlRL^VnOX0h+WcjGb6WI(8;7bsMaHXDb6ynPoOXMlf9nLKre;w*#E_whR#5!! z!^%_+X3eJVKc$fMZP;+xP$~e(CIP1R&{2m+iTQhDoC8Yl@kLM=Wily_cu>7C1wjVU z-^~I0P06ZSNVaN~A`#cSBH2L&tk6R%dU1(u1XdAx;g+5S^Hn9-L$v@p7CCF&PqV{Z?R$}4EJi36+u2JP7l(@fYfP!=e#76LGy^f>~vs0%s*x@X8`|5 zGd6JOHsQ=feES4Vo8%1P_7F5qjiIm#oRT0kO1(?Z_Dk6oX&j=Xd8Klk(;gk3S(ZFnc^8Gc=d;8O-R9tlGyp=2I@1teAZpGWUi;}`n zbJOS_Z2L16nVtDnPpMn{+wR9&yU9~C<-ncppPee`>@1k7hTl5Fn_3_KzQ)u{iJPp3 z)df?Xo%9ta%(dp@DhKuQj4D8=_!*ra#Ib&OXKrsYvAG%H7Kq|43WbayvsbeeimSa= z8~{7ya9ZUAIgLLPeuNmSB&#-`Je0Lja)M$}I41KHb7dQq$wgwX+EElNxBgyyLbA2* z=c1VJR%EPJEw(7!UE?4w@94{pI3E%(acEYd8*Wmr^R7|IM2RZ-RVXSkXy-8$!(iB* zQA`qh2Ze!EY6}Zs7vRz&nr|L60NlIgnO3L*Yz2k2Ivfen?drnVzzu3)1V&-t5S~S? zw#=Sdh>K@2vA25su*@>npw&7A%|Uh9T1jR$mV*H@)pU0&2#Se`7iJlOr$mp79`DKM z5vr*XLrg7w6lc4&S{So1KGKBqcuJ!E|HVFB?vTOjQHi)g+FwJqX@Y3q(qa#6T@3{q zhc@2T-W}XD9x4u+LCdce$*}x!Sc#+rH-sCz6j}0EE`Tk*irUq)y^za`}^1gFnF)C!yf_l_}I<6qfbT$Gc&Eyr?!QwJR~RE4!gKVmqjbI+I^*^ z&hz^7r-dgm@Mbfc#{JTH&^6sJCZt-NTpChB^fzQ}?etydyf~+)!d%V$0faN(f`rJb zm_YaJZ@>Fg>Ay2&bzTx3w^u-lsulc{mX4-nH*A(32O&b^EWmSuk{#HJk}_ULC}SB(L7`YAs>opp9o5UcnB^kVB*rmW6{s0&~_>J!_#+cEWib@v-Ms`?!&=3fDot`oH9v&$f<52>{n2l* z1FRzJ#yQbTHO}}wt0!y8Eh-0*|Um3vjX-nWH>`JN5tWB_gnW%; zUJ0V?_a#+!=>ahhrbGvmvObe8=v1uI8#gNHJ#>RwxL>E^pT05Br8+$@a9aDC1~$@* zicSQCbQcr=DCHM*?G7Hsovk|{$3oIwvymi#YoXeVfWj{Gd#XmnDgzQPRUKNAAI44y z{1WG&rhIR4ipmvBmq$BZ*5tmPIZmhhWgq|TcuR{6lA)+vhj(cH`0;+B^72{&a7ff* zkrIo|pd-Yxm+VVptC@QNCDk0=Re%Sz%ta7y{5Dn9(EapBS0r zLbDKeZepar5%cAcb<^;m>1{QhMzRmRem=+0I3ERot-)gb`i|sII^A#^Gz+x>TW5A& z3PQcpM$lDy`zb%1yf!e8&_>D02RN950KzW>GN6n@2so&Wu09x@PB=&IkIf|zZ1W}P zAKf*&Mo5@@G=w&290aG1@3=IMCB^|G4L7*xn;r3v&HBrD4D)Zg+)f~Ls$7*P-^i#B z4X7ac=0&58j^@2EBZCs}YPe3rqgLAA1L3Y}o?}$%u~)7Rk=LLFbAdSy@-Uw6lv?0K z&P@@M`o2Rll3GoYjotf@WNNjHbe|R?IKVn*?Rzf9v9QoFMq)ODF~>L}26@z`KA82t z43e!^z&WGqAk$Ww8j6bc3$I|;5^BHwt`?e)zf|&+l#!8uJV_Cwy-n1yS0^Q{W*a8B zTzTYL>tt&I&9vzGQUrO?YIm6C1r>eyh|qw~-&;7s7u1achP$K3VnXd8sV8J7ZTxTh z5+^*J5%_#X)XL2@>h(Gmv$@)fZ@ikR$v(2Rax89xscFEi!3_;ORI0dBxw)S{r50qf zg&_a*>2Xe{s@)7OX9O!C?^6fD8tc3bQTq9}fxhbx2@QeaO9Ej+2m!u~+u%Q6?Tgz{ zjYS}bleKcVhW~1$?t*AO^p!=Xkkgwx6OTik*R3~yg^L`wUU9Dq#$Z*iW%?s6pO_f8 zJ8w#u#Eaw7=8n{zJ}C>w{enA6XYHfUf7h)!Qaev)?V=yW{b@-z`hAz;I7^|DoFChP z1aYQnkGauh*ps6x*_S77@z1wwGmF8ky9fMbM$dr*`vsot4uvqWn)0vTRwJqH#&D%g zL3(0dP>%Oj&vm5Re%>*4x|h1J2X*mK5BH1?Nx_#7( zepgF`+n)rHXj!RiipusEq!X81;QQBXlTvLDj=Qub(ha&D=BDx3@-V*d!D9PeXUY?l zwZ0<4=iY!sUj4G>zTS+eYX7knN-8Oynl=NdwHS*nSz_5}*5LQ@=?Yr?uj$`C1m2OR zK`f5SD2|;=BhU#AmaTKe9QaSHQ_DUj1*cUPa*JICFt1<&S3P3zsrs^yUE;tx=x^cmW!Jq!+hohv_B> zPDMT0D&08dC4x@cTD$o1$x%So1Ir(G3_AVQMvQ13un~sP(cEWi$2%5q93E7t{3VJf%K? zuwSyDke~7KuB2?*#DV8YzJw z&}SCDexnUPD!%4|y~7}VzvJ4ch)WT4%sw@ItwoNt(C*RP)h?&~^g##vnhR0!HvIYx z0td2yz9=>t3JNySl*TszmfH6`Ir;ft@RdWs3}!J88UE|gj_GMQ6$ZYphUL2~4OY7} zB*33_bjkRf_@l;Y!7MIdb~bVe;-m78Pz|pdy=O*3kjak63UnLt!{^!!Ljg0rJD3a~ z1Q;y5Z^MF<=Hr}rdoz>yRczx+p3RxxgJE2GX&Si)14B@2t21j4hnnP#U?T3g#+{W+Zb z5s^@>->~-}4|_*!5pIzMCEp|3+i1XKcfUxW`8|ezAh>y{WiRcjSG*asw6;Ef(k#>V ztguN?EGkV_mGFdq!n#W)<7E}1#EZN8O$O|}qdoE|7K?F4zo1jL-v}E8v?9qz(d$&2 zMwyK&xlC9rXo_2xw7Qe0caC?o?Pc*-QAOE!+UvRuKjG+;dk|jQhDDBe?`XT7Y5lte zqSu0t5`;>Wv%|nhj|ZiE^IqA_lZu7OWh!2Y(627zb=r7Ends}wVk7Q5o09a@ojhH7 zU0m&h*8+j4e|OqWyJ&B`V`y=>MVO;K9=hk^6EsmVAGkLT{oUtR{JqSRY{Qi{kKw1k z6s;0SMPJOLp!som|A`*q3t0wIj-=bG8a#MC)MHcMSQU98Juv$?$CvYX)(n`P^!`5| zv3q@@|G@6wMqh;d;m4qvdibx2Yjml}vG9mDv&!0ne02M#D`Bo}xIB0VWh8>>WtNZQ z$&ISlJX;*ORQIO;k62qA{^6P%3!Z=Y1EbmY02{w^yB$`;%!{kur&XTGDiO2cjA)lr zsY^XZWy^DSAaz;kZ_VG?uWnJR7qdN18$~)>(kOoybY0~QYu9||K#|$Mby{3GduV~N zk9H7$7=RSo+?CUYF502`b76ytBy}sFak&|HIwRvB=0D|S`c#QCJPq zP)uOWI)#(n&{6|C4A^G~%B~BY21aOMoz9RuuM`Ip%oBz+NoAlb7?#`E^}7xXo!4S? zFg8I~G%!@nXi8&aJSGFcZAxQf;0m}942=i#p-&teLvE{AKm7Sl2f}Io?!IqbC|J;h z`=5LFOnU5?^w~SV@YwNZx$k_(kLNxZDE z3cf08^-rIT_>A$}B%IJBPcN^)4;90BQtiEi!gT#+EqyAUZ|}*b_}R>SGloq&6?opL zuT_+lwQMgg6!Cso$BwUA;k-1NcrzyE>(_X$B0HocjY~=Pk~Q08+N}(|%HjO_i+*=o z%G6C6A30Ch<0UlG;Zdj@ed!rfUY_i9mYwK8(aYuzcUzlTJ1yPz|Bb-9b33A9zRhGl>Ny-Q#JAq-+qtI@B@&w z$;PJbyiW=!py@g2hAi0)U1v=;avka`gd@8LC4=BEbNqL&K^UAQ5%r95#x%^qRB%KLaqMnG|6xKAm}sx!Qwo}J=2C;NROi$mfADui4)y(3wVA3k~{j^_5%H)C6K zlYAm1eY**HZOj($)xfKIQFtIVw$4&yvz9>(Crs>Gh{ zya6-FG7Dgi92#K)64=9Csj5?Zqe~_9TwSI!2quAwa1w-*uC5!}xY`?tltb0Hq740< zsq2QelPveZ4chr$=~U3!+c&>xyfvA1`)owOqj=i4wjY=A1577Gwg&Ko7;?il9r|_* z8P&IDV_g2D{in5OLFxsO!kx3AhO$5aKeoM|!q|VokqMlYM@HtsRuMtBY%I35#5$+G zpp|JOeoj^U=95HLemB04Yqv{a8X<^K9G2`&ShM_6&Bi1n?o?@MXsDj9Z*A3>#XK%J zRc*&SlFl>l)9DyRQ{*%Z+^e1XpH?0@vhpXrnPPU*d%vOhKkimm-u3c%Q^v3RKp9kx@A2dS?QfS=iigGr7m><)YkV=%LA5h@Uj@9=~ABPMJ z1UE;F&;Ttg5Kc^Qy!1SuvbNEqdgu3*l`=>s5_}dUv$B%BJbMiWrrMm7OXOdi=GOmh zZBvXXK7VqO&zojI2Om9};zCB5i|<210I{iwiGznGCx=FT89=Ef)5!lB1cZ6lbzgDn07*he}G&w7m!;|E(L-?+cz@0<9ZI~LqYQE7>HnPA436}oeN2Y(VfG6 zxNZuMK3Crm^Z_AFeHc~CVRrSl0W^?+Gbteu1g8NGYa3(8f*P{(ZT>%!jtSl6WbYVv zmE(37t0C8vJ6O-5+o*lL9XRcFbd~GSBGbGh3~R!67g&l)7n!kJlWd)~TUyXus#!&G6sR%(l(h1$xyrR5j_jM1zj#giA&@(Xl26@n<9>folx!92bQ z24h570+<)4!$!IQ(5yOU|4_E6aN@4v0+{Kx~Z z;q7fp%0cHziuI%!kB~w}g9@V+1wDz0wFlzX2UOvOy|&;e;t!lAR8tV2KQHgtfk8Uf zw;rs!(4JPODERk4ckd5I2Vq|0rd@@Mwd8MID%0^fITjYIQom^q;qhP8@|eJx{?5xX zc1@Fj*kDknlk{c-rnCloQ3hGh7OU+@efO3>fkRMcM>J?AeVP& zlfzX%cdp=N+4S#E*%^=BQ+N`A7C}|k%$|QUn0yI6S3$MS-NjO!4hm55uyju)Q6e!} z*OVO@A#-mfC9Pha6ng((Xl^V7{d+&u+yx)_B1{~t7d5e8L^i4J>;x<7@5;+l7-Gge zf#9diXJ$&v^rbN5V(ee%q0xBMEgS6%qZm7hNUP%G;^J44I!BmI@M*+FWz0!+s;+iQ zU4CuI+27bvNK8v>?7PZnVxB=heJ&_ymE0nN^W#-rqB%+JXkYGDuRw>JM_LdtLkiq* z6%%3&^BX$jnM@2bjiGc-DymKly)wVkA-pq;jSWL#7_*moZZ4I|-N}o8SK?sIv)p|c zu~9-B%tMc=!)YMFp*SiC0>kfnH8+X5>;+FFVN{~a9YVdIg1uGkZ~kegFy{^PU(4{( z`CbY`XmVA3esai686Yw8djCEyF7`bfB^F1)nwv+AqYLZ&Zy=eFhYT2uMd@{sP_qS4 zbJ&>PxajjZt?&c<1^!T|pLHfX=E^FJ>-l_XCZzvRV%x}@u(FtF(mS+Umw$e+IA74e>gCdTqi;6&=euAIpxd=Y3I5xWR zBhGoT+T`V1@91OlQ}2YO*~P4ukd*TBBdt?Plt)_ou6Y@Db`ss+Q~A-48s>?eaJYA2 zRGOa8^~Em}EFTmKIVVbMb|ob)hJJ7ITg>yHAn2i|{2ZJU!cwt9YNDT0=*WO7Bq#Xj zg@FjEaKoolrF8%c;49|`IT&25?O$dq8kp3#la9&6aH z6G|{>^C(>yP7#Dr$aeFyS0Ai_$ILhL43#*mgEl(c*4?Ae;tRL&S7Vc}Szl>B`mBuI zB9Y%xp%CZwlH!3V(`6W4-ZuETssvI&B~_O;CbULfl)X1V%(H7VSPf`_Ka9ak@8A=z z1l|B1QKT}NLI`WVTRd;2En5u{0CRqy9PTi$ja^inu){LJ&E&6W%JJPw#&PaTxpt?k zpC~gjN*22Q8tpGHR|tg~ye#9a8N<%odhZJnk7Oh=(PKfhYfzLAxdE36r<6a?A;rO&ELp_Y?8Pdw(PT^Fxn!eG_|LEbSYoBrsBA|6Fgr zt5LntyusI{Q2fdy=>ditS;}^B;I2MD4=(>7fWt0Jp~y=?VvfvzHvQhj6dyIef46J$ zl4Xu7U9v_NJV?uBBC0!kcTS0UcrV7+@~is?Fi+jrr@l3XwD|uG zr26jUWiv>Ju48Y^#qn7r9mwIH-Pv6Y|V|V-GZ&+&gQ?S?-`&ts{@5GXPqbmyZjUACC&oVXfNwUX0}ba(v978 zp8z!v9~8Zx8qB@7>oFPDm^iR@+yw`79YF)w^OHB_N;&&x7c3l^3!)IY#)}x)@D(iNaOm9 zC=^*!{`7={3*S=%iU=KsPXh=DDZcc``Ss>057i{pdW8M@4q+Ba@Tt%OytH!4>rbIbQw^-pR zGGYNPzw@n=PV@)b7yVbFr;glF*Qq3>F9oBN5PUXt!?2mdGcpv^o1?Thp`jP10G2Yi z(c93td3F3SW!Le5DUwdub!aDKoVLU6g!O?Ret21l$qOC;kdd@L#M&baVu&JZGt&<6 z!VCkvgRaav6QDW2x}tUy4~Y5(B+#Ej-8vM?DM-1?J_*&PntI3E96M!`WL#<&Z5n2u zo`P!~vBT$YOT~gU9#PB)%JZ zcd_u=m^LYzC!pH#W`yA1!(fA;D~b zG#73@l)NNd;n#XrKXZEfab;@kQRnOFU2Th-1m<4mJzlj9b3pv-GF$elX7ib9!uILM_$ke zHIGB*&=5=;ynQA{y7H93%i^d)T}y@(p>8vVhJ4L)M{0Q*@D^+SPp`EW+G6E%+`Z;u zS3goV@Dic7vc5`?!pCN44Ts@*{)zwy)9?B||AM{zKlN4T}qQRL2 zgv+{K8bv7w)#xge16;kI1fU87!W4pX)N&|cq8&i^1r`W|Hg4366r(?-ecEJ9u&Eaw zrhyikXQB>C9d>cpPGiu=VU3Z-u4|0V_iap!_J3o+K_R5EXk@sfu~zHwwYkpncVh!R zqNe7Cmf_|Wmeq4#(mIO&(wCK@b4(x0?W1Qtk(`$?+$uCJCGZm_%k?l32vuShgDFMa ztc`{$8DhB9)&?~(m&EUc=LzI1=qo#zjy#2{hLT_*aj<618qQ7mD#k2ZFGou&69;=2 z1j7=Su8k}{L*h&mfs7jg^PN&9C1Z@U!p6gXk&-7xM~{X`nqH#aGO`;Xy_zbz^rYacIq0AH%4!Oh93TzJ820%ur)8OyeS@K?sF1V(iFO z37Nnqj1z#1{|v7=_CX`lQA|$<1gtuNMHGNJYp1D_k;WQk-b+T6VmUK(x=bWviOZ~T z|4e%SpuaWLWD?qN2%`S*`P;BQBw(B__wTD6epvGdJ+>DBq2oVlf&F*lz+#avb4)3P1c^Mf#olQheVvZ|Z5 z>xXfgmv!5Z^SYn+_x}K5B%G^sRwiez&z9|f!E!#oJlT2kCOV0000$L_|bHBqAarB4TD{W@grX1CUr72@caw0faEd7-K|4L_|cawbojjHdpd6 zI6~Iv5J?-Q4*&oF000000FV;^004t70Z6Qk1Xl{X9oJ{sRC2(cs?- diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js deleted file mode 100644 index 9bcd2fc..0000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ -if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js deleted file mode 100644 index 1664873..0000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js +++ /dev/null @@ -1,5 +0,0 @@ -!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ -r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], -shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; -if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js deleted file mode 100644 index 756cc08..0000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js +++ /dev/null @@ -1,61 +0,0 @@ - $(function() { - var $window = $(window) - , $top_link = $('#toplink') - , $body = $('body, html') - , offset = $('#code').offset().top - , hidePopover = function ($target) { - $target.data('popover-hover', false); - - setTimeout(function () { - if (!$target.data('popover-hover')) { - $target.popover('hide'); - } - }, 300); - }; - - $top_link.hide().click(function(event) { - event.preventDefault(); - $body.animate({scrollTop:0}, 800); - }); - - $window.scroll(function() { - if($window.scrollTop() > offset) { - $top_link.fadeIn(); - } else { - $top_link.fadeOut(); - } - }).scroll(); - - $('.popin') - .popover({trigger: 'manual'}) - .on({ - 'mouseenter.popover': function () { - var $target = $(this); - - $target.data('popover-hover', true); - - // popover already displayed - if ($target.next('.popover').length) { - return; - } - - // show the popover - $target.popover('show'); - - // register mouse events on the popover - $target.next('.popover:not(.popover-initialized)') - .on({ - 'mouseenter': function () { - $target.data('popover-hover', true); - }, - 'mouseleave': function () { - hidePopover($target); - } - }) - .addClass('popover-initialized'); - }, - 'mouseleave.popover': function () { - hidePopover($(this)); - } - }); - }); diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js deleted file mode 100644 index 6bfc844..0000000 --- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/*! - -Holder - client side image placeholders -Version 2.7.1+6hydf -© 2015 Ivan Malopinsky - http://imsky.co - -Site: http://holderjs.com -Issues: https://github.com/imsky/holder/issues -License: http://opensource.org/licenses/MIT - -*/ -!function(a){if(a.document){var b=a.document;b.querySelectorAll||(b.querySelectorAll=function(c){var d,e=b.createElement("style"),f=[];for(b.documentElement.firstChild.appendChild(e),b._qsa=[],e.styleSheet.cssText=c+"{x-qsa:expression(document._qsa && document._qsa.push(this))}",a.scrollBy(0,0),e.parentNode.removeChild(e);b._qsa.length;)d=b._qsa.shift(),d.style.removeAttribute("x-qsa"),f.push(d);return b._qsa=null,f}),b.querySelector||(b.querySelector=function(a){var c=b.querySelectorAll(a);return c.length?c[0]:null}),b.getElementsByClassName||(b.getElementsByClassName=function(a){return a=String(a).replace(/^|\s+/g,"."),b.querySelectorAll(a)}),Object.keys||(Object.keys=function(a){if(a!==Object(a))throw TypeError("Object.keys called on non-object");var b,c=[];for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&c.push(b);return c}),function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a.atob=a.atob||function(a){a=String(a);var c,d=0,e=[],f=0,g=0;if(a=a.replace(/\s/g,""),a.length%4===0&&(a=a.replace(/=+$/,"")),a.length%4===1)throw Error("InvalidCharacterError");if(/[^+/0-9A-Za-z]/.test(a))throw Error("InvalidCharacterError");for(;d>16&255)),e.push(String.fromCharCode(f>>8&255)),e.push(String.fromCharCode(255&f)),g=0,f=0),d+=1;return 12===g?(f>>=4,e.push(String.fromCharCode(255&f))):18===g&&(f>>=2,e.push(String.fromCharCode(f>>8&255)),e.push(String.fromCharCode(255&f))),e.join("")},a.btoa=a.btoa||function(a){a=String(a);var c,d,e,f,g,h,i,j=0,k=[];if(/[^\x00-\xFF]/.test(a))throw Error("InvalidCharacterError");for(;j>2,g=(3&c)<<4|d>>4,h=(15&d)<<2|e>>6,i=63&e,j===a.length+2?(h=64,i=64):j===a.length+1&&(i=64),k.push(b.charAt(f),b.charAt(g),b.charAt(h),b.charAt(i));return k.join("")}}(a),Object.prototype.hasOwnProperty||(Object.prototype.hasOwnProperty=function(a){var b=this.__proto__||this.constructor.prototype;return a in this&&(!(a in b)||b[a]!==this[a])}),function(){if("performance"in a==!1&&(a.performance={}),Date.now=Date.now||function(){return(new Date).getTime()},"now"in a.performance==!1){var b=Date.now();performance.timing&&performance.timing.navigationStart&&(b=performance.timing.navigationStart),a.performance.now=function(){return Date.now()-b}}}(),a.requestAnimationFrame||(a.webkitRequestAnimationFrame?!function(a){a.requestAnimationFrame=function(b){return webkitRequestAnimationFrame(function(){b(a.performance.now())})},a.cancelAnimationFrame=webkitCancelAnimationFrame}(a):a.mozRequestAnimationFrame?!function(a){a.requestAnimationFrame=function(b){return mozRequestAnimationFrame(function(){b(a.performance.now())})},a.cancelAnimationFrame=mozCancelAnimationFrame}(a):!function(a){a.requestAnimationFrame=function(b){return a.setTimeout(b,1e3/60)},a.cancelAnimationFrame=a.clearTimeout}(a))}}(this),function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):"object"==typeof exports?exports.Holder=b():a.Holder=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){(function(b){function d(a,b,c,d){var f=e(c.substr(c.lastIndexOf(a.domain)),a);f&&h({mode:null,el:d,flags:f,engineSettings:b})}function e(a,b){var c={theme:B(J.settings.themes.gray,null),stylesheets:b.stylesheets,instanceOptions:b};return a.match(/([\d]+p?)x([\d]+p?)(?:\?|$)/)?f(a,c):g(a,c)}function f(a,b){var c=a.split("?"),d=c[0].split("/");b.holderURL=a;var e=d[1],f=e.match(/([\d]+p?)x([\d]+p?)/);if(!f)return!1;if(b.fluid=-1!==e.indexOf("p"),b.dimensions={width:f[1].replace("p","%"),height:f[2].replace("p","%")},2===c.length){var g=A.parse(c[1]);if(g.bg&&(b.theme.background=(-1===g.bg.indexOf("#")?"#":"")+g.bg),g.fg&&(b.theme.foreground=(-1===g.fg.indexOf("#")?"#":"")+g.fg),g.theme&&b.instanceOptions.themes.hasOwnProperty(g.theme)&&(b.theme=B(b.instanceOptions.themes[g.theme],null)),g.text&&(b.text=g.text),g.textmode&&(b.textmode=g.textmode),g.size&&(b.size=g.size),g.font&&(b.font=g.font),g.align&&(b.align=g.align),b.nowrap=z.truthy(g.nowrap),b.auto=z.truthy(g.auto),z.truthy(g.random)){J.vars.cache.themeKeys=J.vars.cache.themeKeys||Object.keys(b.instanceOptions.themes);var h=J.vars.cache.themeKeys[0|Math.random()*J.vars.cache.themeKeys.length];b.theme=B(b.instanceOptions.themes[h],null)}}return b}function g(a,b){var c=!1,d=String.fromCharCode(11),e=a.replace(/([^\\])\//g,"$1"+d).split(d),f=/%[0-9a-f]{2}/gi,g=b.instanceOptions;b.holderURL=[];for(var h=e.length,i=0;h>i;i++){var j=e[i];if(j.match(f))try{j=decodeURIComponent(j)}catch(k){j=e[i]}var l=!1;if(J.flags.dimensions.match(j))c=!0,b.dimensions=J.flags.dimensions.output(j),l=!0;else if(J.flags.fluid.match(j))c=!0,b.dimensions=J.flags.fluid.output(j),b.fluid=!0,l=!0;else if(J.flags.textmode.match(j))b.textmode=J.flags.textmode.output(j),l=!0;else if(J.flags.colors.match(j)){var m=J.flags.colors.output(j);b.theme=B(b.theme,m),l=!0}else if(g.themes[j])g.themes.hasOwnProperty(j)&&(b.theme=B(g.themes[j],null)),l=!0;else if(J.flags.font.match(j))b.font=J.flags.font.output(j),l=!0;else if(J.flags.auto.match(j))b.auto=!0,l=!0;else if(J.flags.text.match(j))b.text=J.flags.text.output(j),l=!0;else if(J.flags.size.match(j))b.size=J.flags.size.output(j),l=!0;else if(J.flags.random.match(j)){null==J.vars.cache.themeKeys&&(J.vars.cache.themeKeys=Object.keys(g.themes));var n=J.vars.cache.themeKeys[0|Math.random()*J.vars.cache.themeKeys.length];b.theme=B(g.themes[n],null),l=!0}l&&b.holderURL.push(j)}return b.holderURL.unshift(g.domain),b.holderURL=b.holderURL.join("/"),c?b:!1}function h(a){var b=a.mode,c=a.el,d=a.flags,e=a.engineSettings,f=d.dimensions,g=d.theme,h=f.width+"x"+f.height;if(b=null==b?d.fluid?"fluid":"image":b,null!=d.text&&(g.text=d.text,"object"===c.nodeName.toLowerCase())){for(var j=g.text.split("\\n"),k=0;k1){var n,o=0,p=0,q=0;j=new e.Group("line"+q),("left"===a.align||"right"===a.align)&&(m=a.width*(1-2*(1-J.setup.lineWrapRatio)));for(var r=0;r=m||t===!0)&&(b(g,j,o,g.properties.leading),g.add(j),o=0,p+=g.properties.leading,q+=1,j=new e.Group("line"+q),j.y=p),t!==!0&&(i.moveTo(o,0),o+=h.spaceWidth+s.width,j.add(i))}if(b(g,j,o,g.properties.leading),g.add(j),"left"===a.align)g.moveTo(a.width-l,null,null);else if("right"===a.align){for(n in g.children)j=g.children[n],j.moveTo(a.width-j.width,null,null);g.moveTo(0-(a.width-l),null,null)}else{for(n in g.children)j=g.children[n],j.moveTo((g.width-j.width)/2,null,null);g.moveTo((a.width-g.width)/2,null,null)}g.moveTo(null,(a.height-g.height)/2,null),(a.height-g.height)/2<0&&g.moveTo(null,0,null)}else i=new e.Text(a.text),j=new e.Group("line0"),j.add(i),g.add(j),"left"===a.align?g.moveTo(a.width-l,null,null):"right"===a.align?g.moveTo(0-(a.width-l),null,null):g.moveTo((a.width-h.boundingBox.width)/2,null,null),g.moveTo(null,(a.height-h.boundingBox.height)/2,null);return d}function k(a,b,c){var d=parseInt(a,10),e=parseInt(b,10),f=Math.max(d,e),g=Math.min(d,e),h=.8*Math.min(g,f*J.defaults.scale);return Math.round(Math.max(c,h))}function l(a){var b;b=null==a||null==a.nodeType?J.vars.resizableImages:[a];for(var c=0,d=b.length;d>c;c++){var e=b[c];if(e.holderData){var f=e.holderData.flags,g=D(e);if(g){if(!e.holderData.resizeUpdate)continue;if(f.fluid&&f.auto){var h=e.holderData.fluidConfig;switch(h.mode){case"width":g.height=g.width/h.ratio;break;case"height":g.width=g.height*h.ratio}}var j={mode:"image",holderSettings:{dimensions:g,theme:f.theme,flags:f},el:e,engineSettings:e.holderData.engineSettings};"exact"==f.textmode&&(f.exactDimensions=g,j.holderSettings.dimensions=f.dimensions),i(j)}else p(e)}}}function m(a){if(a.holderData){var b=D(a);if(b){var c=a.holderData.flags,d={fluidHeight:"%"==c.dimensions.height.slice(-1),fluidWidth:"%"==c.dimensions.width.slice(-1),mode:null,initialDimensions:b};d.fluidWidth&&!d.fluidHeight?(d.mode="width",d.ratio=d.initialDimensions.width/parseFloat(c.dimensions.height)):!d.fluidWidth&&d.fluidHeight&&(d.mode="height",d.ratio=parseFloat(c.dimensions.width)/d.initialDimensions.height),a.holderData.fluidConfig=d}else p(a)}}function n(){for(var a,c=[],d=Object.keys(J.vars.invisibleImages),e=0,f=d.length;f>e;e++)a=J.vars.invisibleImages[d[e]],D(a)&&"img"==a.nodeName.toLowerCase()&&(c.push(a),delete J.vars.invisibleImages[d[e]]);c.length&&I.run({images:c}),b.requestAnimationFrame(n)}function o(){J.vars.visibilityCheckStarted||(b.requestAnimationFrame(n),J.vars.visibilityCheckStarted=!0)}function p(a){a.holderData.invisibleId||(J.vars.invisibleId+=1,J.vars.invisibleImages["i"+J.vars.invisibleId]=a,a.holderData.invisibleId=J.vars.invisibleId)}function q(a,b){return null==b?document.createElement(a):document.createElementNS(b,a)}function r(a,b){for(var c in b)a.setAttribute(c,b[c])}function s(a,b,c){var d,e;null==a?(a=q("svg",E),d=q("defs",E),e=q("style",E),r(e,{type:"text/css"}),d.appendChild(e),a.appendChild(d)):e=a.querySelector("style"),a.webkitMatchesSelector&&a.setAttribute("xmlns",E);for(var f=0;f=0;h--){var i=g.createProcessingInstruction("xml-stylesheet",'href="'+f[h]+'" rel="stylesheet"');g.insertBefore(i,g.firstChild)}g.removeChild(g.documentElement),e=d.serializeToString(g)}var j=d.serializeToString(a);return j=j.replace(/\&(\#[0-9]{2,}\;)/g,"&$1"),e+j}}function u(){return b.DOMParser?(new DOMParser).parseFromString("","application/xml"):void 0}function v(a){J.vars.debounceTimer||a.call(this),J.vars.debounceTimer&&b.clearTimeout(J.vars.debounceTimer),J.vars.debounceTimer=b.setTimeout(function(){J.vars.debounceTimer=null,a.call(this)},J.setup.debounce)}function w(){v(function(){l(null)})}var x=c(1),y=c(2),z=c(3),A=c(4),B=z.extend,C=z.getNodeArray,D=z.dimensionCheck,E="http://www.w3.org/2000/svg",F=8,G="2.7.1",H="\nCreated with Holder.js "+G+".\nLearn more at http://holderjs.com\n(c) 2012-2015 Ivan Malopinsky - http://imsky.co\n",I={version:G,addTheme:function(a,b){return null!=a&&null!=b&&(J.settings.themes[a]=b),delete J.vars.cache.themeKeys,this},addImage:function(a,b){var c=document.querySelectorAll(b);if(c.length)for(var d=0,e=c.length;e>d;d++){var f=q("img"),g={};g[J.vars.dataAttr]=a,r(f,g),c[d].appendChild(f)}return this},setResizeUpdate:function(a,b){a.holderData&&(a.holderData.resizeUpdate=!!b,a.holderData.resizeUpdate&&l(a))},run:function(a){a=a||{};var c={},f=B(J.settings,a);J.vars.preempted=!0,J.vars.dataAttr=f.dataAttr||J.vars.dataAttr,c.renderer=f.renderer?f.renderer:J.setup.renderer,-1===J.setup.renderers.join(",").indexOf(c.renderer)&&(c.renderer=J.setup.supportsSVG?"svg":J.setup.supportsCanvas?"canvas":"html");var g=C(f.images),i=C(f.bgnodes),j=C(f.stylenodes),k=C(f.objects);c.stylesheets=[],c.svgXMLStylesheet=!0,c.noFontFallback=f.noFontFallback?f.noFontFallback:!1;for(var l=0;l1){c.nodeValue="";for(var u=0;u=0?b:1)}function f(a){v?e(a):w.push(a)}null==document.readyState&&document.addEventListener&&(document.addEventListener("DOMContentLoaded",function y(){document.removeEventListener("DOMContentLoaded",y,!1),document.readyState="complete"},!1),document.readyState="loading");var g=a.document,h=g.documentElement,i="load",j=!1,k="on"+i,l="complete",m="readyState",n="attachEvent",o="detachEvent",p="addEventListener",q="DOMContentLoaded",r="onreadystatechange",s="removeEventListener",t=p in g,u=j,v=j,w=[];if(g[m]===l)e(b);else if(t)g[p](q,c,j),a[p](i,c,j);else{g[n](r,c),a[n](k,c);try{u=null==a.frameElement&&h}catch(x){}u&&u.doScroll&&!function z(){if(!v){try{u.doScroll("left")}catch(a){return e(z,50)}d(),b()}}()}return f.version="1.4.0",f.isReady=function(){return v},f}a.exports="undefined"!=typeof window&&b(window)},function(a,b,c){var d=c(5),e=function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}var c=1,e=d.defclass({constructor:function(a){c++,this.parent=null,this.children={},this.id=c,this.name="n"+c,null!=a&&(this.name=a),this.x=0,this.y=0,this.z=0,this.width=0,this.height=0},resize:function(a,b){null!=a&&(this.width=a),null!=b&&(this.height=b)},moveTo:function(a,b,c){this.x=null!=a?a:this.x,this.y=null!=b?b:this.y,this.z=null!=c?c:this.z},add:function(a){var b=a.name;if(null!=this.children[b])throw"SceneGraph: child with that name already exists: "+b;this.children[b]=a,a.parent=this}}),f=d(e,function(b){this.constructor=function(){b.constructor.call(this,"root"),this.properties=a}}),g=d(e,function(a){function c(c,d){if(a.constructor.call(this,c),this.properties={fill:"#000"},null!=d)b(this.properties,d);else if(null!=c&&"string"!=typeof c)throw"SceneGraph: invalid node name"}this.Group=d.extend(this,{constructor:c,type:"group"}),this.Rect=d.extend(this,{constructor:c,type:"rect"}),this.Text=d.extend(this,{constructor:function(a){c.call(this),this.properties.text=a},type:"text"})}),h=new f;return this.Shape=g,this.root=h,this};a.exports=e},function(a,b){(function(a){b.extend=function(a,b){var c={};for(var d in a)a.hasOwnProperty(d)&&(c[d]=a[d]);if(null!=b)for(var e in b)b.hasOwnProperty(e)&&(c[e]=b[e]);return c},b.cssProps=function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c+":"+a[c]);return b.join(";")},b.encodeHtmlEntity=function(a){for(var b=[],c=0,d=a.length-1;d>=0;d--)c=a.charCodeAt(d),b.unshift(c>128?["&#",c,";"].join(""):a[d]);return b.join("")},b.getNodeArray=function(b){var c=null;return"string"==typeof b?c=document.querySelectorAll(b):a.NodeList&&b instanceof a.NodeList?c=b:a.Node&&b instanceof a.Node?c=[b]:a.HTMLCollection&&b instanceof a.HTMLCollection?c=b:b instanceof Array?c=b:null===b&&(c=[]),c},b.imageExists=function(a,b){var c=new Image;c.onerror=function(){b.call(this,!1)},c.onload=function(){b.call(this,!0)},c.src=a},b.decodeHtmlEntity=function(a){return a.replace(/&#(\d+);/g,function(a,b){return String.fromCharCode(b)})},b.dimensionCheck=function(a){var b={height:a.clientHeight,width:a.clientWidth};return b.height&&b.width?b:!1},b.truthy=function(a){return"string"==typeof a?"true"===a||"yes"===a||"1"===a||"on"===a||"✓"===a:!!a}}).call(b,function(){return this}())},function(a,b,c){var d=encodeURIComponent,e=decodeURIComponent,f=c(6),g=c(7),h=/(\w+)\[(\d+)\]/,i=/\w+\.\w+/;b.parse=function(a){if("string"!=typeof a)return{};if(a=f(a),""===a)return{};"?"===a.charAt(0)&&(a=a.slice(1));for(var b={},c=a.split("&"),d=0;d