From 9cd40b213de0ea033ee96164c946eab7070f06cc Mon Sep 17 00:00:00 2001 From: hide_d Date: Tue, 28 Jan 2020 00:23:38 +0900 Subject: [PATCH] Revert "composer package update" This reverts commit e979959219e95fc6435ad40f7e60b602f8bbd208. --- composer.json | 4 +- composer.lock | 318 +- composer.phar | Bin 1936666 -> 1849094 bytes vendor/bin/pscss | 12 +- vendor/bin/pscss.bat | 2 +- vendor/catfan/medoo/.github/FUNDING.yml | 3 - .../.github/ISSUE_TEMPLATE/bug_report.md | 19 - vendor/catfan/medoo/LICENSE.md | 2 +- vendor/catfan/medoo/README.md | 10 +- vendor/catfan/medoo/composer.json | 8 +- vendor/catfan/medoo/src/Medoo.php | 712 +--- vendor/composer/ClassLoader.php | 4 +- vendor/composer/autoload_classmap.php | 37 +- vendor/composer/autoload_files.php | 1 - vendor/composer/autoload_psr4.php | 2 +- vendor/composer/autoload_static.php | 48 +- vendor/composer/installed.json | 338 +- vendor/ezyang/htmlpurifier/INSTALL | 36 +- vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 | 2 +- vendor/ezyang/htmlpurifier/NEWS | 34 - vendor/ezyang/htmlpurifier/README.md | 2 +- vendor/ezyang/htmlpurifier/VERSION | 2 +- vendor/ezyang/htmlpurifier/WHATSNEW | 15 +- vendor/ezyang/htmlpurifier/composer.json | 4 +- .../library/HTMLPurifier.includes.php | 2 +- .../htmlpurifier/library/HTMLPurifier.php | 16 +- .../HTMLPurifier/AttrDef/HTML/Bool.php | 4 +- .../library/HTMLPurifier/AttrDef/URI/Host.php | 6 +- .../library/HTMLPurifier/CSSDefinition.php | 52 +- .../library/HTMLPurifier/ChildDef/Custom.php | 2 +- .../library/HTMLPurifier/Config.php | 4 +- .../library/HTMLPurifier/ConfigSchema.php | 2 +- .../HTMLPurifier/ConfigSchema/schema.ser | Bin 24124 -> 15923 bytes .../AutoFormat.RemoveEmpty.RemoveNbsp.txt | 2 +- .../schema/Core.AllowParseManyTags.txt | 12 - .../schema/Core.ColorKeywords.txt | 159 +- .../library/HTMLPurifier/Encoder.php | 2 +- .../library/HTMLPurifier/EntityParser.php | 2 +- .../library/HTMLPurifier/HTMLModule.php | 4 +- .../HTMLPurifier/HTMLModule/SafeScripting.php | 4 +- .../Language/messages/en-x-test.php | 2 - .../Language/messages/en-x-testmini.php | 2 - .../library/HTMLPurifier/Lexer/DOMLex.php | 24 +- .../HTMLPurifier/Printer/ConfigForm.php | 4 +- .../HTMLPurifier/TagTransform/Font.php | 2 +- .../library/HTMLPurifier/VarParser.php | 32 +- .../HTMLPurifier/VarParser/Flexible.php | 10 +- .../ezyang/htmlpurifier/maintenance/.htaccess | 8 +- .../ezyang/htmlpurifier/maintenance/flush.php | 30 + .../ezyang/htmlpurifier/maintenance/flush.sh | 8 - .../maintenance/update-config.php | 34 + .../plugins/phorum/config.default.php | 1 - ...update-for-release => release1-update.php} | 2 +- vendor/ezyang/htmlpurifier/release2-tag.php | 22 + vendor/guzzlehttp/guzzle/.php_cs | 23 - vendor/guzzlehttp/guzzle/CHANGELOG.md | 35 - vendor/guzzlehttp/guzzle/Dockerfile | 18 - vendor/guzzlehttp/guzzle/README.md | 23 +- vendor/guzzlehttp/guzzle/composer.json | 43 +- vendor/guzzlehttp/guzzle/src/Client.php | 101 +- .../guzzlehttp/guzzle/src/ClientInterface.php | 7 +- .../guzzle/src/Cookie/CookieJar.php | 8 +- .../guzzle/src/Cookie/CookieJarInterface.php | 6 +- .../guzzle/src/Cookie/FileCookieJar.php | 3 +- .../guzzle/src/Cookie/SessionCookieJar.php | 1 - .../guzzle/src/Cookie/SetCookie.php | 4 +- .../guzzle/src/Exception/ClientException.php | 4 +- .../guzzle/src/Exception/GuzzleException.php | 30 +- .../Exception/InvalidArgumentException.php | 7 - .../guzzle/src/Exception/RequestException.php | 35 +- .../guzzle/src/Exception/ServerException.php | 4 +- .../Exception/TooManyRedirectsException.php | 4 +- .../src/Exception/TransferException.php | 4 +- .../guzzle/src/Handler/CurlFactory.php | 44 +- .../guzzle/src/Handler/CurlMultiHandler.php | 34 +- .../guzzle/src/Handler/MockHandler.php | 10 +- .../guzzle/src/Handler/StreamHandler.php | 24 +- vendor/guzzlehttp/guzzle/src/HandlerStack.php | 14 +- .../guzzle/src/MessageFormatter.php | 5 - vendor/guzzlehttp/guzzle/src/Middleware.php | 7 +- vendor/guzzlehttp/guzzle/src/Pool.php | 15 +- .../guzzle/src/PrepareBodyMiddleware.php | 5 - .../guzzle/src/RedirectMiddleware.php | 28 +- .../guzzlehttp/guzzle/src/RequestOptions.php | 10 +- .../guzzlehttp/guzzle/src/RetryMiddleware.php | 22 +- .../guzzlehttp/guzzle/src/TransferStats.php | 12 +- vendor/guzzlehttp/guzzle/src/functions.php | 73 +- vendor/guzzlehttp/psr7/CHANGELOG.md | 252 +- vendor/guzzlehttp/psr7/README.md | 8 +- vendor/guzzlehttp/psr7/composer.json | 18 +- vendor/guzzlehttp/psr7/src/AppendStream.php | 16 +- vendor/guzzlehttp/psr7/src/FnStream.php | 9 - vendor/guzzlehttp/psr7/src/InflateStream.php | 2 +- vendor/guzzlehttp/psr7/src/LimitStream.php | 2 +- vendor/guzzlehttp/psr7/src/MessageTrait.php | 60 +- vendor/guzzlehttp/psr7/src/Request.php | 13 +- vendor/guzzlehttp/psr7/src/Response.php | 26 +- vendor/guzzlehttp/psr7/src/Rfc7230.php | 18 - vendor/guzzlehttp/psr7/src/ServerRequest.php | 34 +- vendor/guzzlehttp/psr7/src/Stream.php | 68 +- vendor/guzzlehttp/psr7/src/StreamWrapper.php | 46 +- vendor/guzzlehttp/psr7/src/Uri.php | 124 +- vendor/guzzlehttp/psr7/src/functions.php | 131 +- vendor/{scssphp => leafo}/scssphp/LICENSE.md | 2 +- vendor/{scssphp => leafo}/scssphp/README.md | 8 +- vendor/{scssphp => leafo}/scssphp/bin/pscss | 46 +- vendor/leafo/scssphp/composer.json | 41 + .../scssphp/example/Server.php | 70 +- .../{scssphp => leafo}/scssphp/scss.inc.php | 10 +- .../scssphp/src/Base/Range.php | 6 +- .../{scssphp => leafo}/scssphp/src/Block.php | 13 +- .../{scssphp => leafo}/scssphp/src/Colors.php | 75 +- .../scssphp/src/Compiler.php | 3631 ++++------------- .../scssphp/src/Compiler/Environment.php | 15 +- .../src/Exception/CompilerException.php | 6 +- .../scssphp/src/Exception/ParserException.php | 6 +- .../scssphp/src/Exception/RangeException.php | 6 +- .../scssphp/src/Exception/ServerException.php | 6 +- .../scssphp/src/Formatter.php | 114 +- .../scssphp/src/Formatter/Compact.php | 8 +- .../scssphp/src/Formatter/Compressed.php | 29 +- .../scssphp/src/Formatter/Crunched.php | 29 +- .../scssphp/src/Formatter/Debug.php | 10 +- .../scssphp/src/Formatter/Expanded.php | 12 +- vendor/leafo/scssphp/src/Formatter/Nested.php | 201 + .../scssphp/src/Formatter/OutputBlock.php | 8 +- .../{scssphp => leafo}/scssphp/src/Node.php | 6 +- .../scssphp/src/Node/Number.php | 30 +- .../{scssphp => leafo}/scssphp/src/Parser.php | 1404 ++----- .../src/SourceMap/Base64VLQEncoder.php | 217 + .../src/SourceMap/SourceMapGenerator.php | 80 +- .../{scssphp => leafo}/scssphp/src/Type.php | 6 +- .../{scssphp => leafo}/scssphp/src/Util.php | 16 +- .../scssphp/src/Version.php | 8 +- vendor/monolog/monolog/.php_cs | 59 + vendor/monolog/monolog/CHANGELOG.md | 62 - vendor/monolog/monolog/README.md | 3 +- vendor/monolog/monolog/composer.json | 2 +- vendor/monolog/monolog/doc/01-usage.md | 231 ++ .../doc/02-handlers-formatters-processors.md | 157 + vendor/monolog/monolog/doc/03-utilities.md | 13 + vendor/monolog/monolog/doc/04-extending.md | 76 + vendor/monolog/monolog/doc/sockets.md | 39 + vendor/monolog/monolog/phpunit.xml.dist | 19 + .../monolog/src/Monolog/ErrorHandler.php | 13 +- .../Monolog/Formatter/FluentdFormatter.php | 5 +- .../src/Monolog/Formatter/HtmlFormatter.php | 7 +- .../src/Monolog/Formatter/JsonFormatter.php | 32 +- .../src/Monolog/Formatter/LineFormatter.php | 10 +- .../Monolog/Formatter/MongoDBFormatter.php | 8 +- .../Monolog/Formatter/NormalizerFormatter.php | 153 +- .../Monolog/Formatter/WildfireFormatter.php | 4 +- .../src/Monolog/Handler/AbstractHandler.php | 26 +- .../Handler/AbstractProcessingHandler.php | 2 - .../Monolog/Handler/AbstractSyslogHandler.php | 6 +- .../Monolog/Handler/BrowserConsoleHandler.php | 59 +- .../src/Monolog/Handler/BufferHandler.php | 35 +- .../src/Monolog/Handler/ChromePHPHandler.php | 19 +- .../src/Monolog/Handler/CubeHandler.php | 5 +- .../Monolog/Handler/DeduplicationHandler.php | 2 +- .../Monolog/Handler/ElasticSearchHandler.php | 8 +- .../src/Monolog/Handler/ErrorLogHandler.php | 8 +- .../src/Monolog/Handler/FilterHandler.php | 58 +- .../ActivationStrategyInterface.php | 2 +- .../Monolog/Handler/FingersCrossedHandler.php | 98 +- .../src/Monolog/Handler/FirePHPHandler.php | 2 +- .../src/Monolog/Handler/FlowdockHandler.php | 3 +- .../Handler/FormattableHandlerInterface.php | 39 - .../Handler/FormattableHandlerTrait.php | 63 - .../src/Monolog/Handler/GelfHandler.php | 8 + .../src/Monolog/Handler/GroupHandler.php | 19 +- .../src/Monolog/Handler/HandlerInterface.php | 4 +- .../src/Monolog/Handler/HandlerWrapper.php | 10 +- .../src/Monolog/Handler/HipChatHandler.php | 17 - .../src/Monolog/Handler/IFTTTHandler.php | 11 +- .../src/Monolog/Handler/InsightOpsHandler.php | 62 - .../src/Monolog/Handler/LogEntriesHandler.php | 4 +- .../src/Monolog/Handler/MandrillHandler.php | 2 +- .../src/Monolog/Handler/NewRelicHandler.php | 7 +- .../src/Monolog/Handler/PHPConsoleHandler.php | 3 +- .../Handler/ProcessableHandlerInterface.php | 40 - .../Handler/ProcessableHandlerTrait.php | 73 - .../src/Monolog/Handler/PsrHandler.php | 2 +- .../src/Monolog/Handler/PushoverHandler.php | 6 +- .../src/Monolog/Handler/RavenHandler.php | 14 +- .../src/Monolog/Handler/RedisHandler.php | 3 +- .../src/Monolog/Handler/RollbarHandler.php | 12 - .../Monolog/Handler/RotatingFileHandler.php | 18 +- .../src/Monolog/Handler/SamplingHandler.php | 53 +- .../src/Monolog/Handler/Slack/SlackRecord.php | 19 +- .../src/Monolog/Handler/SlackHandler.php | 8 +- .../Monolog/Handler/SlackWebhookHandler.php | 8 +- .../src/Monolog/Handler/SlackbotHandler.php | 8 +- .../src/Monolog/Handler/SocketHandler.php | 47 +- .../src/Monolog/Handler/StreamHandler.php | 7 +- .../Monolog/Handler/SwiftMailerHandler.php | 16 +- .../src/Monolog/Handler/SyslogHandler.php | 10 +- .../src/Monolog/Handler/SyslogUdpHandler.php | 49 +- .../src/Monolog/Handler/TestHandler.php | 29 +- .../Handler/WhatFailureGroupHandler.php | 11 - .../Monolog/Handler/ZendMonitorHandler.php | 46 +- vendor/monolog/monolog/src/Monolog/Logger.php | 250 +- .../src/Monolog/Processor/GitProcessor.php | 2 +- .../Processor/IntrospectionProcessor.php | 2 +- .../src/Monolog/Processor/MemoryProcessor.php | 6 +- .../Monolog/Processor/MercurialProcessor.php | 2 +- .../Monolog/Processor/ProcessIdProcessor.php | 2 +- .../Monolog/Processor/ProcessorInterface.php | 25 - .../Processor/PsrLogMessageProcessor.php | 6 +- .../src/Monolog/Processor/TagProcessor.php | 2 +- .../src/Monolog/Processor/UidProcessor.php | 17 +- .../src/Monolog/Processor/WebProcessor.php | 2 +- .../src/Monolog/ResettableInterface.php | 31 - .../monolog/src/Monolog/SignalHandler.php | 115 - vendor/monolog/monolog/src/Monolog/Utils.php | 159 - .../tests/Monolog/ErrorHandlerTest.php | 31 + .../Formatter/ChromePHPFormatterTest.php | 158 + .../Formatter/ElasticaFormatterTest.php | 79 + .../Formatter/FlowdockFormatterTest.php | 55 + .../Formatter/FluentdFormatterTest.php | 62 + .../Formatter/GelfMessageFormatterTest.php | 258 ++ .../Monolog/Formatter/JsonFormatterTest.php | 183 + .../Monolog/Formatter/LineFormatterTest.php | 222 + .../Monolog/Formatter/LogglyFormatterTest.php | 40 + .../Formatter/LogstashFormatterTest.php | 333 ++ .../Formatter/MongoDBFormatterTest.php | 262 ++ .../Formatter/NormalizerFormatterTest.php | 423 ++ .../Monolog/Formatter/ScalarFormatterTest.php | 110 + .../Formatter/WildfireFormatterTest.php | 142 + .../Monolog/Handler/AbstractHandlerTest.php | 115 + .../Handler/AbstractProcessingHandlerTest.php | 80 + .../tests/Monolog/Handler/AmqpHandlerTest.php | 136 + .../Handler/BrowserConsoleHandlerTest.php | 130 + .../Monolog/Handler/BufferHandlerTest.php | 158 + .../Monolog/Handler/ChromePHPHandlerTest.php | 156 + .../Monolog/Handler/CouchDBHandlerTest.php | 31 + .../Handler/DeduplicationHandlerTest.php | 165 + .../Handler/DoctrineCouchDBHandlerTest.php | 52 + .../Monolog/Handler/DynamoDbHandlerTest.php | 82 + .../Handler/ElasticSearchHandlerTest.php | 239 ++ .../Monolog/Handler/ErrorLogHandlerTest.php | 66 + .../Monolog/Handler/FilterHandlerTest.php | 170 + .../Handler/FingersCrossedHandlerTest.php | 279 ++ .../Monolog/Handler/FirePHPHandlerTest.php | 96 + .../tests/Monolog/Handler/Fixtures/.gitkeep | 0 .../Monolog/Handler/FleepHookHandlerTest.php | 85 + .../Monolog/Handler/FlowdockHandlerTest.php | 88 + .../Monolog/Handler/GelfHandlerLegacyTest.php | 95 + .../tests/Monolog/Handler/GelfHandlerTest.php | 117 + .../Handler/GelfMockMessagePublisher.php | 25 + .../Monolog/Handler/GroupHandlerTest.php | 112 + .../Monolog/Handler/HandlerWrapperTest.php | 130 + .../Monolog/Handler/HipChatHandlerTest.php | 279 ++ .../Monolog/Handler/LogEntriesHandlerTest.php | 84 + .../tests/Monolog/Handler/MailHandlerTest.php | 75 + .../tests/Monolog/Handler/MockRavenClient.php | 27 + .../Monolog/Handler/MongoDBHandlerTest.php | 65 + .../Handler/NativeMailerHandlerTest.php | 111 + .../Monolog/Handler/NewRelicHandlerTest.php | 200 + .../tests/Monolog/Handler/NullHandlerTest.php | 33 + .../Monolog/Handler/PHPConsoleHandlerTest.php | 273 ++ .../tests/Monolog/Handler/PsrHandlerTest.php | 50 + .../Monolog/Handler/PushoverHandlerTest.php | 141 + .../Monolog/Handler/RavenHandlerTest.php | 255 ++ .../Monolog/Handler/RedisHandlerTest.php | 127 + .../Monolog/Handler/RollbarHandlerTest.php | 84 + .../Handler/RotatingFileHandlerTest.php | 211 + .../Monolog/Handler/SamplingHandlerTest.php | 33 + .../Monolog/Handler/Slack/SlackRecordTest.php | 387 ++ .../Monolog/Handler/SlackHandlerTest.php | 155 + .../Handler/SlackWebhookHandlerTest.php | 107 + .../Monolog/Handler/SlackbotHandlerTest.php | 47 + .../Monolog/Handler/SocketHandlerTest.php | 309 ++ .../Monolog/Handler/StreamHandlerTest.php | 184 + .../Handler/SwiftMailerHandlerTest.php | 113 + .../Monolog/Handler/SyslogHandlerTest.php | 44 + .../Monolog/Handler/SyslogUdpHandlerTest.php | 76 + .../tests/Monolog/Handler/TestHandlerTest.php | 70 + .../tests/Monolog/Handler/UdpSocketTest.php | 64 + .../Handler/WhatFailureGroupHandlerTest.php | 121 + .../Handler/ZendMonitorHandlerTest.php | 69 + .../monolog/tests/Monolog/LoggerTest.php | 548 +++ .../Monolog/Processor/GitProcessorTest.php | 29 + .../Processor/IntrospectionProcessorTest.php | 123 + .../MemoryPeakUsageProcessorTest.php | 42 + .../Processor/MemoryUsageProcessorTest.php | 42 + .../Processor/MercurialProcessorTest.php | 41 + .../Processor/ProcessIdProcessorTest.php | 30 + .../Processor/PsrLogMessageProcessorTest.php | 43 + .../Monolog/Processor/TagProcessorTest.php | 49 + .../Monolog/Processor/UidProcessorTest.php | 33 + .../Monolog/Processor/WebProcessorTest.php | 113 + .../tests/Monolog/PsrLogCompatTest.php | 47 + .../monolog/tests/Monolog/RegistryTest.php | 153 + .../monolog/tests/Monolog/TestCase.php | 58 + vendor/psr/log/Psr/Log/LoggerInterface.php | 2 - vendor/psr/log/Psr/Log/LoggerTrait.php | 2 - vendor/psr/log/Psr/Log/NullLogger.php | 2 - .../log/Psr/Log/Test/LoggerInterfaceTest.php | 8 +- vendor/psr/log/Psr/Log/Test/TestLogger.php | 147 - vendor/psr/log/README.md | 13 - vendor/psr/log/composer.json | 2 +- vendor/ralouphie/getallheaders/LICENSE | 21 - vendor/ralouphie/getallheaders/README.md | 27 - vendor/ralouphie/getallheaders/composer.json | 26 - .../getallheaders/src/getallheaders.php | 46 - vendor/scssphp/scssphp/composer.json | 51 - vendor/scssphp/scssphp/src/Cache.php | 239 -- .../scssphp/scssphp/src/Formatter/Nested.php | 228 -- .../scssphp/scssphp/src/SourceMap/Base64.php | 184 - .../scssphp/src/SourceMap/Base64VLQ.php | 146 - vendor/symfony/lock/.gitattributes | 3 - vendor/symfony/lock/.gitignore | 3 + .../symfony/lock/BlockingStoreInterface.php | 27 - vendor/symfony/lock/CHANGELOG.md | 16 - .../lock/Exception/ExceptionInterface.php | 2 +- .../lock/Exception/InvalidTtlException.php | 19 - vendor/symfony/lock/Factory.php | 10 +- vendor/symfony/lock/Key.php | 13 +- vendor/symfony/lock/LICENSE | 2 +- vendor/symfony/lock/Lock.php | 68 +- vendor/symfony/lock/LockFactory.php | 33 - .../symfony/lock/PersistingStoreInterface.php | 53 - vendor/symfony/lock/Store/CombinedStore.php | 50 +- .../symfony/lock/Store/ExpiringStoreTrait.php | 30 - vendor/symfony/lock/Store/FlockStore.php | 9 +- vendor/symfony/lock/Store/MemcachedStore.php | 51 +- vendor/symfony/lock/Store/PdoStore.php | 363 -- vendor/symfony/lock/Store/RedisStore.php | 68 +- .../symfony/lock/Store/RetryTillSaveStore.php | 15 +- vendor/symfony/lock/Store/SemaphoreStore.php | 13 +- vendor/symfony/lock/Store/StoreFactory.php | 76 +- vendor/symfony/lock/Store/ZookeeperStore.php | 176 - vendor/symfony/lock/StoreInterface.php | 35 +- vendor/symfony/lock/Tests/FactoryTest.php | 36 + vendor/symfony/lock/Tests/LockTest.php | 268 ++ .../Tests/Store/AbstractRedisStoreTest.php | 45 + .../lock/Tests/Store/AbstractStoreTest.php | 115 + .../Tests/Store/BlockingStoreTestTrait.php | 92 + .../lock/Tests/Store/CombinedStoreTest.php | 356 ++ .../Tests/Store/ExpiringStoreTestTrait.php | 107 + .../lock/Tests/Store/FlockStoreTest.php | 78 + .../lock/Tests/Store/MemcachedStoreTest.php | 60 + .../lock/Tests/Store/PredisStoreTest.php | 36 + .../lock/Tests/Store/RedisArrayStoreTest.php | 38 + .../lock/Tests/Store/RedisStoreTest.php | 36 + .../Tests/Store/RetryTillSaveStoreTest.php | 35 + .../lock/Tests/Store/SemaphoreStoreTest.php | 60 + .../Tests/Strategy/ConsensusStrategyTest.php | 89 + .../Tests/Strategy/UnanimousStrategyTest.php | 89 + vendor/symfony/lock/composer.json | 7 +- vendor/symfony/lock/phpunit.xml.dist | 32 + vendor/vlucas/valitron/.github/FUNDING.yml | 1 - vendor/vlucas/valitron/README.md | 948 +---- vendor/vlucas/valitron/composer.json | 4 +- vendor/vlucas/valitron/lang/ar.php | 1 - vendor/vlucas/valitron/lang/az.php | 1 - vendor/vlucas/valitron/lang/bg.php | 1 - vendor/vlucas/valitron/lang/de.php | 1 - vendor/vlucas/valitron/lang/el.php | 1 - vendor/vlucas/valitron/lang/en.php | 68 +- vendor/vlucas/valitron/lang/es.php | 63 +- vendor/vlucas/valitron/lang/fi.php | 1 - vendor/vlucas/valitron/lang/fr.php | 1 - vendor/vlucas/valitron/lang/id.php | 1 - vendor/vlucas/valitron/lang/it.php | 1 - vendor/vlucas/valitron/lang/ja.php | 1 - vendor/vlucas/valitron/lang/ko.php | 1 - vendor/vlucas/valitron/lang/lt.php | 7 +- vendor/vlucas/valitron/lang/lv.php | 1 - vendor/vlucas/valitron/lang/nb.php | 39 - vendor/vlucas/valitron/lang/nl.php | 1 - vendor/vlucas/valitron/lang/nn.php | 35 - vendor/vlucas/valitron/lang/no.php | 33 +- vendor/vlucas/valitron/lang/pl.php | 1 - vendor/vlucas/valitron/lang/pt-br.php | 65 +- vendor/vlucas/valitron/lang/ro.php | 1 - vendor/vlucas/valitron/lang/ru.php | 65 +- vendor/vlucas/valitron/lang/sk.php | 1 - vendor/vlucas/valitron/lang/sv.php | 1 - vendor/vlucas/valitron/lang/th.php | 1 - vendor/vlucas/valitron/lang/tr.php | 1 - vendor/vlucas/valitron/lang/uk.php | 1 - vendor/vlucas/valitron/lang/vi.php | 1 - vendor/vlucas/valitron/lang/zh-cn.php | 1 - vendor/vlucas/valitron/lang/zh-tw.php | 1 - .../valitron/src/Valitron/Validator.php | 509 +-- vendor/xemlock/htmlpurifier-html5/README.md | 32 +- .../xemlock/htmlpurifier-html5/composer.json | 10 +- .../library/HTMLPurifier/AttrDef/Float.php | 116 - .../HTMLPurifier/AttrDef/HTML5/ARel.php | 148 - .../HTMLPurifier/AttrDef/HTML5/Datetime.php | 360 -- .../HTMLPurifier/AttrDef/HTML5/Duration.php | 173 - .../HTMLPurifier/AttrDef/HTML5/Week.php | 47 - .../AttrDef/HTML5/YearlessDate.php | 41 - .../library/HTMLPurifier/AttrDef/Regexp.php | 48 + .../AttrTransform/HTML5/Dialog.php | 19 - .../AttrTransform/HTML5/Progress.php | 38 - .../AttrTransform/HTML5/Script.php | 23 - .../ChildDef/{HTML5 => }/Details.php | 45 +- .../ChildDef/{HTML5 => }/Figure.php | 25 +- .../HTMLPurifier/ChildDef/HTML5/Abstract.php | 70 - .../HTMLPurifier/ChildDef/HTML5/Fieldset.php | 77 - .../HTMLPurifier/ChildDef/HTML5/Script.php | 81 - .../HTMLPurifier/ChildDef/HTML5/Time.php | 68 - .../ChildDef/{HTML5 => }/Media.php | 4 +- .../ChildDef/{HTML5 => }/Picture.php | 8 +- .../library/HTMLPurifier/HTML5Config.php | 45 +- .../library/HTMLPurifier/HTML5Definition.php | 128 +- .../HTMLPurifier/HTMLModule/HTML5/Bdo.php | 44 - .../HTMLPurifier/HTMLModule/HTML5/Edit.php | 32 - .../HTMLPurifier/HTMLModule/HTML5/Forms.php | 69 - .../HTMLModule/HTML5/Hypertext.php | 31 - .../HTMLPurifier/HTMLModule/HTML5/Iframe.php | 60 - .../HTMLModule/HTML5/Interactive.php | 34 - .../HTMLPurifier/HTMLModule/HTML5/List.php | 30 - .../HTMLPurifier/HTMLModule/HTML5/Media.php | 71 - .../HTMLPurifier/HTMLModule/HTML5/Ruby.php | 36 - .../HTMLModule/HTML5/SafeScripting.php | 46 - .../HTMLModule/HTML5/Scripting.php | 49 - .../HTMLPurifier/HTMLModule/HTML5/Text.php | 91 - 421 files changed, 16273 insertions(+), 14007 deletions(-) delete mode 100644 vendor/catfan/medoo/.github/FUNDING.yml delete mode 100644 vendor/catfan/medoo/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowParseManyTags.txt create mode 100644 vendor/ezyang/htmlpurifier/maintenance/flush.php delete mode 100644 vendor/ezyang/htmlpurifier/maintenance/flush.sh create mode 100644 vendor/ezyang/htmlpurifier/maintenance/update-config.php rename vendor/ezyang/htmlpurifier/{update-for-release => release1-update.php} (98%) create mode 100644 vendor/ezyang/htmlpurifier/release2-tag.php delete mode 100644 vendor/guzzlehttp/guzzle/.php_cs delete mode 100644 vendor/guzzlehttp/guzzle/Dockerfile delete mode 100644 vendor/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php delete mode 100644 vendor/guzzlehttp/psr7/src/Rfc7230.php rename vendor/{scssphp => leafo}/scssphp/LICENSE.md (93%) rename vendor/{scssphp => leafo}/scssphp/README.md (81%) rename vendor/{scssphp => leafo}/scssphp/bin/pscss (73%) create mode 100644 vendor/leafo/scssphp/composer.json rename vendor/{scssphp => leafo}/scssphp/example/Server.php (90%) rename vendor/{scssphp => leafo}/scssphp/scss.inc.php (80%) rename vendor/{scssphp => leafo}/scssphp/src/Base/Range.php (85%) rename vendor/{scssphp => leafo}/scssphp/src/Block.php (75%) rename vendor/{scssphp => leafo}/scssphp/src/Colors.php (74%) rename vendor/{scssphp => leafo}/scssphp/src/Compiler.php (52%) rename vendor/{scssphp => leafo}/scssphp/src/Compiler/Environment.php (58%) rename vendor/{scssphp => leafo}/scssphp/src/Exception/CompilerException.php (65%) rename vendor/{scssphp => leafo}/scssphp/src/Exception/ParserException.php (64%) rename vendor/{scssphp => leafo}/scssphp/src/Exception/RangeException.php (64%) rename vendor/{scssphp => leafo}/scssphp/src/Exception/ServerException.php (64%) rename vendor/{scssphp => leafo}/scssphp/src/Formatter.php (63%) rename vendor/{scssphp => leafo}/scssphp/src/Formatter/Compact.php (81%) rename vendor/{scssphp => leafo}/scssphp/src/Formatter/Compressed.php (64%) rename vendor/{scssphp => leafo}/scssphp/src/Formatter/Crunched.php (61%) rename vendor/{scssphp => leafo}/scssphp/src/Formatter/Debug.php (92%) rename vendor/{scssphp => leafo}/scssphp/src/Formatter/Expanded.php (81%) create mode 100644 vendor/leafo/scssphp/src/Formatter/Nested.php rename vendor/{scssphp => leafo}/scssphp/src/Formatter/OutputBlock.php (80%) rename vendor/{scssphp => leafo}/scssphp/src/Node.php (79%) rename vendor/{scssphp => leafo}/scssphp/src/Node/Number.php (93%) rename vendor/{scssphp => leafo}/scssphp/src/Parser.php (57%) create mode 100644 vendor/leafo/scssphp/src/SourceMap/Base64VLQEncoder.php rename vendor/{scssphp => leafo}/scssphp/src/SourceMap/SourceMapGenerator.php (83%) rename vendor/{scssphp => leafo}/scssphp/src/Type.php (94%) rename vendor/{scssphp => leafo}/scssphp/src/Util.php (78%) rename vendor/{scssphp => leafo}/scssphp/src/Version.php (56%) create mode 100644 vendor/monolog/monolog/.php_cs create mode 100644 vendor/monolog/monolog/doc/01-usage.md create mode 100644 vendor/monolog/monolog/doc/02-handlers-formatters-processors.md create mode 100644 vendor/monolog/monolog/doc/03-utilities.md create mode 100644 vendor/monolog/monolog/doc/04-extending.md create mode 100644 vendor/monolog/monolog/doc/sockets.md create mode 100644 vendor/monolog/monolog/phpunit.xml.dist delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/ResettableInterface.php delete mode 100644 vendor/monolog/monolog/src/Monolog/SignalHandler.php delete mode 100644 vendor/monolog/monolog/src/Monolog/Utils.php create mode 100644 vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/Fixtures/.gitkeep create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/LoggerTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/RegistryTest.php create mode 100644 vendor/monolog/monolog/tests/Monolog/TestCase.php delete mode 100644 vendor/psr/log/Psr/Log/Test/TestLogger.php delete mode 100644 vendor/ralouphie/getallheaders/LICENSE delete mode 100644 vendor/ralouphie/getallheaders/README.md delete mode 100644 vendor/ralouphie/getallheaders/composer.json delete mode 100644 vendor/ralouphie/getallheaders/src/getallheaders.php delete mode 100644 vendor/scssphp/scssphp/composer.json delete mode 100644 vendor/scssphp/scssphp/src/Cache.php delete mode 100644 vendor/scssphp/scssphp/src/Formatter/Nested.php delete mode 100644 vendor/scssphp/scssphp/src/SourceMap/Base64.php delete mode 100644 vendor/scssphp/scssphp/src/SourceMap/Base64VLQ.php delete mode 100644 vendor/symfony/lock/.gitattributes create mode 100644 vendor/symfony/lock/.gitignore delete mode 100644 vendor/symfony/lock/BlockingStoreInterface.php delete mode 100644 vendor/symfony/lock/Exception/InvalidTtlException.php delete mode 100644 vendor/symfony/lock/LockFactory.php delete mode 100644 vendor/symfony/lock/PersistingStoreInterface.php delete mode 100644 vendor/symfony/lock/Store/ExpiringStoreTrait.php delete mode 100644 vendor/symfony/lock/Store/PdoStore.php delete mode 100644 vendor/symfony/lock/Store/ZookeeperStore.php create mode 100644 vendor/symfony/lock/Tests/FactoryTest.php create mode 100644 vendor/symfony/lock/Tests/LockTest.php create mode 100644 vendor/symfony/lock/Tests/Store/AbstractRedisStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Store/AbstractStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Store/BlockingStoreTestTrait.php create mode 100644 vendor/symfony/lock/Tests/Store/CombinedStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Store/ExpiringStoreTestTrait.php create mode 100644 vendor/symfony/lock/Tests/Store/FlockStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Store/MemcachedStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Store/PredisStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Store/RedisArrayStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Store/RedisStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Store/RetryTillSaveStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Store/SemaphoreStoreTest.php create mode 100644 vendor/symfony/lock/Tests/Strategy/ConsensusStrategyTest.php create mode 100644 vendor/symfony/lock/Tests/Strategy/UnanimousStrategyTest.php create mode 100644 vendor/symfony/lock/phpunit.xml.dist delete mode 100644 vendor/vlucas/valitron/.github/FUNDING.yml delete mode 100644 vendor/vlucas/valitron/lang/nb.php delete mode 100644 vendor/vlucas/valitron/lang/nn.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/Float.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/ARel.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/Datetime.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/Duration.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/Week.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/YearlessDate.php create mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/Regexp.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrTransform/HTML5/Dialog.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrTransform/HTML5/Progress.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrTransform/HTML5/Script.php rename vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/{HTML5 => }/Details.php (65%) rename vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/{HTML5 => }/Figure.php (69%) delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Abstract.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Fieldset.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Script.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Time.php rename vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/{HTML5 => }/Media.php (96%) rename vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/{HTML5 => }/Picture.php (83%) delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Bdo.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Edit.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Forms.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Hypertext.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Iframe.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Interactive.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/List.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Media.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Ruby.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/SafeScripting.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Scripting.php delete mode 100644 vendor/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Text.php diff --git a/composer.json b/composer.json index 89f435c9..abac4455 100644 --- a/composer.json +++ b/composer.json @@ -11,14 +11,14 @@ "sergeytsalkov/meekrodb": "^2.3", "league/plates": "^3.3", "guzzlehttp/guzzle": "^6.3", - "scssphp/scssphp": "^1.0", + "leafo/scssphp": "^0.7.5", "monolog/monolog": "^1.23", "firephp/firephp-core": "^0.4.0", "vlucas/valitron": "^1.4", "php-extended/php-tail": "^2.1", "pguardiario/phpuri": "^1.0", "symfony/lock": "^4.1", - "ezyang/htmlpurifier": "^4.12", + "ezyang/htmlpurifier": "^4.10", "xemlock/htmlpurifier-html5": "^0.1.7", "catfan/medoo": "^1.5" }, diff --git a/composer.lock b/composer.lock index 40782c04..38688521 100644 --- a/composer.lock +++ b/composer.lock @@ -1,10 +1,10 @@ { "_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", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "b3449508d08a0a23e0b942d060b5b5b1", + "content-hash": "3fceaf3c2925068c7e757ab12036e29e", "packages": [ { "name": "brandonwamboldt/utilphp", @@ -54,16 +54,16 @@ }, { "name": "catfan/medoo", - "version": "v1.7.8", + "version": "v1.5.7", "source": { "type": "git", "url": "https://github.com/catfan/Medoo.git", - "reference": "dd9d570584cfb1e09ec470608479b86e41d5b60d" + "reference": "8d90cba0e8ff176028847527d0ea76fe41a06ecf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/catfan/Medoo/zipball/dd9d570584cfb1e09ec470608479b86e41d5b60d", - "reference": "dd9d570584cfb1e09ec470608479b86e41d5b60d", + "url": "https://api.github.com/repos/catfan/Medoo/zipball/8d90cba0e8ff176028847527d0ea76fe41a06ecf", + "reference": "8d90cba0e8ff176028847527d0ea76fe41a06ecf", "shasum": "" }, "require": { @@ -77,7 +77,7 @@ "ext-pdo_oci8": "For Oracle version 8 database", "ext-pdo_pqsql": "For PostgreSQL database", "ext-pdo_sqlite": "For SQLite database", - "ext-pdo_sqlsrv": "For MSSQL database on both Window/Liunx platform" + "ext-pdo_sqlsrv": "For MSSQL database" }, "type": "framework", "autoload": { @@ -95,11 +95,10 @@ "email": "angel@catfan.me" } ], - "description": "The lightweight PHP database framework to accelerate development", + "description": "The lightest PHP database framework to accelerate development", "homepage": "https://medoo.in", "keywords": [ "database", - "database library", "lightweight", "mariadb", "mssql", @@ -110,27 +109,27 @@ "sql", "sqlite" ], - "time": "2019-12-19T05:04:34+00:00" + "time": "2018-06-14T18:59:08+00:00" }, { "name": "ezyang/htmlpurifier", - "version": "v4.12.0", + "version": "v4.10.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "a617e55bc62a87eec73bd456d146d134ad716f03" + "reference": "d85d39da4576a6934b72480be6978fb10c860021" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/a617e55bc62a87eec73bd456d146d134ad716f03", - "reference": "a617e55bc62a87eec73bd456d146d134ad716f03", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d85d39da4576a6934b72480be6978fb10c860021", + "reference": "d85d39da4576a6934b72480be6978fb10c860021", "shasum": "" }, "require": { "php": ">=5.2" }, "require-dev": { - "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd" + "simpletest/simpletest": "^1.1" }, "type": "library", "autoload": { @@ -143,7 +142,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1-or-later" + "LGPL" ], "authors": [ { @@ -157,7 +156,7 @@ "keywords": [ "html" ], - "time": "2019-10-28T03:44:26+00:00" + "time": "2018-02-23T01:58:20+00:00" }, { "name": "firephp/firephp-core", @@ -197,46 +196,44 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.2", + "version": "6.3.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "43ece0e75098b7ecd8d13918293029e555a50f82" + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/43ece0e75098b7ecd8d13918293029e555a50f82", - "reference": "43ece0e75098b7ecd8d13918293029e555a50f82", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", "shasum": "" }, "require": { - "ext-json": "*", "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.6.1", + "guzzlehttp/psr7": "^1.4", "php": ">=5.5" }, "require-dev": { "ext-curl": "*", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.1" + "psr/log": "^1.0" }, "suggest": { - "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.5-dev" + "dev-master": "6.3-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -260,7 +257,7 @@ "rest", "web service" ], - "time": "2019-12-23T11:57:10+00:00" + "time": "2018-04-22T15:46:56+00:00" }, { "name": "guzzlehttp/promises", @@ -315,37 +312,32 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.6.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a" + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", "shasum": "" }, "require": { "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "psr/http-message": "~1.0" }, "provide": { "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" - }, - "suggest": { - "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" + "phpunit/phpunit": "~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -375,14 +367,65 @@ "keywords": [ "http", "message", - "psr-7", "request", "response", "stream", "uri", "url" ], - "time": "2019-07-01T23:21:34+00:00" + "time": "2017-03-20T17:10:46+00:00" + }, + { + "name": "leafo/scssphp", + "version": "v0.7.7", + "source": { + "type": "git", + "url": "https://github.com/leafo/scssphp.git", + "reference": "1d656f8c02a3a69404bba6b28ec4e06edddf0f49" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/leafo/scssphp/zipball/1d656f8c02a3a69404bba6b28ec4e06edddf0f49", + "reference": "1d656f8c02a3a69404bba6b28ec4e06edddf0f49", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.6", + "squizlabs/php_codesniffer": "~2.5" + }, + "bin": [ + "bin/pscss" + ], + "type": "library", + "autoload": { + "psr-4": { + "Leafo\\ScssPhp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Leaf Corcoran", + "email": "leafot@gmail.com", + "homepage": "http://leafo.net" + } + ], + "description": "scssphp is a compiler for SCSS written in PHP.", + "homepage": "http://leafo.github.io/scssphp/", + "keywords": [ + "css", + "less", + "sass", + "scss", + "stylesheet" + ], + "time": "2018-07-22T01:22:08+00:00" }, { "name": "league/plates", @@ -441,16 +484,16 @@ }, { "name": "monolog/monolog", - "version": "1.25.3", + "version": "1.23.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1" + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1", - "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", "shasum": "" }, "require": { @@ -515,7 +558,7 @@ "logging", "psr-3" ], - "time": "2019-12-20T14:15:16+00:00" + "time": "2017-06-19T01:22:40+00:00" }, { "name": "pguardiario/phpuri", @@ -677,16 +720,16 @@ }, { "name": "psr/log", - "version": "1.1.2", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", "shasum": "" }, "require": { @@ -695,7 +738,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -720,108 +763,7 @@ "psr", "psr-3" ], - "time": "2019-11-01T11:05:21+00:00" - }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "type": "library", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders.", - "time": "2019-03-08T08:55:37+00:00" - }, - { - "name": "scssphp/scssphp", - "version": "1.0.6", - "source": { - "type": "git", - "url": "https://github.com/scssphp/scssphp.git", - "reference": "5b3c9d704950d8f9637f5110c36c281ec47dc13c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/scssphp/scssphp/zipball/5b3c9d704950d8f9637f5110c36c281ec47dc13c", - "reference": "5b3c9d704950d8f9637f5110c36c281ec47dc13c", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "php": ">=5.6.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3", - "squizlabs/php_codesniffer": "~2.5", - "twbs/bootstrap": "~4.3", - "zurb/foundation": "~6.5" - }, - "bin": [ - "bin/pscss" - ], - "type": "library", - "autoload": { - "psr-4": { - "ScssPhp\\ScssPhp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthon Pang", - "email": "apang@softwaredevelopment.ca", - "homepage": "https://github.com/robocoder" - }, - { - "name": "Cédric Morin", - "email": "cedric@yterium.com", - "homepage": "https://github.com/Cerdic" - } - ], - "description": "scssphp is a compiler for SCSS written in PHP.", - "homepage": "http://scssphp.github.io/scssphp/", - "keywords": [ - "css", - "less", - "sass", - "scss", - "stylesheet" - ], - "time": "2019-12-12T05:00:52+00:00" + "time": "2016-10-10T12:19:37+00:00" }, { "name": "sergeytsalkov/meekrodb", @@ -868,34 +810,29 @@ }, { "name": "symfony/lock", - "version": "v4.4.3", + "version": "v4.1.1", "source": { "type": "git", "url": "https://github.com/symfony/lock.git", - "reference": "6c4f5b620871cfef5b004fc57f2ca74572ae03b3" + "reference": "d508b5dd92272cb74300396ecaadde969d0f7976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/6c4f5b620871cfef5b004fc57f2ca74572ae03b3", - "reference": "6c4f5b620871cfef5b004fc57f2ca74572ae03b3", + "url": "https://api.github.com/repos/symfony/lock/zipball/d508b5dd92272cb74300396ecaadde969d0f7976", + "reference": "d508b5dd92272cb74300396ecaadde969d0f7976", "shasum": "" }, "require": { "php": "^7.1.3", "psr/log": "~1.0" }, - "conflict": { - "doctrine/dbal": "<2.5" - }, "require-dev": { - "doctrine/dbal": "~2.5", - "mongodb/mongodb": "~1.1", "predis/predis": "~1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -911,13 +848,13 @@ "MIT" ], "authors": [ - { - "name": "Jérémy Derussé", - "email": "jeremy@derusse.com" - }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" + }, + { + "name": "Jérémy Derussé", + "email": "jeremy@derusse.com" } ], "description": "Symfony Lock Component", @@ -930,20 +867,20 @@ "redlock", "semaphore" ], - "time": "2020-01-04T13:00:46+00:00" + "time": "2018-06-21T11:15:46+00:00" }, { "name": "vlucas/valitron", - "version": "v1.4.7", + "version": "v1.4.3", "source": { "type": "git", "url": "https://github.com/vlucas/valitron.git", - "reference": "a03072bed1679660200766d134507a30193eaf6d" + "reference": "3c5463315bfa23b17f8949b100a960d035234e43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/valitron/zipball/a03072bed1679660200766d134507a30193eaf6d", - "reference": "a03072bed1679660200766d134507a30193eaf6d", + "url": "https://api.github.com/repos/vlucas/valitron/zipball/3c5463315bfa23b17f8949b100a960d035234e43", + "reference": "3c5463315bfa23b17f8949b100a960d035234e43", "shasum": "" }, "require": { @@ -979,29 +916,28 @@ "validation", "validator" ], - "time": "2019-08-29T19:49:43+00:00" + "time": "2018-05-06T10:45:26+00:00" }, { "name": "xemlock/htmlpurifier-html5", - "version": "v0.1.11", + "version": "v0.1.7", "source": { "type": "git", "url": "https://github.com/xemlock/htmlpurifier-html5.git", - "reference": "f0d563f9fd4a82a3d759043483f9a94c0d8c2255" + "reference": "b4b35e51ec75e0207c23035f7d9a354bdcdac359" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/xemlock/htmlpurifier-html5/zipball/f0d563f9fd4a82a3d759043483f9a94c0d8c2255", - "reference": "f0d563f9fd4a82a3d759043483f9a94c0d8c2255", + "url": "https://api.github.com/repos/xemlock/htmlpurifier-html5/zipball/b4b35e51ec75e0207c23035f7d9a354bdcdac359", + "reference": "b4b35e51ec75e0207c23035f7d9a354bdcdac359", "shasum": "" }, "require": { - "ezyang/htmlpurifier": "^4.8", + "ezyang/htmlpurifier": "^4.7", "php": ">=5.2" }, "require-dev": { - "php-coveralls/php-coveralls": "^1.1|^2.1", - "phpunit/phpunit": ">=4.7 <8.0" + "phpunit/phpunit": "4.7.*|5.7.*" }, "type": "library", "autoload": { @@ -1019,18 +955,8 @@ "email": "xemlock@gmail.com" } ], - "description": "HTML5 element definitions for HTML Purifier", - "keywords": [ - "HTML5", - "Purifier", - "html", - "htmlpurifier", - "security", - "tidy", - "validator", - "xss" - ], - "time": "2019-08-07T17:19:21+00:00" + "description": "HTML Purifier definitions for HTML5 elements", + "time": "2018-06-07T14:30:17+00:00" } ], "packages-dev": [], diff --git a/composer.phar b/composer.phar index 57fce9576e23b4da0126bc16c90492bbb87ab6d3..4055d874a1a1f195c0a08966e4e0e9dbaaf0a5e0 100644 GIT binary patch delta 54293 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 Kue~O)D*I1}B*(D; delta 114705 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 I=5+3F00wzPF#rGn diff --git a/vendor/bin/pscss b/vendor/bin/pscss index 2879dcb9..9539281c 100644 --- a/vendor/bin/pscss +++ b/vendor/bin/pscss @@ -1,14 +1,10 @@ #!/usr/bin/env sh -dir=$(cd "${0%[/\\]*}" > /dev/null; cd "../scssphp/scssphp/bin" && pwd) +dir=$(cd "${0%[/\\]*}" > /dev/null; cd "../leafo/scssphp/bin" && pwd) -if [ -d /proc/cygdrive ]; then - case $(which php) in - $(readlink -n /proc/cygdrive)/*) - # We are in Cygwin using Windows php, so the path must be translated - dir=$(cygpath -m "$dir"); - ;; - esac +if [ -d /proc/cygdrive ] && [[ $(which php) == $(readlink -n /proc/cygdrive)/* ]]; then + # We are in Cgywin using Windows php, so the path must be translated + dir=$(cygpath -m "$dir"); fi "${dir}/pscss" "$@" diff --git a/vendor/bin/pscss.bat b/vendor/bin/pscss.bat index 1e368dc9..cadaeea9 100644 --- a/vendor/bin/pscss.bat +++ b/vendor/bin/pscss.bat @@ -1,4 +1,4 @@ @ECHO OFF setlocal DISABLEDELAYEDEXPANSION -SET BIN_TARGET=%~dp0/../scssphp/scssphp/bin/pscss +SET BIN_TARGET=%~dp0/../leafo/scssphp/bin/pscss php "%BIN_TARGET%" %* diff --git a/vendor/catfan/medoo/.github/FUNDING.yml b/vendor/catfan/medoo/.github/FUNDING.yml deleted file mode 100644 index d3400156..00000000 --- a/vendor/catfan/medoo/.github/FUNDING.yml +++ /dev/null @@ -1,3 +0,0 @@ -# These are supported funding model platforms - -open_collective: medoo diff --git a/vendor/catfan/medoo/.github/ISSUE_TEMPLATE/bug_report.md b/vendor/catfan/medoo/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 160e7e0f..00000000 --- a/vendor/catfan/medoo/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**Information** -- Version of Medoo: -- Type of Database (MySQL, MSSQL, SQLite...): -- System (Liunx\Windows\Mac): - -**Detail Code** -The detail code causes the problem. - -**Expected output** -A clear and concise description of what output you expected. diff --git a/vendor/catfan/medoo/LICENSE.md b/vendor/catfan/medoo/LICENSE.md index e63dae83..a681c880 100644 --- a/vendor/catfan/medoo/LICENSE.md +++ b/vendor/catfan/medoo/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 Angel Lai +Copyright (c) 2018 Angel Lai Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/catfan/medoo/README.md b/vendor/catfan/medoo/README.md index 5288a756..f31e1d06 100644 --- a/vendor/catfan/medoo/README.md +++ b/vendor/catfan/medoo/README.md @@ -6,11 +6,9 @@ Total Downloads Latest Stable Version License - Backers on Open Collective - Sponsors on Open Collective

-> The lightweight PHP database framework to accelerate development +> The Lightest PHP database framework to accelerate development ## Features @@ -28,7 +26,7 @@ ## Requirement -PHP 5.4+ and PDO extension installed, recommend PHP 7.0+ +PHP 5.4+ and PDO extension installed ## Get Started @@ -36,7 +34,7 @@ PHP 5.4+ and PDO extension installed, recommend PHP 7.0+ Add Medoo to composer.json configuration file. ``` -$ composer require catfan/medoo +$ composer require catfan/Medoo ``` And update the composer @@ -45,7 +43,7 @@ $ composer update ``` ```php -// If you installed via composer, just use this code to require autoloader on the top of your projects. +// If you installed via composer, just use this code to requrie autoloader on the top of your projects. require 'vendor/autoload.php'; // Using Medoo namespace diff --git a/vendor/catfan/medoo/composer.json b/vendor/catfan/medoo/composer.json index 2bb0d08f..39c1a9de 100644 --- a/vendor/catfan/medoo/composer.json +++ b/vendor/catfan/medoo/composer.json @@ -1,8 +1,8 @@ { "name": "catfan/medoo", "type": "framework", - "description": "The lightweight PHP database framework to accelerate development", - "keywords": ["database", "database library", "lightweight", "PHP framework", "SQL", "MySQL", "MSSQL", "SQLite", "PostgreSQL", "MariaDB", "Oracle"], + "description": "The lightest PHP database framework to accelerate development", + "keywords": ["database", "lightweight", "PHP framework", "SQL", "MySQL", "MSSQL", "SQLite", "PostgreSQL", "MariaDB", "Oracle"], "homepage": "https://medoo.in", "license": "MIT", "support": { @@ -18,10 +18,10 @@ }, "suggest": { "ext-pdo_mysql": "For MySQL or MariaDB database", - "ext-pdo_sqlsrv": "For MSSQL database on both Window/Liunx platform", + "ext-pdo_sqlsrv": "For MSSQL database", "ext-pdo_dblib": "For MSSQL or Sybase database on Linux/UNIX platform", "ext-pdo_oci": "For Oracle database", - "ext-pdo_oci8": "For Oracle version 8 database", + "ext-pdo_oci8": "For Oracle version 8 database", "ext-pdo_pqsql": "For PostgreSQL database", "ext-pdo_sqlite": "For SQLite database" }, diff --git a/vendor/catfan/medoo/src/Medoo.php b/vendor/catfan/medoo/src/Medoo.php index ae3cf41e..b97b8b8c 100644 --- a/vendor/catfan/medoo/src/Medoo.php +++ b/vendor/catfan/medoo/src/Medoo.php @@ -2,9 +2,9 @@ /*! * Medoo database framework * https://medoo.in - * Version 1.7.8 + * Version 1.5.7 * - * Copyright 2019, Angel Lai + * Copyright 2018, Angel Lai * Released under the MIT license */ @@ -13,7 +13,6 @@ namespace Medoo; use PDO; use Exception; use PDOException; -use InvalidArgumentException; class Raw { public $map; @@ -30,7 +29,7 @@ class Medoo protected $statement; - protected $dsn; + protected $option = []; protected $logs = []; @@ -40,18 +39,16 @@ class Medoo protected $guid = 0; - protected $errorInfo = null; - - public function __construct(array $options) + public function __construct($options = null) { + if (!is_array($options)) + { + return false; + } + if (isset($options[ 'database_type' ])) { $this->type = strtolower($options[ 'database_type' ]); - - if ($this->type === 'mariadb') - { - $this->type = 'mysql'; - } } if (isset($options[ 'prefix' ])) @@ -59,47 +56,23 @@ class Medoo $this->prefix = $options[ 'prefix' ]; } + if (isset($options[ 'option' ])) + { + $this->option = $options[ 'option' ]; + } + if (isset($options[ 'logging' ]) && is_bool($options[ 'logging' ])) { $this->logging = $options[ 'logging' ]; } - $option = isset($options[ 'option' ]) ? $options[ 'option' ] : []; - $commands = (isset($options[ 'command' ]) && is_array($options[ 'command' ])) ? $options[ 'command' ] : []; - - switch ($this->type) + if (isset($options[ 'command' ]) && is_array($options[ 'command' ])) { - case 'mysql': - // Make MySQL using standard quoted identifier - $commands[] = 'SET SQL_MODE=ANSI_QUOTES'; - - break; - - case 'mssql': - // Keep MSSQL QUOTED_IDENTIFIER is ON for standard quoting - $commands[] = 'SET QUOTED_IDENTIFIER ON'; - - // Make ANSI_NULLS is ON for NULL value - $commands[] = 'SET ANSI_NULLS ON'; - - break; + $commands = $options[ 'command' ]; } - - if (isset($options[ 'pdo' ])) + else { - if (!$options[ 'pdo' ] instanceof PDO) - { - throw new InvalidArgumentException('Invalid PDO object supplied'); - } - - $this->pdo = $options[ 'pdo' ]; - - foreach ($commands as $value) - { - $this->pdo->exec($value); - } - - return; + $commands = []; } if (isset($options[ 'dsn' ])) @@ -110,7 +83,7 @@ class Medoo } else { - throw new InvalidArgumentException('Invalid DSN option supplied'); + return false; } } else @@ -127,6 +100,7 @@ class Medoo switch ($this->type) { + case 'mariadb': case 'mysql': $attr = [ 'driver' => 'mysql', @@ -147,6 +121,8 @@ class Medoo } } + // Make MySQL using standard quoted identifier + $commands[] = 'SET SQL_MODE=ANSI_QUOTES'; break; case 'pgsql': @@ -200,16 +176,6 @@ class Medoo 'host' => $options[ 'server' ] . ($is_port ? ':' . $port : ''), 'dbname' => $options[ 'database_name' ] ]; - - if (isset($options[ 'appname' ])) - { - $attr[ 'appname' ] = $options[ 'appname' ]; - } - - if (isset($options[ 'charset' ])) - { - $attr[ 'charset' ] = $options[ 'charset' ]; - } } else { @@ -218,46 +184,13 @@ class Medoo 'Server' => $options[ 'server' ] . ($is_port ? ',' . $port : ''), 'Database' => $options[ 'database_name' ] ]; - - if (isset($options[ 'appname' ])) - { - $attr[ 'APP' ] = $options[ 'appname' ]; - } - - $config = [ - 'ApplicationIntent', - 'AttachDBFileName', - 'Authentication', - 'ColumnEncryption', - 'ConnectionPooling', - 'Encrypt', - 'Failover_Partner', - 'KeyStoreAuthentication', - 'KeyStorePrincipalId', - 'KeyStoreSecret', - 'LoginTimeout', - 'MultipleActiveResultSets', - 'MultiSubnetFailover', - 'Scrollable', - 'TraceFile', - 'TraceOn', - 'TransactionIsolation', - 'TransparentNetworkIPResolution', - 'TrustServerCertificate', - 'WSID', - ]; - - foreach ($config as $value) - { - $keyname = strtolower(preg_replace(['/([a-z\d])([A-Z])/', '/([^_])([A-Z][a-z])/'], '$1_$2', $value)); - - if (isset($options[ $keyname ])) - { - $attr[ $value ] = $options[ $keyname ]; - } - } } + // Keep MSSQL QUOTED_IDENTIFIER is ON for standard quoting + $commands[] = 'SET QUOTED_IDENTIFIER ON'; + + // Make ANSI_NULLS is ON for NULL value + $commands[] = 'SET ANSI_NULLS ON'; break; case 'sqlite': @@ -270,18 +203,8 @@ class Medoo } } - if (!isset($attr)) - { - throw new InvalidArgumentException('Incorrect connection options'); - } - $driver = $attr[ 'driver' ]; - if (!in_array($driver, PDO::getAvailableDrivers())) - { - throw new InvalidArgumentException("Unsupported PDO driver: {$driver}"); - } - unset($attr[ 'driver' ]); $stack = []; @@ -291,27 +214,22 @@ class Medoo $stack[] = is_int($key) ? $value : $key . '=' . $value; } - $dsn = $driver . ':' . implode(';', $stack); + $dsn = $driver . ':' . implode($stack, ';'); if ( - in_array($this->type, ['mysql', 'pgsql', 'sybase', 'mssql']) && + in_array($this->type, ['mariadb', 'mysql', 'pgsql', 'sybase', 'mssql']) && isset($options[ 'charset' ]) ) { - $commands[] = "SET NAMES '{$options[ 'charset' ]}'" . ( - $this->type === 'mysql' && isset($options[ 'collation' ]) ? - " COLLATE '{$options[ 'collation' ]}'" : '' - ); + $commands[] = "SET NAMES '" . $options[ 'charset' ] . "'"; } - $this->dsn = $dsn; - try { $this->pdo = new PDO( $dsn, isset($options[ 'username' ]) ? $options[ 'username' ] : null, isset($options[ 'password' ]) ? $options[ 'password' ] : null, - $option + $this->option ); foreach ($commands as $value) @@ -324,6 +242,18 @@ class Medoo } } + public function __call($name, $arguments) + { + $aggregation = ['avg', 'count', 'max', 'min', 'sum']; + + if (in_array($name, $aggregation)) + { + array_unshift($arguments, $name); + + return call_user_func_array([$this, 'aggregate'], $arguments); + } + } + public function query($query, $map = []) { $raw = $this->raw($query, $map); @@ -335,8 +265,6 @@ class Medoo public function exec($query, $map = []) { - $this->statement = null; - if ($this->debug_mode) { echo $this->generate($query, $map); @@ -357,37 +285,28 @@ class Medoo $statement = $this->pdo->prepare($query); - if (!$statement) + if ($statement) { - $this->errorInfo = $this->pdo->errorInfo(); - $this->statement = null; + foreach ($map as $key => $value) + { + $statement->bindValue($key, $value[ 0 ], $value[ 1 ]); + } - return false; + $statement->execute(); + + $this->statement = $statement; + + return $statement; } - $this->statement = $statement; - - foreach ($map as $key => $value) - { - $statement->bindValue($key, $value[ 0 ], $value[ 1 ]); - } - - $execute = $statement->execute(); - - $this->errorInfo = $statement->errorInfo(); - - if (!$execute) - { - $this->statement = null; - } - - return $statement; + return false; } protected function generate($query, $map) { $identifier = [ 'mysql' => '`$1`', + 'mariadb' => '`$1`', 'mssql' => '[$1]' ]; @@ -477,11 +396,6 @@ class Medoo protected function tableQuote($table) { - if (!preg_match('/^[a-zA-Z0-9_]+$/i', $table)) - { - throw new InvalidArgumentException("Incorrect table name \"$table\""); - } - return '"' . $this->prefix . $table . '"'; } @@ -516,11 +430,6 @@ class Medoo protected function columnQuote($string) { - if (!preg_match('/^[a-zA-Z0-9_]+(\.?[a-zA-Z0-9_]+)?$/i', $string)) - { - throw new InvalidArgumentException("Incorrect column name \"$string\""); - } - if (strpos($string, '.') !== false) { return '"' . $this->prefix . str_replace('.', '"."', $string) . '"'; @@ -529,7 +438,7 @@ class Medoo return '"' . $string . '"'; } - protected function columnPush(&$columns, &$map, $root, $is_join = false) + protected function columnPush(&$columns, &$map) { if ($columns === '*') { @@ -545,34 +454,23 @@ class Medoo foreach ($columns as $key => $value) { - if (!is_int($key) && is_array($value) && $root && count(array_keys($columns)) === 1) + if (is_array($value)) { - $stack[] = $this->columnQuote($key); - - $stack[] = $this->columnPush($value, $map, false, $is_join); - } - elseif (is_array($value)) - { - $stack[] = $this->columnPush($value, $map, false, $is_join); + $stack[] = $this->columnPush($value, $map); } elseif (!is_int($key) && $raw = $this->buildRaw($value, $map)) { preg_match('/(?[a-zA-Z0-9_\.]+)(\s*\[(?(String|Bool|Int|Number))\])?/i', $key, $match); - $stack[] = $raw . ' AS ' . $this->columnQuote($match[ 'column' ]); + $stack[] = $raw . ' AS ' . $this->columnQuote( $match[ 'column' ] ); } elseif (is_int($key) && is_string($value)) { - if ($is_join && strpos($value, '*') !== false) - { - throw new InvalidArgumentException('Cannot use table.* to select all columns while joining table'); - } - preg_match('/(?[a-zA-Z0-9_\.]+)(?:\s*\((?[a-zA-Z0-9_]+)\))?(?:\s*\[(?(?:String|Bool|Int|Number|Object|JSON))\])?/i', $value, $match); if (!empty($match[ 'alias' ])) { - $stack[] = $this->columnQuote($match[ 'column' ]) . ' AS ' . $this->columnQuote($match[ 'alias' ]); + $stack[] = $this->columnQuote( $match[ 'column' ] ) . ' AS ' . $this->columnQuote( $match[ 'alias' ] ); $columns[ $key ] = $match[ 'alias' ]; @@ -583,12 +481,12 @@ class Medoo } else { - $stack[] = $this->columnQuote($match[ 'column' ]); + $stack[] = $this->columnQuote( $match[ 'column' ] ); } } } - return implode(',', $stack); + return implode($stack, ','); } protected function arrayQuote($array) @@ -600,7 +498,7 @@ class Medoo $stack[] = is_int($value) ? $value : $this->pdo->quote($value); } - return implode(',', $stack); + return implode($stack, ','); } protected function innerConjunct($data, $map, $conjunctor, $outer_conjunctor) @@ -662,7 +560,7 @@ class Medoo if (is_numeric($value)) { $condition .= $map_key; - $map[ $map_key ] = [$value, is_float($value) ? PDO::PARAM_STR : PDO::PARAM_INT]; + $map[ $map_key ] = [$value, PDO::PARAM_INT]; } elseif ($raw = $this->buildRaw($value, $map)) { @@ -689,10 +587,8 @@ class Medoo foreach ($value as $index => $item) { - $stack_key = $map_key . $index . '_i'; - - $placeholders[] = $stack_key; - $map[ $stack_key ] = $this->typeMap($item, gettype($item)); + $placeholders[] = $map_key . $index . '_i'; + $map[ $map_key . $index . '_i' ] = $this->typeMap($item, gettype($item)); } $stack[] = $column . ' NOT IN (' . implode(', ', $placeholders) . ')'; @@ -739,7 +635,7 @@ class Medoo { $item = strval($item); - if (!preg_match('/(\[.+\]|[\*\?\!\%#^-_]|%.+|.+%)/', $item)) + if (!preg_match('/(\[.+\]|_|%.+|.+%)/', $item)) { $item = '%' . $item . '%'; } @@ -786,10 +682,8 @@ class Medoo foreach ($value as $index => $item) { - $stack_key = $map_key . $index . '_i'; - - $placeholders[] = $stack_key; - $map[ $stack_key ] = $this->typeMap($item, gettype($item)); + $placeholders[] = $map_key . $index . '_i'; + $map[ $map_key . $index . '_i' ] = $this->typeMap($item, gettype($item)); } $stack[] = $column . ' IN (' . implode(', ', $placeholders) . ')'; @@ -834,7 +728,7 @@ class Medoo $where_clause = ' WHERE ' . $this->dataImplode($conditions, $map, ' AND'); } - if (isset($where[ 'MATCH' ]) && $this->type === 'mysql') + if (isset($where[ 'MATCH' ])) { $MATCH = $where[ 'MATCH' ]; @@ -854,7 +748,7 @@ class Medoo $mode = ' ' . $mode_array[ $MATCH[ 'mode' ] ]; } - $columns = implode(', ', array_map([$this, 'columnQuote'], $MATCH[ 'columns' ])); + $columns = implode(array_map([$this, 'columnQuote'], $MATCH[ 'columns' ]), ', '); $map_key = $this->mapKey(); $map[ $map_key ] = [$MATCH[ 'keyword' ], PDO::PARAM_STR]; @@ -875,7 +769,7 @@ class Medoo $stack[] = $this->columnQuote($value); } - $where_clause .= ' GROUP BY ' . implode(',', $stack); + $where_clause .= ' GROUP BY ' . implode($stack, ','); } elseif ($raw = $this->buildRaw($GROUP, $map)) { @@ -923,7 +817,7 @@ class Medoo } } - $where_clause .= ' ORDER BY ' . implode(',', $stack); + $where_clause .= ' ORDER BY ' . implode($stack, ','); } elseif ($raw = $this->buildRaw($ORDER, $map)) { @@ -1000,7 +894,6 @@ class Medoo $table_query = $table; } - $is_join = false; $join_key = is_array($join) ? array_keys($join) : null; if ( @@ -1008,8 +901,67 @@ class Medoo strpos($join_key[ 0 ], '[') === 0 ) { - $is_join = true; - $table_query .= ' ' . $this->buildJoin($table, $join); + $table_join = []; + + $join_array = [ + '>' => 'LEFT', + '<' => 'RIGHT', + '<>' => 'FULL', + '><' => 'INNER' + ]; + + foreach($join as $sub_table => $relation) + { + preg_match('/(\[(?\<\>?|\>\[a-zA-Z0-9_]+)\s?(\((?[a-zA-Z0-9_]+)\))?/', $sub_table, $match); + + if ($match[ 'join' ] !== '' && $match[ 'table' ] !== '') + { + if (is_string($relation)) + { + $relation = 'USING ("' . $relation . '")'; + } + + if (is_array($relation)) + { + // For ['column1', 'column2'] + if (isset($relation[ 0 ])) + { + $relation = 'USING ("' . implode($relation, '", "') . '")'; + } + else + { + $joins = []; + + foreach ($relation as $key => $value) + { + $joins[] = ( + strpos($key, '.') > 0 ? + // For ['tableB.column' => 'column'] + $this->columnQuote($key) : + + // For ['column1' => 'column2'] + $table . '."' . $key . '"' + ) . + ' = ' . + $this->tableQuote(isset($match[ 'alias' ]) ? $match[ 'alias' ] : $match[ 'table' ]) . '."' . $value . '"'; + } + + $relation = 'ON ' . implode($joins, ' AND '); + } + } + + $table_name = $this->tableQuote($match[ 'table' ]) . ' '; + + if (isset($match[ 'alias' ])) + { + $table_name .= 'AS ' . $this->tableQuote($match[ 'alias' ]) . ' '; + } + + $table_join[] = $join_array[ $match[ 'join' ] ] . ' JOIN ' . $table_name . $relation; + } + } + + $table_query .= ' ' . implode($table_join, ' '); } else { @@ -1047,10 +999,6 @@ class Medoo $where = $columns; } } - elseif ($raw = $this->buildRaw($column_fn, $map)) - { - $column = $raw; - } else { if (empty($columns) || $this->isRaw($columns)) @@ -1059,83 +1007,18 @@ class Medoo $where = $join; } - $column = $column_fn . '(' . $this->columnPush($columns, $map, true) . ')'; + $column = $column_fn . '(' . $this->columnPush($columns, $map) . ')'; } } else { - $column = $this->columnPush($columns, $map, true, $is_join); + $column = $this->columnPush($columns, $map); } return 'SELECT ' . $column . ' FROM ' . $table_query . $this->whereClause($where, $map); } - protected function buildJoin($table, $join) - { - $table_join = []; - - $join_array = [ - '>' => 'LEFT', - '<' => 'RIGHT', - '<>' => 'FULL', - '><' => 'INNER' - ]; - - foreach($join as $sub_table => $relation) - { - preg_match('/(\[(?\<\>?|\>\[a-zA-Z0-9_]+)\s?(\((?[a-zA-Z0-9_]+)\))?/', $sub_table, $match); - - if ($match[ 'join' ] !== '' && $match[ 'table' ] !== '') - { - if (is_string($relation)) - { - $relation = 'USING ("' . $relation . '")'; - } - - if (is_array($relation)) - { - // For ['column1', 'column2'] - if (isset($relation[ 0 ])) - { - $relation = 'USING ("' . implode('", "', $relation) . '")'; - } - else - { - $joins = []; - - foreach ($relation as $key => $value) - { - $joins[] = ( - strpos($key, '.') > 0 ? - // For ['tableB.column' => 'column'] - $this->columnQuote($key) : - - // For ['column1' => 'column2'] - $table . '."' . $key . '"' - ) . - ' = ' . - $this->tableQuote(isset($match[ 'alias' ]) ? $match[ 'alias' ] : $match[ 'table' ]) . '."' . $value . '"'; - } - - $relation = 'ON ' . implode(' AND ', $joins); - } - } - - $table_name = $this->tableQuote($match[ 'table' ]) . ' '; - - if (isset($match[ 'alias' ])) - { - $table_name .= 'AS ' . $this->tableQuote($match[ 'alias' ]) . ' '; - } - - $table_join[] = $join_array[ $match[ 'join' ] ] . ' JOIN ' . $table_name . $relation; - } - } - - return implode(' ', $table_join); - } - - protected function columnMap($columns, &$stack, $root) + protected function columnMap($columns, &$stack) { if ($columns === '*') { @@ -1178,52 +1061,15 @@ class Medoo } elseif (!is_int($key) && is_array($value)) { - if ($root && count(array_keys($columns)) === 1) - { - $stack[ $key ] = [$key, 'String']; - } - - $this->columnMap($value, $stack, false); + $this->columnMap($value, $stack); } } return $stack; } - protected function dataMap($data, $columns, $column_map, &$stack, $root, &$result) + protected function dataMap($data, $columns, $column_map, &$stack) { - if ($root) - { - $columns_key = array_keys($columns); - - if (count($columns_key) === 1 && is_array($columns[$columns_key[0]])) - { - $index_key = array_keys($columns)[0]; - $data_key = preg_replace("/^[a-zA-Z0-9_]+\./i", "", $index_key); - - $current_stack = []; - - foreach ($data as $item) - { - $this->dataMap($data, $columns[ $index_key ], $column_map, $current_stack, false, $result); - - $index = $data[ $data_key ]; - - $result[ $index ] = $current_stack; - } - } - else - { - $current_stack = []; - - $this->dataMap($data, $columns, $column_map, $current_stack, false, $result); - - $result[] = $current_stack; - } - - return; - } - foreach ($columns as $key => $value) { $isRaw = $this->isRaw($value); @@ -1234,7 +1080,7 @@ class Medoo $column_key = $map[ 0 ]; - $item = $data[ $column_key ]; + $result = $data[ $column_key ]; if (isset($map[ 1 ])) { @@ -1243,7 +1089,7 @@ class Medoo continue; } - if (is_null($item)) + if (is_null($result)) { $stack[ $column_key ] = null; continue; @@ -1252,103 +1098,50 @@ class Medoo switch ($map[ 1 ]) { case 'Number': - $stack[ $column_key ] = (double) $item; + $stack[ $column_key ] = (double) $result; break; case 'Int': - $stack[ $column_key ] = (int) $item; + $stack[ $column_key ] = (int) $result; break; case 'Bool': - $stack[ $column_key ] = (bool) $item; + $stack[ $column_key ] = (bool) $result; break; case 'Object': - $stack[ $column_key ] = unserialize($item); + $stack[ $column_key ] = unserialize($result); break; case 'JSON': - $stack[ $column_key ] = json_decode($item, true); + $stack[ $column_key ] = json_decode($result, true); break; case 'String': - $stack[ $column_key ] = $item; + $stack[ $column_key ] = $result; break; } } else { - $stack[ $column_key ] = $item; + $stack[ $column_key ] = $result; } } else { $current_stack = []; - $this->dataMap($data, $value, $column_map, $current_stack, false, $result); + $this->dataMap($data, $value, $column_map, $current_stack); $stack[ $key ] = $current_stack; } } } - public function create($table, $columns, $options = null) - { - $stack = []; - - $tableName = $this->prefix . $table; - - foreach ($columns as $name => $definition) - { - if (is_int($name)) - { - $stack[] = preg_replace('/\<([a-zA-Z0-9_]+)\>/i', '"$1"', $definition); - } - elseif (is_array($definition)) - { - $stack[] = $name . ' ' . implode(' ', $definition); - } - elseif (is_string($definition)) - { - $stack[] = $name . ' ' . $this->query($definition); - } - } - - $table_option = ''; - - if (is_array($options)) - { - $option_stack = []; - - foreach ($options as $key => $value) - { - if (is_string($value) || is_int($value)) - { - $option_stack[] = "$key = $value"; - } - } - - $table_option = ' ' . implode(', ', $option_stack); - } - elseif (is_string($options)) - { - $table_option = ' ' . $options; - } - - return $this->exec("CREATE TABLE IF NOT EXISTS $tableName (" . implode(', ', $stack) . ")$table_option"); - } - - public function drop($table) - { - $tableName = $this->prefix . $table; - - return $this->exec("DROP TABLE IF EXISTS $tableName"); - } - public function select($table, $join, $columns = null, $where = null) { $map = []; - $result = []; + $stack = []; $column_map = []; $index = 0; @@ -1359,9 +1152,9 @@ class Medoo $query = $this->exec($this->selectContext($table, $map, $join, $columns, $where), $map); - $this->columnMap($columns, $column_map, true); + $this->columnMap($columns, $column_map); - if (!$this->statement) + if (!$query) { return false; } @@ -1371,27 +1164,23 @@ class Medoo return $query->fetchAll(PDO::FETCH_ASSOC); } + if ($is_single) + { + return $query->fetchAll(PDO::FETCH_COLUMN); + } + while ($data = $query->fetch(PDO::FETCH_ASSOC)) { $current_stack = []; - $this->dataMap($data, $columns, $column_map, $current_stack, true, $result); + $this->dataMap($data, $columns, $column_map, $current_stack); + + $stack[ $index ] = $current_stack; + + $index++; } - if ($is_single) - { - $single_result = []; - $result_key = $column_map[ $column ][ 0 ]; - - foreach ($result as $item) - { - $single_result[] = $item[ $result_key ]; - } - - return $single_result; - } - - return $result; + return $stack; } public function insert($table, $datas) @@ -1428,7 +1217,7 @@ class Medoo continue; } - $map_key = $this->mapKey(); + $map_key =$this->mapKey(); $values[] = $map_key; @@ -1468,7 +1257,7 @@ class Medoo } } - $stack[] = '(' . implode(', ', $values) . ')'; + $stack[] = '(' . implode($values, ', ') . ')'; } foreach ($columns as $key) @@ -1584,9 +1373,8 @@ class Medoo public function get($table, $join = null, $columns = null, $where = null) { $map = []; - $result = []; + $stack = []; $column_map = []; - $current_stack = []; if ($where === null) { @@ -1603,31 +1391,33 @@ class Medoo $query = $this->exec($this->selectContext($table, $map, $join, $columns, $where) . ' LIMIT 1', $map); - if (!$this->statement) + if ($query) { + $data = $query->fetchAll(PDO::FETCH_ASSOC); + + if (isset($data[ 0 ])) + { + if ($column === '*') + { + return $data[ 0 ]; + } + + $this->columnMap($columns, $column_map); + + $this->dataMap($data[ 0 ], $columns, $column_map, $stack); + + if ($is_single) + { + return $stack[ $column_map[ $column ][ 0 ] ]; + } + + return $stack; + } + return false; } - $data = $query->fetchAll(PDO::FETCH_ASSOC); - - if (isset($data[ 0 ])) - { - if ($column === '*') - { - return $data[ 0 ]; - } - - $this->columnMap($columns, $column_map, true); - - $this->dataMap($data[ 0 ], $columns, $column_map, $current_stack, true, $result); - - if ($is_single) - { - return $result[ 0 ][ $column_map[ $column ][ 0 ] ]; - } - - return $result[ 0 ]; - } + return false; } public function has($table, $join, $where = null) @@ -1635,66 +1425,16 @@ class Medoo $map = []; $column = null; - if ($this->type === 'mssql') + $query = $this->exec('SELECT EXISTS(' . $this->selectContext($table, $map, $join, $column, $where, 1) . ')', $map); + + if ($query) { - $query = $this->exec($this->selectContext($table, $map, $join, $column, $where, Medoo::raw('TOP 1 1')), $map); - } - else - { - $query = $this->exec('SELECT EXISTS(' . $this->selectContext($table, $map, $join, $column, $where, 1) . ')', $map); + $result = $query->fetchColumn(); + + return $result === '1' || $result === true; } - if (!$this->statement) - { - return false; - } - - $result = $query->fetchColumn(); - - return $result === '1' || $result === 1 || $result === true; - } - - public function rand($table, $join = null, $columns = null, $where = null) - { - $type = $this->type; - - $order = 'RANDOM()'; - - if ($type === 'mysql') - { - $order = 'RAND()'; - } - elseif ($type === 'mssql') - { - $order = 'NEWID()'; - } - - $order_raw = $this->raw($order); - - if ($where === null) - { - if ($columns === null) - { - $columns = [ - 'ORDER' => $order_raw - ]; - } - else - { - $column = $join; - unset($columns[ 'ORDER' ]); - - $columns[ 'ORDER' ] = $order_raw; - } - } - else - { - unset($where[ 'ORDER' ]); - - $where[ 'ORDER' ] = $order_raw; - } - - return $this->select($table, $join, $columns, $where); + return false; } private function aggregate($type, $table, $join = null, $column = null, $where = null) @@ -1703,39 +1443,14 @@ class Medoo $query = $this->exec($this->selectContext($table, $map, $join, $column, $where, strtoupper($type)), $map); - if (!$this->statement) + if ($query) { - return false; + $number = $query->fetchColumn(); + + return is_numeric($number) ? $number + 0 : $number; } - $number = $query->fetchColumn(); - - return is_numeric($number) ? $number + 0 : $number; - } - - public function count($table, $join = null, $column = null, $where = null) - { - return $this->aggregate('count', $table, $join, $column, $where); - } - - public function avg($table, $join, $column = null, $where = null) - { - return $this->aggregate('avg', $table, $join, $column, $where); - } - - public function max($table, $join, $column = null, $where = null) - { - return $this->aggregate('max', $table, $join, $column, $where); - } - - public function min($table, $join, $column = null, $where = null) - { - return $this->aggregate('min', $table, $join, $column, $where); - } - - public function sum($table, $join, $column = null, $where = null) - { - return $this->aggregate('sum', $table, $join, $column, $where); + return false; } public function action($actions) @@ -1770,30 +1485,22 @@ class Medoo public function id() { - if ($this->statement == null) - { - return null; - } - $type = $this->type; if ($type === 'oracle') { return 0; } + elseif ($type === 'mssql') + { + return $this->pdo->query('SELECT SCOPE_IDENTITY()')->fetchColumn(); + } elseif ($type === 'pgsql') { return $this->pdo->query('SELECT LASTVAL()')->fetchColumn(); } - $lastId = $this->pdo->lastInsertId(); - - if ($lastId != "0" && $lastId != "") - { - return $lastId; - } - - return null; + return $this->pdo->lastInsertId(); } public function debug() @@ -1805,7 +1512,7 @@ class Medoo public function error() { - return $this->errorInfo; + return $this->statement ? $this->statement->errorInfo() : null; } public function last() @@ -1840,8 +1547,7 @@ class Medoo $output[ $key ] = @$this->pdo->getAttribute(constant('PDO::ATTR_' . $value)); } - $output[ 'dsn' ] = $this->dsn; - return $output; } -} \ No newline at end of file +} +?> \ No newline at end of file diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index fce8549f..dc02dfb1 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -279,7 +279,7 @@ class ClassLoader */ public function setApcuPrefix($apcuPrefix) { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; } /** @@ -377,7 +377,7 @@ class ClassLoader $subPath = $class; while (false !== $lastPos = strrpos($subPath, '\\')) { $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; + $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 13991c13..f698c3fd 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -11,40 +11,19 @@ return array( 'DBTransaction' => $vendorDir . '/sergeytsalkov/meekrodb/db.class.php', 'FB' => $vendorDir . '/firephp/firephp-core/lib/FirePHPCore/fb.php', 'FirePHP' => $vendorDir . '/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php', - 'HTMLPurifier_AttrDef_Float' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/Float.php', - 'HTMLPurifier_AttrDef_HTML5_ARel' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/ARel.php', - 'HTMLPurifier_AttrDef_HTML5_Datetime' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/Datetime.php', - 'HTMLPurifier_AttrDef_HTML5_Duration' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/Duration.php', - 'HTMLPurifier_AttrDef_HTML5_Week' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/Week.php', - 'HTMLPurifier_AttrDef_HTML5_YearlessDate' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/YearlessDate.php', 'HTMLPurifier_AttrDef_HTML_Bool2' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML/Bool2.php', - 'HTMLPurifier_AttrTransform_HTML5_Dialog' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrTransform/HTML5/Dialog.php', - 'HTMLPurifier_AttrTransform_HTML5_Progress' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrTransform/HTML5/Progress.php', - 'HTMLPurifier_AttrTransform_HTML5_Script' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrTransform/HTML5/Script.php', - 'HTMLPurifier_ChildDef_HTML5_Abstract' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Abstract.php', - 'HTMLPurifier_ChildDef_HTML5_Details' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Details.php', - 'HTMLPurifier_ChildDef_HTML5_Fieldset' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Fieldset.php', - 'HTMLPurifier_ChildDef_HTML5_Figure' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Figure.php', - 'HTMLPurifier_ChildDef_HTML5_Media' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Media.php', - 'HTMLPurifier_ChildDef_HTML5_Picture' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Picture.php', - 'HTMLPurifier_ChildDef_HTML5_Script' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Script.php', - 'HTMLPurifier_ChildDef_HTML5_Time' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Time.php', + 'HTMLPurifier_AttrDef_Regexp' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/Regexp.php', + 'HTMLPurifier_ChildDef_Details' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/Details.php', + 'HTMLPurifier_ChildDef_Figure' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/Figure.php', + 'HTMLPurifier_ChildDef_Media' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/Media.php', + 'HTMLPurifier_ChildDef_Picture' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/Picture.php', 'HTMLPurifier_HTML5Config' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTML5Config.php', 'HTMLPurifier_HTML5Definition' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTML5Definition.php', - 'HTMLPurifier_HTMLModule_HTML5_Bdo' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Bdo.php', - 'HTMLPurifier_HTMLModule_HTML5_Edit' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Edit.php', - 'HTMLPurifier_HTMLModule_HTML5_Forms' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Forms.php', - 'HTMLPurifier_HTMLModule_HTML5_Hypertext' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Hypertext.php', - 'HTMLPurifier_HTMLModule_HTML5_Iframe' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Iframe.php', - 'HTMLPurifier_HTMLModule_HTML5_Interactive' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Interactive.php', - 'HTMLPurifier_HTMLModule_HTML5_List' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/List.php', - 'HTMLPurifier_HTMLModule_HTML5_Media' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Media.php', - 'HTMLPurifier_HTMLModule_HTML5_Ruby' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Ruby.php', - 'HTMLPurifier_HTMLModule_HTML5_SafeScripting' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/SafeScripting.php', - 'HTMLPurifier_HTMLModule_HTML5_Scripting' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Scripting.php', - 'HTMLPurifier_HTMLModule_HTML5_Text' => $vendorDir . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Text.php', 'MeekroDB' => $vendorDir . '/sergeytsalkov/meekrodb/db.class.php', 'MeekroDBEval' => $vendorDir . '/sergeytsalkov/meekrodb/db.class.php', 'MeekroDBException' => $vendorDir . '/sergeytsalkov/meekrodb/db.class.php', 'WhereClause' => $vendorDir . '/sergeytsalkov/meekrodb/db.class.php', + 'kakao\\KakaoKey' => $baseDir . '/d_setting/KakaoKey.php', + 'sammo\\RootDB' => $baseDir . '/d_setting/RootDB.php', + 'sammo\\ServConfig' => $baseDir . '/d_setting/ServConfig.php', ); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index e8faaee3..c61c1246 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -6,7 +6,6 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', '2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 9f668b24..9bd88669 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -10,7 +10,6 @@ return array( 'kakao\\' => array($baseDir . '/src/kakao'), 'Valitron\\' => array($vendorDir . '/vlucas/valitron/src/Valitron'), 'Symfony\\Component\\Lock\\' => array($vendorDir . '/symfony/lock'), - 'ScssPhp\\ScssPhp\\' => array($vendorDir . '/scssphp/scssphp/src'), 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), 'PhpExtended\\Tail\\' => array($vendorDir . '/php-extended/php-tail/src'), @@ -18,6 +17,7 @@ return array( 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'), 'Medoo\\' => array($vendorDir . '/catfan/medoo/src'), 'League\\Plates\\' => array($vendorDir . '/league/plates/src'), + 'Leafo\\ScssPhp\\' => array($vendorDir . '/leafo/scssphp/src'), 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 3f96f6c6..85e66636 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -7,7 +7,6 @@ namespace Composer\Autoload; class ComposerStaticInit67b09c83b85c3bc0027caefe5bba171a { public static $files = array ( - '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', '2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', @@ -32,7 +31,6 @@ class ComposerStaticInit67b09c83b85c3bc0027caefe5bba171a 'S' => array ( 'Symfony\\Component\\Lock\\' => 23, - 'ScssPhp\\ScssPhp\\' => 16, ), 'P' => array ( @@ -49,6 +47,7 @@ class ComposerStaticInit67b09c83b85c3bc0027caefe5bba171a 'L' => array ( 'League\\Plates\\' => 14, + 'Leafo\\ScssPhp\\' => 14, ), 'G' => array ( @@ -75,10 +74,6 @@ class ComposerStaticInit67b09c83b85c3bc0027caefe5bba171a array ( 0 => __DIR__ . '/..' . '/symfony/lock', ), - 'ScssPhp\\ScssPhp\\' => - array ( - 0 => __DIR__ . '/..' . '/scssphp/scssphp/src', - ), 'Psr\\Log\\' => array ( 0 => __DIR__ . '/..' . '/psr/log/Psr/Log', @@ -107,6 +102,10 @@ class ComposerStaticInit67b09c83b85c3bc0027caefe5bba171a array ( 0 => __DIR__ . '/..' . '/league/plates/src', ), + 'Leafo\\ScssPhp\\' => + array ( + 0 => __DIR__ . '/..' . '/leafo/scssphp/src', + ), 'GuzzleHttp\\Psr7\\' => array ( 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src', @@ -144,42 +143,21 @@ class ComposerStaticInit67b09c83b85c3bc0027caefe5bba171a 'DBTransaction' => __DIR__ . '/..' . '/sergeytsalkov/meekrodb/db.class.php', 'FB' => __DIR__ . '/..' . '/firephp/firephp-core/lib/FirePHPCore/fb.php', 'FirePHP' => __DIR__ . '/..' . '/firephp/firephp-core/lib/FirePHPCore/FirePHP.class.php', - 'HTMLPurifier_AttrDef_Float' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/Float.php', - 'HTMLPurifier_AttrDef_HTML5_ARel' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/ARel.php', - 'HTMLPurifier_AttrDef_HTML5_Datetime' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/Datetime.php', - 'HTMLPurifier_AttrDef_HTML5_Duration' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/Duration.php', - 'HTMLPurifier_AttrDef_HTML5_Week' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/Week.php', - 'HTMLPurifier_AttrDef_HTML5_YearlessDate' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML5/YearlessDate.php', 'HTMLPurifier_AttrDef_HTML_Bool2' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/HTML/Bool2.php', - 'HTMLPurifier_AttrTransform_HTML5_Dialog' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrTransform/HTML5/Dialog.php', - 'HTMLPurifier_AttrTransform_HTML5_Progress' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrTransform/HTML5/Progress.php', - 'HTMLPurifier_AttrTransform_HTML5_Script' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrTransform/HTML5/Script.php', - 'HTMLPurifier_ChildDef_HTML5_Abstract' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Abstract.php', - 'HTMLPurifier_ChildDef_HTML5_Details' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Details.php', - 'HTMLPurifier_ChildDef_HTML5_Fieldset' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Fieldset.php', - 'HTMLPurifier_ChildDef_HTML5_Figure' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Figure.php', - 'HTMLPurifier_ChildDef_HTML5_Media' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Media.php', - 'HTMLPurifier_ChildDef_HTML5_Picture' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Picture.php', - 'HTMLPurifier_ChildDef_HTML5_Script' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Script.php', - 'HTMLPurifier_ChildDef_HTML5_Time' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/HTML5/Time.php', + 'HTMLPurifier_AttrDef_Regexp' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/AttrDef/Regexp.php', + 'HTMLPurifier_ChildDef_Details' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/Details.php', + 'HTMLPurifier_ChildDef_Figure' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/Figure.php', + 'HTMLPurifier_ChildDef_Media' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/Media.php', + 'HTMLPurifier_ChildDef_Picture' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/ChildDef/Picture.php', 'HTMLPurifier_HTML5Config' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTML5Config.php', 'HTMLPurifier_HTML5Definition' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTML5Definition.php', - 'HTMLPurifier_HTMLModule_HTML5_Bdo' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Bdo.php', - 'HTMLPurifier_HTMLModule_HTML5_Edit' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Edit.php', - 'HTMLPurifier_HTMLModule_HTML5_Forms' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Forms.php', - 'HTMLPurifier_HTMLModule_HTML5_Hypertext' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Hypertext.php', - 'HTMLPurifier_HTMLModule_HTML5_Iframe' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Iframe.php', - 'HTMLPurifier_HTMLModule_HTML5_Interactive' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Interactive.php', - 'HTMLPurifier_HTMLModule_HTML5_List' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/List.php', - 'HTMLPurifier_HTMLModule_HTML5_Media' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Media.php', - 'HTMLPurifier_HTMLModule_HTML5_Ruby' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Ruby.php', - 'HTMLPurifier_HTMLModule_HTML5_SafeScripting' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/SafeScripting.php', - 'HTMLPurifier_HTMLModule_HTML5_Scripting' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Scripting.php', - 'HTMLPurifier_HTMLModule_HTML5_Text' => __DIR__ . '/..' . '/xemlock/htmlpurifier-html5/library/HTMLPurifier/HTMLModule/HTML5/Text.php', 'MeekroDB' => __DIR__ . '/..' . '/sergeytsalkov/meekrodb/db.class.php', 'MeekroDBEval' => __DIR__ . '/..' . '/sergeytsalkov/meekrodb/db.class.php', 'MeekroDBException' => __DIR__ . '/..' . '/sergeytsalkov/meekrodb/db.class.php', 'WhereClause' => __DIR__ . '/..' . '/sergeytsalkov/meekrodb/db.class.php', + 'kakao\\KakaoKey' => __DIR__ . '/../..' . '/d_setting/KakaoKey.php', + 'sammo\\RootDB' => __DIR__ . '/../..' . '/d_setting/RootDB.php', + 'sammo\\ServConfig' => __DIR__ . '/../..' . '/d_setting/ServConfig.php', ); public static function getInitializer(ClassLoader $loader) diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index dd219e8c..7b29a9ee 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -49,17 +49,17 @@ }, { "name": "catfan/medoo", - "version": "v1.7.8", - "version_normalized": "1.7.8.0", + "version": "v1.5.7", + "version_normalized": "1.5.7.0", "source": { "type": "git", "url": "https://github.com/catfan/Medoo.git", - "reference": "dd9d570584cfb1e09ec470608479b86e41d5b60d" + "reference": "8d90cba0e8ff176028847527d0ea76fe41a06ecf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/catfan/Medoo/zipball/dd9d570584cfb1e09ec470608479b86e41d5b60d", - "reference": "dd9d570584cfb1e09ec470608479b86e41d5b60d", + "url": "https://api.github.com/repos/catfan/Medoo/zipball/8d90cba0e8ff176028847527d0ea76fe41a06ecf", + "reference": "8d90cba0e8ff176028847527d0ea76fe41a06ecf", "shasum": "" }, "require": { @@ -73,9 +73,9 @@ "ext-pdo_oci8": "For Oracle version 8 database", "ext-pdo_pqsql": "For PostgreSQL database", "ext-pdo_sqlite": "For SQLite database", - "ext-pdo_sqlsrv": "For MSSQL database on both Window/Liunx platform" + "ext-pdo_sqlsrv": "For MSSQL database" }, - "time": "2019-12-19T05:04:34+00:00", + "time": "2018-06-14T18:59:08+00:00", "type": "framework", "installation-source": "dist", "autoload": { @@ -93,11 +93,10 @@ "email": "angel@catfan.me" } ], - "description": "The lightweight PHP database framework to accelerate development", + "description": "The lightest PHP database framework to accelerate development", "homepage": "https://medoo.in", "keywords": [ "database", - "database library", "lightweight", "mariadb", "mssql", @@ -111,26 +110,26 @@ }, { "name": "ezyang/htmlpurifier", - "version": "v4.12.0", - "version_normalized": "4.12.0.0", + "version": "v4.10.0", + "version_normalized": "4.10.0.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "a617e55bc62a87eec73bd456d146d134ad716f03" + "reference": "d85d39da4576a6934b72480be6978fb10c860021" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/a617e55bc62a87eec73bd456d146d134ad716f03", - "reference": "a617e55bc62a87eec73bd456d146d134ad716f03", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d85d39da4576a6934b72480be6978fb10c860021", + "reference": "d85d39da4576a6934b72480be6978fb10c860021", "shasum": "" }, "require": { "php": ">=5.2" }, "require-dev": { - "simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd" + "simpletest/simpletest": "^1.1" }, - "time": "2019-10-28T03:44:26+00:00", + "time": "2018-02-23T01:58:20+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -143,7 +142,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1-or-later" + "LGPL" ], "authors": [ { @@ -198,49 +197,47 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.2", - "version_normalized": "6.5.2.0", + "version": "6.3.3", + "version_normalized": "6.3.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "43ece0e75098b7ecd8d13918293029e555a50f82" + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/43ece0e75098b7ecd8d13918293029e555a50f82", - "reference": "43ece0e75098b7ecd8d13918293029e555a50f82", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", "shasum": "" }, "require": { - "ext-json": "*", "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.6.1", + "guzzlehttp/psr7": "^1.4", "php": ">=5.5" }, "require-dev": { "ext-curl": "*", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.1" + "psr/log": "^1.0" }, "suggest": { - "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, - "time": "2019-12-23T11:57:10+00:00", + "time": "2018-04-22T15:46:56+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "6.5-dev" + "dev-master": "6.3-dev" } }, "installation-source": "dist", "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -320,39 +317,34 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.6.1", - "version_normalized": "1.6.1.0", + "version": "1.4.2", + "version_normalized": "1.4.2.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a" + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c", + "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c", "shasum": "" }, "require": { "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "psr/http-message": "~1.0" }, "provide": { "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" + "phpunit/phpunit": "~4.0" }, - "suggest": { - "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" - }, - "time": "2019-07-01T23:21:34+00:00", + "time": "2017-03-20T17:10:46+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.4-dev" } }, "installation-source": "dist", @@ -383,7 +375,6 @@ "keywords": [ "http", "message", - "psr-7", "request", "response", "stream", @@ -391,6 +382,60 @@ "url" ] }, + { + "name": "leafo/scssphp", + "version": "v0.7.7", + "version_normalized": "0.7.7.0", + "source": { + "type": "git", + "url": "https://github.com/leafo/scssphp.git", + "reference": "1d656f8c02a3a69404bba6b28ec4e06edddf0f49" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/leafo/scssphp/zipball/1d656f8c02a3a69404bba6b28ec4e06edddf0f49", + "reference": "1d656f8c02a3a69404bba6b28ec4e06edddf0f49", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.6", + "squizlabs/php_codesniffer": "~2.5" + }, + "time": "2018-07-22T01:22:08+00:00", + "bin": [ + "bin/pscss" + ], + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Leafo\\ScssPhp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Leaf Corcoran", + "email": "leafot@gmail.com", + "homepage": "http://leafo.net" + } + ], + "description": "scssphp is a compiler for SCSS written in PHP.", + "homepage": "http://leafo.github.io/scssphp/", + "keywords": [ + "css", + "less", + "sass", + "scss", + "stylesheet" + ] + }, { "name": "league/plates", "version": "3.3.0", @@ -450,17 +495,17 @@ }, { "name": "monolog/monolog", - "version": "1.25.3", - "version_normalized": "1.25.3.0", + "version": "1.23.0", + "version_normalized": "1.23.0.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1" + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1", - "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", "shasum": "" }, "require": { @@ -496,7 +541,7 @@ "ruflin/elastica": "Allow sending log messages to an Elastic Search server", "sentry/sentry": "Allow sending log messages to a Sentry server" }, - "time": "2019-12-20T14:15:16+00:00", + "time": "2017-06-19T01:22:40+00:00", "type": "library", "extra": { "branch-alias": { @@ -696,27 +741,27 @@ }, { "name": "psr/log", - "version": "1.1.2", - "version_normalized": "1.1.2.0", + "version": "1.0.2", + "version_normalized": "1.0.2.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", "shasum": "" }, "require": { "php": ">=5.3.0" }, - "time": "2019-11-01T11:05:21+00:00", + "time": "2016-10-10T12:19:37+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" } }, "installation-source": "dist", @@ -743,111 +788,6 @@ "psr-3" ] }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "version_normalized": "3.0.3.0", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "time": "2019-03-08T08:55:37+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders." - }, - { - "name": "scssphp/scssphp", - "version": "1.0.6", - "version_normalized": "1.0.6.0", - "source": { - "type": "git", - "url": "https://github.com/scssphp/scssphp.git", - "reference": "5b3c9d704950d8f9637f5110c36c281ec47dc13c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/scssphp/scssphp/zipball/5b3c9d704950d8f9637f5110c36c281ec47dc13c", - "reference": "5b3c9d704950d8f9637f5110c36c281ec47dc13c", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "php": ">=5.6.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.3", - "squizlabs/php_codesniffer": "~2.5", - "twbs/bootstrap": "~4.3", - "zurb/foundation": "~6.5" - }, - "time": "2019-12-12T05:00:52+00:00", - "bin": [ - "bin/pscss" - ], - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "ScssPhp\\ScssPhp\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthon Pang", - "email": "apang@softwaredevelopment.ca", - "homepage": "https://github.com/robocoder" - }, - { - "name": "Cédric Morin", - "email": "cedric@yterium.com", - "homepage": "https://github.com/Cerdic" - } - ], - "description": "scssphp is a compiler for SCSS written in PHP.", - "homepage": "http://scssphp.github.io/scssphp/", - "keywords": [ - "css", - "less", - "sass", - "scss", - "stylesheet" - ] - }, { "name": "sergeytsalkov/meekrodb", "version": "v2.3", @@ -895,36 +835,31 @@ }, { "name": "symfony/lock", - "version": "v4.4.3", - "version_normalized": "4.4.3.0", + "version": "v4.1.1", + "version_normalized": "4.1.1.0", "source": { "type": "git", "url": "https://github.com/symfony/lock.git", - "reference": "6c4f5b620871cfef5b004fc57f2ca74572ae03b3" + "reference": "d508b5dd92272cb74300396ecaadde969d0f7976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/6c4f5b620871cfef5b004fc57f2ca74572ae03b3", - "reference": "6c4f5b620871cfef5b004fc57f2ca74572ae03b3", + "url": "https://api.github.com/repos/symfony/lock/zipball/d508b5dd92272cb74300396ecaadde969d0f7976", + "reference": "d508b5dd92272cb74300396ecaadde969d0f7976", "shasum": "" }, "require": { "php": "^7.1.3", "psr/log": "~1.0" }, - "conflict": { - "doctrine/dbal": "<2.5" - }, "require-dev": { - "doctrine/dbal": "~2.5", - "mongodb/mongodb": "~1.1", "predis/predis": "~1.0" }, - "time": "2020-01-04T13:00:46+00:00", + "time": "2018-06-21T11:15:46+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "4.1-dev" } }, "installation-source": "dist", @@ -941,13 +876,13 @@ "MIT" ], "authors": [ - { - "name": "Jérémy Derussé", - "email": "jeremy@derusse.com" - }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" + }, + { + "name": "Jérémy Derussé", + "email": "jeremy@derusse.com" } ], "description": "Symfony Lock Component", @@ -963,17 +898,17 @@ }, { "name": "vlucas/valitron", - "version": "v1.4.7", - "version_normalized": "1.4.7.0", + "version": "v1.4.3", + "version_normalized": "1.4.3.0", "source": { "type": "git", "url": "https://github.com/vlucas/valitron.git", - "reference": "a03072bed1679660200766d134507a30193eaf6d" + "reference": "3c5463315bfa23b17f8949b100a960d035234e43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/valitron/zipball/a03072bed1679660200766d134507a30193eaf6d", - "reference": "a03072bed1679660200766d134507a30193eaf6d", + "url": "https://api.github.com/repos/vlucas/valitron/zipball/3c5463315bfa23b17f8949b100a960d035234e43", + "reference": "3c5463315bfa23b17f8949b100a960d035234e43", "shasum": "" }, "require": { @@ -985,7 +920,7 @@ "suggest": { "ext-mbstring": "It can support the multiple bytes string length." }, - "time": "2019-08-29T19:49:43+00:00", + "time": "2018-05-06T10:45:26+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1014,28 +949,27 @@ }, { "name": "xemlock/htmlpurifier-html5", - "version": "v0.1.11", - "version_normalized": "0.1.11.0", + "version": "v0.1.7", + "version_normalized": "0.1.7.0", "source": { "type": "git", "url": "https://github.com/xemlock/htmlpurifier-html5.git", - "reference": "f0d563f9fd4a82a3d759043483f9a94c0d8c2255" + "reference": "b4b35e51ec75e0207c23035f7d9a354bdcdac359" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/xemlock/htmlpurifier-html5/zipball/f0d563f9fd4a82a3d759043483f9a94c0d8c2255", - "reference": "f0d563f9fd4a82a3d759043483f9a94c0d8c2255", + "url": "https://api.github.com/repos/xemlock/htmlpurifier-html5/zipball/b4b35e51ec75e0207c23035f7d9a354bdcdac359", + "reference": "b4b35e51ec75e0207c23035f7d9a354bdcdac359", "shasum": "" }, "require": { - "ezyang/htmlpurifier": "^4.8", + "ezyang/htmlpurifier": "^4.7", "php": ">=5.2" }, "require-dev": { - "php-coveralls/php-coveralls": "^1.1|^2.1", - "phpunit/phpunit": ">=4.7 <8.0" + "phpunit/phpunit": "4.7.*|5.7.*" }, - "time": "2019-08-07T17:19:21+00:00", + "time": "2018-06-07T14:30:17+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1053,16 +987,6 @@ "email": "xemlock@gmail.com" } ], - "description": "HTML5 element definitions for HTML Purifier", - "keywords": [ - "HTML5", - "Purifier", - "html", - "htmlpurifier", - "security", - "tidy", - "validator", - "xss" - ] + "description": "HTML Purifier definitions for HTML5 elements" } ] diff --git a/vendor/ezyang/htmlpurifier/INSTALL b/vendor/ezyang/htmlpurifier/INSTALL index 5f6a965f..e6dd02af 100644 --- a/vendor/ezyang/htmlpurifier/INSTALL +++ b/vendor/ezyang/htmlpurifier/INSTALL @@ -15,7 +15,7 @@ with these contents. --------------------------------------------------------------------------- 1. Compatibility -HTML Purifier is PHP 5 and PHP 7, and is actively tested from PHP 5.3 +HTML Purifier is PHP 5 and PHP 7, and is actively tested from PHP 5.0.5 and up. It has no core dependencies with other libraries. These optional extensions can enhance the capabilities of HTML Purifier: @@ -101,6 +101,31 @@ Autoload compatibility autoloader, but there are some cases where you will need to change your own code to accomodate HTML Purifier. These are those cases: + PHP VERSION IS LESS THAN 5.1.2, AND YOU'VE DEFINED __autoload + Because spl_autoload_register() doesn't exist in early versions + of PHP 5, HTML Purifier has no way of adding itself to the autoload + stack. Modify your __autoload function to test + HTMLPurifier_Bootstrap::autoload($class) + + For example, suppose your autoload function looks like this: + + function __autoload($class) { + require str_replace('_', '/', $class) . '.php'; + return true; + } + + A modified version with HTML Purifier would look like this: + + function __autoload($class) { + if (HTMLPurifier_Bootstrap::autoload($class)) return true; + require str_replace('_', '/', $class) . '.php'; + return true; + } + + Note that there *is* some custom behavior in our autoloader; the + original autoloader in our example would work for 99% of the time, + but would fail when including language files. + AN __autoload FUNCTION IS DECLARED AFTER OUR AUTOLOADER IS REGISTERED spl_autoload_register() has the curious behavior of disabling the existing __autoload() handler. Users need to explicitly @@ -113,6 +138,11 @@ Autoload compatibility spl_autoload_register('__autoload') + Users should also be on guard if they use a version of PHP previous + to 5.1.2 without an autoloader--HTML Purifier will define __autoload() + for you, which can collide with an autoloader that was added by *you* + later. + For better performance ---------------------- @@ -174,7 +204,9 @@ For advanced users HTMLPurifier.autoload.php Registers our autoload handler HTMLPurifier_Bootstrap::autoload($class). - You can do these operations by yourself, if you like. + You can do these operations by yourself--in fact, you must modify your own + autoload handler if you are using a version of PHP earlier than PHP 5.1.2 + (See "Autoload compatibility" above). --------------------------------------------------------------------------- diff --git a/vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 b/vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 index 629387e2..95164abb 100644 --- a/vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 +++ b/vendor/ezyang/htmlpurifier/INSTALL.fr.utf8 @@ -11,7 +11,7 @@ pied de page, mais je recommande de lire le document. 1. Compatibilité -HTML Purifier fonctionne avec PHP 5. PHP 5.3 est la dernière version testée. +HTML Purifier fonctionne avec PHP 5. PHP 5.0.5 est la dernière version testée. Il ne dépend pas d'autres librairies. Les extensions optionnelles sont iconv (généralement déjà installée) et tidy diff --git a/vendor/ezyang/htmlpurifier/NEWS b/vendor/ezyang/htmlpurifier/NEWS index 35283501..9b6e1023 100644 --- a/vendor/ezyang/htmlpurifier/NEWS +++ b/vendor/ezyang/htmlpurifier/NEWS @@ -9,40 +9,6 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier . Internal change ========================== -4.12.0, released 2019-10-27 -! PHP 7.4 is supported, thank you Witold Wasiczko, Mateuz Turcza and - Edi Modrić -- PHPDocs for HTMLModule::addElement() and Bool attr are fixed (thanks - Mateusz) - -4.11.0, released 2019-07-14 -# SafeScripting now matches case-sensitively against its whitelist (previously it was - case-insensitive.) Thanks Dimitri Gritsajuk - for reporting. -! New directive %Core.AllowParseManyTags which allows parsing of many nested tags. - Thanks M. Suzuki for contributing the patch. -! purifyArray now supports multidimensional arrays. Thanks - Sandro Miguel Marques for contributing this patch. -! initial and inherit settings available for width, height, and the min-/max- - versions thereof. Thanks Michael Kliewe for contributing - this patch. -! More color names are supported. Thanks Daijobou for contributing. -- Compatibility fixes for PHP 7.3, including new CI for PHP 7.3 - (thank you Lukas Neumann ) and removal of - reserved words in our constants (thanks Darko Hrgovic -- Compatibility fixes for HHVM. Thanks Mateusz Turcza for contributing - this fix. -- HTML Purifier now never defines __autoload, fixing #196. Thanks - Michael Kliewe for reporting. -- In some situations, Config.php would report an undefined index: class - error; this has been fixed. Thanks DiLong Fa for contributing - this fix. -- We no longer produce