From f1124e311d8a58cce80a9df3658168d1ce11c722 Mon Sep 17 00:00:00 2001 From: viastolfi Date: Fri, 9 Dec 2022 15:24:31 +0100 Subject: [PATCH] =?UTF-8?q?modification=20de=20l'architecture=20de=20l'API?= =?UTF-8?q?=20afin=20qu'elle=20soit=20de=20type=20aplication.=20utilisatio?= =?UTF-8?q?n=20du=20framework=20slim=20php=20et=20ajout=20d'une=20premi?= =?UTF-8?q?=C3=A8re=20route?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/API/.htaccess | 3 - Sources/API/api/inscrit/add.php | 3 - Sources/API/api/inscrit/read.php | 35 - Sources/API/api/inscrit/readFromMail.php | 34 - Sources/API/composer.json | 6 + Sources/API/composer.lock | 774 +++++++++++++++++ Sources/API/gateways/Inscrit.php | 53 -- Sources/API/index.php | 34 - Sources/API/public/index.php | 20 + Sources/API/routes/Inscrit.php | 60 ++ .../vendor/altorouter/altorouter/.travis.yml | 7 - .../altorouter/altorouter/AltoRouter.php | 270 ------ .../altorouter/altorouter/AltoRouterTest.php | 423 ---------- .../vendor/altorouter/altorouter/README.md | 92 --- .../altorouter/altorouter/composer.json | 28 - .../altorouter/examples/basic/.htaccess | 3 - .../altorouter/examples/basic/index.php | 27 - Sources/API/vendor/autoload.php | 20 +- Sources/API/vendor/composer.json | 5 - Sources/API/vendor/composer.lock | 74 -- Sources/API/vendor/composer.phar | Bin 2810737 -> 0 bytes .../API/vendor/composer/InstalledVersions.php | 16 +- Sources/API/vendor/composer/LICENSE | 2 - .../API/vendor/composer/autoload_classmap.php | 8 +- .../API/vendor/composer/autoload_files.php | 12 + .../vendor/composer/autoload_namespaces.php | 2 +- Sources/API/vendor/composer/autoload_psr4.php | 11 +- Sources/API/vendor/composer/autoload_real.php | 54 +- .../API/vendor/composer/autoload_static.php | 80 +- Sources/API/vendor/composer/installed.json | 781 +++++++++++++++++- Sources/API/vendor/composer/installed.php | 127 ++- .../API/vendor/composer/platform_check.php | 4 +- .../vendor/fig/http-message-util/.gitignore | 1 + .../vendor/fig/http-message-util/CHANGELOG.md | 147 ++++ .../API/vendor/fig/http-message-util/LICENSE | 19 + .../vendor/fig/http-message-util/README.md | 17 + .../fig/http-message-util/composer.json | 28 + .../src/RequestMethodInterface.php | 34 + .../src/StatusCodeInterface.php | 107 +++ .../API/vendor/nikic/fast-route/.gitignore | 5 + Sources/API/vendor/nikic/fast-route/.hhconfig | 1 + .../API/vendor/nikic/fast-route/.travis.yml | 20 + .../API/vendor/nikic/fast-route/FastRoute.hhi | 126 +++ Sources/API/vendor/nikic/fast-route/LICENSE | 31 + Sources/API/vendor/nikic/fast-route/README.md | 313 +++++++ .../API/vendor/nikic/fast-route/composer.json | 24 + .../API/vendor/nikic/fast-route/phpunit.xml | 24 + Sources/API/vendor/nikic/fast-route/psalm.xml | 28 + .../fast-route/src/BadRouteException.php | 7 + .../nikic/fast-route/src/DataGenerator.php | 26 + .../src/DataGenerator/CharCountBased.php | 31 + .../src/DataGenerator/GroupCountBased.php | 30 + .../src/DataGenerator/GroupPosBased.php | 27 + .../src/DataGenerator/MarkBased.php | 27 + .../src/DataGenerator/RegexBasedAbstract.php | 186 +++++ .../nikic/fast-route/src/Dispatcher.php | 26 + .../src/Dispatcher/CharCountBased.php | 31 + .../src/Dispatcher/GroupCountBased.php | 31 + .../src/Dispatcher/GroupPosBased.php | 33 + .../fast-route/src/Dispatcher/MarkBased.php | 31 + .../src/Dispatcher/RegexBasedAbstract.php | 88 ++ .../API/vendor/nikic/fast-route/src/Route.php | 47 ++ .../nikic/fast-route/src/RouteCollector.php | 152 ++++ .../nikic/fast-route/src/RouteParser.php | 37 + .../nikic/fast-route/src/RouteParser/Std.php | 87 ++ .../vendor/nikic/fast-route/src/bootstrap.php | 12 + .../vendor/nikic/fast-route/src/functions.php | 74 ++ .../test/Dispatcher/CharCountBasedTest.php | 16 + .../test/Dispatcher/DispatcherTest.php | 581 +++++++++++++ .../test/Dispatcher/GroupCountBasedTest.php | 16 + .../test/Dispatcher/GroupPosBasedTest.php | 16 + .../test/Dispatcher/MarkBasedTest.php | 24 + .../HackTypechecker/HackTypecheckerTest.php | 44 + .../HackTypechecker/fixtures/all_options.php | 29 + .../fixtures/empty_options.php | 11 + .../HackTypechecker/fixtures/no_options.php | 11 + .../fast-route/test/RouteCollectorTest.php | 108 +++ .../fast-route/test/RouteParser/StdTest.php | 154 ++++ .../nikic/fast-route/test/bootstrap.php | 11 + Sources/API/vendor/psr/container/.gitignore | 3 + Sources/API/vendor/psr/container/LICENSE | 21 + Sources/API/vendor/psr/container/README.md | 13 + .../API/vendor/psr/container/composer.json | 27 + .../src/ContainerExceptionInterface.php | 12 + .../psr/container/src/ContainerInterface.php | 36 + .../src/NotFoundExceptionInterface.php | 10 + .../API/vendor/psr/http-factory/.gitignore | 2 + .../vendor/psr/http-factory/.pullapprove.yml | 7 + Sources/API/vendor/psr/http-factory/LICENSE | 21 + Sources/API/vendor/psr/http-factory/README.md | 10 + .../API/vendor/psr/http-factory/composer.json | 35 + .../src/RequestFactoryInterface.php | 18 + .../src/ResponseFactoryInterface.php | 18 + .../src/ServerRequestFactoryInterface.php | 24 + .../src/StreamFactoryInterface.php | 45 + .../src/UploadedFileFactoryInterface.php | 34 + .../http-factory/src/UriFactoryInterface.php | 17 + .../API/vendor/psr/http-message/CHANGELOG.md | 36 + Sources/API/vendor/psr/http-message/LICENSE | 19 + Sources/API/vendor/psr/http-message/README.md | 13 + .../API/vendor/psr/http-message/composer.json | 26 + .../psr/http-message/src/MessageInterface.php | 187 +++++ .../psr/http-message/src/RequestInterface.php | 129 +++ .../http-message/src/ResponseInterface.php | 68 ++ .../src/ServerRequestInterface.php | 261 ++++++ .../psr/http-message/src/StreamInterface.php | 158 ++++ .../src/UploadedFileInterface.php | 123 +++ .../psr/http-message/src/UriInterface.php | 323 ++++++++ .../vendor/psr/http-server-handler/LICENSE | 21 + .../vendor/psr/http-server-handler/README.md | 6 + .../psr/http-server-handler/composer.json | 36 + .../src/RequestHandlerInterface.php | 22 + .../vendor/psr/http-server-middleware/LICENSE | 21 + .../psr/http-server-middleware/README.md | 6 + .../psr/http-server-middleware/composer.json | 36 + .../src/MiddlewareInterface.php | 25 + .../vendor/ralouphie/getallheaders/LICENSE | 21 + .../vendor/ralouphie/getallheaders/README.md | 27 + .../ralouphie/getallheaders/composer.json | 26 + .../getallheaders/src/getallheaders.php | 46 ++ Sources/API/vendor/slim/psr7/LICENSE.md | 22 + Sources/API/vendor/slim/psr7/MAINTAINERS.md | 17 + Sources/API/vendor/slim/psr7/composer.json | 76 ++ Sources/API/vendor/slim/psr7/src/Cookies.php | 218 +++++ .../API/vendor/slim/psr7/src/Environment.php | 55 ++ .../slim/psr7/src/Factory/RequestFactory.php | 59 ++ .../slim/psr7/src/Factory/ResponseFactory.php | 35 + .../psr7/src/Factory/ServerRequestFactory.php | 110 +++ .../slim/psr7/src/Factory/StreamFactory.php | 95 +++ .../psr7/src/Factory/UploadedFileFactory.php | 47 ++ .../slim/psr7/src/Factory/UriFactory.php | 113 +++ Sources/API/vendor/slim/psr7/src/Header.php | 96 +++ Sources/API/vendor/slim/psr7/src/Headers.php | 318 +++++++ .../psr7/src/Interfaces/HeadersInterface.php | 90 ++ Sources/API/vendor/slim/psr7/src/Message.php | 185 +++++ .../vendor/slim/psr7/src/NonBufferedBody.php | 153 ++++ Sources/API/vendor/slim/psr7/src/Request.php | 384 +++++++++ Sources/API/vendor/slim/psr7/src/Response.php | 216 +++++ Sources/API/vendor/slim/psr7/src/Stream.php | 396 +++++++++ .../API/vendor/slim/psr7/src/UploadedFile.php | 279 +++++++ Sources/API/vendor/slim/psr7/src/Uri.php | 494 +++++++++++ Sources/API/vendor/slim/slim/CHANGELOG.md | 208 +++++ Sources/API/vendor/slim/slim/LICENSE.md | 19 + Sources/API/vendor/slim/slim/MAINTAINERS.md | 17 + Sources/API/vendor/slim/slim/SECURITY.md | 14 + Sources/API/vendor/slim/slim/Slim/App.php | 216 +++++ .../slim/slim/Slim/CallableResolver.php | 193 +++++ .../slim/Slim/Error/AbstractErrorRenderer.php | 46 ++ .../Error/Renderers/HtmlErrorRenderer.php | 84 ++ .../Error/Renderers/JsonErrorRenderer.php | 56 ++ .../Renderers/PlainTextErrorRenderer.php | 59 ++ .../Slim/Error/Renderers/XmlErrorRenderer.php | 54 ++ .../Exception/HttpBadRequestException.php | 28 + .../slim/Slim/Exception/HttpException.php | 64 ++ .../Slim/Exception/HttpForbiddenException.php | 27 + .../slim/Slim/Exception/HttpGoneException.php | 27 + .../HttpInternalServerErrorException.php | 27 + .../HttpMethodNotAllowedException.php | 52 ++ .../Slim/Exception/HttpNotFoundException.php | 27 + .../Exception/HttpNotImplementedException.php | 27 + .../Exception/HttpSpecializedException.php | 31 + .../Exception/HttpUnauthorizedException.php | 27 + .../slim/slim/Slim/Factory/AppFactory.php | 206 +++++ .../Slim/Factory/Psr17/GuzzlePsr17Factory.php | 19 + .../Factory/Psr17/HttpSoftPsr17Factory.php | 19 + .../Psr17/LaminasDiactorosPsr17Factory.php | 19 + .../Slim/Factory/Psr17/NyholmPsr17Factory.php | 36 + .../slim/Slim/Factory/Psr17/Psr17Factory.php | 101 +++ .../Factory/Psr17/Psr17FactoryProvider.php | 53 ++ .../Factory/Psr17/ServerRequestCreator.php | 44 + .../Factory/Psr17/SlimHttpPsr17Factory.php | 39 + .../Psr17/SlimHttpServerRequestCreator.php | 56 ++ .../Slim/Factory/Psr17/SlimPsr17Factory.php | 19 + .../Factory/ServerRequestCreatorFactory.php | 87 ++ .../slim/slim/Slim/Handlers/ErrorHandler.php | 308 +++++++ .../Handlers/Strategies/RequestHandler.php | 48 ++ .../Handlers/Strategies/RequestResponse.php | 40 + .../Strategies/RequestResponseArgs.php | 38 + .../Strategies/RequestResponseNamedArgs.php | 44 + .../AdvancedCallableResolverInterface.php | 28 + .../Interfaces/CallableResolverInterface.php | 21 + .../Slim/Interfaces/DispatcherInterface.php | 28 + .../Slim/Interfaces/ErrorHandlerInterface.php | 26 + .../Interfaces/ErrorRendererInterface.php | 18 + .../InvocationStrategyInterface.php | 37 + .../MiddlewareDispatcherInterface.php | 42 + .../Slim/Interfaces/Psr17FactoryInterface.php | 48 ++ .../Psr17FactoryProviderInterface.php | 26 + ...uestHandlerInvocationStrategyInterface.php | 15 + .../Interfaces/RouteCollectorInterface.php | 102 +++ .../RouteCollectorProxyInterface.php | 118 +++ .../Slim/Interfaces/RouteGroupInterface.php | 41 + .../slim/Slim/Interfaces/RouteInterface.php | 123 +++ .../Slim/Interfaces/RouteParserInterface.php | 52 ++ .../Interfaces/RouteResolverInterface.php | 17 + .../ServerRequestCreatorInterface.php | 18 + Sources/API/vendor/slim/slim/Slim/Logger.php | 32 + .../Slim/Middleware/BodyParsingMiddleware.php | 196 +++++ .../Middleware/ContentLengthMiddleware.php | 32 + .../slim/Slim/Middleware/ErrorMiddleware.php | 212 +++++ .../Middleware/MethodOverrideMiddleware.php | 43 + .../Middleware/OutputBufferingMiddleware.php | 74 ++ .../Slim/Middleware/RoutingMiddleware.php | 98 +++ .../slim/slim/Slim/MiddlewareDispatcher.php | 275 ++++++ .../vendor/slim/slim/Slim/ResponseEmitter.php | 136 +++ .../slim/slim/Slim/Routing/Dispatcher.php | 78 ++ .../slim/Slim/Routing/FastRouteDispatcher.php | 109 +++ .../vendor/slim/slim/Slim/Routing/Route.php | 360 ++++++++ .../slim/slim/Slim/Routing/RouteCollector.php | 280 +++++++ .../slim/Slim/Routing/RouteCollectorProxy.php | 187 +++++ .../slim/slim/Slim/Routing/RouteContext.php | 88 ++ .../slim/slim/Slim/Routing/RouteGroup.php | 104 +++ .../slim/slim/Slim/Routing/RouteParser.php | 127 +++ .../slim/slim/Slim/Routing/RouteResolver.php | 56 ++ .../slim/slim/Slim/Routing/RouteRunner.php | 70 ++ .../slim/slim/Slim/Routing/RoutingResults.php | 112 +++ Sources/API/vendor/slim/slim/composer.json | 102 +++ .../API/vendor/symfony/polyfill-php80/LICENSE | 19 + .../vendor/symfony/polyfill-php80/Php80.php | 115 +++ .../symfony/polyfill-php80/PhpToken.php | 103 +++ .../vendor/symfony/polyfill-php80/README.md | 25 + .../Resources/stubs/Attribute.php | 31 + .../Resources/stubs/PhpToken.php | 16 + .../Resources/stubs/Stringable.php | 20 + .../Resources/stubs/UnhandledMatchError.php | 16 + .../Resources/stubs/ValueError.php | 16 + .../symfony/polyfill-php80/bootstrap.php | 42 + .../symfony/polyfill-php80/composer.json | 40 + 228 files changed, 16729 insertions(+), 1168 deletions(-) delete mode 100644 Sources/API/.htaccess delete mode 100644 Sources/API/api/inscrit/add.php delete mode 100644 Sources/API/api/inscrit/read.php delete mode 100644 Sources/API/api/inscrit/readFromMail.php create mode 100644 Sources/API/composer.json create mode 100644 Sources/API/composer.lock delete mode 100644 Sources/API/gateways/Inscrit.php delete mode 100644 Sources/API/index.php create mode 100644 Sources/API/public/index.php create mode 100644 Sources/API/routes/Inscrit.php delete mode 100644 Sources/API/vendor/altorouter/altorouter/.travis.yml delete mode 100644 Sources/API/vendor/altorouter/altorouter/AltoRouter.php delete mode 100644 Sources/API/vendor/altorouter/altorouter/AltoRouterTest.php delete mode 100644 Sources/API/vendor/altorouter/altorouter/README.md delete mode 100644 Sources/API/vendor/altorouter/altorouter/composer.json delete mode 100644 Sources/API/vendor/altorouter/altorouter/examples/basic/.htaccess delete mode 100644 Sources/API/vendor/altorouter/altorouter/examples/basic/index.php delete mode 100644 Sources/API/vendor/composer.json delete mode 100644 Sources/API/vendor/composer.lock delete mode 100755 Sources/API/vendor/composer.phar create mode 100644 Sources/API/vendor/composer/autoload_files.php create mode 100644 Sources/API/vendor/fig/http-message-util/.gitignore create mode 100644 Sources/API/vendor/fig/http-message-util/CHANGELOG.md create mode 100644 Sources/API/vendor/fig/http-message-util/LICENSE create mode 100644 Sources/API/vendor/fig/http-message-util/README.md create mode 100644 Sources/API/vendor/fig/http-message-util/composer.json create mode 100644 Sources/API/vendor/fig/http-message-util/src/RequestMethodInterface.php create mode 100644 Sources/API/vendor/fig/http-message-util/src/StatusCodeInterface.php create mode 100644 Sources/API/vendor/nikic/fast-route/.gitignore create mode 100644 Sources/API/vendor/nikic/fast-route/.hhconfig create mode 100644 Sources/API/vendor/nikic/fast-route/.travis.yml create mode 100644 Sources/API/vendor/nikic/fast-route/FastRoute.hhi create mode 100644 Sources/API/vendor/nikic/fast-route/LICENSE create mode 100644 Sources/API/vendor/nikic/fast-route/README.md create mode 100644 Sources/API/vendor/nikic/fast-route/composer.json create mode 100644 Sources/API/vendor/nikic/fast-route/phpunit.xml create mode 100644 Sources/API/vendor/nikic/fast-route/psalm.xml create mode 100644 Sources/API/vendor/nikic/fast-route/src/BadRouteException.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/DataGenerator.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/DataGenerator/CharCountBased.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/DataGenerator/GroupCountBased.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/DataGenerator/GroupPosBased.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/DataGenerator/MarkBased.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/DataGenerator/RegexBasedAbstract.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/Dispatcher.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/Dispatcher/CharCountBased.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/Dispatcher/GroupCountBased.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/Dispatcher/GroupPosBased.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/Dispatcher/MarkBased.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/Dispatcher/RegexBasedAbstract.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/Route.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/RouteCollector.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/RouteParser.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/RouteParser/Std.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/bootstrap.php create mode 100644 Sources/API/vendor/nikic/fast-route/src/functions.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/Dispatcher/CharCountBasedTest.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/Dispatcher/DispatcherTest.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/Dispatcher/GroupCountBasedTest.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/Dispatcher/GroupPosBasedTest.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/Dispatcher/MarkBasedTest.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/HackTypechecker/HackTypecheckerTest.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/all_options.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/empty_options.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/no_options.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/RouteCollectorTest.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/RouteParser/StdTest.php create mode 100644 Sources/API/vendor/nikic/fast-route/test/bootstrap.php create mode 100644 Sources/API/vendor/psr/container/.gitignore create mode 100644 Sources/API/vendor/psr/container/LICENSE create mode 100644 Sources/API/vendor/psr/container/README.md create mode 100644 Sources/API/vendor/psr/container/composer.json create mode 100644 Sources/API/vendor/psr/container/src/ContainerExceptionInterface.php create mode 100644 Sources/API/vendor/psr/container/src/ContainerInterface.php create mode 100644 Sources/API/vendor/psr/container/src/NotFoundExceptionInterface.php create mode 100644 Sources/API/vendor/psr/http-factory/.gitignore create mode 100644 Sources/API/vendor/psr/http-factory/.pullapprove.yml create mode 100644 Sources/API/vendor/psr/http-factory/LICENSE create mode 100644 Sources/API/vendor/psr/http-factory/README.md create mode 100644 Sources/API/vendor/psr/http-factory/composer.json create mode 100644 Sources/API/vendor/psr/http-factory/src/RequestFactoryInterface.php create mode 100644 Sources/API/vendor/psr/http-factory/src/ResponseFactoryInterface.php create mode 100644 Sources/API/vendor/psr/http-factory/src/ServerRequestFactoryInterface.php create mode 100644 Sources/API/vendor/psr/http-factory/src/StreamFactoryInterface.php create mode 100644 Sources/API/vendor/psr/http-factory/src/UploadedFileFactoryInterface.php create mode 100644 Sources/API/vendor/psr/http-factory/src/UriFactoryInterface.php create mode 100644 Sources/API/vendor/psr/http-message/CHANGELOG.md create mode 100644 Sources/API/vendor/psr/http-message/LICENSE create mode 100644 Sources/API/vendor/psr/http-message/README.md create mode 100644 Sources/API/vendor/psr/http-message/composer.json create mode 100644 Sources/API/vendor/psr/http-message/src/MessageInterface.php create mode 100644 Sources/API/vendor/psr/http-message/src/RequestInterface.php create mode 100644 Sources/API/vendor/psr/http-message/src/ResponseInterface.php create mode 100644 Sources/API/vendor/psr/http-message/src/ServerRequestInterface.php create mode 100644 Sources/API/vendor/psr/http-message/src/StreamInterface.php create mode 100644 Sources/API/vendor/psr/http-message/src/UploadedFileInterface.php create mode 100644 Sources/API/vendor/psr/http-message/src/UriInterface.php create mode 100644 Sources/API/vendor/psr/http-server-handler/LICENSE create mode 100644 Sources/API/vendor/psr/http-server-handler/README.md create mode 100644 Sources/API/vendor/psr/http-server-handler/composer.json create mode 100644 Sources/API/vendor/psr/http-server-handler/src/RequestHandlerInterface.php create mode 100644 Sources/API/vendor/psr/http-server-middleware/LICENSE create mode 100644 Sources/API/vendor/psr/http-server-middleware/README.md create mode 100644 Sources/API/vendor/psr/http-server-middleware/composer.json create mode 100644 Sources/API/vendor/psr/http-server-middleware/src/MiddlewareInterface.php create mode 100644 Sources/API/vendor/ralouphie/getallheaders/LICENSE create mode 100644 Sources/API/vendor/ralouphie/getallheaders/README.md create mode 100644 Sources/API/vendor/ralouphie/getallheaders/composer.json create mode 100644 Sources/API/vendor/ralouphie/getallheaders/src/getallheaders.php create mode 100644 Sources/API/vendor/slim/psr7/LICENSE.md create mode 100644 Sources/API/vendor/slim/psr7/MAINTAINERS.md create mode 100644 Sources/API/vendor/slim/psr7/composer.json create mode 100644 Sources/API/vendor/slim/psr7/src/Cookies.php create mode 100644 Sources/API/vendor/slim/psr7/src/Environment.php create mode 100644 Sources/API/vendor/slim/psr7/src/Factory/RequestFactory.php create mode 100644 Sources/API/vendor/slim/psr7/src/Factory/ResponseFactory.php create mode 100644 Sources/API/vendor/slim/psr7/src/Factory/ServerRequestFactory.php create mode 100644 Sources/API/vendor/slim/psr7/src/Factory/StreamFactory.php create mode 100644 Sources/API/vendor/slim/psr7/src/Factory/UploadedFileFactory.php create mode 100644 Sources/API/vendor/slim/psr7/src/Factory/UriFactory.php create mode 100644 Sources/API/vendor/slim/psr7/src/Header.php create mode 100644 Sources/API/vendor/slim/psr7/src/Headers.php create mode 100644 Sources/API/vendor/slim/psr7/src/Interfaces/HeadersInterface.php create mode 100644 Sources/API/vendor/slim/psr7/src/Message.php create mode 100644 Sources/API/vendor/slim/psr7/src/NonBufferedBody.php create mode 100644 Sources/API/vendor/slim/psr7/src/Request.php create mode 100644 Sources/API/vendor/slim/psr7/src/Response.php create mode 100644 Sources/API/vendor/slim/psr7/src/Stream.php create mode 100644 Sources/API/vendor/slim/psr7/src/UploadedFile.php create mode 100644 Sources/API/vendor/slim/psr7/src/Uri.php create mode 100644 Sources/API/vendor/slim/slim/CHANGELOG.md create mode 100644 Sources/API/vendor/slim/slim/LICENSE.md create mode 100644 Sources/API/vendor/slim/slim/MAINTAINERS.md create mode 100644 Sources/API/vendor/slim/slim/SECURITY.md create mode 100644 Sources/API/vendor/slim/slim/Slim/App.php create mode 100644 Sources/API/vendor/slim/slim/Slim/CallableResolver.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Error/AbstractErrorRenderer.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Error/Renderers/HtmlErrorRenderer.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Error/Renderers/JsonErrorRenderer.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Error/Renderers/PlainTextErrorRenderer.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Error/Renderers/XmlErrorRenderer.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Exception/HttpBadRequestException.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Exception/HttpException.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Exception/HttpForbiddenException.php create mode 100755 Sources/API/vendor/slim/slim/Slim/Exception/HttpGoneException.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Exception/HttpInternalServerErrorException.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Exception/HttpMethodNotAllowedException.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Exception/HttpNotFoundException.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Exception/HttpNotImplementedException.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Exception/HttpSpecializedException.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Exception/HttpUnauthorizedException.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/AppFactory.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/GuzzlePsr17Factory.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/HttpSoftPsr17Factory.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/LaminasDiactorosPsr17Factory.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/NyholmPsr17Factory.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/Psr17Factory.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/Psr17FactoryProvider.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/ServerRequestCreator.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/SlimHttpPsr17Factory.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/SlimHttpServerRequestCreator.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/Psr17/SlimPsr17Factory.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Factory/ServerRequestCreatorFactory.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Handlers/ErrorHandler.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestHandler.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponseArgs.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponseNamedArgs.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/AdvancedCallableResolverInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/CallableResolverInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/DispatcherInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/ErrorHandlerInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/ErrorRendererInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/InvocationStrategyInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/MiddlewareDispatcherInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/Psr17FactoryInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/Psr17FactoryProviderInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/RequestHandlerInvocationStrategyInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/RouteCollectorInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/RouteCollectorProxyInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/RouteGroupInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/RouteInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/RouteParserInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/RouteResolverInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Interfaces/ServerRequestCreatorInterface.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Logger.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Middleware/BodyParsingMiddleware.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Middleware/ContentLengthMiddleware.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Middleware/MethodOverrideMiddleware.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Middleware/OutputBufferingMiddleware.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php create mode 100644 Sources/API/vendor/slim/slim/Slim/MiddlewareDispatcher.php create mode 100644 Sources/API/vendor/slim/slim/Slim/ResponseEmitter.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/Dispatcher.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/FastRouteDispatcher.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/Route.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/RouteCollector.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/RouteCollectorProxy.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/RouteContext.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/RouteGroup.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/RouteParser.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/RouteResolver.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/RouteRunner.php create mode 100644 Sources/API/vendor/slim/slim/Slim/Routing/RoutingResults.php create mode 100644 Sources/API/vendor/slim/slim/composer.json create mode 100644 Sources/API/vendor/symfony/polyfill-php80/LICENSE create mode 100644 Sources/API/vendor/symfony/polyfill-php80/Php80.php create mode 100644 Sources/API/vendor/symfony/polyfill-php80/PhpToken.php create mode 100644 Sources/API/vendor/symfony/polyfill-php80/README.md create mode 100644 Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php create mode 100644 Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php create mode 100644 Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php create mode 100644 Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php create mode 100644 Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php create mode 100644 Sources/API/vendor/symfony/polyfill-php80/bootstrap.php create mode 100644 Sources/API/vendor/symfony/polyfill-php80/composer.json diff --git a/Sources/API/.htaccess b/Sources/API/.htaccess deleted file mode 100644 index 7ded04e..0000000 --- a/Sources/API/.htaccess +++ /dev/null @@ -1,3 +0,0 @@ -RewriteEngine on -RewriteCond %{REQUEST_FILENAME} !-f -RewriteRule . index.php [L] \ No newline at end of file diff --git a/Sources/API/api/inscrit/add.php b/Sources/API/api/inscrit/add.php deleted file mode 100644 index b637268..0000000 --- a/Sources/API/api/inscrit/add.php +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/Sources/API/api/inscrit/read.php b/Sources/API/api/inscrit/read.php deleted file mode 100644 index 936cf78..0000000 --- a/Sources/API/api/inscrit/read.php +++ /dev/null @@ -1,35 +0,0 @@ -connect(); - $inscrit = new Inscrit($db); - - $results = $inscrit->read(); - $num = $results->rowCount(); - - if($num > 0){ - $inscrit_array = array(); - - while($row = $results->fetch(PDO::FETCH_ASSOC)){ - extract($row); - - $inscrit_item = array( - 'id' => $id, - 'nom' => $nom, - 'prenom' => $prenom, - 'mail' => $mail, - 'mdp' => $mdp - ); - array_push($inscrit_array, $inscrit_item); - } - - echo json_encode($inscrit_array); - } else { - echo json_encode(array('message' => 'No Inscrit Found')); - } -?> \ No newline at end of file diff --git a/Sources/API/api/inscrit/readFromMail.php b/Sources/API/api/inscrit/readFromMail.php deleted file mode 100644 index 505ef65..0000000 --- a/Sources/API/api/inscrit/readFromMail.php +++ /dev/null @@ -1,34 +0,0 @@ -connect(); - $inscrit = new Inscrit($db); - - $results = $inscrit->readMdpFromMail($mail); - $num = $results->rowCount(); - - if($num > 0){ - $inscrit_array = array(); - - while($row = $results->fetch(PDO::FETCH_ASSOC)){ - extract($row); - - $inscrit_item = array( - 'id' => $id, - 'nom' => $nom, - 'prenom' => $prenom, - 'mail' => $mail, - 'mdp' => $mdp - ); - array_push($inscrit_array, $inscrit_item); - } - echo json_encode($inscrit_array); - } else { - echo json_encode(array('message' => 'No Inscrit with mail='.$mail)); - } -?> \ No newline at end of file diff --git a/Sources/API/composer.json b/Sources/API/composer.json new file mode 100644 index 0000000..0158a81 --- /dev/null +++ b/Sources/API/composer.json @@ -0,0 +1,6 @@ +{ + "require": { + "slim/slim": "4.*", + "slim/psr7": "^1.6" + } +} diff --git a/Sources/API/composer.lock b/Sources/API/composer.lock new file mode 100644 index 0000000..8ff62b8 --- /dev/null +++ b/Sources/API/composer.lock @@ -0,0 +1,774 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "3330638b65a325a8387769d50108b43a", + "packages": [ + { + "name": "fig/http-message-util", + "version": "1.1.5", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message-util.git", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message-util/zipball/9d94dc0154230ac39e5bf89398b324a86f63f765", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "suggest": { + "psr/http-message": "The package containing the PSR-7 interfaces" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Fig\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Utility classes and constants for use with PSR-7 (psr/http-message)", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-message-util/issues", + "source": "https://github.com/php-fig/http-message-util/tree/1.1.5" + }, + "time": "2020-11-24T22:02:12+00:00" + }, + { + "name": "nikic/fast-route", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/FastRoute.git", + "reference": "181d480e08d9476e61381e04a71b34dc0432e812" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812", + "reference": "181d480e08d9476e61381e04a71b34dc0432e812", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35|~5.7" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "FastRoute\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov", + "email": "nikic@php.net" + } + ], + "description": "Fast request router for PHP", + "keywords": [ + "router", + "routing" + ], + "support": { + "issues": "https://github.com/nikic/FastRoute/issues", + "source": "https://github.com/nikic/FastRoute/tree/master" + }, + "time": "2018-02-13T20:26:39+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/http-server-handler", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-handler.git", + "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/aff2f80e33b7f026ec96bb42f63242dc50ffcae7", + "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side request handler", + "keywords": [ + "handler", + "http", + "http-interop", + "psr", + "psr-15", + "psr-7", + "request", + "response", + "server" + ], + "support": { + "issues": "https://github.com/php-fig/http-server-handler/issues", + "source": "https://github.com/php-fig/http-server-handler/tree/master" + }, + "time": "2018-10-30T16:46:14+00:00" + }, + { + "name": "psr/http-server-middleware", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-middleware.git", + "reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/2296f45510945530b9dceb8bcedb5cb84d40c5f5", + "reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side middleware", + "keywords": [ + "http", + "http-interop", + "middleware", + "psr", + "psr-15", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-server-middleware/issues", + "source": "https://github.com/php-fig/http-server-middleware/tree/master" + }, + "time": "2018-10-30T17:12:04+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+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.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "slim/psr7", + "version": "1.6", + "source": { + "type": "git", + "url": "https://github.com/slimphp/Slim-Psr7.git", + "reference": "3471c22c1a0d26c51c78f6aeb06489d38cf46a4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slimphp/Slim-Psr7/zipball/3471c22c1a0d26c51c78f6aeb06489d38cf46a4d", + "reference": "3471c22c1a0d26c51c78f6aeb06489d38cf46a4d", + "shasum": "" + }, + "require": { + "fig/http-message-util": "^1.1.5", + "php": "^7.4 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0", + "symfony/polyfill-php80": "^1.26" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "adriansuter/php-autoload-override": "^1.3", + "ext-json": "*", + "http-interop/http-factory-tests": "^0.9.0", + "php-http/psr7-integration-tests": "dev-master", + "phpspec/prophecy": "^1.15", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Slim\\Psr7\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "http://joshlockhart.com" + }, + { + "name": "Andrew Smith", + "email": "a.smith@silentworks.co.uk", + "homepage": "http://silentworks.co.uk" + }, + { + "name": "Rob Allen", + "email": "rob@akrabat.com", + "homepage": "http://akrabat.com" + }, + { + "name": "Pierre Berube", + "email": "pierre@lgse.com", + "homepage": "http://www.lgse.com" + } + ], + "description": "Strict PSR-7 implementation", + "homepage": "https://www.slimframework.com", + "keywords": [ + "http", + "psr-7", + "psr7" + ], + "support": { + "issues": "https://github.com/slimphp/Slim-Psr7/issues", + "source": "https://github.com/slimphp/Slim-Psr7/tree/1.6" + }, + "time": "2022-11-05T18:50:24+00:00" + }, + { + "name": "slim/slim", + "version": "4.11.0", + "source": { + "type": "git", + "url": "https://github.com/slimphp/Slim.git", + "reference": "b0f4ca393ea037be9ac7292ba7d0a34d18bac0c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slimphp/Slim/zipball/b0f4ca393ea037be9ac7292ba7d0a34d18bac0c7", + "reference": "b0f4ca393ea037be9ac7292ba7d0a34d18bac0c7", + "shasum": "" + }, + "require": { + "ext-json": "*", + "nikic/fast-route": "^1.3", + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "adriansuter/php-autoload-override": "^1.3", + "ext-simplexml": "*", + "guzzlehttp/psr7": "^2.4", + "httpsoft/http-message": "^1.0", + "httpsoft/http-server-request": "^1.0", + "laminas/laminas-diactoros": "^2.17", + "nyholm/psr7": "^1.5", + "nyholm/psr7-server": "^1.0", + "phpspec/prophecy": "^1.15", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "slim/http": "^1.2", + "slim/psr7": "^1.5", + "squizlabs/php_codesniffer": "^3.7" + }, + "suggest": { + "ext-simplexml": "Needed to support XML format in BodyParsingMiddleware", + "ext-xml": "Needed to support XML format in BodyParsingMiddleware", + "php-di/php-di": "PHP-DI is the recommended container library to be used with Slim", + "slim/psr7": "Slim PSR-7 implementation. See https://www.slimframework.com/docs/v4/start/installation.html for more information." + }, + "type": "library", + "autoload": { + "psr-4": { + "Slim\\": "Slim" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "https://joshlockhart.com" + }, + { + "name": "Andrew Smith", + "email": "a.smith@silentworks.co.uk", + "homepage": "http://silentworks.co.uk" + }, + { + "name": "Rob Allen", + "email": "rob@akrabat.com", + "homepage": "http://akrabat.com" + }, + { + "name": "Pierre Berube", + "email": "pierre@lgse.com", + "homepage": "http://www.lgse.com" + }, + { + "name": "Gabriel Manricks", + "email": "gmanricks@me.com", + "homepage": "http://gabrielmanricks.com" + } + ], + "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs", + "homepage": "https://www.slimframework.com", + "keywords": [ + "api", + "framework", + "micro", + "router" + ], + "support": { + "docs": "https://www.slimframework.com/docs/v4/", + "forum": "https://discourse.slimframework.com/", + "irc": "irc://irc.freenode.net:6667/slimphp", + "issues": "https://github.com/slimphp/Slim/issues", + "rss": "https://www.slimframework.com/blog/feed.rss", + "slack": "https://slimphp.slack.com/", + "source": "https://github.com/slimphp/Slim", + "wiki": "https://github.com/slimphp/Slim/wiki" + }, + "funding": [ + { + "url": "https://opencollective.com/slimphp", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slim/slim", + "type": "tidelift" + } + ], + "time": "2022-11-06T16:33:39+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.2.0" +} diff --git a/Sources/API/gateways/Inscrit.php b/Sources/API/gateways/Inscrit.php deleted file mode 100644 index d3571be..0000000 --- a/Sources/API/gateways/Inscrit.php +++ /dev/null @@ -1,53 +0,0 @@ -conn = $db; - } - - public function read(){ - $query = 'SELECT - i.id as id, - i.nom as nom, - i.prenom as prenom, - i.mail as mail, - i.mdp as mdp - FROM - '.$this->table.' i - ORDER BY - i.id'; - - $stmt = $this->conn->prepare($query); - $stmt->execute(); - return $stmt; - } - - public function readMdpFromMail($mail){ - $query = 'SELECT - i.id as id, - i.nom as nom, - i.prenom as prenom, - i.mail as mail, - i.mdp as mdp - FROM - '.$this->table.' i - WHERE - i.mail=:mail - '; - $stmt = $this->conn->prepare($query); - $stmt->bindValue(':mail',$mail, PDO::PARAM_STR); - $stmt->execute(); - return $stmt; - } - } - -?> \ No newline at end of file diff --git a/Sources/API/index.php b/Sources/API/index.php deleted file mode 100644 index c35daea..0000000 --- a/Sources/API/index.php +++ /dev/null @@ -1,34 +0,0 @@ -setBasePath('/~vincent/ConsEco/Sources/API'); - -$router->map( 'GET', '/', function(){ - echo 'Hello World'; -}); - -$router->map('GET|POST','/Inscrit', function(){ - require(__DIR__.'/api/inscrit/read.php'); -}); - -$router->map('GET','/Inscrit/[*:mail]', function($mail){ - require(__DIR__.'/api/inscrit/readFromMail.php'); -}); - -$router->match('POST|GET','/Inscrit/add', function(){ - require(__DIR__.'/api/Inscrit/add.php'); -}); - -$match = $router->match(); - -if($match!=null) { - if( is_array($match) && is_callable( $match['target'] ) && isset($match['params']) ) { - call_user_func_array( $match['target'], $match['params']); - }else{ - $match['target'](); - } -} -else { - echo 'ERROR 404'; -} -?> diff --git a/Sources/API/public/index.php b/Sources/API/public/index.php new file mode 100644 index 0000000..8e9fd6e --- /dev/null +++ b/Sources/API/public/index.php @@ -0,0 +1,20 @@ +get('/', function (Request $request, Response $response, $args) { + $response->getBody()->write("Hello world!"); + return $response; +}); + +require __DIR__.'/../routes/Inscrit.php'; + +$app->run(); +?> \ No newline at end of file diff --git a/Sources/API/routes/Inscrit.php b/Sources/API/routes/Inscrit.php new file mode 100644 index 0000000..244949f --- /dev/null +++ b/Sources/API/routes/Inscrit.php @@ -0,0 +1,60 @@ +get('/Inscrit', function(Request $request, Response $response){ + $query = "SELECT * FROM Inscrit"; + + try{ + $db = new Database(); + $conn = $db->connect(); + + $stmt = $conn->query($query); + $inscrits = $stmt->fetchAll(PDO::FETCH_OBJ); + + $db = null; + $response->getBody()->write(json_encode($inscrits)); + return $response + ->withHeader('content-type', 'application/json') + ->withStatus(200); + } catch(PDOException $e){ + $error = array("message" => $e->getMessage()); + + $response->getBody()->write(json_encode($error)); + return $response + ->withHeader('content-type', 'application/json') + ->withStatus(500); + } +}); + +$app->post('/Inscrit/one', function(Request $request, Response $response,array $args){ + $mail = $request->getParsedBody(); + $query = 'SELECT * FROM Inscrit WHERE mail=:mail'; + + try{ + $db = new Database(); + $conn = $db->connect(); + + $stmt = $conn->prepare($query); + $stmt->bindValue(':mail',$mail, PDO::PARAM_STR); + + $inscrit = $stmt->fetchAll(PDO::FETCH_OBJ); + + $db = null; + $response->getBody()->write(json_encode($inscrit)); + return $response + ->withHeader('content-type', 'application/json') + ->withStatus(200); + } catch(PDOException $e){ + $error = array("message" => $e->getMessage()); + + $response->getBody()->write(json_encode($error)); + return $response + ->withHeader('content-type', 'application/json') + ->withStatus(500); + } +}); +?> \ No newline at end of file diff --git a/Sources/API/vendor/altorouter/altorouter/.travis.yml b/Sources/API/vendor/altorouter/altorouter/.travis.yml deleted file mode 100644 index 3bf3161..0000000 --- a/Sources/API/vendor/altorouter/altorouter/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: php -php: - - 5.3 - - 5.4 - - 5.5 - -script: phpunit --coverage-text ./ diff --git a/Sources/API/vendor/altorouter/altorouter/AltoRouter.php b/Sources/API/vendor/altorouter/altorouter/AltoRouter.php deleted file mode 100644 index 67e76ab..0000000 --- a/Sources/API/vendor/altorouter/altorouter/AltoRouter.php +++ /dev/null @@ -1,270 +0,0 @@ - '[0-9]++', - 'a' => '[0-9A-Za-z]++', - 'h' => '[0-9A-Fa-f]++', - '*' => '.+?', - '**' => '.++', - '' => '[^/\.]++' - ); - - /** - * Create router in one call from config. - * - * @param array $routes - * @param string $basePath - * @param array $matchTypes - */ - public function __construct( $routes = array(), $basePath = '', $matchTypes = array() ) { - $this->addRoutes($routes); - $this->setBasePath($basePath); - $this->addMatchTypes($matchTypes); - } - - /** - * Add multiple routes at once from array in the following format: - * - * $routes = array( - * array($method, $route, $target, $name) - * ); - * - * @param array $routes - * @return void - * @author Koen Punt - */ - public function addRoutes($routes){ - if(!is_array($routes) && !$routes instanceof Traversable) { - throw new \Exception('Routes should be an array or an instance of Traversable'); - } - foreach($routes as $route) { - call_user_func_array(array($this, 'map'), $route); - } - } - - /** - * Set the base path. - * Useful if you are running your application from a subdirectory. - */ - public function setBasePath($basePath) { - $this->basePath = $basePath; - } - - /** - * Add named match types. It uses array_merge so keys can be overwritten. - * - * @param array $matchTypes The key is the name and the value is the regex. - */ - public function addMatchTypes($matchTypes) { - $this->matchTypes = array_merge($this->matchTypes, $matchTypes); - } - - /** - * Map a route to a target - * - * @param string $method One of 4 HTTP Methods, or a pipe-separated list of multiple HTTP Methods (GET|POST|PUT|DELETE) - * @param string $route The route regex, custom regex must start with an @. You can use multiple pre-set regex filters, like [i:id] - * @param mixed $target The target where this route should point to. Can be anything. - * @param string $name Optional name of this route. Supply if you want to reverse route this url in your application. - */ - public function map($method, $route, $target, $name = null) { - - $this->routes[] = array($method, $route, $target, $name); - - if($name) { - if(isset($this->namedRoutes[$name])) { - throw new \Exception("Can not redeclare route '{$name}'"); - } else { - $this->namedRoutes[$name] = $route; - } - - } - - return; - } - - /** - * Reversed routing - * - * Generate the URL for a named route. Replace regexes with supplied parameters - * - * @param string $routeName The name of the route. - * @param array @params Associative array of parameters to replace placeholders with. - * @return string The URL of the route with named parameters in place. - */ - public function generate($routeName, array $params = array()) { - - // Check if named route exists - if(!isset($this->namedRoutes[$routeName])) { - throw new \Exception("Route '{$routeName}' does not exist."); - } - - // Replace named parameters - $route = $this->namedRoutes[$routeName]; - - // prepend base path to route url again - $url = $this->basePath . $route; - - if (preg_match_all('`(/|\.|)\[([^:\]]*+)(?::([^:\]]*+))?\](\?|)`', $route, $matches, PREG_SET_ORDER)) { - - foreach($matches as $match) { - list($block, $pre, $type, $param, $optional) = $match; - - if ($pre) { - $block = substr($block, 1); - } - - if(isset($params[$param])) { - $url = str_replace($block, $params[$param], $url); - } elseif ($optional) { - $url = str_replace($pre . $block, '', $url); - } - } - - - } - - return $url; - } - - /** - * Match a given Request Url against stored routes - * @param string $requestUrl - * @param string $requestMethod - * @return array|boolean Array with route information on success, false on failure (no match). - */ - public function match($requestUrl = null, $requestMethod = null) { - - $params = array(); - $match = false; - - // set Request Url if it isn't passed as parameter - if($requestUrl === null) { - $requestUrl = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/'; - } - - // strip base path from request url - $requestUrl = substr($requestUrl, strlen($this->basePath)); - - // Strip query string (?a=b) from Request Url - if (($strpos = strpos($requestUrl, '?')) !== false) { - $requestUrl = substr($requestUrl, 0, $strpos); - } - - // set Request Method if it isn't passed as a parameter - if($requestMethod === null) { - $requestMethod = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET'; - } - - // Force request_order to be GP - // http://www.mail-archive.com/internals@lists.php.net/msg33119.html - $_REQUEST = array_merge($_GET, $_POST); - - foreach($this->routes as $handler) { - list($method, $_route, $target, $name) = $handler; - - $methods = explode('|', $method); - $method_match = false; - - // Check if request method matches. If not, abandon early. (CHEAP) - foreach($methods as $method) { - if (strcasecmp($requestMethod, $method) === 0) { - $method_match = true; - break; - } - } - - // Method did not match, continue to next route. - if(!$method_match) continue; - - // Check for a wildcard (matches all) - if ($_route === '*') { - $match = true; - } elseif (isset($_route[0]) && $_route[0] === '@') { - $match = preg_match('`' . substr($_route, 1) . '`u', $requestUrl, $params); - } else { - $route = null; - $regex = false; - $j = 0; - $n = isset($_route[0]) ? $_route[0] : null; - $i = 0; - - // Find the longest non-regex substring and match it against the URI - while (true) { - if (!isset($_route[$i])) { - break; - } elseif (false === $regex) { - $c = $n; - $regex = $c === '[' || $c === '(' || $c === '.'; - if (false === $regex && false !== isset($_route[$i+1])) { - $n = $_route[$i + 1]; - $regex = $n === '?' || $n === '+' || $n === '*' || $n === '{'; - } - if (false === $regex && $c !== '/' && (!isset($requestUrl[$j]) || $c !== $requestUrl[$j])) { - continue 2; - } - $j++; - } - $route .= $_route[$i++]; - } - - $regex = $this->compileRoute($route); - $match = preg_match($regex, $requestUrl, $params); - } - - if(($match == true || $match > 0)) { - - if($params) { - foreach($params as $key => $value) { - if(is_numeric($key)) unset($params[$key]); - } - } - - return array( - 'target' => $target, - 'params' => $params, - 'name' => $name - ); - } - } - return false; - } - - /** - * Compile the regex for a given route (EXPENSIVE) - */ - private function compileRoute($route) { - if (preg_match_all('`(/|\.|)\[([^:\]]*+)(?::([^:\]]*+))?\](\?|)`', $route, $matches, PREG_SET_ORDER)) { - - $matchTypes = $this->matchTypes; - foreach($matches as $match) { - list($block, $pre, $type, $param, $optional) = $match; - - if (isset($matchTypes[$type])) { - $type = $matchTypes[$type]; - } - if ($pre === '.') { - $pre = '\.'; - } - - //Older versions of PCRE require the 'P' in (?P) - $pattern = '(?:' - . ($pre !== '' ? $pre : null) - . '(' - . ($param !== '' ? "?P<$param>" : null) - . $type - . '))' - . ($optional !== '' ? '?' : null); - - $route = str_replace($block, $pattern, $route); - } - - } - return "`^$route$`u"; - } -} diff --git a/Sources/API/vendor/altorouter/altorouter/AltoRouterTest.php b/Sources/API/vendor/altorouter/altorouter/AltoRouterTest.php deleted file mode 100644 index 2462cd8..0000000 --- a/Sources/API/vendor/altorouter/altorouter/AltoRouterTest.php +++ /dev/null @@ -1,423 +0,0 @@ -namedRoutes; - } - - public function getRoutes(){ - return $this->routes; - } - - public function getBasePath(){ - return $this->basePath; - } - -} - -class SimpleTraversable implements Iterator{ - - protected $_position = 0; - - protected $_data = array( - array('GET', '/foo', 'foo_action', null), - array('POST', '/bar', 'bar_action', 'second_route') - ); - - public function current(){ - return $this->_data[$this->_position]; - } - public function key(){ - return $this->_position; - } - public function next(){ - ++$this->_position; - } - public function rewind(){ - $this->_position = 0; - } - public function valid(){ - return isset($this->_data[$this->_position]); - } - -} - -/** - * Generated by PHPUnit_SkeletonGenerator 1.2.1 on 2013-07-14 at 17:47:46. - */ -class AltoRouterTest extends PHPUnit_Framework_TestCase -{ - /** - * @var AltoRouter - */ - protected $router; - - /** - * Sets up the fixture, for example, opens a network connection. - * This method is called before a test is executed. - */ - protected function setUp() - { - $this->router = new AltoRouterDebug; - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - */ - protected function tearDown() - { - } - - /** - * @covers AltoRouter::addRoutes - */ - public function testAddRoutes() - { - $method = 'POST'; - $route = '/[:controller]/[:action]'; - $target = function(){}; - - $this->router->addRoutes(array( - array($method, $route, $target), - array($method, $route, $target, 'second_route') - )); - - $routes = $this->router->getRoutes(); - - $this->assertEquals(array($method, $route, $target, null), $routes[0]); - $this->assertEquals(array($method, $route, $target, 'second_route'), $routes[1]); - } - - /** - * @covers AltoRouter::addRoutes - */ - public function testAddRoutesAcceptsTraverable() - { - $traversable = new SimpleTraversable(); - $this->router->addRoutes($traversable); - - $traversable->rewind(); - - $first = $traversable->current(); - $traversable->next(); - $second = $traversable->current(); - - $routes = $this->router->getRoutes(); - - $this->assertEquals($first, $routes[0]); - $this->assertEquals($second, $routes[1]); - } - - /** - * @covers AltoRouter::addRoutes - * @expectedException Exception - */ - public function testAddRoutesThrowsExceptionOnInvalidArgument() - { - $this->router->addRoutes(new stdClass); - } - - /** - * @covers AltoRouter::setBasePath - */ - public function testSetBasePath() - { - $basePath = $this->router->setBasePath('/some/path'); - $this->assertEquals('/some/path', $this->router->getBasePath()); - - $basePath = $this->router->setBasePath('/some/path'); - $this->assertEquals('/some/path', $this->router->getBasePath()); - } - - /** - * @covers AltoRouter::map - */ - public function testMap() - { - $method = 'POST'; - $route = '/[:controller]/[:action]'; - $target = function(){}; - - $this->router->map($method, $route, $target); - - $routes = $this->router->getRoutes(); - - $this->assertEquals(array($method, $route, $target, null), $routes[0]); - } - - /** - * @covers AltoRouter::map - */ - public function testMapWithName() - { - $method = 'POST'; - $route = '/[:controller]/[:action]'; - $target = function(){}; - $name = 'myroute'; - - $this->router->map($method, $route, $target, $name); - - $routes = $this->router->getRoutes(); - $this->assertEquals(array($method, $route, $target, $name), $routes[0]); - - $named_routes = $this->router->getNamedRoutes(); - $this->assertEquals($route, $named_routes[$name]); - - try{ - $this->router->map($method, $route, $target, $name); - $this->fail('Should not be able to add existing named route'); - }catch(Exception $e){ - $this->assertEquals("Can not redeclare route '{$name}'", $e->getMessage()); - } - } - - - /** - * @covers AltoRouter::generate - */ - public function testGenerate() - { - $params = array( - 'controller' => 'test', - 'action' => 'someaction' - ); - - $this->router->map('GET', '/[:controller]/[:action]', function(){}, 'foo_route'); - - $this->assertEquals('/test/someaction', - $this->router->generate('foo_route', $params)); - - $params = array( - 'controller' => 'test', - 'action' => 'someaction', - 'type' => 'json' - ); - - $this->assertEquals('/test/someaction', - $this->router->generate('foo_route', $params)); - - } - - public function testGenerateWithOptionalUrlParts() - { - $this->router->map('GET', '/[:controller]/[:action].[:type]?', function(){}, 'bar_route'); - - $params = array( - 'controller' => 'test', - 'action' => 'someaction' - ); - - $this->assertEquals('/test/someaction', - $this->router->generate('bar_route', $params)); - - $params = array( - 'controller' => 'test', - 'action' => 'someaction', - 'type' => 'json' - ); - - $this->assertEquals('/test/someaction.json', - $this->router->generate('bar_route', $params)); - } - - public function testGenerateWithNonexistingRoute() - { - try{ - $this->router->generate('nonexisting_route'); - $this->fail('Should trigger an exception on nonexisting named route'); - }catch(Exception $e){ - $this->assertEquals("Route 'nonexisting_route' does not exist.", $e->getMessage()); - } - } - - /** - * @covers AltoRouter::match - * @covers AltoRouter::compileRoute - */ - public function testMatch() - { - $this->router->map('GET', '/foo/[:controller]/[:action]', 'foo_action', 'foo_route'); - - $this->assertEquals(array( - 'target' => 'foo_action', - 'params' => array( - 'controller' => 'test', - 'action' => 'do' - ), - 'name' => 'foo_route' - ), $this->router->match('/foo/test/do', 'GET')); - - $this->assertFalse($this->router->match('/foo/test/do', 'POST')); - - $this->assertEquals(array( - 'target' => 'foo_action', - 'params' => array( - 'controller' => 'test', - 'action' => 'do' - ), - 'name' => 'foo_route' - ), $this->router->match('/foo/test/do?param=value', 'GET')); - - } - - public function testMatchWithFixedParamValues() - { - $this->router->map('POST','/users/[i:id]/[delete|update:action]', 'usersController#doAction', 'users_do'); - - $this->assertEquals(array( - 'target' => 'usersController#doAction', - 'params' => array( - 'id' => 1, - 'action' => 'delete' - ), - 'name' => 'users_do' - ), $this->router->match('/users/1/delete', 'POST')); - - $this->assertFalse($this->router->match('/users/1/delete', 'GET')); - $this->assertFalse($this->router->match('/users/abc/delete', 'POST')); - $this->assertFalse($this->router->match('/users/1/create', 'GET')); - } - - public function testMatchWithServerVars() - { - $this->router->map('GET', '/foo/[:controller]/[:action]', 'foo_action', 'foo_route'); - - $_SERVER['REQUEST_URI'] = '/foo/test/do'; - $_SERVER['REQUEST_METHOD'] = 'GET'; - - $this->assertEquals(array( - 'target' => 'foo_action', - 'params' => array( - 'controller' => 'test', - 'action' => 'do' - ), - 'name' => 'foo_route' - ), $this->router->match()); - } - - public function testMatchWithOptionalUrlParts() - { - $this->router->map('GET', '/bar/[:controller]/[:action].[:type]?', 'bar_action', 'bar_route'); - - $this->assertEquals(array( - 'target' => 'bar_action', - 'params' => array( - 'controller' => 'test', - 'action' => 'do', - 'type' => 'json' - ), - 'name' => 'bar_route' - ), $this->router->match('/bar/test/do.json', 'GET')); - - } - - public function testMatchWithWildcard() - { - $this->router->map('GET', '/a', 'foo_action', 'foo_route'); - $this->router->map('GET', '*', 'bar_action', 'bar_route'); - - $this->assertEquals(array( - 'target' => 'bar_action', - 'params' => array(), - 'name' => 'bar_route' - ), $this->router->match('/everything', 'GET')); - - } - - public function testMatchWithCustomRegexp() - { - $this->router->map('GET', '@^/[a-z]*$', 'bar_action', 'bar_route'); - - $this->assertEquals(array( - 'target' => 'bar_action', - 'params' => array(), - 'name' => 'bar_route' - ), $this->router->match('/everything', 'GET')); - - $this->assertFalse($this->router->match('/some-other-thing', 'GET')); - - } - - public function testMatchWithUnicodeRegex() - { - $pattern = '/(?[^'; - // Arabic characters - $pattern .= '\x{0600}-\x{06FF}'; - $pattern .= '\x{FB50}-\x{FDFD}'; - $pattern .= '\x{FE70}-\x{FEFF}'; - $pattern .= '\x{0750}-\x{077F}'; - // Alphanumeric, /, _, - and space characters - $pattern .= 'a-zA-Z0-9\/_-\s'; - // 'ZERO WIDTH NON-JOINER' - $pattern .= '\x{200C}'; - $pattern .= ']+)'; - - $this->router->map('GET', '@' . $pattern, 'unicode_action', 'unicode_route'); - - $this->assertEquals(array( - 'target' => 'unicode_action', - 'name' => 'unicode_route', - 'params' => array( - 'path' => '大家好' - ) - ), $this->router->match('/大家好', 'GET')); - - $this->assertFalse($this->router->match('/﷽‎', 'GET')); - } - - /** - * @covers AltoRouter::addMatchTypes - */ - public function testMatchWithCustomNamedRegex() - { - $this->router->addMatchTypes(array('cId' => '[a-zA-Z]{2}[0-9](?:_[0-9]++)?')); - $this->router->map('GET', '/bar/[cId:customId]', 'bar_action', 'bar_route'); - - $this->assertEquals(array( - 'target' => 'bar_action', - 'params' => array( - 'customId' => 'AB1', - ), - 'name' => 'bar_route' - ), $this->router->match('/bar/AB1', 'GET')); - - $this->assertEquals(array( - 'target' => 'bar_action', - 'params' => array( - 'customId' => 'AB1_0123456789', - ), - 'name' => 'bar_route' - ), $this->router->match('/bar/AB1_0123456789', 'GET')); - - $this->assertFalse($this->router->match('/some-other-thing', 'GET')); - - } - - public function testMatchWithCustomNamedUnicodeRegex() - { - $pattern = '[^'; - // Arabic characters - $pattern .= '\x{0600}-\x{06FF}'; - $pattern .= '\x{FB50}-\x{FDFD}'; - $pattern .= '\x{FE70}-\x{FEFF}'; - $pattern .= '\x{0750}-\x{077F}'; - $pattern .= ']+'; - - $this->router->addMatchTypes(array('nonArabic' => $pattern)); - $this->router->map('GET', '/bar/[nonArabic:string]', 'non_arabic_action', 'non_arabic_route'); - - $this->assertEquals(array( - 'target' => 'non_arabic_action', - 'name' => 'non_arabic_route', - 'params' => array( - 'string' => 'some-path' - ) - ), $this->router->match('/bar/some-path', 'GET')); - - $this->assertFalse($this->router->match('/﷽‎', 'GET')); - } -} diff --git a/Sources/API/vendor/altorouter/altorouter/README.md b/Sources/API/vendor/altorouter/altorouter/README.md deleted file mode 100644 index cb2acb3..0000000 --- a/Sources/API/vendor/altorouter/altorouter/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# AltoRouter [![Build Status](https://api.travis-ci.org/dannyvankooten/AltoRouter.png)](http://travis-ci.org/dannyvankooten/AltoRouter) -AltoRouter is a small but powerful routing class for PHP 5.3+, heavily inspired by [klein.php](https://github.com/chriso/klein.php/). - -* Dynamic routing with named parameters -* Reversed routing -* Flexible regular expression routing (inspired by [Sinatra](http://www.sinatrarb.com/)) -* Custom regexes - -## Getting started - -1. PHP 5.3.x is required -2. Install AltoRouter using Composer or manually -2. Setup URL rewriting so that all requests are handled by **index.php** -3. Create an instance of AltoRouter, map your routes and match a request. -4. Have a look at the basic example in the `examples` directory for a better understanding on how to use AltoRouter. - -## Routing -```php -$router = new AltoRouter(); -$router->setBasePath('/AltoRouter'); // (optional) the subdir AltoRouter lives in - -// mapping routes -$router->map('GET|POST','/', 'home#index', 'home'); -$router->map('GET','/users', array('c' => 'UserController', 'a' => 'ListAction')); -$router->map('GET','/users/[i:id]', 'users#show', 'users_show'); -$router->map('POST','/users/[i:id]/[delete|update:action]', 'usersController#doAction', 'users_do'); - -// reversed routing -$router->generate('users_show', array('id' => 5)); - -``` - -**You can use the following limits on your named parameters. AltoRouter will create the correct regexes for you.** - -```php -* // Match all request URIs -[i] // Match an integer -[i:id] // Match an integer as 'id' -[a:action] // Match alphanumeric characters as 'action' -[h:key] // Match hexadecimal characters as 'key' -[:action] // Match anything up to the next / or end of the URI as 'action' -[create|edit:action] // Match either 'create' or 'edit' as 'action' -[*] // Catch all (lazy, stops at the next trailing slash) -[*:trailing] // Catch all as 'trailing' (lazy) -[**:trailing] // Catch all (possessive - will match the rest of the URI) -.[:format]? // Match an optional parameter 'format' - a / or . before the block is also optional -``` - -**Some more complicated examples** - -```php -@/(?[A-Za-z]{2}_[A-Za-z]{2})$ // custom regex, matches language codes like "en_us" etc. -/posts/[*:title][i:id] // Matches "/posts/this-is-a-title-123" -/output.[xml|json:format]? // Matches "/output", "output.xml", "output.json" -/[:controller]?/[:action]? // Matches the typical /controller/action format -``` - -**The character before the colon (the 'match type') is a shortcut for one of the following regular expressions** - -```php -'i' => '[0-9]++' -'a' => '[0-9A-Za-z]++' -'h' => '[0-9A-Fa-f]++' -'*' => '.+?' -'**' => '.++' -'' => '[^/\.]++' -``` - -**New match types can be added using the `addMatchTypes()` method** - -```php -$router->addMatchTypes(array('cId' => '[a-zA-Z]{2}[0-9](?:_[0-9]++)?')); -``` - - -## Contributors -- [Danny van Kooten](https://github.com/dannyvankooten) -- [Koen Punt](https://github.com/koenpunt) -- [John Long](https://github.com/adduc) -- [Niahoo Osef](https://github.com/niahoo) - -## License - -(MIT License) - -Copyright (c) 2012-2013 Danny van Kooten - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Sources/API/vendor/altorouter/altorouter/composer.json b/Sources/API/vendor/altorouter/altorouter/composer.json deleted file mode 100644 index 58e86c4..0000000 --- a/Sources/API/vendor/altorouter/altorouter/composer.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "altorouter/altorouter", - "description": "A lightning fast router for PHP", - "keywords": ["router", "routing", "lightweight"], - "homepage": "https://github.com/dannyvankooten/AltoRouter", - "license": "MIT", - "authors": [ - { - "name": "Danny van Kooten", - "email": "dannyvankooten@gmail.com", - "homepage": "http://dannyvankooten.com/" - }, - { - "name": "Koen Punt", - "homepage": "https://github.com/koenpunt" - }, - { - "name": "niahoo", - "homepage": "https://github.com/niahoo" - } - ], - "require": { - "php": ">=5.3.0" - }, - "autoload": { - "classmap": ["AltoRouter.php"] - } -} diff --git a/Sources/API/vendor/altorouter/altorouter/examples/basic/.htaccess b/Sources/API/vendor/altorouter/altorouter/examples/basic/.htaccess deleted file mode 100644 index d7e1320..0000000 --- a/Sources/API/vendor/altorouter/altorouter/examples/basic/.htaccess +++ /dev/null @@ -1,3 +0,0 @@ -RewriteEngine On -RewriteCond %{REQUEST_FILENAME} !-f -RewriteRule . index.php [L] diff --git a/Sources/API/vendor/altorouter/altorouter/examples/basic/index.php b/Sources/API/vendor/altorouter/altorouter/examples/basic/index.php deleted file mode 100644 index 8326695..0000000 --- a/Sources/API/vendor/altorouter/altorouter/examples/basic/index.php +++ /dev/null @@ -1,27 +0,0 @@ -setBasePath('/AltoRouter/examples/basic'); -$router->map('GET|POST','/', 'home#index', 'home'); -$router->map('GET','/users/', array('c' => 'UserController', 'a' => 'ListAction')); -$router->map('GET','/users/[i:id]', 'users#show', 'users_show'); -$router->map('POST','/users/[i:id]/[delete|update:action]', 'usersController#doAction', 'users_do'); - -// match current request -$match = $router->match(); -?> -

AltoRouter

- -

Current request:

-
-	Target: 
-	Params: 
-	Name: 	
-
- -

Try these requests:

-

GET generate('home'); ?>

-

GET generate('users_show', array('id' => 5)); ?>

-

diff --git a/Sources/API/vendor/autoload.php b/Sources/API/vendor/autoload.php index fbdc425..86e67b0 100644 --- a/Sources/API/vendor/autoload.php +++ b/Sources/API/vendor/autoload.php @@ -2,24 +2,6 @@ // autoload.php @generated by Composer -if (PHP_VERSION_ID < 50600) { - if (!headers_sent()) { - header('HTTP/1.1 500 Internal Server Error'); - } - $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL; - if (!ini_get('display_errors')) { - if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { - fwrite(STDERR, $err); - } elseif (!headers_sent()) { - echo $err; - } - } - trigger_error( - $err, - E_USER_ERROR - ); -} - require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit2724f76bdbf961b3280ed7526287b513::getLoader(); +return ComposerAutoloaderInita934429c0ea4f4482346c5d296943a81::getLoader(); diff --git a/Sources/API/vendor/composer.json b/Sources/API/vendor/composer.json deleted file mode 100644 index cd42de9..0000000 --- a/Sources/API/vendor/composer.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "require": { - "altorouter/altorouter": "1.1.0" - } -} \ No newline at end of file diff --git a/Sources/API/vendor/composer.lock b/Sources/API/vendor/composer.lock deleted file mode 100644 index b987ae6..0000000 --- a/Sources/API/vendor/composer.lock +++ /dev/null @@ -1,74 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "fdb55ab3a826cc81720434dd90eab926", - "packages": [ - { - "name": "altorouter/altorouter", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/dannyvankooten/AltoRouter.git", - "reference": "09d9d946c546bae6d22a7654cdb3b825ffda54b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dannyvankooten/AltoRouter/zipball/09d9d946c546bae6d22a7654cdb3b825ffda54b4", - "reference": "09d9d946c546bae6d22a7654cdb3b825ffda54b4", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "AltoRouter.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Danny van Kooten", - "email": "dannyvankooten@gmail.com", - "homepage": "http://dannyvankooten.com/" - }, - { - "name": "Koen Punt", - "homepage": "https://github.com/koenpunt" - }, - { - "name": "niahoo", - "homepage": "https://github.com/niahoo" - } - ], - "description": "A lightning fast router for PHP", - "homepage": "https://github.com/dannyvankooten/AltoRouter", - "keywords": [ - "lightweight", - "router", - "routing" - ], - "support": { - "issues": "https://github.com/dannyvankooten/AltoRouter/issues", - "source": "https://github.com/dannyvankooten/AltoRouter/tree/master" - }, - "time": "2014-04-16T09:44:40+00:00" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [], - "plugin-api-version": "2.3.0" -} diff --git a/Sources/API/vendor/composer.phar b/Sources/API/vendor/composer.phar deleted file mode 100755 index 6d799ebd6f101824bfc6c5b1f4970f3783d90a5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2810737 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

PtHH_DBr8a|oTwR%l7W5cV-{1{DYq-k+ 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 z

ADPN@nrP6ko~NVQ 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%0DC)ub-`wo$2 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
r(v+k4pS#_}7On&|PZ-1b~eU>{LAf$XL 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
buperM*IN4WY2m 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� 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

w?* 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

VctV8+1a!Mui4td*e(O8_su3UkD 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�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

-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
Yr=2sZ+M)BnYEj=G_b6V(h^hG$ka6< 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
L>4S)Q|TDIYjA5_aW{PE*y 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 @rly^#N?s>MC_#(CvGo3QGPfveb#@X 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 + * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}|array{}|null */ private static $installed; @@ -39,7 +37,7 @@ class InstalledVersions /** * @var array[] - * @psalm-var array}> + * @psalm-var array}> */ private static $installedByVendor = array(); @@ -243,7 +241,7 @@ class InstalledVersions /** * @return array - * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string} */ public static function getRootPackage() { @@ -257,7 +255,7 @@ class InstalledVersions * * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. * @return array[] - * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} */ public static function getRawData() { @@ -280,7 +278,7 @@ class InstalledVersions * Returns the raw data of all installed.php which are currently loaded for custom implementations * * @return array[] - * @psalm-return list}> + * @psalm-return list}> */ public static function getAllRawData() { @@ -303,7 +301,7 @@ class InstalledVersions * @param array[] $data A vendor/composer/installed.php data set * @return void * - * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} $data */ public static function reload($data) { @@ -313,7 +311,7 @@ class InstalledVersions /** * @return array[] - * @psalm-return list}> + * @psalm-return list}> */ private static function getInstalled() { diff --git a/Sources/API/vendor/composer/LICENSE b/Sources/API/vendor/composer/LICENSE index f27399a..62ecfd8 100644 --- a/Sources/API/vendor/composer/LICENSE +++ b/Sources/API/vendor/composer/LICENSE @@ -1,4 +1,3 @@ - Copyright (c) Nils Adermann, Jordi Boggiano Permission is hereby granted, free of charge, to any person obtaining a copy @@ -18,4 +17,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/Sources/API/vendor/composer/autoload_classmap.php b/Sources/API/vendor/composer/autoload_classmap.php index 6d812c2..dc15c48 100644 --- a/Sources/API/vendor/composer/autoload_classmap.php +++ b/Sources/API/vendor/composer/autoload_classmap.php @@ -2,10 +2,14 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(__DIR__); +$vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - 'AltoRouter' => $vendorDir . '/altorouter/altorouter/AltoRouter.php', + 'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', + 'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', + 'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', + 'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', + 'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', ); diff --git a/Sources/API/vendor/composer/autoload_files.php b/Sources/API/vendor/composer/autoload_files.php new file mode 100644 index 0000000..33dd33f --- /dev/null +++ b/Sources/API/vendor/composer/autoload_files.php @@ -0,0 +1,12 @@ + $vendorDir . '/symfony/polyfill-php80/bootstrap.php', + '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', + '253c157292f75eb38082b5acb06f3f01' => $vendorDir . '/nikic/fast-route/src/functions.php', +); diff --git a/Sources/API/vendor/composer/autoload_namespaces.php b/Sources/API/vendor/composer/autoload_namespaces.php index 15a2ff3..b7fc012 100644 --- a/Sources/API/vendor/composer/autoload_namespaces.php +++ b/Sources/API/vendor/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(__DIR__); +$vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( diff --git a/Sources/API/vendor/composer/autoload_psr4.php b/Sources/API/vendor/composer/autoload_psr4.php index 3890ddc..5bba2b0 100644 --- a/Sources/API/vendor/composer/autoload_psr4.php +++ b/Sources/API/vendor/composer/autoload_psr4.php @@ -2,8 +2,17 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(__DIR__); +$vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), + 'Slim\\Psr7\\' => array($vendorDir . '/slim/psr7/src'), + 'Slim\\' => array($vendorDir . '/slim/slim/Slim'), + 'Psr\\Log\\' => array($vendorDir . '/psr/log/src'), + 'Psr\\Http\\Server\\' => array($vendorDir . '/psr/http-server-handler/src', $vendorDir . '/psr/http-server-middleware/src'), + 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'), + 'Psr\\Container\\' => array($vendorDir . '/psr/container/src'), + 'Fig\\Http\\Message\\' => array($vendorDir . '/fig/http-message-util/src'), + 'FastRoute\\' => array($vendorDir . '/nikic/fast-route/src'), ); diff --git a/Sources/API/vendor/composer/autoload_real.php b/Sources/API/vendor/composer/autoload_real.php index 067933a..1db1e4c 100644 --- a/Sources/API/vendor/composer/autoload_real.php +++ b/Sources/API/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit2724f76bdbf961b3280ed7526287b513 +class ComposerAutoloaderInita934429c0ea4f4482346c5d296943a81 { private static $loader; @@ -24,15 +24,57 @@ class ComposerAutoloaderInit2724f76bdbf961b3280ed7526287b513 require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInit2724f76bdbf961b3280ed7526287b513', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit2724f76bdbf961b3280ed7526287b513', 'loadClassLoader')); + spl_autoload_register(array('ComposerAutoloaderInita934429c0ea4f4482346c5d296943a81', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + spl_autoload_unregister(array('ComposerAutoloaderInita934429c0ea4f4482346c5d296943a81', 'loadClassLoader')); - require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit2724f76bdbf961b3280ed7526287b513::getInitializer($loader)); + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInita934429c0ea4f4482346c5d296943a81::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } $loader->register(true); + if ($useStaticLoader) { + $includeFiles = Composer\Autoload\ComposerStaticInita934429c0ea4f4482346c5d296943a81::$files; + } else { + $includeFiles = require __DIR__ . '/autoload_files.php'; + } + foreach ($includeFiles as $fileIdentifier => $file) { + composerRequirea934429c0ea4f4482346c5d296943a81($fileIdentifier, $file); + } + return $loader; } } + +/** + * @param string $fileIdentifier + * @param string $file + * @return void + */ +function composerRequirea934429c0ea4f4482346c5d296943a81($fileIdentifier, $file) +{ + if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; + } +} diff --git a/Sources/API/vendor/composer/autoload_static.php b/Sources/API/vendor/composer/autoload_static.php index e084f89..2d0493e 100644 --- a/Sources/API/vendor/composer/autoload_static.php +++ b/Sources/API/vendor/composer/autoload_static.php @@ -4,17 +4,91 @@ namespace Composer\Autoload; -class ComposerStaticInit2724f76bdbf961b3280ed7526287b513 +class ComposerStaticInita934429c0ea4f4482346c5d296943a81 { + public static $files = array ( + 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', + '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', + '253c157292f75eb38082b5acb06f3f01' => __DIR__ . '/..' . '/nikic/fast-route/src/functions.php', + ); + + public static $prefixLengthsPsr4 = array ( + 'S' => + array ( + 'Symfony\\Polyfill\\Php80\\' => 23, + 'Slim\\Psr7\\' => 10, + 'Slim\\' => 5, + ), + 'P' => + array ( + 'Psr\\Log\\' => 8, + 'Psr\\Http\\Server\\' => 16, + 'Psr\\Http\\Message\\' => 17, + 'Psr\\Container\\' => 14, + ), + 'F' => + array ( + 'Fig\\Http\\Message\\' => 17, + 'FastRoute\\' => 10, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Symfony\\Polyfill\\Php80\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-php80', + ), + 'Slim\\Psr7\\' => + array ( + 0 => __DIR__ . '/..' . '/slim/psr7/src', + ), + 'Slim\\' => + array ( + 0 => __DIR__ . '/..' . '/slim/slim/Slim', + ), + 'Psr\\Log\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/log/src', + ), + 'Psr\\Http\\Server\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/http-server-handler/src', + 1 => __DIR__ . '/..' . '/psr/http-server-middleware/src', + ), + 'Psr\\Http\\Message\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/http-factory/src', + 1 => __DIR__ . '/..' . '/psr/http-message/src', + ), + 'Psr\\Container\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/container/src', + ), + 'Fig\\Http\\Message\\' => + array ( + 0 => __DIR__ . '/..' . '/fig/http-message-util/src', + ), + 'FastRoute\\' => + array ( + 0 => __DIR__ . '/..' . '/nikic/fast-route/src', + ), + ); + public static $classMap = array ( - 'AltoRouter' => __DIR__ . '/..' . '/altorouter/altorouter/AltoRouter.php', + 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', + 'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', + 'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', + 'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', ); public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->classMap = ComposerStaticInit2724f76bdbf961b3280ed7526287b513::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInita934429c0ea4f4482346c5d296943a81::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInita934429c0ea4f4482346c5d296943a81::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInita934429c0ea4f4482346c5d296943a81::$classMap; }, null, ClassLoader::class); } diff --git a/Sources/API/vendor/composer/installed.json b/Sources/API/vendor/composer/installed.json index d4c5dd8..b69dd50 100644 --- a/Sources/API/vendor/composer/installed.json +++ b/Sources/API/vendor/composer/installed.json @@ -1,29 +1,749 @@ { "packages": [ { - "name": "altorouter/altorouter", - "version": "v1.1.0", - "version_normalized": "1.1.0.0", + "name": "fig/http-message-util", + "version": "1.1.5", + "version_normalized": "1.1.5.0", "source": { "type": "git", - "url": "https://github.com/dannyvankooten/AltoRouter.git", - "reference": "09d9d946c546bae6d22a7654cdb3b825ffda54b4" + "url": "https://github.com/php-fig/http-message-util.git", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dannyvankooten/AltoRouter/zipball/09d9d946c546bae6d22a7654cdb3b825ffda54b4", - "reference": "09d9d946c546bae6d22a7654cdb3b825ffda54b4", + "url": "https://api.github.com/repos/php-fig/http-message-util/zipball/9d94dc0154230ac39e5bf89398b324a86f63f765", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "suggest": { + "psr/http-message": "The package containing the PSR-7 interfaces" + }, + "time": "2020-11-24T22:02:12+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Fig\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Utility classes and constants for use with PSR-7 (psr/http-message)", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-message-util/issues", + "source": "https://github.com/php-fig/http-message-util/tree/1.1.5" + }, + "install-path": "../fig/http-message-util" + }, + { + "name": "nikic/fast-route", + "version": "v1.3.0", + "version_normalized": "1.3.0.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/FastRoute.git", + "reference": "181d480e08d9476e61381e04a71b34dc0432e812" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812", + "reference": "181d480e08d9476e61381e04a71b34dc0432e812", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35|~5.7" + }, + "time": "2018-02-13T20:26:39+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "FastRoute\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov", + "email": "nikic@php.net" + } + ], + "description": "Fast request router for PHP", + "keywords": [ + "router", + "routing" + ], + "support": { + "issues": "https://github.com/nikic/FastRoute/issues", + "source": "https://github.com/nikic/FastRoute/tree/master" + }, + "install-path": "../nikic/fast-route" + }, + { + "name": "psr/container", + "version": "2.0.2", + "version_normalized": "2.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "time": "2021-11-05T16:47:00+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "install-path": "../psr/container" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "time": "2019-04-30T12:38:16+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "install-path": "../psr/http-factory" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "shasum": "" }, "require": { "php": ">=5.3.0" }, - "time": "2014-04-16T09:44:40+00:00", + "time": "2016-08-06T14:39:51+00:00", "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "installation-source": "dist", "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "install-path": "../psr/http-message" + }, + { + "name": "psr/http-server-handler", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-handler.git", + "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/aff2f80e33b7f026ec96bb42f63242dc50ffcae7", + "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0" + }, + "time": "2018-10-30T16:46:14+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side request handler", + "keywords": [ + "handler", + "http", + "http-interop", + "psr", + "psr-15", + "psr-7", + "request", + "response", + "server" + ], + "support": { + "issues": "https://github.com/php-fig/http-server-handler/issues", + "source": "https://github.com/php-fig/http-server-handler/tree/master" + }, + "install-path": "../psr/http-server-handler" + }, + { + "name": "psr/http-server-middleware", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-middleware.git", + "reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/2296f45510945530b9dceb8bcedb5cb84d40c5f5", + "reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0" + }, + "time": "2018-10-30T17:12:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side middleware", + "keywords": [ + "http", + "http-interop", + "middleware", + "psr", + "psr-15", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-server-middleware/issues", + "source": "https://github.com/php-fig/http-server-middleware/tree/master" + }, + "install-path": "../psr/http-server-middleware" + }, + { + "name": "psr/log", + "version": "3.0.0", + "version_normalized": "3.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "time": "2021-07-14T16:46:02+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "install-path": "../psr/log" + }, + { + "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.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "install-path": "../ralouphie/getallheaders" + }, + { + "name": "slim/psr7", + "version": "1.6", + "version_normalized": "1.6.0.0", + "source": { + "type": "git", + "url": "https://github.com/slimphp/Slim-Psr7.git", + "reference": "3471c22c1a0d26c51c78f6aeb06489d38cf46a4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slimphp/Slim-Psr7/zipball/3471c22c1a0d26c51c78f6aeb06489d38cf46a4d", + "reference": "3471c22c1a0d26c51c78f6aeb06489d38cf46a4d", + "shasum": "" + }, + "require": { + "fig/http-message-util": "^1.1.5", + "php": "^7.4 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0", + "symfony/polyfill-php80": "^1.26" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "adriansuter/php-autoload-override": "^1.3", + "ext-json": "*", + "http-interop/http-factory-tests": "^0.9.0", + "php-http/psr7-integration-tests": "dev-master", + "phpspec/prophecy": "^1.15", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.7" + }, + "time": "2022-11-05T18:50:24+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Slim\\Psr7\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "http://joshlockhart.com" + }, + { + "name": "Andrew Smith", + "email": "a.smith@silentworks.co.uk", + "homepage": "http://silentworks.co.uk" + }, + { + "name": "Rob Allen", + "email": "rob@akrabat.com", + "homepage": "http://akrabat.com" + }, + { + "name": "Pierre Berube", + "email": "pierre@lgse.com", + "homepage": "http://www.lgse.com" + } + ], + "description": "Strict PSR-7 implementation", + "homepage": "https://www.slimframework.com", + "keywords": [ + "http", + "psr-7", + "psr7" + ], + "support": { + "issues": "https://github.com/slimphp/Slim-Psr7/issues", + "source": "https://github.com/slimphp/Slim-Psr7/tree/1.6" + }, + "install-path": "../slim/psr7" + }, + { + "name": "slim/slim", + "version": "4.11.0", + "version_normalized": "4.11.0.0", + "source": { + "type": "git", + "url": "https://github.com/slimphp/Slim.git", + "reference": "b0f4ca393ea037be9ac7292ba7d0a34d18bac0c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slimphp/Slim/zipball/b0f4ca393ea037be9ac7292ba7d0a34d18bac0c7", + "reference": "b0f4ca393ea037be9ac7292ba7d0a34d18bac0c7", + "shasum": "" + }, + "require": { + "ext-json": "*", + "nikic/fast-route": "^1.3", + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "adriansuter/php-autoload-override": "^1.3", + "ext-simplexml": "*", + "guzzlehttp/psr7": "^2.4", + "httpsoft/http-message": "^1.0", + "httpsoft/http-server-request": "^1.0", + "laminas/laminas-diactoros": "^2.17", + "nyholm/psr7": "^1.5", + "nyholm/psr7-server": "^1.0", + "phpspec/prophecy": "^1.15", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "slim/http": "^1.2", + "slim/psr7": "^1.5", + "squizlabs/php_codesniffer": "^3.7" + }, + "suggest": { + "ext-simplexml": "Needed to support XML format in BodyParsingMiddleware", + "ext-xml": "Needed to support XML format in BodyParsingMiddleware", + "php-di/php-di": "PHP-DI is the recommended container library to be used with Slim", + "slim/psr7": "Slim PSR-7 implementation. See https://www.slimframework.com/docs/v4/start/installation.html for more information." + }, + "time": "2022-11-06T16:33:39+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Slim\\": "Slim" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "https://joshlockhart.com" + }, + { + "name": "Andrew Smith", + "email": "a.smith@silentworks.co.uk", + "homepage": "http://silentworks.co.uk" + }, + { + "name": "Rob Allen", + "email": "rob@akrabat.com", + "homepage": "http://akrabat.com" + }, + { + "name": "Pierre Berube", + "email": "pierre@lgse.com", + "homepage": "http://www.lgse.com" + }, + { + "name": "Gabriel Manricks", + "email": "gmanricks@me.com", + "homepage": "http://gabrielmanricks.com" + } + ], + "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs", + "homepage": "https://www.slimframework.com", + "keywords": [ + "api", + "framework", + "micro", + "router" + ], + "support": { + "docs": "https://www.slimframework.com/docs/v4/", + "forum": "https://discourse.slimframework.com/", + "irc": "irc://irc.freenode.net:6667/slimphp", + "issues": "https://github.com/slimphp/Slim/issues", + "rss": "https://www.slimframework.com/blog/feed.rss", + "slack": "https://slimphp.slack.com/", + "source": "https://github.com/slimphp/Slim", + "wiki": "https://github.com/slimphp/Slim/wiki" + }, + "funding": [ + { + "url": "https://opencollective.com/slimphp", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slim/slim", + "type": "tidelift" + } + ], + "install-path": "../slim/slim" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "version_normalized": "1.27.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "time": "2022-11-03T14:55:06+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, "classmap": [ - "AltoRouter.php" + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -32,31 +752,44 @@ ], "authors": [ { - "name": "Danny van Kooten", - "email": "dannyvankooten@gmail.com", - "homepage": "http://dannyvankooten.com/" + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" }, { - "name": "Koen Punt", - "homepage": "https://github.com/koenpunt" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "niahoo", - "homepage": "https://github.com/niahoo" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A lightning fast router for PHP", - "homepage": "https://github.com/dannyvankooten/AltoRouter", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "lightweight", - "router", - "routing" + "compatibility", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/dannyvankooten/AltoRouter/issues", - "source": "https://github.com/dannyvankooten/AltoRouter/tree/master" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" }, - "install-path": "../altorouter/altorouter" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/polyfill-php80" } ], "dev": true, diff --git a/Sources/API/vendor/composer/installed.php b/Sources/API/vendor/composer/installed.php index c0e230c..e795d48 100644 --- a/Sources/API/vendor/composer/installed.php +++ b/Sources/API/vendor/composer/installed.php @@ -1,31 +1,142 @@ array( - 'name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '451f8aec79f58d67eb8a9d6097c39c99d26f8b09', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), + 'reference' => '7167670b929c4f3fec015404893ade05128b1ea4', + 'name' => '__root__', 'dev' => true, ), 'versions' => array( '__root__' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '451f8aec79f58d67eb8a9d6097c39c99d26f8b09', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), + 'reference' => '7167670b929c4f3fec015404893ade05128b1ea4', + 'dev_requirement' => false, + ), + 'fig/http-message-util' => array( + 'pretty_version' => '1.1.5', + 'version' => '1.1.5.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../fig/http-message-util', + 'aliases' => array(), + 'reference' => '9d94dc0154230ac39e5bf89398b324a86f63f765', + 'dev_requirement' => false, + ), + 'nikic/fast-route' => array( + 'pretty_version' => 'v1.3.0', + 'version' => '1.3.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../nikic/fast-route', + 'aliases' => array(), + 'reference' => '181d480e08d9476e61381e04a71b34dc0432e812', + 'dev_requirement' => false, + ), + 'psr/container' => array( + 'pretty_version' => '2.0.2', + 'version' => '2.0.2.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/container', + 'aliases' => array(), + 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', + 'dev_requirement' => false, + ), + 'psr/http-factory' => array( + 'pretty_version' => '1.0.1', + 'version' => '1.0.1.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-factory', + 'aliases' => array(), + 'reference' => '12ac7fcd07e5b077433f5f2bee95b3a771bf61be', + 'dev_requirement' => false, + ), + 'psr/http-factory-implementation' => array( + 'dev_requirement' => false, + 'provided' => array( + 0 => '1.0', + ), + ), + 'psr/http-message' => array( + 'pretty_version' => '1.0.1', + 'version' => '1.0.1.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-message', + 'aliases' => array(), + 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', + 'dev_requirement' => false, + ), + 'psr/http-message-implementation' => array( + 'dev_requirement' => false, + 'provided' => array( + 0 => '1.0', + ), + ), + 'psr/http-server-handler' => array( + 'pretty_version' => '1.0.1', + 'version' => '1.0.1.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-server-handler', + 'aliases' => array(), + 'reference' => 'aff2f80e33b7f026ec96bb42f63242dc50ffcae7', + 'dev_requirement' => false, + ), + 'psr/http-server-middleware' => array( + 'pretty_version' => '1.0.1', + 'version' => '1.0.1.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-server-middleware', + 'aliases' => array(), + 'reference' => '2296f45510945530b9dceb8bcedb5cb84d40c5f5', + 'dev_requirement' => false, + ), + 'psr/log' => array( + 'pretty_version' => '3.0.0', + 'version' => '3.0.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/log', + 'aliases' => array(), + 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', + 'dev_requirement' => false, + ), + 'ralouphie/getallheaders' => array( + 'pretty_version' => '3.0.3', + 'version' => '3.0.3.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../ralouphie/getallheaders', + 'aliases' => array(), + 'reference' => '120b605dfeb996808c31b6477290a714d356e822', + 'dev_requirement' => false, + ), + 'slim/psr7' => array( + 'pretty_version' => '1.6', + 'version' => '1.6.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../slim/psr7', + 'aliases' => array(), + 'reference' => '3471c22c1a0d26c51c78f6aeb06489d38cf46a4d', + 'dev_requirement' => false, + ), + 'slim/slim' => array( + 'pretty_version' => '4.11.0', + 'version' => '4.11.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../slim/slim', + 'aliases' => array(), + 'reference' => 'b0f4ca393ea037be9ac7292ba7d0a34d18bac0c7', 'dev_requirement' => false, ), - 'altorouter/altorouter' => array( - 'pretty_version' => 'v1.1.0', - 'version' => '1.1.0.0', - 'reference' => '09d9d946c546bae6d22a7654cdb3b825ffda54b4', + 'symfony/polyfill-php80' => array( + 'pretty_version' => 'v1.27.0', + 'version' => '1.27.0.0', 'type' => 'library', - 'install_path' => __DIR__ . '/../altorouter/altorouter', + 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), + 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', 'dev_requirement' => false, ), ), diff --git a/Sources/API/vendor/composer/platform_check.php b/Sources/API/vendor/composer/platform_check.php index 7621d4f..adfb472 100644 --- a/Sources/API/vendor/composer/platform_check.php +++ b/Sources/API/vendor/composer/platform_check.php @@ -4,8 +4,8 @@ $issues = array(); -if (!(PHP_VERSION_ID >= 50300)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 5.3.0". You are running ' . PHP_VERSION . '.'; +if (!(PHP_VERSION_ID >= 80000)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.0.0". You are running ' . PHP_VERSION . '.'; } if ($issues) { diff --git a/Sources/API/vendor/fig/http-message-util/.gitignore b/Sources/API/vendor/fig/http-message-util/.gitignore new file mode 100644 index 0000000..48b8bf9 --- /dev/null +++ b/Sources/API/vendor/fig/http-message-util/.gitignore @@ -0,0 +1 @@ +vendor/ diff --git a/Sources/API/vendor/fig/http-message-util/CHANGELOG.md b/Sources/API/vendor/fig/http-message-util/CHANGELOG.md new file mode 100644 index 0000000..1a02e54 --- /dev/null +++ b/Sources/API/vendor/fig/http-message-util/CHANGELOG.md @@ -0,0 +1,147 @@ +# Changelog + +All notable changes to this project will be documented in this file, in reverse chronological order by release. + +## 1.1.5 - 2020-11-24 + +### Added + +- [#19](https://github.com/php-fig/http-message-util/pull/19) adds support for PHP 8. + +### Changed + +- Nothing. + +### Deprecated + +- Nothing. + +### Removed + +- Nothing. + +### Fixed + +- Nothing. + +## 1.1.4 - 2020-02-05 + +### Added + +- Nothing. + +### Changed + +- Nothing. + +### Deprecated + +- Nothing. + +### Removed + +- [#15](https://github.com/php-fig/http-message-util/pull/15) removes the dependency on psr/http-message, as it is not technically necessary for usage of this package. + +### Fixed + +- Nothing. + +## 1.1.3 - 2018-11-19 + +### Added + +- [#10](https://github.com/php-fig/http-message-util/pull/10) adds the constants `StatusCodeInterface::STATUS_EARLY_HINTS` (103) and + `StatusCodeInterface::STATUS_TOO_EARLY` (425). + +### Changed + +- Nothing. + +### Deprecated + +- Nothing. + +### Removed + +- Nothing. + +### Fixed + +- Nothing. + +## 1.1.2 - 2017-02-09 + +### Added + +- [#4](https://github.com/php-fig/http-message-util/pull/4) adds the constant + `StatusCodeInterface::STATUS_MISDIRECTED_REQUEST` (421). + +### Deprecated + +- Nothing. + +### Removed + +- Nothing. + +### Fixed + +- Nothing. + +## 1.1.1 - 2017-02-06 + +### Added + +- [#3](https://github.com/php-fig/http-message-util/pull/3) adds the constant + `StatusCodeInterface::STATUS_IM_A_TEAPOT` (418). + +### Deprecated + +- Nothing. + +### Removed + +- Nothing. + +### Fixed + +- Nothing. + +## 1.1.0 - 2016-09-19 + +### Added + +- [#1](https://github.com/php-fig/http-message-util/pull/1) adds + `Fig\Http\Message\StatusCodeInterface`, with constants named after common + status reason phrases, with values indicating the status codes themselves. + +### Deprecated + +- Nothing. + +### Removed + +- Nothing. + +### Fixed + +- Nothing. + +## 1.0.0 - 2017-08-05 + +### Added + +- Adds `Fig\Http\Message\RequestMethodInterface`, with constants covering the + most common HTTP request methods as specified by the IETF. + +### Deprecated + +- Nothing. + +### Removed + +- Nothing. + +### Fixed + +- Nothing. diff --git a/Sources/API/vendor/fig/http-message-util/LICENSE b/Sources/API/vendor/fig/http-message-util/LICENSE new file mode 100644 index 0000000..e2fa347 --- /dev/null +++ b/Sources/API/vendor/fig/http-message-util/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 PHP Framework Interoperability Group + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Sources/API/vendor/fig/http-message-util/README.md b/Sources/API/vendor/fig/http-message-util/README.md new file mode 100644 index 0000000..ea5b5aa --- /dev/null +++ b/Sources/API/vendor/fig/http-message-util/README.md @@ -0,0 +1,17 @@ +# PSR Http Message Util + +This repository holds utility classes and constants to facilitate common +operations of [PSR-7](https://www.php-fig.org/psr/psr-7/); the primary purpose is +to provide constants for referring to request methods, response status codes and +messages, and potentially common headers. + +Implementation of PSR-7 interfaces is **not** within the scope of this package. + +## Installation + +Install by adding the package as a [Composer](https://getcomposer.org) +requirement: + +```bash +$ composer require fig/http-message-util +``` diff --git a/Sources/API/vendor/fig/http-message-util/composer.json b/Sources/API/vendor/fig/http-message-util/composer.json new file mode 100644 index 0000000..8645893 --- /dev/null +++ b/Sources/API/vendor/fig/http-message-util/composer.json @@ -0,0 +1,28 @@ +{ + "name": "fig/http-message-util", + "description": "Utility classes and constants for use with PSR-7 (psr/http-message)", + "keywords": ["psr", "psr-7", "http", "http-message", "request", "response"], + "license": "MIT", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "suggest": { + "psr/http-message": "The package containing the PSR-7 interfaces" + }, + "autoload": { + "psr-4": { + "Fig\\Http\\Message\\": "src/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + } +} diff --git a/Sources/API/vendor/fig/http-message-util/src/RequestMethodInterface.php b/Sources/API/vendor/fig/http-message-util/src/RequestMethodInterface.php new file mode 100644 index 0000000..97d9a93 --- /dev/null +++ b/Sources/API/vendor/fig/http-message-util/src/RequestMethodInterface.php @@ -0,0 +1,34 @@ + + * class RequestFactory implements RequestMethodInterface + * { + * public static function factory( + * $uri = '/', + * $method = self::METHOD_GET, + * $data = [] + * ) { + * } + * } + * + */ +interface RequestMethodInterface +{ + const METHOD_HEAD = 'HEAD'; + const METHOD_GET = 'GET'; + const METHOD_POST = 'POST'; + const METHOD_PUT = 'PUT'; + const METHOD_PATCH = 'PATCH'; + const METHOD_DELETE = 'DELETE'; + const METHOD_PURGE = 'PURGE'; + const METHOD_OPTIONS = 'OPTIONS'; + const METHOD_TRACE = 'TRACE'; + const METHOD_CONNECT = 'CONNECT'; +} diff --git a/Sources/API/vendor/fig/http-message-util/src/StatusCodeInterface.php b/Sources/API/vendor/fig/http-message-util/src/StatusCodeInterface.php new file mode 100644 index 0000000..99b7e78 --- /dev/null +++ b/Sources/API/vendor/fig/http-message-util/src/StatusCodeInterface.php @@ -0,0 +1,107 @@ + + * class ResponseFactory implements StatusCodeInterface + * { + * public function createResponse($code = self::STATUS_OK) + * { + * } + * } + * + */ +interface StatusCodeInterface +{ + // Informational 1xx + const STATUS_CONTINUE = 100; + const STATUS_SWITCHING_PROTOCOLS = 101; + const STATUS_PROCESSING = 102; + const STATUS_EARLY_HINTS = 103; + // Successful 2xx + const STATUS_OK = 200; + const STATUS_CREATED = 201; + const STATUS_ACCEPTED = 202; + const STATUS_NON_AUTHORITATIVE_INFORMATION = 203; + const STATUS_NO_CONTENT = 204; + const STATUS_RESET_CONTENT = 205; + const STATUS_PARTIAL_CONTENT = 206; + const STATUS_MULTI_STATUS = 207; + const STATUS_ALREADY_REPORTED = 208; + const STATUS_IM_USED = 226; + // Redirection 3xx + const STATUS_MULTIPLE_CHOICES = 300; + const STATUS_MOVED_PERMANENTLY = 301; + const STATUS_FOUND = 302; + const STATUS_SEE_OTHER = 303; + const STATUS_NOT_MODIFIED = 304; + const STATUS_USE_PROXY = 305; + const STATUS_RESERVED = 306; + const STATUS_TEMPORARY_REDIRECT = 307; + const STATUS_PERMANENT_REDIRECT = 308; + // Client Errors 4xx + const STATUS_BAD_REQUEST = 400; + const STATUS_UNAUTHORIZED = 401; + const STATUS_PAYMENT_REQUIRED = 402; + const STATUS_FORBIDDEN = 403; + const STATUS_NOT_FOUND = 404; + const STATUS_METHOD_NOT_ALLOWED = 405; + const STATUS_NOT_ACCEPTABLE = 406; + const STATUS_PROXY_AUTHENTICATION_REQUIRED = 407; + const STATUS_REQUEST_TIMEOUT = 408; + const STATUS_CONFLICT = 409; + const STATUS_GONE = 410; + const STATUS_LENGTH_REQUIRED = 411; + const STATUS_PRECONDITION_FAILED = 412; + const STATUS_PAYLOAD_TOO_LARGE = 413; + const STATUS_URI_TOO_LONG = 414; + const STATUS_UNSUPPORTED_MEDIA_TYPE = 415; + const STATUS_RANGE_NOT_SATISFIABLE = 416; + const STATUS_EXPECTATION_FAILED = 417; + const STATUS_IM_A_TEAPOT = 418; + const STATUS_MISDIRECTED_REQUEST = 421; + const STATUS_UNPROCESSABLE_ENTITY = 422; + const STATUS_LOCKED = 423; + const STATUS_FAILED_DEPENDENCY = 424; + const STATUS_TOO_EARLY = 425; + const STATUS_UPGRADE_REQUIRED = 426; + const STATUS_PRECONDITION_REQUIRED = 428; + const STATUS_TOO_MANY_REQUESTS = 429; + const STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE = 431; + const STATUS_UNAVAILABLE_FOR_LEGAL_REASONS = 451; + // Server Errors 5xx + const STATUS_INTERNAL_SERVER_ERROR = 500; + const STATUS_NOT_IMPLEMENTED = 501; + const STATUS_BAD_GATEWAY = 502; + const STATUS_SERVICE_UNAVAILABLE = 503; + const STATUS_GATEWAY_TIMEOUT = 504; + const STATUS_VERSION_NOT_SUPPORTED = 505; + const STATUS_VARIANT_ALSO_NEGOTIATES = 506; + const STATUS_INSUFFICIENT_STORAGE = 507; + const STATUS_LOOP_DETECTED = 508; + const STATUS_NOT_EXTENDED = 510; + const STATUS_NETWORK_AUTHENTICATION_REQUIRED = 511; +} diff --git a/Sources/API/vendor/nikic/fast-route/.gitignore b/Sources/API/vendor/nikic/fast-route/.gitignore new file mode 100644 index 0000000..e378a07 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/.gitignore @@ -0,0 +1,5 @@ +/vendor/ +.idea/ + +# ignore lock file since we have no extra dependencies +composer.lock diff --git a/Sources/API/vendor/nikic/fast-route/.hhconfig b/Sources/API/vendor/nikic/fast-route/.hhconfig new file mode 100644 index 0000000..0c2153c --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/.hhconfig @@ -0,0 +1 @@ +assume_php=false diff --git a/Sources/API/vendor/nikic/fast-route/.travis.yml b/Sources/API/vendor/nikic/fast-route/.travis.yml new file mode 100644 index 0000000..10f8381 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/.travis.yml @@ -0,0 +1,20 @@ +sudo: false +language: php + +php: + - 5.4 + - 5.5 + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - hhvm + +script: + - ./vendor/bin/phpunit + +before_install: + - travis_retry composer self-update + +install: + - composer install diff --git a/Sources/API/vendor/nikic/fast-route/FastRoute.hhi b/Sources/API/vendor/nikic/fast-route/FastRoute.hhi new file mode 100644 index 0000000..8d50738 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/FastRoute.hhi @@ -0,0 +1,126 @@ +; + } + + class RouteCollector { + public function __construct(RouteParser $routeParser, DataGenerator $dataGenerator); + public function addRoute(mixed $httpMethod, string $route, mixed $handler): void; + public function getData(): array; + } + + class Route { + public function __construct(string $httpMethod, mixed $handler, string $regex, array $variables); + public function matches(string $str): bool; + } + + interface DataGenerator { + public function addRoute(string $httpMethod, array $routeData, mixed $handler); + public function getData(): array; + } + + interface Dispatcher { + const int NOT_FOUND = 0; + const int FOUND = 1; + const int METHOD_NOT_ALLOWED = 2; + public function dispatch(string $httpMethod, string $uri): array; + } + + function simpleDispatcher( + (function(RouteCollector): void) $routeDefinitionCallback, + shape( + ?'routeParser' => classname, + ?'dataGenerator' => classname, + ?'dispatcher' => classname, + ?'routeCollector' => classname, + ) $options = shape()): Dispatcher; + + function cachedDispatcher( + (function(RouteCollector): void) $routeDefinitionCallback, + shape( + ?'routeParser' => classname, + ?'dataGenerator' => classname, + ?'dispatcher' => classname, + ?'routeCollector' => classname, + ?'cacheDisabled' => bool, + ?'cacheFile' => string, + ) $options = shape()): Dispatcher; +} + +namespace FastRoute\DataGenerator { + abstract class RegexBasedAbstract implements \FastRoute\DataGenerator { + protected abstract function getApproxChunkSize(); + protected abstract function processChunk($regexToRoutesMap); + + public function addRoute(string $httpMethod, array $routeData, mixed $handler): void; + public function getData(): array; + } + + class CharCountBased extends RegexBasedAbstract { + protected function getApproxChunkSize(): int; + protected function processChunk(array $regexToRoutesMap): array; + } + + class GroupCountBased extends RegexBasedAbstract { + protected function getApproxChunkSize(): int; + protected function processChunk(array $regexToRoutesMap): array; + } + + class GroupPosBased extends RegexBasedAbstract { + protected function getApproxChunkSize(): int; + protected function processChunk(array $regexToRoutesMap): array; + } + + class MarkBased extends RegexBasedAbstract { + protected function getApproxChunkSize(): int; + protected function processChunk(array $regexToRoutesMap): array; + } +} + +namespace FastRoute\Dispatcher { + abstract class RegexBasedAbstract implements \FastRoute\Dispatcher { + protected abstract function dispatchVariableRoute(array $routeData, string $uri): array; + + public function dispatch(string $httpMethod, string $uri): array; + } + + class GroupPosBased extends RegexBasedAbstract { + public function __construct(array $data); + protected function dispatchVariableRoute(array $routeData, string $uri): array; + } + + class GroupCountBased extends RegexBasedAbstract { + public function __construct(array $data); + protected function dispatchVariableRoute(array $routeData, string $uri): array; + } + + class CharCountBased extends RegexBasedAbstract { + public function __construct(array $data); + protected function dispatchVariableRoute(array $routeData, string $uri): array; + } + + class MarkBased extends RegexBasedAbstract { + public function __construct(array $data); + protected function dispatchVariableRoute(array $routeData, string $uri): array; + } +} + +namespace FastRoute\RouteParser { + class Std implements \FastRoute\RouteParser { + const string VARIABLE_REGEX = <<<'REGEX' +\{ + \s* ([a-zA-Z][a-zA-Z0-9_]*) \s* + (?: + : \s* ([^{}]*(?:\{(?-1)\}[^{}]*)*) + )? +\} +REGEX; + const string DEFAULT_DISPATCH_REGEX = '[^/]+'; + public function parse(string $route): array; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/LICENSE b/Sources/API/vendor/nikic/fast-route/LICENSE new file mode 100644 index 0000000..478e764 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/LICENSE @@ -0,0 +1,31 @@ +Copyright (c) 2013 by Nikita Popov. + +Some rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * The names of the contributors may not be used to endorse or + promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Sources/API/vendor/nikic/fast-route/README.md b/Sources/API/vendor/nikic/fast-route/README.md new file mode 100644 index 0000000..91bd466 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/README.md @@ -0,0 +1,313 @@ +FastRoute - Fast request router for PHP +======================================= + +This library provides a fast implementation of a regular expression based router. [Blog post explaining how the +implementation works and why it is fast.][blog_post] + +Install +------- + +To install with composer: + +```sh +composer require nikic/fast-route +``` + +Requires PHP 5.4 or newer. + +Usage +----- + +Here's a basic usage example: + +```php +addRoute('GET', '/users', 'get_all_users_handler'); + // {id} must be a number (\d+) + $r->addRoute('GET', '/user/{id:\d+}', 'get_user_handler'); + // The /{title} suffix is optional + $r->addRoute('GET', '/articles/{id:\d+}[/{title}]', 'get_article_handler'); +}); + +// Fetch method and URI from somewhere +$httpMethod = $_SERVER['REQUEST_METHOD']; +$uri = $_SERVER['REQUEST_URI']; + +// Strip query string (?foo=bar) and decode URI +if (false !== $pos = strpos($uri, '?')) { + $uri = substr($uri, 0, $pos); +} +$uri = rawurldecode($uri); + +$routeInfo = $dispatcher->dispatch($httpMethod, $uri); +switch ($routeInfo[0]) { + case FastRoute\Dispatcher::NOT_FOUND: + // ... 404 Not Found + break; + case FastRoute\Dispatcher::METHOD_NOT_ALLOWED: + $allowedMethods = $routeInfo[1]; + // ... 405 Method Not Allowed + break; + case FastRoute\Dispatcher::FOUND: + $handler = $routeInfo[1]; + $vars = $routeInfo[2]; + // ... call $handler with $vars + break; +} +``` + +### Defining routes + +The routes are defined by calling the `FastRoute\simpleDispatcher()` function, which accepts +a callable taking a `FastRoute\RouteCollector` instance. The routes are added by calling +`addRoute()` on the collector instance: + +```php +$r->addRoute($method, $routePattern, $handler); +``` + +The `$method` is an uppercase HTTP method string for which a certain route should match. It +is possible to specify multiple valid methods using an array: + +```php +// These two calls +$r->addRoute('GET', '/test', 'handler'); +$r->addRoute('POST', '/test', 'handler'); +// Are equivalent to this one call +$r->addRoute(['GET', 'POST'], '/test', 'handler'); +``` + +By default the `$routePattern` uses a syntax where `{foo}` specifies a placeholder with name `foo` +and matching the regex `[^/]+`. To adjust the pattern the placeholder matches, you can specify +a custom pattern by writing `{bar:[0-9]+}`. Some examples: + +```php +// Matches /user/42, but not /user/xyz +$r->addRoute('GET', '/user/{id:\d+}', 'handler'); + +// Matches /user/foobar, but not /user/foo/bar +$r->addRoute('GET', '/user/{name}', 'handler'); + +// Matches /user/foo/bar as well +$r->addRoute('GET', '/user/{name:.+}', 'handler'); +``` + +Custom patterns for route placeholders cannot use capturing groups. For example `{lang:(en|de)}` +is not a valid placeholder, because `()` is a capturing group. Instead you can use either +`{lang:en|de}` or `{lang:(?:en|de)}`. + +Furthermore parts of the route enclosed in `[...]` are considered optional, so that `/foo[bar]` +will match both `/foo` and `/foobar`. Optional parts are only supported in a trailing position, +not in the middle of a route. + +```php +// This route +$r->addRoute('GET', '/user/{id:\d+}[/{name}]', 'handler'); +// Is equivalent to these two routes +$r->addRoute('GET', '/user/{id:\d+}', 'handler'); +$r->addRoute('GET', '/user/{id:\d+}/{name}', 'handler'); + +// Multiple nested optional parts are possible as well +$r->addRoute('GET', '/user[/{id:\d+}[/{name}]]', 'handler'); + +// This route is NOT valid, because optional parts can only occur at the end +$r->addRoute('GET', '/user[/{id:\d+}]/{name}', 'handler'); +``` + +The `$handler` parameter does not necessarily have to be a callback, it could also be a controller +class name or any other kind of data you wish to associate with the route. FastRoute only tells you +which handler corresponds to your URI, how you interpret it is up to you. + +#### Shorcut methods for common request methods + +For the `GET`, `POST`, `PUT`, `PATCH`, `DELETE` and `HEAD` request methods shortcut methods are available. For example: + +```php +$r->get('/get-route', 'get_handler'); +$r->post('/post-route', 'post_handler'); +``` + +Is equivalent to: + +```php +$r->addRoute('GET', '/get-route', 'get_handler'); +$r->addRoute('POST', '/post-route', 'post_handler'); +``` + +#### Route Groups + +Additionally, you can specify routes inside of a group. All routes defined inside a group will have a common prefix. + +For example, defining your routes as: + +```php +$r->addGroup('/admin', function (RouteCollector $r) { + $r->addRoute('GET', '/do-something', 'handler'); + $r->addRoute('GET', '/do-another-thing', 'handler'); + $r->addRoute('GET', '/do-something-else', 'handler'); +}); +``` + +Will have the same result as: + + ```php +$r->addRoute('GET', '/admin/do-something', 'handler'); +$r->addRoute('GET', '/admin/do-another-thing', 'handler'); +$r->addRoute('GET', '/admin/do-something-else', 'handler'); + ``` + +Nested groups are also supported, in which case the prefixes of all the nested groups are combined. + +### Caching + +The reason `simpleDispatcher` accepts a callback for defining the routes is to allow seamless +caching. By using `cachedDispatcher` instead of `simpleDispatcher` you can cache the generated +routing data and construct the dispatcher from the cached information: + +```php +addRoute('GET', '/user/{name}/{id:[0-9]+}', 'handler0'); + $r->addRoute('GET', '/user/{id:[0-9]+}', 'handler1'); + $r->addRoute('GET', '/user/{name}', 'handler2'); +}, [ + 'cacheFile' => __DIR__ . '/route.cache', /* required */ + 'cacheDisabled' => IS_DEBUG_ENABLED, /* optional, enabled by default */ +]); +``` + +The second parameter to the function is an options array, which can be used to specify the cache +file location, among other things. + +### Dispatching a URI + +A URI is dispatched by calling the `dispatch()` method of the created dispatcher. This method +accepts the HTTP method and a URI. Getting those two bits of information (and normalizing them +appropriately) is your job - this library is not bound to the PHP web SAPIs. + +The `dispatch()` method returns an array whose first element contains a status code. It is one +of `Dispatcher::NOT_FOUND`, `Dispatcher::METHOD_NOT_ALLOWED` and `Dispatcher::FOUND`. For the +method not allowed status the second array element contains a list of HTTP methods allowed for +the supplied URI. For example: + + [FastRoute\Dispatcher::METHOD_NOT_ALLOWED, ['GET', 'POST']] + +> **NOTE:** The HTTP specification requires that a `405 Method Not Allowed` response include the +`Allow:` header to detail available methods for the requested resource. Applications using FastRoute +should use the second array element to add this header when relaying a 405 response. + +For the found status the second array element is the handler that was associated with the route +and the third array element is a dictionary of placeholder names to their values. For example: + + /* Routing against GET /user/nikic/42 */ + + [FastRoute\Dispatcher::FOUND, 'handler0', ['name' => 'nikic', 'id' => '42']] + +### Overriding the route parser and dispatcher + +The routing process makes use of three components: A route parser, a data generator and a +dispatcher. The three components adhere to the following interfaces: + +```php + 'FastRoute\\RouteParser\\Std', + 'dataGenerator' => 'FastRoute\\DataGenerator\\GroupCountBased', + 'dispatcher' => 'FastRoute\\Dispatcher\\GroupCountBased', +]); +``` + +The above options array corresponds to the defaults. By replacing `GroupCountBased` by +`GroupPosBased` you could switch to a different dispatching strategy. + +### A Note on HEAD Requests + +The HTTP spec requires servers to [support both GET and HEAD methods][2616-511]: + +> The methods GET and HEAD MUST be supported by all general-purpose servers + +To avoid forcing users to manually register HEAD routes for each resource we fallback to matching an +available GET route for a given resource. The PHP web SAPI transparently removes the entity body +from HEAD responses so this behavior has no effect on the vast majority of users. + +However, implementers using FastRoute outside the web SAPI environment (e.g. a custom server) MUST +NOT send entity bodies generated in response to HEAD requests. If you are a non-SAPI user this is +*your responsibility*; FastRoute has no purview to prevent you from breaking HTTP in such cases. + +Finally, note that applications MAY always specify their own HEAD method route for a given +resource to bypass this behavior entirely. + +### Credits + +This library is based on a router that [Levi Morrison][levi] implemented for the Aerys server. + +A large number of tests, as well as HTTP compliance considerations, were provided by [Daniel Lowrey][rdlowrey]. + + +[2616-511]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.1 "RFC 2616 Section 5.1.1" +[blog_post]: http://nikic.github.io/2014/02/18/Fast-request-routing-using-regular-expressions.html +[levi]: https://github.com/morrisonlevi +[rdlowrey]: https://github.com/rdlowrey diff --git a/Sources/API/vendor/nikic/fast-route/composer.json b/Sources/API/vendor/nikic/fast-route/composer.json new file mode 100644 index 0000000..fb446a2 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/composer.json @@ -0,0 +1,24 @@ +{ + "name": "nikic/fast-route", + "description": "Fast request router for PHP", + "keywords": ["routing", "router"], + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Nikita Popov", + "email": "nikic@php.net" + } + ], + "autoload": { + "psr-4": { + "FastRoute\\": "src/" + }, + "files": ["src/functions.php"] + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35|~5.7" + } +} diff --git a/Sources/API/vendor/nikic/fast-route/phpunit.xml b/Sources/API/vendor/nikic/fast-route/phpunit.xml new file mode 100644 index 0000000..3c807b6 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/phpunit.xml @@ -0,0 +1,24 @@ + + + + + + ./test/ + + + + + + ./src/ + + + diff --git a/Sources/API/vendor/nikic/fast-route/psalm.xml b/Sources/API/vendor/nikic/fast-route/psalm.xml new file mode 100644 index 0000000..0dca5d7 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/psalm.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sources/API/vendor/nikic/fast-route/src/BadRouteException.php b/Sources/API/vendor/nikic/fast-route/src/BadRouteException.php new file mode 100644 index 0000000..62262ec --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/BadRouteException.php @@ -0,0 +1,7 @@ + $route) { + $suffixLen++; + $suffix .= "\t"; + + $regexes[] = '(?:' . $regex . '/(\t{' . $suffixLen . '})\t{' . ($count - $suffixLen) . '})'; + $routeMap[$suffix] = [$route->handler, $route->variables]; + } + + $regex = '~^(?|' . implode('|', $regexes) . ')$~'; + return ['regex' => $regex, 'suffix' => '/' . $suffix, 'routeMap' => $routeMap]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/DataGenerator/GroupCountBased.php b/Sources/API/vendor/nikic/fast-route/src/DataGenerator/GroupCountBased.php new file mode 100644 index 0000000..54d9a05 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/DataGenerator/GroupCountBased.php @@ -0,0 +1,30 @@ + $route) { + $numVariables = count($route->variables); + $numGroups = max($numGroups, $numVariables); + + $regexes[] = $regex . str_repeat('()', $numGroups - $numVariables); + $routeMap[$numGroups + 1] = [$route->handler, $route->variables]; + + ++$numGroups; + } + + $regex = '~^(?|' . implode('|', $regexes) . ')$~'; + return ['regex' => $regex, 'routeMap' => $routeMap]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/DataGenerator/GroupPosBased.php b/Sources/API/vendor/nikic/fast-route/src/DataGenerator/GroupPosBased.php new file mode 100644 index 0000000..fc4dc0a --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/DataGenerator/GroupPosBased.php @@ -0,0 +1,27 @@ + $route) { + $regexes[] = $regex; + $routeMap[$offset] = [$route->handler, $route->variables]; + + $offset += count($route->variables); + } + + $regex = '~^(?:' . implode('|', $regexes) . ')$~'; + return ['regex' => $regex, 'routeMap' => $routeMap]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/DataGenerator/MarkBased.php b/Sources/API/vendor/nikic/fast-route/src/DataGenerator/MarkBased.php new file mode 100644 index 0000000..0aebed9 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/DataGenerator/MarkBased.php @@ -0,0 +1,27 @@ + $route) { + $regexes[] = $regex . '(*MARK:' . $markName . ')'; + $routeMap[$markName] = [$route->handler, $route->variables]; + + ++$markName; + } + + $regex = '~^(?|' . implode('|', $regexes) . ')$~'; + return ['regex' => $regex, 'routeMap' => $routeMap]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/DataGenerator/RegexBasedAbstract.php b/Sources/API/vendor/nikic/fast-route/src/DataGenerator/RegexBasedAbstract.php new file mode 100644 index 0000000..6457290 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/DataGenerator/RegexBasedAbstract.php @@ -0,0 +1,186 @@ +isStaticRoute($routeData)) { + $this->addStaticRoute($httpMethod, $routeData, $handler); + } else { + $this->addVariableRoute($httpMethod, $routeData, $handler); + } + } + + /** + * @return mixed[] + */ + public function getData() + { + if (empty($this->methodToRegexToRoutesMap)) { + return [$this->staticRoutes, []]; + } + + return [$this->staticRoutes, $this->generateVariableRouteData()]; + } + + /** + * @return mixed[] + */ + private function generateVariableRouteData() + { + $data = []; + foreach ($this->methodToRegexToRoutesMap as $method => $regexToRoutesMap) { + $chunkSize = $this->computeChunkSize(count($regexToRoutesMap)); + $chunks = array_chunk($regexToRoutesMap, $chunkSize, true); + $data[$method] = array_map([$this, 'processChunk'], $chunks); + } + return $data; + } + + /** + * @param int + * @return int + */ + private function computeChunkSize($count) + { + $numParts = max(1, round($count / $this->getApproxChunkSize())); + return (int) ceil($count / $numParts); + } + + /** + * @param mixed[] + * @return bool + */ + private function isStaticRoute($routeData) + { + return count($routeData) === 1 && is_string($routeData[0]); + } + + private function addStaticRoute($httpMethod, $routeData, $handler) + { + $routeStr = $routeData[0]; + + if (isset($this->staticRoutes[$httpMethod][$routeStr])) { + throw new BadRouteException(sprintf( + 'Cannot register two routes matching "%s" for method "%s"', + $routeStr, $httpMethod + )); + } + + if (isset($this->methodToRegexToRoutesMap[$httpMethod])) { + foreach ($this->methodToRegexToRoutesMap[$httpMethod] as $route) { + if ($route->matches($routeStr)) { + throw new BadRouteException(sprintf( + 'Static route "%s" is shadowed by previously defined variable route "%s" for method "%s"', + $routeStr, $route->regex, $httpMethod + )); + } + } + } + + $this->staticRoutes[$httpMethod][$routeStr] = $handler; + } + + private function addVariableRoute($httpMethod, $routeData, $handler) + { + list($regex, $variables) = $this->buildRegexForRoute($routeData); + + if (isset($this->methodToRegexToRoutesMap[$httpMethod][$regex])) { + throw new BadRouteException(sprintf( + 'Cannot register two routes matching "%s" for method "%s"', + $regex, $httpMethod + )); + } + + $this->methodToRegexToRoutesMap[$httpMethod][$regex] = new Route( + $httpMethod, $handler, $regex, $variables + ); + } + + /** + * @param mixed[] + * @return mixed[] + */ + private function buildRegexForRoute($routeData) + { + $regex = ''; + $variables = []; + foreach ($routeData as $part) { + if (is_string($part)) { + $regex .= preg_quote($part, '~'); + continue; + } + + list($varName, $regexPart) = $part; + + if (isset($variables[$varName])) { + throw new BadRouteException(sprintf( + 'Cannot use the same placeholder "%s" twice', $varName + )); + } + + if ($this->regexHasCapturingGroups($regexPart)) { + throw new BadRouteException(sprintf( + 'Regex "%s" for parameter "%s" contains a capturing group', + $regexPart, $varName + )); + } + + $variables[$varName] = $varName; + $regex .= '(' . $regexPart . ')'; + } + + return [$regex, $variables]; + } + + /** + * @param string + * @return bool + */ + private function regexHasCapturingGroups($regex) + { + if (false === strpos($regex, '(')) { + // Needs to have at least a ( to contain a capturing group + return false; + } + + // Semi-accurate detection for capturing groups + return (bool) preg_match( + '~ + (?: + \(\?\( + | \[ [^\]\\\\]* (?: \\\\ . [^\]\\\\]* )* \] + | \\\\ . + ) (*SKIP)(*FAIL) | + \( + (?! + \? (?! <(?![!=]) | P< | \' ) + | \* + ) + ~x', + $regex + ); + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/Dispatcher.php b/Sources/API/vendor/nikic/fast-route/src/Dispatcher.php new file mode 100644 index 0000000..4ae72a3 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/Dispatcher.php @@ -0,0 +1,26 @@ + 'value', ...]] + * + * @param string $httpMethod + * @param string $uri + * + * @return array + */ + public function dispatch($httpMethod, $uri); +} diff --git a/Sources/API/vendor/nikic/fast-route/src/Dispatcher/CharCountBased.php b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/CharCountBased.php new file mode 100644 index 0000000..ef1eec1 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/CharCountBased.php @@ -0,0 +1,31 @@ +staticRouteMap, $this->variableRouteData) = $data; + } + + protected function dispatchVariableRoute($routeData, $uri) + { + foreach ($routeData as $data) { + if (!preg_match($data['regex'], $uri . $data['suffix'], $matches)) { + continue; + } + + list($handler, $varNames) = $data['routeMap'][end($matches)]; + + $vars = []; + $i = 0; + foreach ($varNames as $varName) { + $vars[$varName] = $matches[++$i]; + } + return [self::FOUND, $handler, $vars]; + } + + return [self::NOT_FOUND]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/Dispatcher/GroupCountBased.php b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/GroupCountBased.php new file mode 100644 index 0000000..493e7a9 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/GroupCountBased.php @@ -0,0 +1,31 @@ +staticRouteMap, $this->variableRouteData) = $data; + } + + protected function dispatchVariableRoute($routeData, $uri) + { + foreach ($routeData as $data) { + if (!preg_match($data['regex'], $uri, $matches)) { + continue; + } + + list($handler, $varNames) = $data['routeMap'][count($matches)]; + + $vars = []; + $i = 0; + foreach ($varNames as $varName) { + $vars[$varName] = $matches[++$i]; + } + return [self::FOUND, $handler, $vars]; + } + + return [self::NOT_FOUND]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/Dispatcher/GroupPosBased.php b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/GroupPosBased.php new file mode 100644 index 0000000..498220e --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/GroupPosBased.php @@ -0,0 +1,33 @@ +staticRouteMap, $this->variableRouteData) = $data; + } + + protected function dispatchVariableRoute($routeData, $uri) + { + foreach ($routeData as $data) { + if (!preg_match($data['regex'], $uri, $matches)) { + continue; + } + + // find first non-empty match + for ($i = 1; '' === $matches[$i]; ++$i); + + list($handler, $varNames) = $data['routeMap'][$i]; + + $vars = []; + foreach ($varNames as $varName) { + $vars[$varName] = $matches[$i++]; + } + return [self::FOUND, $handler, $vars]; + } + + return [self::NOT_FOUND]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/Dispatcher/MarkBased.php b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/MarkBased.php new file mode 100644 index 0000000..22eb09b --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/MarkBased.php @@ -0,0 +1,31 @@ +staticRouteMap, $this->variableRouteData) = $data; + } + + protected function dispatchVariableRoute($routeData, $uri) + { + foreach ($routeData as $data) { + if (!preg_match($data['regex'], $uri, $matches)) { + continue; + } + + list($handler, $varNames) = $data['routeMap'][$matches['MARK']]; + + $vars = []; + $i = 0; + foreach ($varNames as $varName) { + $vars[$varName] = $matches[++$i]; + } + return [self::FOUND, $handler, $vars]; + } + + return [self::NOT_FOUND]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/Dispatcher/RegexBasedAbstract.php b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/RegexBasedAbstract.php new file mode 100644 index 0000000..206e879 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/Dispatcher/RegexBasedAbstract.php @@ -0,0 +1,88 @@ +staticRouteMap[$httpMethod][$uri])) { + $handler = $this->staticRouteMap[$httpMethod][$uri]; + return [self::FOUND, $handler, []]; + } + + $varRouteData = $this->variableRouteData; + if (isset($varRouteData[$httpMethod])) { + $result = $this->dispatchVariableRoute($varRouteData[$httpMethod], $uri); + if ($result[0] === self::FOUND) { + return $result; + } + } + + // For HEAD requests, attempt fallback to GET + if ($httpMethod === 'HEAD') { + if (isset($this->staticRouteMap['GET'][$uri])) { + $handler = $this->staticRouteMap['GET'][$uri]; + return [self::FOUND, $handler, []]; + } + if (isset($varRouteData['GET'])) { + $result = $this->dispatchVariableRoute($varRouteData['GET'], $uri); + if ($result[0] === self::FOUND) { + return $result; + } + } + } + + // If nothing else matches, try fallback routes + if (isset($this->staticRouteMap['*'][$uri])) { + $handler = $this->staticRouteMap['*'][$uri]; + return [self::FOUND, $handler, []]; + } + if (isset($varRouteData['*'])) { + $result = $this->dispatchVariableRoute($varRouteData['*'], $uri); + if ($result[0] === self::FOUND) { + return $result; + } + } + + // Find allowed methods for this URI by matching against all other HTTP methods as well + $allowedMethods = []; + + foreach ($this->staticRouteMap as $method => $uriMap) { + if ($method !== $httpMethod && isset($uriMap[$uri])) { + $allowedMethods[] = $method; + } + } + + foreach ($varRouteData as $method => $routeData) { + if ($method === $httpMethod) { + continue; + } + + $result = $this->dispatchVariableRoute($routeData, $uri); + if ($result[0] === self::FOUND) { + $allowedMethods[] = $method; + } + } + + // If there are no allowed methods the route simply does not exist + if ($allowedMethods) { + return [self::METHOD_NOT_ALLOWED, $allowedMethods]; + } + + return [self::NOT_FOUND]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/Route.php b/Sources/API/vendor/nikic/fast-route/src/Route.php new file mode 100644 index 0000000..e1bf7dd --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/Route.php @@ -0,0 +1,47 @@ +httpMethod = $httpMethod; + $this->handler = $handler; + $this->regex = $regex; + $this->variables = $variables; + } + + /** + * Tests whether this route matches the given string. + * + * @param string $str + * + * @return bool + */ + public function matches($str) + { + $regex = '~^' . $this->regex . '$~'; + return (bool) preg_match($regex, $str); + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/RouteCollector.php b/Sources/API/vendor/nikic/fast-route/src/RouteCollector.php new file mode 100644 index 0000000..c1c1762 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/RouteCollector.php @@ -0,0 +1,152 @@ +routeParser = $routeParser; + $this->dataGenerator = $dataGenerator; + $this->currentGroupPrefix = ''; + } + + /** + * Adds a route to the collection. + * + * The syntax used in the $route string depends on the used route parser. + * + * @param string|string[] $httpMethod + * @param string $route + * @param mixed $handler + */ + public function addRoute($httpMethod, $route, $handler) + { + $route = $this->currentGroupPrefix . $route; + $routeDatas = $this->routeParser->parse($route); + foreach ((array) $httpMethod as $method) { + foreach ($routeDatas as $routeData) { + $this->dataGenerator->addRoute($method, $routeData, $handler); + } + } + } + + /** + * Create a route group with a common prefix. + * + * All routes created in the passed callback will have the given group prefix prepended. + * + * @param string $prefix + * @param callable $callback + */ + public function addGroup($prefix, callable $callback) + { + $previousGroupPrefix = $this->currentGroupPrefix; + $this->currentGroupPrefix = $previousGroupPrefix . $prefix; + $callback($this); + $this->currentGroupPrefix = $previousGroupPrefix; + } + + /** + * Adds a GET route to the collection + * + * This is simply an alias of $this->addRoute('GET', $route, $handler) + * + * @param string $route + * @param mixed $handler + */ + public function get($route, $handler) + { + $this->addRoute('GET', $route, $handler); + } + + /** + * Adds a POST route to the collection + * + * This is simply an alias of $this->addRoute('POST', $route, $handler) + * + * @param string $route + * @param mixed $handler + */ + public function post($route, $handler) + { + $this->addRoute('POST', $route, $handler); + } + + /** + * Adds a PUT route to the collection + * + * This is simply an alias of $this->addRoute('PUT', $route, $handler) + * + * @param string $route + * @param mixed $handler + */ + public function put($route, $handler) + { + $this->addRoute('PUT', $route, $handler); + } + + /** + * Adds a DELETE route to the collection + * + * This is simply an alias of $this->addRoute('DELETE', $route, $handler) + * + * @param string $route + * @param mixed $handler + */ + public function delete($route, $handler) + { + $this->addRoute('DELETE', $route, $handler); + } + + /** + * Adds a PATCH route to the collection + * + * This is simply an alias of $this->addRoute('PATCH', $route, $handler) + * + * @param string $route + * @param mixed $handler + */ + public function patch($route, $handler) + { + $this->addRoute('PATCH', $route, $handler); + } + + /** + * Adds a HEAD route to the collection + * + * This is simply an alias of $this->addRoute('HEAD', $route, $handler) + * + * @param string $route + * @param mixed $handler + */ + public function head($route, $handler) + { + $this->addRoute('HEAD', $route, $handler); + } + + /** + * Returns the collected route data, as provided by the data generator. + * + * @return array + */ + public function getData() + { + return $this->dataGenerator->getData(); + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/RouteParser.php b/Sources/API/vendor/nikic/fast-route/src/RouteParser.php new file mode 100644 index 0000000..6a7685c --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/RouteParser.php @@ -0,0 +1,37 @@ + $segment) { + if ($segment === '' && $n !== 0) { + throw new BadRouteException('Empty optional part'); + } + + $currentRoute .= $segment; + $routeDatas[] = $this->parsePlaceholders($currentRoute); + } + return $routeDatas; + } + + /** + * Parses a route string that does not contain optional segments. + * + * @param string + * @return mixed[] + */ + private function parsePlaceholders($route) + { + if (!preg_match_all( + '~' . self::VARIABLE_REGEX . '~x', $route, $matches, + PREG_OFFSET_CAPTURE | PREG_SET_ORDER + )) { + return [$route]; + } + + $offset = 0; + $routeData = []; + foreach ($matches as $set) { + if ($set[0][1] > $offset) { + $routeData[] = substr($route, $offset, $set[0][1] - $offset); + } + $routeData[] = [ + $set[1][0], + isset($set[2]) ? trim($set[2][0]) : self::DEFAULT_DISPATCH_REGEX + ]; + $offset = $set[0][1] + strlen($set[0][0]); + } + + if ($offset !== strlen($route)) { + $routeData[] = substr($route, $offset); + } + + return $routeData; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/src/bootstrap.php b/Sources/API/vendor/nikic/fast-route/src/bootstrap.php new file mode 100644 index 0000000..0bce3a4 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/src/bootstrap.php @@ -0,0 +1,12 @@ + 'FastRoute\\RouteParser\\Std', + 'dataGenerator' => 'FastRoute\\DataGenerator\\GroupCountBased', + 'dispatcher' => 'FastRoute\\Dispatcher\\GroupCountBased', + 'routeCollector' => 'FastRoute\\RouteCollector', + ]; + + /** @var RouteCollector $routeCollector */ + $routeCollector = new $options['routeCollector']( + new $options['routeParser'], new $options['dataGenerator'] + ); + $routeDefinitionCallback($routeCollector); + + return new $options['dispatcher']($routeCollector->getData()); + } + + /** + * @param callable $routeDefinitionCallback + * @param array $options + * + * @return Dispatcher + */ + function cachedDispatcher(callable $routeDefinitionCallback, array $options = []) + { + $options += [ + 'routeParser' => 'FastRoute\\RouteParser\\Std', + 'dataGenerator' => 'FastRoute\\DataGenerator\\GroupCountBased', + 'dispatcher' => 'FastRoute\\Dispatcher\\GroupCountBased', + 'routeCollector' => 'FastRoute\\RouteCollector', + 'cacheDisabled' => false, + ]; + + if (!isset($options['cacheFile'])) { + throw new \LogicException('Must specify "cacheFile" option'); + } + + if (!$options['cacheDisabled'] && file_exists($options['cacheFile'])) { + $dispatchData = require $options['cacheFile']; + if (!is_array($dispatchData)) { + throw new \RuntimeException('Invalid cache file "' . $options['cacheFile'] . '"'); + } + return new $options['dispatcher']($dispatchData); + } + + $routeCollector = new $options['routeCollector']( + new $options['routeParser'], new $options['dataGenerator'] + ); + $routeDefinitionCallback($routeCollector); + + /** @var RouteCollector $routeCollector */ + $dispatchData = $routeCollector->getData(); + if (!$options['cacheDisabled']) { + file_put_contents( + $options['cacheFile'], + ' $this->getDataGeneratorClass(), + 'dispatcher' => $this->getDispatcherClass() + ]; + } + + /** + * @dataProvider provideFoundDispatchCases + */ + public function testFoundDispatches($method, $uri, $callback, $handler, $argDict) + { + $dispatcher = \FastRoute\simpleDispatcher($callback, $this->generateDispatcherOptions()); + $info = $dispatcher->dispatch($method, $uri); + $this->assertSame($dispatcher::FOUND, $info[0]); + $this->assertSame($handler, $info[1]); + $this->assertSame($argDict, $info[2]); + } + + /** + * @dataProvider provideNotFoundDispatchCases + */ + public function testNotFoundDispatches($method, $uri, $callback) + { + $dispatcher = \FastRoute\simpleDispatcher($callback, $this->generateDispatcherOptions()); + $routeInfo = $dispatcher->dispatch($method, $uri); + $this->assertArrayNotHasKey(1, $routeInfo, + 'NOT_FOUND result must only contain a single element in the returned info array' + ); + $this->assertSame($dispatcher::NOT_FOUND, $routeInfo[0]); + } + + /** + * @dataProvider provideMethodNotAllowedDispatchCases + */ + public function testMethodNotAllowedDispatches($method, $uri, $callback, $availableMethods) + { + $dispatcher = \FastRoute\simpleDispatcher($callback, $this->generateDispatcherOptions()); + $routeInfo = $dispatcher->dispatch($method, $uri); + $this->assertArrayHasKey(1, $routeInfo, + 'METHOD_NOT_ALLOWED result must return an array of allowed methods at index 1' + ); + + list($routedStatus, $methodArray) = $dispatcher->dispatch($method, $uri); + $this->assertSame($dispatcher::METHOD_NOT_ALLOWED, $routedStatus); + $this->assertSame($availableMethods, $methodArray); + } + + /** + * @expectedException \FastRoute\BadRouteException + * @expectedExceptionMessage Cannot use the same placeholder "test" twice + */ + public function testDuplicateVariableNameError() + { + \FastRoute\simpleDispatcher(function (RouteCollector $r) { + $r->addRoute('GET', '/foo/{test}/{test:\d+}', 'handler0'); + }, $this->generateDispatcherOptions()); + } + + /** + * @expectedException \FastRoute\BadRouteException + * @expectedExceptionMessage Cannot register two routes matching "/user/([^/]+)" for method "GET" + */ + public function testDuplicateVariableRoute() + { + \FastRoute\simpleDispatcher(function (RouteCollector $r) { + $r->addRoute('GET', '/user/{id}', 'handler0'); // oops, forgot \d+ restriction ;) + $r->addRoute('GET', '/user/{name}', 'handler1'); + }, $this->generateDispatcherOptions()); + } + + /** + * @expectedException \FastRoute\BadRouteException + * @expectedExceptionMessage Cannot register two routes matching "/user" for method "GET" + */ + public function testDuplicateStaticRoute() + { + \FastRoute\simpleDispatcher(function (RouteCollector $r) { + $r->addRoute('GET', '/user', 'handler0'); + $r->addRoute('GET', '/user', 'handler1'); + }, $this->generateDispatcherOptions()); + } + + /** + * @expectedException \FastRoute\BadRouteException + * @expectedExceptionMessage Static route "/user/nikic" is shadowed by previously defined variable route "/user/([^/]+)" for method "GET" + */ + public function testShadowedStaticRoute() + { + \FastRoute\simpleDispatcher(function (RouteCollector $r) { + $r->addRoute('GET', '/user/{name}', 'handler0'); + $r->addRoute('GET', '/user/nikic', 'handler1'); + }, $this->generateDispatcherOptions()); + } + + /** + * @expectedException \FastRoute\BadRouteException + * @expectedExceptionMessage Regex "(en|de)" for parameter "lang" contains a capturing group + */ + public function testCapturing() + { + \FastRoute\simpleDispatcher(function (RouteCollector $r) { + $r->addRoute('GET', '/{lang:(en|de)}', 'handler0'); + }, $this->generateDispatcherOptions()); + } + + public function provideFoundDispatchCases() + { + $cases = []; + + // 0 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/resource/123/456', 'handler0'); + }; + + $method = 'GET'; + $uri = '/resource/123/456'; + $handler = 'handler0'; + $argDict = []; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 1 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/handler0', 'handler0'); + $r->addRoute('GET', '/handler1', 'handler1'); + $r->addRoute('GET', '/handler2', 'handler2'); + }; + + $method = 'GET'; + $uri = '/handler2'; + $handler = 'handler2'; + $argDict = []; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 2 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/user/{name}/{id:[0-9]+}', 'handler0'); + $r->addRoute('GET', '/user/{id:[0-9]+}', 'handler1'); + $r->addRoute('GET', '/user/{name}', 'handler2'); + }; + + $method = 'GET'; + $uri = '/user/rdlowrey'; + $handler = 'handler2'; + $argDict = ['name' => 'rdlowrey']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 3 --------------------------------------------------------------------------------------> + + // reuse $callback from #2 + + $method = 'GET'; + $uri = '/user/12345'; + $handler = 'handler1'; + $argDict = ['id' => '12345']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 4 --------------------------------------------------------------------------------------> + + // reuse $callback from #3 + + $method = 'GET'; + $uri = '/user/NaN'; + $handler = 'handler2'; + $argDict = ['name' => 'NaN']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 5 --------------------------------------------------------------------------------------> + + // reuse $callback from #4 + + $method = 'GET'; + $uri = '/user/rdlowrey/12345'; + $handler = 'handler0'; + $argDict = ['name' => 'rdlowrey', 'id' => '12345']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 6 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/user/{id:[0-9]+}', 'handler0'); + $r->addRoute('GET', '/user/12345/extension', 'handler1'); + $r->addRoute('GET', '/user/{id:[0-9]+}.{extension}', 'handler2'); + }; + + $method = 'GET'; + $uri = '/user/12345.svg'; + $handler = 'handler2'; + $argDict = ['id' => '12345', 'extension' => 'svg']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 7 ----- Test GET method fallback on HEAD route miss ------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/user/{name}', 'handler0'); + $r->addRoute('GET', '/user/{name}/{id:[0-9]+}', 'handler1'); + $r->addRoute('GET', '/static0', 'handler2'); + $r->addRoute('GET', '/static1', 'handler3'); + $r->addRoute('HEAD', '/static1', 'handler4'); + }; + + $method = 'HEAD'; + $uri = '/user/rdlowrey'; + $handler = 'handler0'; + $argDict = ['name' => 'rdlowrey']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 8 ----- Test GET method fallback on HEAD route miss ------------------------------------> + + // reuse $callback from #7 + + $method = 'HEAD'; + $uri = '/user/rdlowrey/1234'; + $handler = 'handler1'; + $argDict = ['name' => 'rdlowrey', 'id' => '1234']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 9 ----- Test GET method fallback on HEAD route miss ------------------------------------> + + // reuse $callback from #8 + + $method = 'HEAD'; + $uri = '/static0'; + $handler = 'handler2'; + $argDict = []; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 10 ---- Test existing HEAD route used if available (no fallback) -----------------------> + + // reuse $callback from #9 + + $method = 'HEAD'; + $uri = '/static1'; + $handler = 'handler4'; + $argDict = []; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 11 ---- More specified routes are not shadowed by less specific of another method ------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/user/{name}', 'handler0'); + $r->addRoute('POST', '/user/{name:[a-z]+}', 'handler1'); + }; + + $method = 'POST'; + $uri = '/user/rdlowrey'; + $handler = 'handler1'; + $argDict = ['name' => 'rdlowrey']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 12 ---- Handler of more specific routes is used, if it occurs first --------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/user/{name}', 'handler0'); + $r->addRoute('POST', '/user/{name:[a-z]+}', 'handler1'); + $r->addRoute('POST', '/user/{name}', 'handler2'); + }; + + $method = 'POST'; + $uri = '/user/rdlowrey'; + $handler = 'handler1'; + $argDict = ['name' => 'rdlowrey']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 13 ---- Route with constant suffix -----------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/user/{name}', 'handler0'); + $r->addRoute('GET', '/user/{name}/edit', 'handler1'); + }; + + $method = 'GET'; + $uri = '/user/rdlowrey/edit'; + $handler = 'handler1'; + $argDict = ['name' => 'rdlowrey']; + + $cases[] = [$method, $uri, $callback, $handler, $argDict]; + + // 14 ---- Handle multiple methods with the same handler ----------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute(['GET', 'POST'], '/user', 'handlerGetPost'); + $r->addRoute(['DELETE'], '/user', 'handlerDelete'); + $r->addRoute([], '/user', 'handlerNone'); + }; + + $argDict = []; + $cases[] = ['GET', '/user', $callback, 'handlerGetPost', $argDict]; + $cases[] = ['POST', '/user', $callback, 'handlerGetPost', $argDict]; + $cases[] = ['DELETE', '/user', $callback, 'handlerDelete', $argDict]; + + // 17 ---- + + $callback = function (RouteCollector $r) { + $r->addRoute('POST', '/user.json', 'handler0'); + $r->addRoute('GET', '/{entity}.json', 'handler1'); + }; + + $cases[] = ['GET', '/user.json', $callback, 'handler1', ['entity' => 'user']]; + + // 18 ---- + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '', 'handler0'); + }; + + $cases[] = ['GET', '', $callback, 'handler0', []]; + + // 19 ---- + + $callback = function (RouteCollector $r) { + $r->addRoute('HEAD', '/a/{foo}', 'handler0'); + $r->addRoute('GET', '/b/{foo}', 'handler1'); + }; + + $cases[] = ['HEAD', '/b/bar', $callback, 'handler1', ['foo' => 'bar']]; + + // 20 ---- + + $callback = function (RouteCollector $r) { + $r->addRoute('HEAD', '/a', 'handler0'); + $r->addRoute('GET', '/b', 'handler1'); + }; + + $cases[] = ['HEAD', '/b', $callback, 'handler1', []]; + + // 21 ---- + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/foo', 'handler0'); + $r->addRoute('HEAD', '/{bar}', 'handler1'); + }; + + $cases[] = ['HEAD', '/foo', $callback, 'handler1', ['bar' => 'foo']]; + + // 22 ---- + + $callback = function (RouteCollector $r) { + $r->addRoute('*', '/user', 'handler0'); + $r->addRoute('*', '/{user}', 'handler1'); + $r->addRoute('GET', '/user', 'handler2'); + }; + + $cases[] = ['GET', '/user', $callback, 'handler2', []]; + + // 23 ---- + + $callback = function (RouteCollector $r) { + $r->addRoute('*', '/user', 'handler0'); + $r->addRoute('GET', '/user', 'handler1'); + }; + + $cases[] = ['POST', '/user', $callback, 'handler0', []]; + + // 24 ---- + + $cases[] = ['HEAD', '/user', $callback, 'handler1', []]; + + // 25 ---- + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/{bar}', 'handler0'); + $r->addRoute('*', '/foo', 'handler1'); + }; + + $cases[] = ['GET', '/foo', $callback, 'handler0', ['bar' => 'foo']]; + + // 26 ---- + + $callback = function(RouteCollector $r) { + $r->addRoute('GET', '/user', 'handler0'); + $r->addRoute('*', '/{foo:.*}', 'handler1'); + }; + + $cases[] = ['POST', '/bar', $callback, 'handler1', ['foo' => 'bar']]; + + // x --------------------------------------------------------------------------------------> + + return $cases; + } + + public function provideNotFoundDispatchCases() + { + $cases = []; + + // 0 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/resource/123/456', 'handler0'); + }; + + $method = 'GET'; + $uri = '/not-found'; + + $cases[] = [$method, $uri, $callback]; + + // 1 --------------------------------------------------------------------------------------> + + // reuse callback from #0 + $method = 'POST'; + $uri = '/not-found'; + + $cases[] = [$method, $uri, $callback]; + + // 2 --------------------------------------------------------------------------------------> + + // reuse callback from #1 + $method = 'PUT'; + $uri = '/not-found'; + + $cases[] = [$method, $uri, $callback]; + + // 3 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/handler0', 'handler0'); + $r->addRoute('GET', '/handler1', 'handler1'); + $r->addRoute('GET', '/handler2', 'handler2'); + }; + + $method = 'GET'; + $uri = '/not-found'; + + $cases[] = [$method, $uri, $callback]; + + // 4 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/user/{name}/{id:[0-9]+}', 'handler0'); + $r->addRoute('GET', '/user/{id:[0-9]+}', 'handler1'); + $r->addRoute('GET', '/user/{name}', 'handler2'); + }; + + $method = 'GET'; + $uri = '/not-found'; + + $cases[] = [$method, $uri, $callback]; + + // 5 --------------------------------------------------------------------------------------> + + // reuse callback from #4 + $method = 'GET'; + $uri = '/user/rdlowrey/12345/not-found'; + + $cases[] = [$method, $uri, $callback]; + + // 6 --------------------------------------------------------------------------------------> + + // reuse callback from #5 + $method = 'HEAD'; + + $cases[] = [$method, $uri, $callback]; + + // x --------------------------------------------------------------------------------------> + + return $cases; + } + + public function provideMethodNotAllowedDispatchCases() + { + $cases = []; + + // 0 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/resource/123/456', 'handler0'); + }; + + $method = 'POST'; + $uri = '/resource/123/456'; + $allowedMethods = ['GET']; + + $cases[] = [$method, $uri, $callback, $allowedMethods]; + + // 1 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/resource/123/456', 'handler0'); + $r->addRoute('POST', '/resource/123/456', 'handler1'); + $r->addRoute('PUT', '/resource/123/456', 'handler2'); + $r->addRoute('*', '/', 'handler3'); + }; + + $method = 'DELETE'; + $uri = '/resource/123/456'; + $allowedMethods = ['GET', 'POST', 'PUT']; + + $cases[] = [$method, $uri, $callback, $allowedMethods]; + + // 2 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('GET', '/user/{name}/{id:[0-9]+}', 'handler0'); + $r->addRoute('POST', '/user/{name}/{id:[0-9]+}', 'handler1'); + $r->addRoute('PUT', '/user/{name}/{id:[0-9]+}', 'handler2'); + $r->addRoute('PATCH', '/user/{name}/{id:[0-9]+}', 'handler3'); + }; + + $method = 'DELETE'; + $uri = '/user/rdlowrey/42'; + $allowedMethods = ['GET', 'POST', 'PUT', 'PATCH']; + + $cases[] = [$method, $uri, $callback, $allowedMethods]; + + // 3 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute('POST', '/user/{name}', 'handler1'); + $r->addRoute('PUT', '/user/{name:[a-z]+}', 'handler2'); + $r->addRoute('PATCH', '/user/{name:[a-z]+}', 'handler3'); + }; + + $method = 'GET'; + $uri = '/user/rdlowrey'; + $allowedMethods = ['POST', 'PUT', 'PATCH']; + + $cases[] = [$method, $uri, $callback, $allowedMethods]; + + // 4 --------------------------------------------------------------------------------------> + + $callback = function (RouteCollector $r) { + $r->addRoute(['GET', 'POST'], '/user', 'handlerGetPost'); + $r->addRoute(['DELETE'], '/user', 'handlerDelete'); + $r->addRoute([], '/user', 'handlerNone'); + }; + + $cases[] = ['PUT', '/user', $callback, ['GET', 'POST', 'DELETE']]; + + // 5 + + $callback = function (RouteCollector $r) { + $r->addRoute('POST', '/user.json', 'handler0'); + $r->addRoute('GET', '/{entity}.json', 'handler1'); + }; + + $cases[] = ['PUT', '/user.json', $callback, ['POST', 'GET']]; + + // x --------------------------------------------------------------------------------------> + + return $cases; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/test/Dispatcher/GroupCountBasedTest.php b/Sources/API/vendor/nikic/fast-route/test/Dispatcher/GroupCountBasedTest.php new file mode 100644 index 0000000..f821ef5 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/test/Dispatcher/GroupCountBasedTest.php @@ -0,0 +1,16 @@ +markTestSkipped('PHP 5.6 required for MARK support'); + } + } + + protected function getDispatcherClass() + { + return 'FastRoute\\Dispatcher\\MarkBased'; + } + + protected function getDataGeneratorClass() + { + return 'FastRoute\\DataGenerator\\MarkBased'; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/HackTypecheckerTest.php b/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/HackTypecheckerTest.php new file mode 100644 index 0000000..b6fc53f --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/HackTypecheckerTest.php @@ -0,0 +1,44 @@ +markTestSkipped('HHVM only'); + } + if (!version_compare(HHVM_VERSION, '3.9.0', '>=')) { + $this->markTestSkipped('classname requires HHVM 3.9+'); + } + + // The typechecker recurses the whole tree, so it makes sure + // that everything in fixtures/ is valid when this runs. + + $output = []; + $exit_code = null; + exec( + 'hh_server --check ' . escapeshellarg(__DIR__ . '/../../') . ' 2>&1', + $output, + $exit_code + ); + if ($exit_code === self::SERVER_ALREADY_RUNNING_CODE) { + $this->assertTrue( + $recurse, + 'Typechecker still running after running hh_client stop' + ); + // Server already running - 3.10 => 3.11 regression: + // https://github.com/facebook/hhvm/issues/6646 + exec('hh_client stop 2>/dev/null'); + $this->testTypechecks(/* recurse = */ false); + return; + + } + $this->assertSame(0, $exit_code, implode("\n", $output)); + } +} diff --git a/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/all_options.php b/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/all_options.php new file mode 100644 index 0000000..05a9af2 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/all_options.php @@ -0,0 +1,29 @@ + {}, + shape( + 'routeParser' => \FastRoute\RouteParser\Std::class, + 'dataGenerator' => \FastRoute\DataGenerator\GroupCountBased::class, + 'dispatcher' => \FastRoute\Dispatcher\GroupCountBased::class, + 'routeCollector' => \FastRoute\RouteCollector::class, + ), + ); +} + +function all_options_cached(): \FastRoute\Dispatcher { + return \FastRoute\cachedDispatcher( + $collector ==> {}, + shape( + 'routeParser' => \FastRoute\RouteParser\Std::class, + 'dataGenerator' => \FastRoute\DataGenerator\GroupCountBased::class, + 'dispatcher' => \FastRoute\Dispatcher\GroupCountBased::class, + 'routeCollector' => \FastRoute\RouteCollector::class, + 'cacheFile' => '/dev/null', + 'cacheDisabled' => false, + ), + ); +} diff --git a/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/empty_options.php b/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/empty_options.php new file mode 100644 index 0000000..61eb541 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/empty_options.php @@ -0,0 +1,11 @@ + {}, shape()); +} + +function empty_options_cached(): \FastRoute\Dispatcher { + return \FastRoute\cachedDispatcher($collector ==> {}, shape()); +} diff --git a/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/no_options.php b/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/no_options.php new file mode 100644 index 0000000..44b5422 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/test/HackTypechecker/fixtures/no_options.php @@ -0,0 +1,11 @@ + {}); +} + +function no_options_cached(): \FastRoute\Dispatcher { + return \FastRoute\cachedDispatcher($collector ==> {}); +} diff --git a/Sources/API/vendor/nikic/fast-route/test/RouteCollectorTest.php b/Sources/API/vendor/nikic/fast-route/test/RouteCollectorTest.php new file mode 100644 index 0000000..cc54407 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/test/RouteCollectorTest.php @@ -0,0 +1,108 @@ +delete('/delete', 'delete'); + $r->get('/get', 'get'); + $r->head('/head', 'head'); + $r->patch('/patch', 'patch'); + $r->post('/post', 'post'); + $r->put('/put', 'put'); + + $expected = [ + ['DELETE', '/delete', 'delete'], + ['GET', '/get', 'get'], + ['HEAD', '/head', 'head'], + ['PATCH', '/patch', 'patch'], + ['POST', '/post', 'post'], + ['PUT', '/put', 'put'], + ]; + + $this->assertSame($expected, $r->routes); + } + + public function testGroups() + { + $r = new DummyRouteCollector(); + + $r->delete('/delete', 'delete'); + $r->get('/get', 'get'); + $r->head('/head', 'head'); + $r->patch('/patch', 'patch'); + $r->post('/post', 'post'); + $r->put('/put', 'put'); + + $r->addGroup('/group-one', function (DummyRouteCollector $r) { + $r->delete('/delete', 'delete'); + $r->get('/get', 'get'); + $r->head('/head', 'head'); + $r->patch('/patch', 'patch'); + $r->post('/post', 'post'); + $r->put('/put', 'put'); + + $r->addGroup('/group-two', function (DummyRouteCollector $r) { + $r->delete('/delete', 'delete'); + $r->get('/get', 'get'); + $r->head('/head', 'head'); + $r->patch('/patch', 'patch'); + $r->post('/post', 'post'); + $r->put('/put', 'put'); + }); + }); + + $r->addGroup('/admin', function (DummyRouteCollector $r) { + $r->get('-some-info', 'admin-some-info'); + }); + $r->addGroup('/admin-', function (DummyRouteCollector $r) { + $r->get('more-info', 'admin-more-info'); + }); + + $expected = [ + ['DELETE', '/delete', 'delete'], + ['GET', '/get', 'get'], + ['HEAD', '/head', 'head'], + ['PATCH', '/patch', 'patch'], + ['POST', '/post', 'post'], + ['PUT', '/put', 'put'], + ['DELETE', '/group-one/delete', 'delete'], + ['GET', '/group-one/get', 'get'], + ['HEAD', '/group-one/head', 'head'], + ['PATCH', '/group-one/patch', 'patch'], + ['POST', '/group-one/post', 'post'], + ['PUT', '/group-one/put', 'put'], + ['DELETE', '/group-one/group-two/delete', 'delete'], + ['GET', '/group-one/group-two/get', 'get'], + ['HEAD', '/group-one/group-two/head', 'head'], + ['PATCH', '/group-one/group-two/patch', 'patch'], + ['POST', '/group-one/group-two/post', 'post'], + ['PUT', '/group-one/group-two/put', 'put'], + ['GET', '/admin-some-info', 'admin-some-info'], + ['GET', '/admin-more-info', 'admin-more-info'], + ]; + + $this->assertSame($expected, $r->routes); + } +} + +class DummyRouteCollector extends RouteCollector +{ + public $routes = []; + + public function __construct() + { + } + + public function addRoute($method, $route, $handler) + { + $route = $this->currentGroupPrefix . $route; + $this->routes[] = [$method, $route, $handler]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/test/RouteParser/StdTest.php b/Sources/API/vendor/nikic/fast-route/test/RouteParser/StdTest.php new file mode 100644 index 0000000..e13e4de --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/test/RouteParser/StdTest.php @@ -0,0 +1,154 @@ +parse($routeString); + $this->assertSame($expectedRouteDatas, $routeDatas); + } + + /** @dataProvider provideTestParseError */ + public function testParseError($routeString, $expectedExceptionMessage) + { + $parser = new Std(); + $this->setExpectedException('FastRoute\\BadRouteException', $expectedExceptionMessage); + $parser->parse($routeString); + } + + public function provideTestParse() + { + return [ + [ + '/test', + [ + ['/test'], + ] + ], + [ + '/test/{param}', + [ + ['/test/', ['param', '[^/]+']], + ] + ], + [ + '/te{ param }st', + [ + ['/te', ['param', '[^/]+'], 'st'] + ] + ], + [ + '/test/{param1}/test2/{param2}', + [ + ['/test/', ['param1', '[^/]+'], '/test2/', ['param2', '[^/]+']] + ] + ], + [ + '/test/{param:\d+}', + [ + ['/test/', ['param', '\d+']] + ] + ], + [ + '/test/{ param : \d{1,9} }', + [ + ['/test/', ['param', '\d{1,9}']] + ] + ], + [ + '/test[opt]', + [ + ['/test'], + ['/testopt'], + ] + ], + [ + '/test[/{param}]', + [ + ['/test'], + ['/test/', ['param', '[^/]+']], + ] + ], + [ + '/{param}[opt]', + [ + ['/', ['param', '[^/]+']], + ['/', ['param', '[^/]+'], 'opt'] + ] + ], + [ + '/test[/{name}[/{id:[0-9]+}]]', + [ + ['/test'], + ['/test/', ['name', '[^/]+']], + ['/test/', ['name', '[^/]+'], '/', ['id', '[0-9]+']], + ] + ], + [ + '', + [ + [''], + ] + ], + [ + '[test]', + [ + [''], + ['test'], + ] + ], + [ + '/{foo-bar}', + [ + ['/', ['foo-bar', '[^/]+']] + ] + ], + [ + '/{_foo:.*}', + [ + ['/', ['_foo', '.*']] + ] + ], + ]; + } + + public function provideTestParseError() + { + return [ + [ + '/test[opt', + "Number of opening '[' and closing ']' does not match" + ], + [ + '/test[opt[opt2]', + "Number of opening '[' and closing ']' does not match" + ], + [ + '/testopt]', + "Number of opening '[' and closing ']' does not match" + ], + [ + '/test[]', + 'Empty optional part' + ], + [ + '/test[[opt]]', + 'Empty optional part' + ], + [ + '[[test]]', + 'Empty optional part' + ], + [ + '/test[/opt]/required', + 'Optional segments can only occur at the end of a route' + ], + ]; + } +} diff --git a/Sources/API/vendor/nikic/fast-route/test/bootstrap.php b/Sources/API/vendor/nikic/fast-route/test/bootstrap.php new file mode 100644 index 0000000..3023f41 --- /dev/null +++ b/Sources/API/vendor/nikic/fast-route/test/bootstrap.php @@ -0,0 +1,11 @@ +=7.4.0" + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + } +} diff --git a/Sources/API/vendor/psr/container/src/ContainerExceptionInterface.php b/Sources/API/vendor/psr/container/src/ContainerExceptionInterface.php new file mode 100644 index 0000000..0f213f2 --- /dev/null +++ b/Sources/API/vendor/psr/container/src/ContainerExceptionInterface.php @@ -0,0 +1,12 @@ +=7.0.0", + "psr/http-message": "^1.0" + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + } +} diff --git a/Sources/API/vendor/psr/http-factory/src/RequestFactoryInterface.php b/Sources/API/vendor/psr/http-factory/src/RequestFactoryInterface.php new file mode 100644 index 0000000..cb39a08 --- /dev/null +++ b/Sources/API/vendor/psr/http-factory/src/RequestFactoryInterface.php @@ -0,0 +1,18 @@ +=5.3.0" + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + } +} diff --git a/Sources/API/vendor/psr/http-message/src/MessageInterface.php b/Sources/API/vendor/psr/http-message/src/MessageInterface.php new file mode 100644 index 0000000..dd46e5e --- /dev/null +++ b/Sources/API/vendor/psr/http-message/src/MessageInterface.php @@ -0,0 +1,187 @@ +getHeaders() as $name => $values) { + * echo $name . ": " . implode(", ", $values); + * } + * + * // Emit headers iteratively: + * foreach ($message->getHeaders() as $name => $values) { + * foreach ($values as $value) { + * header(sprintf('%s: %s', $name, $value), false); + * } + * } + * + * While header names are not case-sensitive, getHeaders() will preserve the + * exact case in which headers were originally specified. + * + * @return string[][] Returns an associative array of the message's headers. Each + * key MUST be a header name, and each value MUST be an array of strings + * for that header. + */ + public function getHeaders(); + + /** + * Checks if a header exists by the given case-insensitive name. + * + * @param string $name Case-insensitive header field name. + * @return bool Returns true if any header names match the given header + * name using a case-insensitive string comparison. Returns false if + * no matching header name is found in the message. + */ + public function hasHeader($name); + + /** + * Retrieves a message header value by the given case-insensitive name. + * + * This method returns an array of all the header values of the given + * case-insensitive header name. + * + * If the header does not appear in the message, this method MUST return an + * empty array. + * + * @param string $name Case-insensitive header field name. + * @return string[] An array of string values as provided for the given + * header. If the header does not appear in the message, this method MUST + * return an empty array. + */ + public function getHeader($name); + + /** + * Retrieves a comma-separated string of the values for a single header. + * + * This method returns all of the header values of the given + * case-insensitive header name as a string concatenated together using + * a comma. + * + * NOTE: Not all header values may be appropriately represented using + * comma concatenation. For such headers, use getHeader() instead + * and supply your own delimiter when concatenating. + * + * If the header does not appear in the message, this method MUST return + * an empty string. + * + * @param string $name Case-insensitive header field name. + * @return string A string of values as provided for the given header + * concatenated together using a comma. If the header does not appear in + * the message, this method MUST return an empty string. + */ + public function getHeaderLine($name); + + /** + * Return an instance with the provided value replacing the specified header. + * + * While header names are case-insensitive, the casing of the header will + * be preserved by this function, and returned from getHeaders(). + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * new and/or updated header and value. + * + * @param string $name Case-insensitive header field name. + * @param string|string[] $value Header value(s). + * @return static + * @throws \InvalidArgumentException for invalid header names or values. + */ + public function withHeader($name, $value); + + /** + * Return an instance with the specified header appended with the given value. + * + * Existing values for the specified header will be maintained. The new + * value(s) will be appended to the existing list. If the header did not + * exist previously, it will be added. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * new header and/or value. + * + * @param string $name Case-insensitive header field name to add. + * @param string|string[] $value Header value(s). + * @return static + * @throws \InvalidArgumentException for invalid header names or values. + */ + public function withAddedHeader($name, $value); + + /** + * Return an instance without the specified header. + * + * Header resolution MUST be done without case-sensitivity. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that removes + * the named header. + * + * @param string $name Case-insensitive header field name to remove. + * @return static + */ + public function withoutHeader($name); + + /** + * Gets the body of the message. + * + * @return StreamInterface Returns the body as a stream. + */ + public function getBody(); + + /** + * Return an instance with the specified message body. + * + * The body MUST be a StreamInterface object. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return a new instance that has the + * new body stream. + * + * @param StreamInterface $body Body. + * @return static + * @throws \InvalidArgumentException When the body is not valid. + */ + public function withBody(StreamInterface $body); +} diff --git a/Sources/API/vendor/psr/http-message/src/RequestInterface.php b/Sources/API/vendor/psr/http-message/src/RequestInterface.php new file mode 100644 index 0000000..a96d4fd --- /dev/null +++ b/Sources/API/vendor/psr/http-message/src/RequestInterface.php @@ -0,0 +1,129 @@ +getQuery()` + * or from the `QUERY_STRING` server param. + * + * @return array + */ + public function getQueryParams(); + + /** + * Return an instance with the specified query string arguments. + * + * These values SHOULD remain immutable over the course of the incoming + * request. They MAY be injected during instantiation, such as from PHP's + * $_GET superglobal, or MAY be derived from some other value such as the + * URI. In cases where the arguments are parsed from the URI, the data + * MUST be compatible with what PHP's parse_str() would return for + * purposes of how duplicate query parameters are handled, and how nested + * sets are handled. + * + * Setting query string arguments MUST NOT change the URI stored by the + * request, nor the values in the server params. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * updated query string arguments. + * + * @param array $query Array of query string arguments, typically from + * $_GET. + * @return static + */ + public function withQueryParams(array $query); + + /** + * Retrieve normalized file upload data. + * + * This method returns upload metadata in a normalized tree, with each leaf + * an instance of Psr\Http\Message\UploadedFileInterface. + * + * These values MAY be prepared from $_FILES or the message body during + * instantiation, or MAY be injected via withUploadedFiles(). + * + * @return array An array tree of UploadedFileInterface instances; an empty + * array MUST be returned if no data is present. + */ + public function getUploadedFiles(); + + /** + * Create a new instance with the specified uploaded files. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * updated body parameters. + * + * @param array $uploadedFiles An array tree of UploadedFileInterface instances. + * @return static + * @throws \InvalidArgumentException if an invalid structure is provided. + */ + public function withUploadedFiles(array $uploadedFiles); + + /** + * Retrieve any parameters provided in the request body. + * + * If the request Content-Type is either application/x-www-form-urlencoded + * or multipart/form-data, and the request method is POST, this method MUST + * return the contents of $_POST. + * + * Otherwise, this method may return any results of deserializing + * the request body content; as parsing returns structured content, the + * potential types MUST be arrays or objects only. A null value indicates + * the absence of body content. + * + * @return null|array|object The deserialized body parameters, if any. + * These will typically be an array or object. + */ + public function getParsedBody(); + + /** + * Return an instance with the specified body parameters. + * + * These MAY be injected during instantiation. + * + * If the request Content-Type is either application/x-www-form-urlencoded + * or multipart/form-data, and the request method is POST, use this method + * ONLY to inject the contents of $_POST. + * + * The data IS NOT REQUIRED to come from $_POST, but MUST be the results of + * deserializing the request body content. Deserialization/parsing returns + * structured data, and, as such, this method ONLY accepts arrays or objects, + * or a null value if nothing was available to parse. + * + * As an example, if content negotiation determines that the request data + * is a JSON payload, this method could be used to create a request + * instance with the deserialized parameters. + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * updated body parameters. + * + * @param null|array|object $data The deserialized body data. This will + * typically be in an array or object. + * @return static + * @throws \InvalidArgumentException if an unsupported argument type is + * provided. + */ + public function withParsedBody($data); + + /** + * Retrieve attributes derived from the request. + * + * The request "attributes" may be used to allow injection of any + * parameters derived from the request: e.g., the results of path + * match operations; the results of decrypting cookies; the results of + * deserializing non-form-encoded message bodies; etc. Attributes + * will be application and request specific, and CAN be mutable. + * + * @return array Attributes derived from the request. + */ + public function getAttributes(); + + /** + * Retrieve a single derived request attribute. + * + * Retrieves a single derived request attribute as described in + * getAttributes(). If the attribute has not been previously set, returns + * the default value as provided. + * + * This method obviates the need for a hasAttribute() method, as it allows + * specifying a default value to return if the attribute is not found. + * + * @see getAttributes() + * @param string $name The attribute name. + * @param mixed $default Default value to return if the attribute does not exist. + * @return mixed + */ + public function getAttribute($name, $default = null); + + /** + * Return an instance with the specified derived request attribute. + * + * This method allows setting a single derived request attribute as + * described in getAttributes(). + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that has the + * updated attribute. + * + * @see getAttributes() + * @param string $name The attribute name. + * @param mixed $value The value of the attribute. + * @return static + */ + public function withAttribute($name, $value); + + /** + * Return an instance that removes the specified derived request attribute. + * + * This method allows removing a single derived request attribute as + * described in getAttributes(). + * + * This method MUST be implemented in such a way as to retain the + * immutability of the message, and MUST return an instance that removes + * the attribute. + * + * @see getAttributes() + * @param string $name The attribute name. + * @return static + */ + public function withoutAttribute($name); +} diff --git a/Sources/API/vendor/psr/http-message/src/StreamInterface.php b/Sources/API/vendor/psr/http-message/src/StreamInterface.php new file mode 100644 index 0000000..f68f391 --- /dev/null +++ b/Sources/API/vendor/psr/http-message/src/StreamInterface.php @@ -0,0 +1,158 @@ + + * [user-info@]host[:port] + * + * + * If the port component is not set or is the standard port for the current + * scheme, it SHOULD NOT be included. + * + * @see https://tools.ietf.org/html/rfc3986#section-3.2 + * @return string The URI authority, in "[user-info@]host[:port]" format. + */ + public function getAuthority(); + + /** + * Retrieve the user information component of the URI. + * + * If no user information is present, this method MUST return an empty + * string. + * + * If a user is present in the URI, this will return that value; + * additionally, if the password is also present, it will be appended to the + * user value, with a colon (":") separating the values. + * + * The trailing "@" character is not part of the user information and MUST + * NOT be added. + * + * @return string The URI user information, in "username[:password]" format. + */ + public function getUserInfo(); + + /** + * Retrieve the host component of the URI. + * + * If no host is present, this method MUST return an empty string. + * + * The value returned MUST be normalized to lowercase, per RFC 3986 + * Section 3.2.2. + * + * @see http://tools.ietf.org/html/rfc3986#section-3.2.2 + * @return string The URI host. + */ + public function getHost(); + + /** + * Retrieve the port component of the URI. + * + * If a port is present, and it is non-standard for the current scheme, + * this method MUST return it as an integer. If the port is the standard port + * used with the current scheme, this method SHOULD return null. + * + * If no port is present, and no scheme is present, this method MUST return + * a null value. + * + * If no port is present, but a scheme is present, this method MAY return + * the standard port for that scheme, but SHOULD return null. + * + * @return null|int The URI port. + */ + public function getPort(); + + /** + * Retrieve the path component of the URI. + * + * The path can either be empty or absolute (starting with a slash) or + * rootless (not starting with a slash). Implementations MUST support all + * three syntaxes. + * + * Normally, the empty path "" and absolute path "/" are considered equal as + * defined in RFC 7230 Section 2.7.3. But this method MUST NOT automatically + * do this normalization because in contexts with a trimmed base path, e.g. + * the front controller, this difference becomes significant. It's the task + * of the user to handle both "" and "/". + * + * The value returned MUST be percent-encoded, but MUST NOT double-encode + * any characters. To determine what characters to encode, please refer to + * RFC 3986, Sections 2 and 3.3. + * + * As an example, if the value should include a slash ("/") not intended as + * delimiter between path segments, that value MUST be passed in encoded + * form (e.g., "%2F") to the instance. + * + * @see https://tools.ietf.org/html/rfc3986#section-2 + * @see https://tools.ietf.org/html/rfc3986#section-3.3 + * @return string The URI path. + */ + public function getPath(); + + /** + * Retrieve the query string of the URI. + * + * If no query string is present, this method MUST return an empty string. + * + * The leading "?" character is not part of the query and MUST NOT be + * added. + * + * The value returned MUST be percent-encoded, but MUST NOT double-encode + * any characters. To determine what characters to encode, please refer to + * RFC 3986, Sections 2 and 3.4. + * + * As an example, if a value in a key/value pair of the query string should + * include an ampersand ("&") not intended as a delimiter between values, + * that value MUST be passed in encoded form (e.g., "%26") to the instance. + * + * @see https://tools.ietf.org/html/rfc3986#section-2 + * @see https://tools.ietf.org/html/rfc3986#section-3.4 + * @return string The URI query string. + */ + public function getQuery(); + + /** + * Retrieve the fragment component of the URI. + * + * If no fragment is present, this method MUST return an empty string. + * + * The leading "#" character is not part of the fragment and MUST NOT be + * added. + * + * The value returned MUST be percent-encoded, but MUST NOT double-encode + * any characters. To determine what characters to encode, please refer to + * RFC 3986, Sections 2 and 3.5. + * + * @see https://tools.ietf.org/html/rfc3986#section-2 + * @see https://tools.ietf.org/html/rfc3986#section-3.5 + * @return string The URI fragment. + */ + public function getFragment(); + + /** + * Return an instance with the specified scheme. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified scheme. + * + * Implementations MUST support the schemes "http" and "https" case + * insensitively, and MAY accommodate other schemes if required. + * + * An empty scheme is equivalent to removing the scheme. + * + * @param string $scheme The scheme to use with the new instance. + * @return static A new instance with the specified scheme. + * @throws \InvalidArgumentException for invalid or unsupported schemes. + */ + public function withScheme($scheme); + + /** + * Return an instance with the specified user information. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified user information. + * + * Password is optional, but the user information MUST include the + * user; an empty string for the user is equivalent to removing user + * information. + * + * @param string $user The user name to use for authority. + * @param null|string $password The password associated with $user. + * @return static A new instance with the specified user information. + */ + public function withUserInfo($user, $password = null); + + /** + * Return an instance with the specified host. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified host. + * + * An empty host value is equivalent to removing the host. + * + * @param string $host The hostname to use with the new instance. + * @return static A new instance with the specified host. + * @throws \InvalidArgumentException for invalid hostnames. + */ + public function withHost($host); + + /** + * Return an instance with the specified port. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified port. + * + * Implementations MUST raise an exception for ports outside the + * established TCP and UDP port ranges. + * + * A null value provided for the port is equivalent to removing the port + * information. + * + * @param null|int $port The port to use with the new instance; a null value + * removes the port information. + * @return static A new instance with the specified port. + * @throws \InvalidArgumentException for invalid ports. + */ + public function withPort($port); + + /** + * Return an instance with the specified path. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified path. + * + * The path can either be empty or absolute (starting with a slash) or + * rootless (not starting with a slash). Implementations MUST support all + * three syntaxes. + * + * If the path is intended to be domain-relative rather than path relative then + * it must begin with a slash ("/"). Paths not starting with a slash ("/") + * are assumed to be relative to some base path known to the application or + * consumer. + * + * Users can provide both encoded and decoded path characters. + * Implementations ensure the correct encoding as outlined in getPath(). + * + * @param string $path The path to use with the new instance. + * @return static A new instance with the specified path. + * @throws \InvalidArgumentException for invalid paths. + */ + public function withPath($path); + + /** + * Return an instance with the specified query string. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified query string. + * + * Users can provide both encoded and decoded query characters. + * Implementations ensure the correct encoding as outlined in getQuery(). + * + * An empty query string value is equivalent to removing the query string. + * + * @param string $query The query string to use with the new instance. + * @return static A new instance with the specified query string. + * @throws \InvalidArgumentException for invalid query strings. + */ + public function withQuery($query); + + /** + * Return an instance with the specified URI fragment. + * + * This method MUST retain the state of the current instance, and return + * an instance that contains the specified URI fragment. + * + * Users can provide both encoded and decoded fragment characters. + * Implementations ensure the correct encoding as outlined in getFragment(). + * + * An empty fragment value is equivalent to removing the fragment. + * + * @param string $fragment The fragment to use with the new instance. + * @return static A new instance with the specified fragment. + */ + public function withFragment($fragment); + + /** + * Return the string representation as a URI reference. + * + * Depending on which components of the URI are present, the resulting + * string is either a full URI or relative reference according to RFC 3986, + * Section 4.1. The method concatenates the various components of the URI, + * using the appropriate delimiters: + * + * - If a scheme is present, it MUST be suffixed by ":". + * - If an authority is present, it MUST be prefixed by "//". + * - The path can be concatenated without delimiters. But there are two + * cases where the path has to be adjusted to make the URI reference + * valid as PHP does not allow to throw an exception in __toString(): + * - If the path is rootless and an authority is present, the path MUST + * be prefixed by "/". + * - If the path is starting with more than one "/" and no authority is + * present, the starting slashes MUST be reduced to one. + * - If a query is present, it MUST be prefixed by "?". + * - If a fragment is present, it MUST be prefixed by "#". + * + * @see http://tools.ietf.org/html/rfc3986#section-4.1 + * @return string + */ + public function __toString(); +} diff --git a/Sources/API/vendor/psr/http-server-handler/LICENSE b/Sources/API/vendor/psr/http-server-handler/LICENSE new file mode 100644 index 0000000..b71ec5d --- /dev/null +++ b/Sources/API/vendor/psr/http-server-handler/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 PHP Framework Interoperability Group + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Sources/API/vendor/psr/http-server-handler/README.md b/Sources/API/vendor/psr/http-server-handler/README.md new file mode 100644 index 0000000..1b7b486 --- /dev/null +++ b/Sources/API/vendor/psr/http-server-handler/README.md @@ -0,0 +1,6 @@ +HTTP Server Handler +=================== + +Provides the `RequestHandlerInterface` of [PSR-15][psr-15]. + +[psr-15]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-15-request-handlers.md diff --git a/Sources/API/vendor/psr/http-server-handler/composer.json b/Sources/API/vendor/psr/http-server-handler/composer.json new file mode 100644 index 0000000..9e8b51d --- /dev/null +++ b/Sources/API/vendor/psr/http-server-handler/composer.json @@ -0,0 +1,36 @@ +{ + "name": "psr/http-server-handler", + "description": "Common interface for HTTP server-side request handler", + "keywords": [ + "psr", + "psr-7", + "psr-15", + "http-interop", + "http", + "server", + "handler", + "request", + "response" + ], + "license": "MIT", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0" + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + } +} diff --git a/Sources/API/vendor/psr/http-server-handler/src/RequestHandlerInterface.php b/Sources/API/vendor/psr/http-server-handler/src/RequestHandlerInterface.php new file mode 100644 index 0000000..83911e2 --- /dev/null +++ b/Sources/API/vendor/psr/http-server-handler/src/RequestHandlerInterface.php @@ -0,0 +1,22 @@ +=7.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0" + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + } +} diff --git a/Sources/API/vendor/psr/http-server-middleware/src/MiddlewareInterface.php b/Sources/API/vendor/psr/http-server-middleware/src/MiddlewareInterface.php new file mode 100644 index 0000000..a6c14f8 --- /dev/null +++ b/Sources/API/vendor/psr/http-server-middleware/src/MiddlewareInterface.php @@ -0,0 +1,25 @@ += 5.3. + +[![Build Status](https://travis-ci.org/ralouphie/getallheaders.svg?branch=master)](https://travis-ci.org/ralouphie/getallheaders) +[![Coverage Status](https://coveralls.io/repos/ralouphie/getallheaders/badge.png?branch=master)](https://coveralls.io/r/ralouphie/getallheaders?branch=master) +[![Latest Stable Version](https://poser.pugx.org/ralouphie/getallheaders/v/stable.png)](https://packagist.org/packages/ralouphie/getallheaders) +[![Latest Unstable Version](https://poser.pugx.org/ralouphie/getallheaders/v/unstable.png)](https://packagist.org/packages/ralouphie/getallheaders) +[![License](https://poser.pugx.org/ralouphie/getallheaders/license.png)](https://packagist.org/packages/ralouphie/getallheaders) + + +This is a simple polyfill for [`getallheaders()`](http://www.php.net/manual/en/function.getallheaders.php). + +## Install + +For PHP version **`>= 5.6`**: + +``` +composer require ralouphie/getallheaders +``` + +For PHP version **`< 5.6`**: + +``` +composer require ralouphie/getallheaders "^2" +``` diff --git a/Sources/API/vendor/ralouphie/getallheaders/composer.json b/Sources/API/vendor/ralouphie/getallheaders/composer.json new file mode 100644 index 0000000..de8ce62 --- /dev/null +++ b/Sources/API/vendor/ralouphie/getallheaders/composer.json @@ -0,0 +1,26 @@ +{ + "name": "ralouphie/getallheaders", + "description": "A polyfill for getallheaders.", + "license": "MIT", + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "require": { + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "^5 || ^6.5", + "php-coveralls/php-coveralls": "^2.1" + }, + "autoload": { + "files": ["src/getallheaders.php"] + }, + "autoload-dev": { + "psr-4": { + "getallheaders\\Tests\\": "tests/" + } + } +} diff --git a/Sources/API/vendor/ralouphie/getallheaders/src/getallheaders.php b/Sources/API/vendor/ralouphie/getallheaders/src/getallheaders.php new file mode 100644 index 0000000..c7285a5 --- /dev/null +++ b/Sources/API/vendor/ralouphie/getallheaders/src/getallheaders.php @@ -0,0 +1,46 @@ + 'Content-Type', + 'CONTENT_LENGTH' => 'Content-Length', + 'CONTENT_MD5' => 'Content-Md5', + ); + + foreach ($_SERVER as $key => $value) { + if (substr($key, 0, 5) === 'HTTP_') { + $key = substr($key, 5); + if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) { + $key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key)))); + $headers[$key] = $value; + } + } elseif (isset($copy_server[$key])) { + $headers[$copy_server[$key]] = $value; + } + } + + if (!isset($headers['Authorization'])) { + if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { + $headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; + } elseif (isset($_SERVER['PHP_AUTH_USER'])) { + $basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : ''; + $headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass); + } elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) { + $headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST']; + } + } + + return $headers; + } + +} diff --git a/Sources/API/vendor/slim/psr7/LICENSE.md b/Sources/API/vendor/slim/psr7/LICENSE.md new file mode 100644 index 0000000..2bd2d5a --- /dev/null +++ b/Sources/API/vendor/slim/psr7/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Slim Framework + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/Sources/API/vendor/slim/psr7/MAINTAINERS.md b/Sources/API/vendor/slim/psr7/MAINTAINERS.md new file mode 100644 index 0000000..5c2496e --- /dev/null +++ b/Sources/API/vendor/slim/psr7/MAINTAINERS.md @@ -0,0 +1,17 @@ +# Maintainers + +There aren't many rules for maintainers of Slim-Psr7 to remember; what we have is listed here. + +## We don't merge our own PRs + +Our code is better if more than one set of eyes looks at it. Therefore we do not merge our own pull requests unless there is an exceptional circumstance. This helps to spot errors in the patch and also enables us to share information about the project around the maintainer team. + +## PRs tagged `[WIP]` are not ready to be merged + +Sometimes it's helpful to collaborate on a patch before it's ready to be merged. We use the `[WIP]` tag (for _Work in Progress_) in the title to mark these PRs. + +If a PR has `[WIP]` in its title, then it is not to be merged. The person who raised the PR will remove the `[WIP]` tag when they are ready for a full review and merge. + +## Assign a merged PR to a milestone + +By ensuring that all merged PRs are assigned to a milestone, we can easily find which PRs were in which release. diff --git a/Sources/API/vendor/slim/psr7/composer.json b/Sources/API/vendor/slim/psr7/composer.json new file mode 100644 index 0000000..318f710 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/composer.json @@ -0,0 +1,76 @@ +{ + "name": "slim/psr7", + "type": "library", + "description": "Strict PSR-7 implementation", + "keywords": ["psr7","psr-7","http"], + "homepage": "https://www.slimframework.com", + "license": "MIT", + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "http://joshlockhart.com" + }, + { + "name": "Andrew Smith", + "email": "a.smith@silentworks.co.uk", + "homepage": "http://silentworks.co.uk" + }, + { + "name": "Rob Allen", + "email": "rob@akrabat.com", + "homepage": "http://akrabat.com" + }, + { + "name": "Pierre Berube", + "email": "pierre@lgse.com", + "homepage": "http://www.lgse.com" + } + ], + "require": { + "php": "^7.4 || ^8.0", + "fig/http-message-util": "^1.1.5", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0", + "symfony/polyfill-php80": "^1.26" + }, + "require-dev": { + "ext-json": "*", + "adriansuter/php-autoload-override": "^1.3", + "http-interop/http-factory-tests": "^0.9.0", + "php-http/psr7-integration-tests": "dev-master", + "phpspec/prophecy": "^1.15", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.7" + }, + "provide": { + "psr/http-message-implementation": "1.0", + "psr/http-factory-implementation": "1.0" + }, + "autoload": { + "psr-4": { + "Slim\\Psr7\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Slim\\Tests\\Psr7\\": "tests" + } + }, + "scripts": { + "test": [ + "@phpunit", + "@phpcs", + "@phpstan" + ], + "phpunit": "phpunit", + "phpcs": "phpcs", + "phpstan": "phpstan --memory-limit=-1" + }, + "config": { + "sort-packages": true + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Cookies.php b/Sources/API/vendor/slim/psr7/src/Cookies.php new file mode 100644 index 0000000..044d438 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Cookies.php @@ -0,0 +1,218 @@ + '', + 'domain' => null, + 'hostonly' => null, + 'path' => null, + 'expires' => null, + 'secure' => false, + 'httponly' => false, + 'samesite' => null + ]; + + /** + * @param array $cookies + */ + public function __construct(array $cookies = []) + { + $this->requestCookies = $cookies; + } + + /** + * Set default cookie properties + * + * @param array $settings + * + * @return static + */ + public function setDefaults(array $settings): self + { + $this->defaults = array_replace($this->defaults, $settings); + + return $this; + } + + /** + * Get cookie + * + * @param string $name + * @param string|array|null $default + * @return mixed|null + */ + public function get(string $name, $default = null) + { + return array_key_exists($name, $this->requestCookies) ? $this->requestCookies[$name] : $default; + } + + /** + * Set cookie + * + * @param string $name + * @param string|array $value + * @return static + */ + public function set(string $name, $value): self + { + if (!is_array($value)) { + $value = ['value' => $value]; + } + + $this->responseCookies[$name] = array_replace($this->defaults, $value); + + return $this; + } + + /** + * Convert all response cookies into an associate array of header values + * + * @return array + */ + public function toHeaders(): array + { + $headers = []; + + foreach ($this->responseCookies as $name => $properties) { + $headers[] = $this->toHeader($name, $properties); + } + + return $headers; + } + + /** + * Convert to `Set-Cookie` header + * + * @param string $name Cookie name + * @param array $properties Cookie properties + * + * @return string + */ + protected function toHeader(string $name, array $properties): string + { + $result = urlencode($name) . '=' . urlencode($properties['value']); + + if (isset($properties['domain'])) { + $result .= '; domain=' . $properties['domain']; + } + + if (isset($properties['path'])) { + $result .= '; path=' . $properties['path']; + } + + if (isset($properties['expires'])) { + if (is_string($properties['expires'])) { + $timestamp = strtotime($properties['expires']); + } else { + $timestamp = (int) $properties['expires']; + } + if ($timestamp && $timestamp !== 0) { + $result .= '; expires=' . gmdate('D, d-M-Y H:i:s e', $timestamp); + } + } + + if (isset($properties['secure']) && $properties['secure']) { + $result .= '; secure'; + } + + if (isset($properties['hostonly']) && $properties['hostonly']) { + $result .= '; HostOnly'; + } + + if (isset($properties['httponly']) && $properties['httponly']) { + $result .= '; HttpOnly'; + } + + if ( + isset($properties['samesite']) + && in_array(strtolower($properties['samesite']), ['lax', 'strict', 'none'], true) + ) { + // While strtolower is needed for correct comparison, the RFC doesn't care about case + $result .= '; SameSite=' . $properties['samesite']; + } + + return $result; + } + + /** + * Parse cookie values from header value + * + * Returns an associative array of cookie names and values + * + * @param string|array $header + * + * @return array + */ + public static function parseHeader($header): array + { + if (is_array($header)) { + $header = $header[0] ?? ''; + } + + if (!is_string($header)) { + throw new InvalidArgumentException('Cannot parse Cookie data. Header value must be a string.'); + } + + $header = rtrim($header, "\r\n"); + $pieces = preg_split('@[;]\s*@', $header); + $cookies = []; + + if (is_array($pieces)) { + foreach ($pieces as $cookie) { + $cookie = explode('=', $cookie, 2); + + if (count($cookie) === 2) { + $key = urldecode($cookie[0]); + $value = urldecode($cookie[1]); + + if (!isset($cookies[$key])) { + $cookies[$key] = $value; + } + } + } + } + + return $cookies; + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Environment.php b/Sources/API/vendor/slim/psr7/src/Environment.php new file mode 100644 index 0000000..55f187b --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Environment.php @@ -0,0 +1,55 @@ + 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', + 'HTTP_ACCEPT_LANGUAGE' => 'en-US,en;q=0.8', + 'HTTP_USER_AGENT' => 'Slim Framework', + 'QUERY_STRING' => '', + 'REMOTE_ADDR' => '127.0.0.1', + 'REQUEST_METHOD' => 'GET', + 'REQUEST_SCHEME' => $scheme, + 'REQUEST_TIME' => time(), + 'REQUEST_TIME_FLOAT' => microtime(true), + 'REQUEST_URI' => '', + 'SCRIPT_NAME' => '', + 'SERVER_NAME' => 'localhost', + 'SERVER_PORT' => $port, + 'SERVER_PROTOCOL' => 'HTTP/1.1', + ], $data); + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Factory/RequestFactory.php b/Sources/API/vendor/slim/psr7/src/Factory/RequestFactory.php new file mode 100644 index 0000000..e825ee3 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Factory/RequestFactory.php @@ -0,0 +1,59 @@ +streamFactory = $streamFactory ?? new StreamFactory(); + $this->uriFactory = $uriFactory ?? new UriFactory(); + } + + /** + * {@inheritdoc} + */ + public function createRequest(string $method, $uri): RequestInterface + { + if (is_string($uri)) { + $uri = $this->uriFactory->createUri($uri); + } + + if (!$uri instanceof UriInterface) { + throw new InvalidArgumentException( + 'Parameter 2 of RequestFactory::createRequest() must be a string or a compatible UriInterface.' + ); + } + + $body = $this->streamFactory->createStream(); + + return new Request($method, $uri, new Headers(), [], [], $body); + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Factory/ResponseFactory.php b/Sources/API/vendor/slim/psr7/src/Factory/ResponseFactory.php new file mode 100644 index 0000000..c1a23a7 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Factory/ResponseFactory.php @@ -0,0 +1,35 @@ +withStatus($code, $reasonPhrase); + } + + return $res; + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Factory/ServerRequestFactory.php b/Sources/API/vendor/slim/psr7/src/Factory/ServerRequestFactory.php new file mode 100644 index 0000000..5bc2447 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Factory/ServerRequestFactory.php @@ -0,0 +1,110 @@ +streamFactory = $streamFactory ?? new StreamFactory(); + $this->uriFactory = $uriFactory ?? new UriFactory(); + } + + /** + * {@inheritdoc} + */ + public function createServerRequest(string $method, $uri, array $serverParams = []): ServerRequestInterface + { + if (is_string($uri)) { + $uri = $this->uriFactory->createUri($uri); + } + + if (!$uri instanceof UriInterface) { + throw new InvalidArgumentException('URI must either be string or instance of ' . UriInterface::class); + } + + $body = $this->streamFactory->createStream(); + $headers = new Headers(); + $cookies = []; + + if (!empty($serverParams)) { + $headers = Headers::createFromGlobals(); + $cookies = Cookies::parseHeader($headers->getHeader('Cookie', [])); + } + + return new Request($method, $uri, $headers, $cookies, $serverParams, $body); + } + + /** + * Create new ServerRequest from environment. + * + * @internal This method is not part of PSR-17 + * + * @return Request + */ + public static function createFromGlobals(): Request + { + $method = $_SERVER['REQUEST_METHOD'] ?? 'GET'; + $uri = (new UriFactory())->createFromGlobals($_SERVER); + + $headers = Headers::createFromGlobals(); + $cookies = Cookies::parseHeader($headers->getHeader('Cookie', [])); + + // Cache the php://input stream as it cannot be re-read + $cacheResource = fopen('php://temp', 'wb+'); + $cache = $cacheResource ? new Stream($cacheResource) : null; + + $body = (new StreamFactory())->createStreamFromFile('php://input', 'r', $cache); + $uploadedFiles = UploadedFile::createFromGlobals($_SERVER); + + $request = new Request($method, $uri, $headers, $cookies, $_SERVER, $body, $uploadedFiles); + $contentTypes = $request->getHeader('Content-Type'); + + $parsedContentType = ''; + foreach ($contentTypes as $contentType) { + $fragments = explode(';', $contentType); + $parsedContentType = current($fragments); + } + + $contentTypesWithParsedBodies = ['application/x-www-form-urlencoded', 'multipart/form-data']; + if ($method === 'POST' && in_array($parsedContentType, $contentTypesWithParsedBodies)) { + return $request->withParsedBody($_POST); + } + + return $request; + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Factory/StreamFactory.php b/Sources/API/vendor/slim/psr7/src/Factory/StreamFactory.php new file mode 100644 index 0000000..31d99b5 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Factory/StreamFactory.php @@ -0,0 +1,95 @@ +createStreamFromResource($resource); + } + + /** + * {@inheritdoc} + */ + public function createStreamFromFile( + string $filename, + string $mode = 'r', + StreamInterface $cache = null + ): StreamInterface { + set_error_handler( + static function (int $errno, string $errstr) use ($filename, $mode): void { + throw new RuntimeException( + "Unable to open $filename using mode $mode: $errstr", + $errno + ); + } + ); + + try { + $resource = fopen($filename, $mode); + } catch (ValueError $exception) { + throw new RuntimeException("Unable to open $filename using mode $mode: " . $exception->getMessage()); + } finally { + restore_error_handler(); + } + + if (!is_resource($resource)) { + throw new RuntimeException( + "StreamFactory::createStreamFromFile() could not create resource from file `$filename`" + ); + } + + return new Stream($resource, $cache); + } + + /** + * {@inheritdoc} + */ + public function createStreamFromResource($resource, StreamInterface $cache = null): StreamInterface + { + if (!is_resource($resource)) { + throw new InvalidArgumentException( + 'Parameter 1 of StreamFactory::createStreamFromResource() must be a resource.' + ); + } + + return new Stream($resource, $cache); + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Factory/UploadedFileFactory.php b/Sources/API/vendor/slim/psr7/src/Factory/UploadedFileFactory.php new file mode 100644 index 0000000..5699e96 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Factory/UploadedFileFactory.php @@ -0,0 +1,47 @@ +getMetadata('uri'); + + if (!is_string($file) || !$stream->isReadable()) { + throw new InvalidArgumentException('File is not readable.'); + } + + if ($size === null) { + $size = $stream->getSize(); + } + + return new UploadedFile($stream, $clientFilename, $clientMediaType, $size, $error); + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Factory/UriFactory.php b/Sources/API/vendor/slim/psr7/src/Factory/UriFactory.php new file mode 100644 index 0000000..74ab377 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Factory/UriFactory.php @@ -0,0 +1,113 @@ + 1) { + $queryString = parse_url('https://www.example.com' . $globals['REQUEST_URI'], PHP_URL_QUERY) ?? ''; + } + } + + // Build Uri and return + return new Uri($scheme, $host, $port, $requestUri, $queryString, '', $username, $password); + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Header.php b/Sources/API/vendor/slim/psr7/src/Header.php new file mode 100644 index 0000000..ecdad32 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Header.php @@ -0,0 +1,96 @@ +originalName = $originalName; + $this->normalizedName = $normalizedName; + $this->values = $values; + } + + /** + * @return string + */ + public function getOriginalName(): string + { + return $this->originalName; + } + + /** + * @return string + */ + public function getNormalizedName(): string + { + return $this->normalizedName; + } + + /** + * @param string $value + * + * @return self + */ + public function addValue(string $value): self + { + $this->values[] = $value; + + return $this; + } + + /** + * @param array|string $values + * + * @return self + */ + public function addValues($values): self + { + if (is_string($values)) { + return $this->addValue($values); + } + + if (!is_array($values)) { + throw new InvalidArgumentException('Parameter 1 of Header::addValues() should be a string or an array.'); + } + + $this->values = array_merge($this->values, $values); + + return $this; + } + + /** + * @return array + */ + public function getValues(): array + { + return $this->values; + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Headers.php b/Sources/API/vendor/slim/psr7/src/Headers.php new file mode 100644 index 0000000..038e792 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Headers.php @@ -0,0 +1,318 @@ +globals = $globals ?? $_SERVER; + $this->setHeaders($headers); + } + + /** + * {@inheritdoc} + */ + public function addHeader($name, $value): HeadersInterface + { + [$values, $originalName, $normalizedName] = $this->prepareHeader($name, $value); + + if (isset($this->headers[$normalizedName])) { + $header = $this->headers[$normalizedName]; + $header->addValues($values); + } else { + $this->headers[$normalizedName] = new Header($originalName, $normalizedName, $values); + } + + return $this; + } + + /** + * {@inheritdoc} + */ + public function removeHeader(string $name): HeadersInterface + { + $name = $this->normalizeHeaderName($name); + unset($this->headers[$name]); + return $this; + } + + /** + * {@inheritdoc} + */ + public function getHeader(string $name, $default = []): array + { + $name = $this->normalizeHeaderName($name); + + if (isset($this->headers[$name])) { + $header = $this->headers[$name]; + return $header->getValues(); + } + + if (empty($default)) { + return $default; + } + + $this->validateHeader($name, $default); + return $this->trimHeaderValue($default); + } + + /** + * {@inheritdoc} + */ + public function setHeader($name, $value): HeadersInterface + { + [$values, $originalName, $normalizedName] = $this->prepareHeader($name, $value); + + // Ensure we preserve original case if the header already exists in the stack + if (isset($this->headers[$normalizedName])) { + $existingHeader = $this->headers[$normalizedName]; + $originalName = $existingHeader->getOriginalName(); + } + + $this->headers[$normalizedName] = new Header($originalName, $normalizedName, $values); + + return $this; + } + + /** + * {@inheritdoc} + */ + public function setHeaders(array $headers): HeadersInterface + { + $this->headers = []; + + foreach ($this->parseAuthorizationHeader($headers) as $name => $value) { + $this->addHeader($name, $value); + } + + return $this; + } + + /** + * {@inheritdoc} + */ + public function hasHeader(string $name): bool + { + $name = $this->normalizeHeaderName($name); + return isset($this->headers[$name]); + } + + /** + * {@inheritdoc} + */ + public function getHeaders(bool $originalCase = false): array + { + $headers = []; + + foreach ($this->headers as $header) { + $name = $originalCase ? $header->getOriginalName() : $header->getNormalizedName(); + $headers[$name] = $header->getValues(); + } + + return $headers; + } + + /** + * @param string $name + * @param bool $preserveCase + * @return string + */ + protected function normalizeHeaderName(string $name, bool $preserveCase = false): string + { + $name = strtr($name, '_', '-'); + + if (!$preserveCase) { + $name = strtolower($name); + } + + if (strpos(strtolower($name), 'http-') === 0) { + $name = substr($name, 5); + } + + return $name; + } + + /** + * Parse incoming headers and determine Authorization header from original headers + * + * @param array $headers + * @return array + */ + protected function parseAuthorizationHeader(array $headers): array + { + $hasAuthorizationHeader = false; + foreach ($headers as $name => $value) { + if (strtolower((string) $name) === 'authorization') { + $hasAuthorizationHeader = true; + break; + } + } + + if (!$hasAuthorizationHeader) { + if (isset($this->globals['REDIRECT_HTTP_AUTHORIZATION'])) { + $headers['Authorization'] = $this->globals['REDIRECT_HTTP_AUTHORIZATION']; + } elseif (isset($this->globals['PHP_AUTH_USER'])) { + $pw = $this->globals['PHP_AUTH_PW'] ?? ''; + $headers['Authorization'] = 'Basic ' . base64_encode($this->globals['PHP_AUTH_USER'] . ':' . $pw); + } elseif (isset($this->globals['PHP_AUTH_DIGEST'])) { + $headers['Authorization'] = $this->globals['PHP_AUTH_DIGEST']; + } + } + + return $headers; + } + + /** + * @param array|string $value + * + * @return array + */ + protected function trimHeaderValue($value): array + { + $items = is_array($value) ? $value : [$value]; + $result = []; + foreach ($items as $item) { + $result[] = trim((string) $item, " \t"); + } + return $result; + } + + /** + * @param string $name + * @param array|string $value + * + * @throws InvalidArgumentException + * + * @return array + */ + protected function prepareHeader($name, $value): array + { + $this->validateHeader($name, $value); + $values = $this->trimHeaderValue($value); + $originalName = $this->normalizeHeaderName($name, true); + $normalizedName = $this->normalizeHeaderName($name); + return [$values, $originalName, $normalizedName]; + } + + /** + * Make sure the header complies with RFC 7230. + * + * Header names must be a non-empty string consisting of token characters. + * + * Header values must be strings consisting of visible characters with all optional + * leading and trailing whitespace stripped. This method will always strip such + * optional whitespace. Note that the method does not allow folding whitespace within + * the values as this was deprecated for almost all instances by the RFC. + * + * header-field = field-name ":" OWS field-value OWS + * field-name = 1*( "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / "^" + * / "_" / "`" / "|" / "~" / %x30-39 / ( %x41-5A / %x61-7A ) ) + * OWS = *( SP / HTAB ) + * field-value = *( ( %x21-7E / %x80-FF ) [ 1*( SP / HTAB ) ( %x21-7E / %x80-FF ) ] ) + * + * @see https://tools.ietf.org/html/rfc7230#section-3.2.4 + * + * @param string $name + * @param array|string $value + * + * @throws InvalidArgumentException; + */ + protected function validateHeader($name, $value): void + { + $this->validateHeaderName($name); + $this->validateHeaderValue($value); + } + + /** + * @param mixed $name + * + * @throws InvalidArgumentException + */ + protected function validateHeaderName($name): void + { + if (!is_string($name) || preg_match("@^[!#$%&'*+.^_`|~0-9A-Za-z-]+$@", $name) !== 1) { + throw new InvalidArgumentException('Header name must be an RFC 7230 compatible string.'); + } + } + + /** + * @param mixed $value + * + * @throws InvalidArgumentException + */ + protected function validateHeaderValue($value): void + { + $items = is_array($value) ? $value : [$value]; + + if (empty($items)) { + throw new InvalidArgumentException( + 'Header values must be a string or an array of strings, empty array given.' + ); + } + + $pattern = "@^[ \t\x21-\x7E\x80-\xFF]*$@"; + foreach ($items as $item) { + $hasInvalidType = !is_numeric($item) && !is_string($item); + $rejected = $hasInvalidType || preg_match($pattern, (string) $item) !== 1; + if ($rejected) { + throw new InvalidArgumentException( + 'Header values must be RFC 7230 compatible strings.' + ); + } + } + } + + /** + * @return static + */ + public static function createFromGlobals() + { + $headers = null; + + if (function_exists('getallheaders')) { + $headers = getallheaders(); + } + + if (!is_array($headers)) { + $headers = []; + } + + return new static($headers); + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Interfaces/HeadersInterface.php b/Sources/API/vendor/slim/psr7/src/Interfaces/HeadersInterface.php new file mode 100644 index 0000000..3f486f1 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Interfaces/HeadersInterface.php @@ -0,0 +1,90 @@ + true, + '1.1' => true, + '2.0' => true, + '2' => true, + ]; + + /** + * @var HeadersInterface + */ + protected $headers; + + /** + * @var StreamInterface + */ + protected $body; + + /** + * Disable magic setter to ensure immutability + * + * @param string $name The property name + * @param mixed $value The property value + * + * @return void + */ + public function __set($name, $value): void + { + // Do nothing + } + + /** + * {@inheritdoc} + */ + public function getProtocolVersion(): string + { + return $this->protocolVersion; + } + + /** + * @return static + * {@inheritdoc} + */ + public function withProtocolVersion($version) + { + if (!isset(self::$validProtocolVersions[$version])) { + throw new InvalidArgumentException( + 'Invalid HTTP version. Must be one of: ' + . implode(', ', array_keys(self::$validProtocolVersions)) + ); + } + + $clone = clone $this; + $clone->protocolVersion = $version; + + return $clone; + } + + /** + * {@inheritdoc} + */ + public function getHeaders(): array + { + return $this->headers->getHeaders(true); + } + + /** + * {@inheritdoc} + */ + public function hasHeader($name): bool + { + return $this->headers->hasHeader($name); + } + + /** + * {@inheritdoc} + */ + public function getHeader($name): array + { + return $this->headers->getHeader($name); + } + + /** + * {@inheritdoc} + */ + public function getHeaderLine($name): string + { + $values = $this->headers->getHeader($name); + return implode(',', $values); + } + + /** + * @return static + * {@inheritdoc} + */ + public function withHeader($name, $value) + { + $clone = clone $this; + $clone->headers->setHeader($name, $value); + + if ($this instanceof Response && $this->body instanceof NonBufferedBody) { + header(sprintf('%s: %s', $name, $clone->getHeaderLine($name))); + } + + return $clone; + } + + /** + * @return static + * {@inheritdoc} + */ + public function withAddedHeader($name, $value) + { + $clone = clone $this; + $clone->headers->addHeader($name, $value); + + if ($this instanceof Response && $this->body instanceof NonBufferedBody) { + header(sprintf('%s: %s', $name, $clone->getHeaderLine($name))); + } + + return $clone; + } + + /** + * @return static + * {@inheritdoc} + */ + public function withoutHeader($name) + { + $clone = clone $this; + $clone->headers->removeHeader($name); + + if ($this instanceof Response && $this->body instanceof NonBufferedBody) { + header_remove($name); + } + + return $clone; + } + + /** + * {@inheritdoc} + */ + public function getBody(): StreamInterface + { + return $this->body; + } + + /** + * @return static + * {@inheritdoc} + */ + public function withBody(StreamInterface $body) + { + $clone = clone $this; + $clone->body = $body; + + return $clone; + } +} diff --git a/Sources/API/vendor/slim/psr7/src/NonBufferedBody.php b/Sources/API/vendor/slim/psr7/src/NonBufferedBody.php new file mode 100644 index 0000000..ad22c2d --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/NonBufferedBody.php @@ -0,0 +1,153 @@ +method = $this->filterMethod($method); + $this->uri = $uri; + $this->headers = $headers; + $this->cookies = $cookies; + $this->serverParams = $serverParams; + $this->attributes = []; + $this->body = $body; + $this->uploadedFiles = $uploadedFiles; + + if (isset($serverParams['SERVER_PROTOCOL'])) { + $this->protocolVersion = str_replace('HTTP/', '', $serverParams['SERVER_PROTOCOL']); + } + + if (!$this->headers->hasHeader('Host') || $this->uri->getHost() !== '') { + $this->headers->setHeader('Host', $this->uri->getHost()); + } + } + + /** + * This method is applied to the cloned object after PHP performs an initial shallow-copy. + * This method completes a deep-copy by creating new objects for the cloned object's internal reference pointers. + */ + public function __clone() + { + $this->headers = clone $this->headers; + $this->body = clone $this->body; + } + + /** + * {@inheritdoc} + */ + public function getMethod(): string + { + return $this->method; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withMethod($method) + { + $method = $this->filterMethod($method); + $clone = clone $this; + $clone->method = $method; + + return $clone; + } + + /** + * Validate the HTTP method + * + * @param string $method + * + * @return string + * + * @throws InvalidArgumentException on invalid HTTP method. + */ + protected function filterMethod($method): string + { + /** @var mixed $method */ + if (!is_string($method)) { + throw new InvalidArgumentException(sprintf( + 'Unsupported HTTP method; must be a string, received %s', + (is_object($method) ? get_class($method) : gettype($method)) + )); + } + + if (preg_match("/^[!#$%&'*+.^_`|~0-9a-z-]+$/i", $method) !== 1) { + throw new InvalidArgumentException(sprintf( + 'Unsupported HTTP method "%s" provided', + $method + )); + } + + return $method; + } + + /** + * {@inheritdoc} + */ + public function getRequestTarget(): string + { + if ($this->requestTarget) { + return $this->requestTarget; + } + + if ($this->uri === null) { + return '/'; + } + + $path = $this->uri->getPath(); + $path = '/' . ltrim($path, '/'); + + $query = $this->uri->getQuery(); + if ($query) { + $path .= '?' . $query; + } + + return $path; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withRequestTarget($requestTarget) + { + if (!is_string($requestTarget) || preg_match('#\s#', $requestTarget)) { + throw new InvalidArgumentException( + 'Invalid request target provided; must be a string and cannot contain whitespace' + ); + } + + $clone = clone $this; + $clone->requestTarget = $requestTarget; + + return $clone; + } + + /** + * {@inheritdoc} + */ + public function getUri(): UriInterface + { + return $this->uri; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withUri(UriInterface $uri, $preserveHost = false) + { + $clone = clone $this; + $clone->uri = $uri; + + if (!$preserveHost && $uri->getHost() !== '') { + $clone->headers->setHeader('Host', $uri->getHost()); + return $clone; + } + + if (($uri->getHost() !== '' && !$this->hasHeader('Host') || $this->getHeaderLine('Host') === '')) { + $clone->headers->setHeader('Host', $uri->getHost()); + return $clone; + } + + return $clone; + } + + /** + * {@inheritdoc} + */ + public function getCookieParams(): array + { + return $this->cookies; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withCookieParams(array $cookies) + { + $clone = clone $this; + $clone->cookies = $cookies; + + return $clone; + } + + /** + * {@inheritdoc} + */ + public function getQueryParams(): array + { + if (is_array($this->queryParams)) { + return $this->queryParams; + } + + if ($this->uri === null) { + return []; + } + + parse_str($this->uri->getQuery(), $this->queryParams); // <-- URL decodes data + assert(is_array($this->queryParams)); + + return $this->queryParams; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withQueryParams(array $query) + { + $clone = clone $this; + $clone->queryParams = $query; + + return $clone; + } + + /** + * {@inheritdoc} + */ + public function getUploadedFiles(): array + { + return $this->uploadedFiles; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withUploadedFiles(array $uploadedFiles) + { + $clone = clone $this; + $clone->uploadedFiles = $uploadedFiles; + + return $clone; + } + + /** + * {@inheritdoc} + */ + public function getServerParams(): array + { + return $this->serverParams; + } + + /** + * {@inheritdoc} + */ + public function getAttributes(): array + { + return $this->attributes; + } + + /** + * {@inheritdoc} + * @return mixed + */ + public function getAttribute($name, $default = null) + { + return $this->attributes[$name] ?? $default; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withAttribute($name, $value) + { + $clone = clone $this; + $clone->attributes[$name] = $value; + + return $clone; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withoutAttribute($name) + { + $clone = clone $this; + + unset($clone->attributes[$name]); + + return $clone; + } + + /** + * {@inheritdoc} + */ + public function getParsedBody() + { + return $this->parsedBody; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withParsedBody($data) + { + /** @var mixed $data */ + if (!is_null($data) && !is_object($data) && !is_array($data)) { + throw new InvalidArgumentException('Parsed body value must be an array, an object, or null'); + } + + $clone = clone $this; + $clone->parsedBody = $data; + + return $clone; + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Response.php b/Sources/API/vendor/slim/psr7/src/Response.php new file mode 100644 index 0000000..c6d4c6e --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Response.php @@ -0,0 +1,216 @@ + 'Continue', + StatusCodeInterface::STATUS_SWITCHING_PROTOCOLS => 'Switching Protocols', + StatusCodeInterface::STATUS_PROCESSING => 'Processing', + + // Successful 2xx + StatusCodeInterface::STATUS_OK => 'OK', + StatusCodeInterface::STATUS_CREATED => 'Created', + StatusCodeInterface::STATUS_ACCEPTED => 'Accepted', + StatusCodeInterface::STATUS_NON_AUTHORITATIVE_INFORMATION => 'Non-Authoritative Information', + StatusCodeInterface::STATUS_NO_CONTENT => 'No Content', + StatusCodeInterface::STATUS_RESET_CONTENT => 'Reset Content', + StatusCodeInterface::STATUS_PARTIAL_CONTENT => 'Partial Content', + StatusCodeInterface::STATUS_MULTI_STATUS => 'Multi-Status', + StatusCodeInterface::STATUS_ALREADY_REPORTED => 'Already Reported', + StatusCodeInterface::STATUS_IM_USED => 'IM Used', + + // Redirection 3xx + StatusCodeInterface::STATUS_MULTIPLE_CHOICES => 'Multiple Choices', + StatusCodeInterface::STATUS_MOVED_PERMANENTLY => 'Moved Permanently', + StatusCodeInterface::STATUS_FOUND => 'Found', + StatusCodeInterface::STATUS_SEE_OTHER => 'See Other', + StatusCodeInterface::STATUS_NOT_MODIFIED => 'Not Modified', + StatusCodeInterface::STATUS_USE_PROXY => 'Use Proxy', + StatusCodeInterface::STATUS_RESERVED => '(Unused)', + StatusCodeInterface::STATUS_TEMPORARY_REDIRECT => 'Temporary Redirect', + StatusCodeInterface::STATUS_PERMANENT_REDIRECT => 'Permanent Redirect', + + // Client Error 4xx + StatusCodeInterface::STATUS_BAD_REQUEST => 'Bad Request', + StatusCodeInterface::STATUS_UNAUTHORIZED => 'Unauthorized', + StatusCodeInterface::STATUS_PAYMENT_REQUIRED => 'Payment Required', + StatusCodeInterface::STATUS_FORBIDDEN => 'Forbidden', + StatusCodeInterface::STATUS_NOT_FOUND => 'Not Found', + StatusCodeInterface::STATUS_METHOD_NOT_ALLOWED => 'Method Not Allowed', + StatusCodeInterface::STATUS_NOT_ACCEPTABLE => 'Not Acceptable', + StatusCodeInterface::STATUS_PROXY_AUTHENTICATION_REQUIRED => 'Proxy Authentication Required', + StatusCodeInterface::STATUS_REQUEST_TIMEOUT => 'Request Timeout', + StatusCodeInterface::STATUS_CONFLICT => 'Conflict', + StatusCodeInterface::STATUS_GONE => 'Gone', + StatusCodeInterface::STATUS_LENGTH_REQUIRED => 'Length Required', + StatusCodeInterface::STATUS_PRECONDITION_FAILED => 'Precondition Failed', + StatusCodeInterface::STATUS_PAYLOAD_TOO_LARGE => 'Request Entity Too Large', + StatusCodeInterface::STATUS_URI_TOO_LONG => 'Request-URI Too Long', + StatusCodeInterface::STATUS_UNSUPPORTED_MEDIA_TYPE => 'Unsupported Media Type', + StatusCodeInterface::STATUS_RANGE_NOT_SATISFIABLE => 'Requested Range Not Satisfiable', + StatusCodeInterface::STATUS_EXPECTATION_FAILED => 'Expectation Failed', + StatusCodeInterface::STATUS_IM_A_TEAPOT => 'I\'m a teapot', + StatusCodeInterface::STATUS_MISDIRECTED_REQUEST => 'Misdirected Request', + StatusCodeInterface::STATUS_UNPROCESSABLE_ENTITY => 'Unprocessable Entity', + StatusCodeInterface::STATUS_LOCKED => 'Locked', + StatusCodeInterface::STATUS_FAILED_DEPENDENCY => 'Failed Dependency', + StatusCodeInterface::STATUS_UPGRADE_REQUIRED => 'Upgrade Required', + StatusCodeInterface::STATUS_PRECONDITION_REQUIRED => 'Precondition Required', + StatusCodeInterface::STATUS_TOO_MANY_REQUESTS => 'Too Many Requests', + StatusCodeInterface::STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE => 'Request Header Fields Too Large', + 444 => 'Connection Closed Without Response', + StatusCodeInterface::STATUS_UNAVAILABLE_FOR_LEGAL_REASONS => 'Unavailable For Legal Reasons', + 499 => 'Client Closed Request', + + // Server Error 5xx + StatusCodeInterface::STATUS_INTERNAL_SERVER_ERROR => 'Internal Server Error', + StatusCodeInterface::STATUS_NOT_IMPLEMENTED => 'Not Implemented', + StatusCodeInterface::STATUS_BAD_GATEWAY => 'Bad Gateway', + StatusCodeInterface::STATUS_SERVICE_UNAVAILABLE => 'Service Unavailable', + StatusCodeInterface::STATUS_GATEWAY_TIMEOUT => 'Gateway Timeout', + StatusCodeInterface::STATUS_VERSION_NOT_SUPPORTED => 'HTTP Version Not Supported', + StatusCodeInterface::STATUS_VARIANT_ALSO_NEGOTIATES => 'Variant Also Negotiates', + StatusCodeInterface::STATUS_INSUFFICIENT_STORAGE => 'Insufficient Storage', + StatusCodeInterface::STATUS_LOOP_DETECTED => 'Loop Detected', + StatusCodeInterface::STATUS_NOT_EXTENDED => 'Not Extended', + StatusCodeInterface::STATUS_NETWORK_AUTHENTICATION_REQUIRED => 'Network Authentication Required', + 599 => 'Network Connect Timeout Error', + ]; + + /** + * @param int $status The response status code. + * @param HeadersInterface|null $headers The response headers. + * @param StreamInterface|null $body The response body. + */ + public function __construct( + int $status = StatusCodeInterface::STATUS_OK, + ?HeadersInterface $headers = null, + ?StreamInterface $body = null + ) { + $this->status = $this->filterStatus($status); + $this->headers = $headers ?: new Headers([], []); + $this->body = $body ?: (new StreamFactory())->createStream(); + } + + /** + * This method is applied to the cloned object after PHP performs an initial shallow-copy. + * This method completes a deep-copy by creating new objects for the cloned object's internal reference pointers. + */ + public function __clone() + { + $this->headers = clone $this->headers; + } + + /** + * {@inheritdoc} + */ + public function getStatusCode(): int + { + return $this->status; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withStatus($code, $reasonPhrase = '') + { + $code = $this->filterStatus($code); + $reasonPhrase = $this->filterReasonPhrase($reasonPhrase); + + $clone = clone $this; + $clone->status = $code; + $clone->reasonPhrase = $reasonPhrase; + + return $clone; + } + + /** + * {@inheritdoc} + */ + public function getReasonPhrase(): string + { + if ($this->reasonPhrase !== '') { + return $this->reasonPhrase; + } + + if (isset(static::$messages[$this->status])) { + return static::$messages[$this->status]; + } + + return ''; + } + + /** + * Filter HTTP status code. + * + * @param int $status HTTP status code. + * + * @return int + * + * @throws InvalidArgumentException If an invalid HTTP status code is provided. + */ + protected function filterStatus($status): int + { + if (!is_integer($status) || $status < StatusCodeInterface::STATUS_CONTINUE || $status > 599) { + throw new InvalidArgumentException('Invalid HTTP status code.'); + } + + return $status; + } + + /** + * Filter Reason Phrase + * + * @param mixed $reasonPhrase + * + * @return string + * + * @throws InvalidArgumentException + */ + protected function filterReasonPhrase($reasonPhrase = ''): string + { + if (is_object($reasonPhrase) && method_exists($reasonPhrase, '__toString')) { + $reasonPhrase = (string) $reasonPhrase; + } + + if (!is_string($reasonPhrase)) { + throw new InvalidArgumentException('Response reason phrase must be a string.'); + } + + if (strpos($reasonPhrase, "\r") !== false || strpos($reasonPhrase, "\n") !== false) { + throw new InvalidArgumentException( + 'Reason phrase contains one of the following prohibited characters: \r \n' + ); + } + + return $reasonPhrase; + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Stream.php b/Sources/API/vendor/slim/psr7/src/Stream.php new file mode 100644 index 0000000..9de6685 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Stream.php @@ -0,0 +1,396 @@ +attach($stream); + + if ($cache && (!$cache->isSeekable() || !$cache->isWritable())) { + throw new RuntimeException('Cache stream must be seekable and writable'); + } + $this->cache = $cache; + } + + /** + * {@inheritdoc} + * @return array|mixed + */ + public function getMetadata($key = null) + { + if (!$this->stream) { + return null; + } + + $this->meta = stream_get_meta_data($this->stream); + + if (!$key) { + return $this->meta; + } + + return $this->meta[$key] ?? null; + } + + /** + * Attach new resource to this object. + * + * @internal This method is not part of the PSR-7 standard. + * + * @param resource $stream A PHP resource handle. + * + * @throws InvalidArgumentException If argument is not a valid PHP resource. + * + * @return void + */ + protected function attach($stream): void + { + if (!is_resource($stream)) { + throw new InvalidArgumentException(__METHOD__ . ' argument must be a valid PHP resource'); + } + + if ($this->stream) { + $this->detach(); + } + + $this->stream = $stream; + } + + /** + * {@inheritdoc} + */ + public function detach() + { + $oldResource = $this->stream; + $this->stream = null; + $this->meta = null; + $this->readable = null; + $this->writable = null; + $this->seekable = null; + $this->size = null; + $this->isPipe = null; + + $this->cache = null; + $this->finished = false; + + return $oldResource; + } + + /** + * {@inheritdoc} + */ + public function __toString(): string + { + if (!$this->stream) { + return ''; + } + if ($this->cache && $this->finished) { + $this->cache->rewind(); + return $this->cache->getContents(); + } + if ($this->isSeekable()) { + $this->rewind(); + } + return $this->getContents(); + } + + /** + * {@inheritdoc} + */ + public function close(): void + { + if ($this->stream) { + if ($this->isPipe()) { + pclose($this->stream); + } else { + fclose($this->stream); + } + } + + $this->detach(); + } + + /** + * {@inheritdoc} + */ + public function getSize(): ?int + { + if ($this->stream && !$this->size) { + $stats = fstat($this->stream); + + if ($stats) { + $this->size = !$this->isPipe() ? $stats['size'] : null; + } + } + + return $this->size; + } + + /** + * {@inheritdoc} + */ + public function tell(): int + { + $position = false; + + if ($this->stream) { + $position = ftell($this->stream); + } + + if ($position === false || $this->isPipe()) { + throw new RuntimeException('Could not get the position of the pointer in stream.'); + } + + return $position; + } + + /** + * {@inheritdoc} + */ + public function eof(): bool + { + return !$this->stream || feof($this->stream); + } + + /** + * {@inheritdoc} + */ + public function isReadable(): bool + { + if ($this->readable !== null) { + return $this->readable; + } + + $this->readable = false; + + if ($this->stream) { + $mode = $this->getMetadata('mode'); + + if (is_string($mode) && (strstr($mode, 'r') !== false || strstr($mode, '+') !== false)) { + $this->readable = true; + } + } + + return $this->readable; + } + + /** + * {@inheritdoc} + */ + public function isWritable(): bool + { + if ($this->writable === null) { + $this->writable = false; + + if ($this->stream) { + $mode = $this->getMetadata('mode'); + + if (is_string($mode) && (strstr($mode, 'w') !== false || strstr($mode, '+') !== false)) { + $this->writable = true; + } + } + } + + return $this->writable; + } + + /** + * {@inheritdoc} + */ + public function isSeekable(): bool + { + if ($this->seekable === null) { + $this->seekable = false; + + if ($this->stream) { + $this->seekable = !$this->isPipe() && $this->getMetadata('seekable'); + } + } + + return $this->seekable; + } + + /** + * {@inheritdoc} + */ + public function seek($offset, $whence = SEEK_SET): void + { + if (!$this->isSeekable() || $this->stream && fseek($this->stream, $offset, $whence) === -1) { + throw new RuntimeException('Could not seek in stream.'); + } + } + + /** + * {@inheritdoc} + */ + public function rewind(): void + { + if (!$this->isSeekable() || $this->stream && rewind($this->stream) === false) { + throw new RuntimeException('Could not rewind stream.'); + } + } + + /** + * {@inheritdoc} + */ + public function read($length): string + { + $data = false; + + if ($this->isReadable() && $this->stream && $length >= 0) { + $data = fread($this->stream, $length); + } + + if (is_string($data)) { + if ($this->cache) { + $this->cache->write($data); + } + if ($this->eof()) { + $this->finished = true; + } + return $data; + } + + throw new RuntimeException('Could not read from stream.'); + } + + /** + * {@inheritdoc} + * @return int + */ + public function write($string) + { + $written = false; + + if ($this->isWritable() && $this->stream) { + $written = fwrite($this->stream, $string); + } + + if ($written !== false) { + $this->size = null; + return $written; + } + + throw new RuntimeException('Could not write to stream.'); + } + + /** + * {@inheritdoc} + */ + public function getContents(): string + { + if ($this->cache && $this->finished) { + $this->cache->rewind(); + return $this->cache->getContents(); + } + + $contents = false; + + if ($this->stream) { + $contents = stream_get_contents($this->stream); + } + + if (is_string($contents)) { + if ($this->cache) { + $this->cache->write($contents); + } + if ($this->eof()) { + $this->finished = true; + } + return $contents; + } + + throw new RuntimeException('Could not get contents of stream.'); + } + + /** + * Returns whether or not the stream is a pipe. + * + * @internal This method is not part of the PSR-7 standard. + * + * @return bool + */ + public function isPipe(): bool + { + if ($this->isPipe === null) { + $this->isPipe = false; + + if ($this->stream) { + $stats = fstat($this->stream); + + if (is_array($stats)) { + $this->isPipe = ($stats['mode'] & self::FSTAT_MODE_S_IFIFO) !== 0; + } + } + } + + return $this->isPipe; + } +} diff --git a/Sources/API/vendor/slim/psr7/src/UploadedFile.php b/Sources/API/vendor/slim/psr7/src/UploadedFile.php new file mode 100644 index 0000000..b0c4df5 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/UploadedFile.php @@ -0,0 +1,279 @@ +getMetadata('uri'); + if (!is_string($file)) { + throw new InvalidArgumentException('No URI associated with the stream.'); + } + $this->file = $file; + $this->stream = $fileNameOrStream; + } elseif (is_string($fileNameOrStream)) { + $this->file = $fileNameOrStream; + } else { + throw new InvalidArgumentException( + 'Please provide a string (full path to the uploaded file) or an instance of StreamInterface.' + ); + } + $this->name = $name; + $this->type = $type; + $this->size = $size; + $this->error = $error; + $this->sapi = $sapi; + } + + /** + * {@inheritdoc} + * @return StreamInterface + */ + public function getStream() + { + if ($this->moved) { + throw new RuntimeException(sprintf('Uploaded file %s has already been moved', $this->name)); + } + + if (!$this->stream) { + $this->stream = (new StreamFactory())->createStreamFromFile($this->file); + } + + return $this->stream; + } + + /** + * {@inheritdoc} + */ + public function moveTo($targetPath): void + { + if ($this->moved) { + throw new RuntimeException('Uploaded file already moved'); + } + + $targetIsStream = strpos($targetPath, '://') > 0; + if (!$targetIsStream && !is_writable(dirname($targetPath))) { + throw new InvalidArgumentException('Upload target path is not writable'); + } + + if ($targetIsStream) { + if (!copy($this->file, $targetPath)) { + throw new RuntimeException(sprintf('Error moving uploaded file %s to %s', $this->name, $targetPath)); + } + + if (!unlink($this->file)) { + throw new RuntimeException(sprintf('Error removing uploaded file %s', $this->name)); + } + } elseif ($this->sapi) { + if (!is_uploaded_file($this->file)) { + throw new RuntimeException(sprintf('%s is not a valid uploaded file', $this->file)); + } + + if (!move_uploaded_file($this->file, $targetPath)) { + throw new RuntimeException(sprintf('Error moving uploaded file %s to %s', $this->name, $targetPath)); + } + } else { + if (!rename($this->file, $targetPath)) { + throw new RuntimeException(sprintf('Error moving uploaded file %s to %s', $this->name, $targetPath)); + } + } + + $this->moved = true; + } + + /** + * {@inheritdoc} + */ + public function getError(): int + { + return $this->error; + } + + /** + * {@inheritdoc} + */ + public function getClientFilename(): ?string + { + return $this->name; + } + + /** + * {@inheritdoc} + */ + public function getClientMediaType(): ?string + { + return $this->type; + } + + /** + * {@inheritdoc} + */ + public function getSize(): ?int + { + return $this->size; + } + + /** + * Returns the client-provided full path to the file + * + * @internal This method is not part of the PSR-7 standard + * + * @return string + */ + public function getFilePath(): string + { + return $this->file; + } + + /** + * Create a normalized tree of UploadedFile instances from the Environment. + * + * @internal This method is not part of the PSR-7 standard. + * + * @param array $globals The global server variables. + * + * @return array A normalized tree of UploadedFile instances or null if none are provided. + */ + public static function createFromGlobals(array $globals): array + { + if (isset($globals['slim.files']) && is_array($globals['slim.files'])) { + return $globals['slim.files']; + } + + if (!empty($_FILES)) { + return self::parseUploadedFiles($_FILES); + } + + return []; + } + + /** + * Parse a non-normalized, i.e. $_FILES superglobal, tree of uploaded file data. + * + * @internal This method is not part of the PSR-7 standard. + * + * @param array $uploadedFiles The non-normalized tree of uploaded file data. + * + * @return array A normalized tree of UploadedFile instances. + */ + private static function parseUploadedFiles(array $uploadedFiles): array + { + $parsed = []; + foreach ($uploadedFiles as $field => $uploadedFile) { + if (!isset($uploadedFile['error'])) { + if (is_array($uploadedFile)) { + $parsed[$field] = self::parseUploadedFiles($uploadedFile); + } + continue; + } + + $parsed[$field] = []; + if (!is_array($uploadedFile['error'])) { + $parsed[$field] = new static( + $uploadedFile['tmp_name'], + $uploadedFile['name'] ?? null, + $uploadedFile['type'] ?? null, + $uploadedFile['size'] ?? null, + $uploadedFile['error'], + true + ); + } else { + $subArray = []; + foreach ($uploadedFile['error'] as $fileIdx => $error) { + // Normalize sub array and re-parse to move the input's key name up a level + $subArray[$fileIdx]['name'] = $uploadedFile['name'][$fileIdx]; + $subArray[$fileIdx]['type'] = $uploadedFile['type'][$fileIdx]; + $subArray[$fileIdx]['tmp_name'] = $uploadedFile['tmp_name'][$fileIdx]; + $subArray[$fileIdx]['error'] = $uploadedFile['error'][$fileIdx]; + $subArray[$fileIdx]['size'] = $uploadedFile['size'][$fileIdx]; + + $parsed[$field] = self::parseUploadedFiles($subArray); + } + } + } + + return $parsed; + } +} diff --git a/Sources/API/vendor/slim/psr7/src/Uri.php b/Sources/API/vendor/slim/psr7/src/Uri.php new file mode 100644 index 0000000..b43aa54 --- /dev/null +++ b/Sources/API/vendor/slim/psr7/src/Uri.php @@ -0,0 +1,494 @@ + null, + 'http' => 80, + 'https' => 443 + ]; + + /** + * Uri scheme (without "://" suffix) + */ + protected string $scheme = ''; + + protected string $user = ''; + + protected string $password = ''; + + protected string $host = ''; + + protected ?int $port; + + protected string $path = ''; + + /** + * Uri query string (without "?" prefix) + */ + protected string $query = ''; + + /** + * Uri fragment string (without "#" prefix) + */ + protected string $fragment = ''; + + /** + * @param string $scheme Uri scheme. + * @param string $host Uri host. + * @param int|null $port Uri port number. + * @param string $path Uri path. + * @param string $query Uri query string. + * @param string $fragment Uri fragment. + * @param string $user Uri user. + * @param string $password Uri password. + */ + public function __construct( + string $scheme, + string $host, + ?int $port = null, + string $path = '/', + string $query = '', + string $fragment = '', + string $user = '', + string $password = '' + ) { + $this->scheme = $this->filterScheme($scheme); + $this->host = $this->filterHost($host); + $this->port = $this->filterPort($port); + $this->path = $this->filterPath($path); + $this->query = $this->filterQuery($query); + $this->fragment = $this->filterFragment($fragment); + $this->user = $this->filterUserInfo($user); + $this->password = $this->filterUserInfo($password); + } + + /** + * {@inheritdoc} + */ + public function getScheme(): string + { + return $this->scheme; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withScheme($scheme) + { + $scheme = $this->filterScheme($scheme); + $clone = clone $this; + $clone->scheme = $scheme; + + return $clone; + } + + /** + * Filter Uri scheme. + * + * @param mixed $scheme Raw Uri scheme. + * + * @return string + * + * @throws InvalidArgumentException If the Uri scheme is not a string. + * @throws InvalidArgumentException If Uri scheme is not exists in SUPPORTED_SCHEMES + */ + protected function filterScheme($scheme): string + { + if (!is_string($scheme)) { + throw new InvalidArgumentException('Uri scheme must be a string.'); + } + + $scheme = str_replace('://', '', strtolower($scheme)); + if (!key_exists($scheme, static::SUPPORTED_SCHEMES)) { + throw new InvalidArgumentException( + 'Uri scheme must be one of: "' . implode('", "', array_keys(static::SUPPORTED_SCHEMES)) . '"' + ); + } + + return $scheme; + } + + /** + * {@inheritdoc} + */ + public function getAuthority(): string + { + $userInfo = $this->getUserInfo(); + $host = $this->getHost(); + $port = $this->getPort(); + + return ($userInfo !== '' ? $userInfo . '@' : '') . $host . ($port !== null ? ':' . $port : ''); + } + + /** + * {@inheritdoc} + */ + public function getUserInfo(): string + { + $info = $this->user; + + if ($this->password !== '') { + $info .= ':' . $this->password; + } + + return $info; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withUserInfo($user, $password = null) + { + $clone = clone $this; + $clone->user = $this->filterUserInfo($user); + + if ($clone->user !== '') { + $clone->password = $this->filterUserInfo($password); + } else { + $clone->password = ''; + } + + return $clone; + } + + /** + * Filters the user info string. + * + * Returns the percent-encoded query string. + * + * @param string|null $info The raw uri query string. + * + * @return string + */ + protected function filterUserInfo(?string $info = null): string + { + if (!is_string($info)) { + return ''; + } + + $match = preg_replace_callback( + '/(?:[^a-zA-Z0-9_\-\.~!\$&\'\(\)\*\+,;=]+|%(?![A-Fa-f0-9]{2}))/u', + function ($match) { + return rawurlencode($match[0]); + }, + $info + ); + + return is_string($match) ? $match : ''; + } + + /** + * {@inheritdoc} + */ + public function getHost(): string + { + return $this->host; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withHost($host) + { + $clone = clone $this; + $clone->host = $this->filterHost($host); + + return $clone; + } + + /** + * Filter Uri host. + * + * If the supplied host is an IPv6 address, then it is converted to a reference + * as per RFC 2373. + * + * @param mixed $host The host to filter. + * + * @return string + * + * @throws InvalidArgumentException for invalid host names. + */ + protected function filterHost($host): string + { + if (is_object($host) && method_exists($host, '__toString')) { + $host = (string) $host; + } + + if (!is_string($host)) { + throw new InvalidArgumentException('Uri host must be a string'); + } + + if (filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { + $host = '[' . $host . ']'; + } + + return strtolower($host); + } + + /** + * {@inheritdoc} + */ + public function getPort(): ?int + { + return $this->port && !$this->hasStandardPort() ? $this->port : null; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withPort($port) + { + $port = $this->filterPort($port); + $clone = clone $this; + $clone->port = $port; + + return $clone; + } + + /** + * Does this Uri use a standard port? + * + * @return bool + */ + protected function hasStandardPort(): bool + { + return static::SUPPORTED_SCHEMES[$this->scheme] === $this->port; + } + + /** + * Filter Uri port. + * + * @param int|null $port The Uri port number. + * + * @return int|null + * + * @throws InvalidArgumentException If the port is invalid. + */ + protected function filterPort($port): ?int + { + if (is_null($port) || (is_integer($port) && ($port >= 1 && $port <= 65535))) { + return $port; + } + + throw new InvalidArgumentException('Uri port must be null or an integer between 1 and 65535 (inclusive)'); + } + + /** + * {@inheritdoc} + */ + public function getPath(): string + { + return $this->path; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withPath($path) + { + if (!is_string($path)) { + throw new InvalidArgumentException('Uri path must be a string'); + } + + $clone = clone $this; + $clone->path = $this->filterPath($path); + + return $clone; + } + + /** + * Filter Uri path. + * + * This method percent-encodes all reserved characters in the provided path string. + * This method will NOT double-encode characters that are already percent-encoded. + * + * @param string $path The raw uri path. + * + * @return string The RFC 3986 percent-encoded uri path. + * + * @link http://www.faqs.org/rfcs/rfc3986.html + */ + protected function filterPath($path): string + { + $match = preg_replace_callback( + '/(?:[^a-zA-Z0-9_\-\.~:@&=\+\$,\/;%]+|%(?![A-Fa-f0-9]{2}))/', + function ($match) { + return rawurlencode($match[0]); + }, + $path + ); + + return is_string($match) ? $match : ''; + } + + /** + * {@inheritdoc} + */ + public function getQuery(): string + { + return $this->query; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withQuery($query) + { + $query = ltrim($this->filterQuery($query), '?'); + $clone = clone $this; + $clone->query = $query; + + return $clone; + } + + /** + * Filters the query string of a URI. + * + * Returns the percent-encoded query string. + * + * @param mixed $query The raw uri query string. + * + * @return string + */ + protected function filterQuery($query): string + { + if (is_object($query) && method_exists($query, '__toString')) { + $query = (string) $query; + } + + if (!is_string($query)) { + throw new InvalidArgumentException('Uri query must be a string.'); + } + + $match = preg_replace_callback( + '/(?:[^a-zA-Z0-9_\-\.~!\$&\'\(\)\*\+,;=%:@\/\?]+|%(?![A-Fa-f0-9]{2}))/', + function ($match) { + return rawurlencode($match[0]); + }, + $query + ); + + return is_string($match) ? $match : ''; + } + + /** + * {@inheritdoc} + */ + public function getFragment(): string + { + return $this->fragment; + } + + /** + * {@inheritdoc} + * @return static + */ + public function withFragment($fragment) + { + $fragment = $this->filterFragment($fragment); + $clone = clone $this; + $clone->fragment = $fragment; + + return $clone; + } + + /** + * Filters fragment of a URI. + * + * Returns the percent-encoded fragment. + * + * @param mixed $fragment The raw uri query string. + * + * @return string + */ + protected function filterFragment($fragment): string + { + if (is_object($fragment) && method_exists($fragment, '__toString')) { + $fragment = (string) $fragment; + } + + if (!is_string($fragment)) { + throw new InvalidArgumentException('Uri fragment must be a string.'); + } + + $fragment = ltrim($fragment, '#'); + + $match = preg_replace_callback( + '/(?:[^a-zA-Z0-9_\-\.~!\$&\'\(\)\*\+,;=%:@\/\?]+|%(?![A-Fa-f0-9]{2}))/', + function ($match) { + return rawurlencode($match[0]); + }, + $fragment + ); + + return is_string($match) ? $match : ''; + } + + /** + * {@inheritdoc} + */ + public function __toString(): string + { + $scheme = $this->getScheme(); + $authority = $this->getAuthority(); + $path = $this->getPath(); + $query = $this->getQuery(); + $fragment = $this->getFragment(); + + if ($path !== '') { + if ($path[0] !== '/') { + if ($authority !== '') { + // If the path is rootless and an authority is present, the path MUST be prefixed by "/". + $path = '/' . $path; + } + } elseif (isset($path[1]) && $path[1] === '/') { + if ($authority === '') { + // If the path is starting with more than one "/" and no authority is present, + // the starting slashes MUST be reduced to one. + $path = '/' . ltrim($path, '/'); + } + } + } + + return ($scheme !== '' ? $scheme . ':' : '') + . ($authority !== '' ? '//' . $authority : '') + . $path + . ($query !== '' ? '?' . $query : '') + . ($fragment !== '' ? '#' . $fragment : ''); + } +} diff --git a/Sources/API/vendor/slim/slim/CHANGELOG.md b/Sources/API/vendor/slim/slim/CHANGELOG.md new file mode 100644 index 0000000..4953c3e --- /dev/null +++ b/Sources/API/vendor/slim/slim/CHANGELOG.md @@ -0,0 +1,208 @@ +# Changelog + +# 4.10.0 - 2022-03-14 +- [3120: Add a new PSR-17 factory to Psr17FactoryProvider](https://github.com/slimphp/Slim/pull/3120) thanks to @solventt +- [3123: Replace deprecated setMethods() in tests](https://github.com/slimphp/Slim/pull/3123) thanks to @solventt +- [3126: Update guzzlehttp/psr7 requirement from ^2.0 to ^2.1](https://github.com/slimphp/Slim/pull/3126) thanks to @dependabot[bot] +- [3127: PHPStan v1.0](https://github.com/slimphp/Slim/pull/3127) thanks to @t0mmy742 +- [3128: Update phpstan/phpstan requirement from ^1.0 to ^1.2](https://github.com/slimphp/Slim/pull/3128) thanks to @dependabot[bot] +- [3129: Deprecate PHP 7.3](https://github.com/slimphp/Slim/pull/3129) thanks to @l0gicgate +- [3130: Removed double defined PHP 7.4](https://github.com/slimphp/Slim/pull/3130) thanks to @flangofas +- [3132: Add new `RequestResponseNamedArgs` route strategy](https://github.com/slimphp/Slim/pull/3132) thanks to @adoy +- [3133: Improve typehinting for `RouteParserInterface`](https://github.com/slimphp/Slim/pull/3133) thanks to @jerowork +- [3135: Update phpstan/phpstan requirement from ^1.2 to ^1.3](https://github.com/slimphp/Slim/pull/3135) thanks to @dependabot[bot] +- [3137: Update phpspec/prophecy requirement from ^1.14 to ^1.15](https://github.com/slimphp/Slim/pull/3137) thanks to @dependabot[bot] +- [3138: Update license year](https://github.com/slimphp/Slim/pull/3138) thanks to @Awilum +- [3139: Fixed #1730 (reintroduced in 4.x)](https://github.com/slimphp/Slim/pull/3139) thanks to @adoy +- [3145: Update phpstan/phpstan requirement from ^1.3 to ^1.4](https://github.com/slimphp/Slim/pull/3145) thanks to @dependabot[bot] +- [3146: Inherit HttpException from RuntimeException](https://github.com/slimphp/Slim/pull/3146) thanks to @nbayramberdiyev +- [3148: Upgrade to HTML5](https://github.com/slimphp/Slim/pull/3148) thanks to @nbayramberdiyev +- [3172: Update nyholm/psr7 requirement from ^1.4 to ^1.5](https://github.com/slimphp/Slim/pull/3172) thanks to @dependabot[bot] + +# 4.9.0 - 2021-10-05 +- [3058: Implement exception class for Gone Http error](https://github.com/slimphp/Slim/pull/3058) thanks to @TheKernelPanic +- [3086: Update slim/psr7 requirement from ^1.3 to ^1.4](https://github.com/slimphp/Slim/pull/3086) thanks to @dependabot[bot] +- [3087: Update nyholm/psr7-server requirement from ^1.0.1 to ^1.0.2](https://github.com/slimphp/Slim/pull/3087) thanks to @dependabot[bot] +- [3093: Update phpstan/phpstan requirement from ^0.12.85 to ^0.12.90](https://github.com/slimphp/Slim/pull/3093) thanks to @dependabot[bot] +- [3099: Allow updated psr log](https://github.com/slimphp/Slim/pull/3099) thanks to @t0mmy742 +- [3104: Drop php7.2](https://github.com/slimphp/Slim/pull/3104) thanks to @t0mmy742 +- [3106: Use PSR-17 factory from Guzzle/psr7 2.0](https://github.com/slimphp/Slim/pull/3106) thanks to @t0mmy742 +- [3108: Update README file](https://github.com/slimphp/Slim/pull/3108) thanks to @t0mmy742 +- [3112: Update laminas/laminas-diactoros requirement from ^2.6 to ^2.8](https://github.com/slimphp/Slim/pull/3112) thanks to @dependabot[bot] +- [3114: Update slim/psr7 requirement from ^1.4 to ^1.5](https://github.com/slimphp/Slim/pull/3114) thanks to @dependabot[bot] +- [3115: Update phpstan/phpstan requirement from ^0.12.96 to ^0.12.99](https://github.com/slimphp/Slim/pull/3115) thanks to @dependabot[bot] +- [3116: Remove Zend Diactoros references](https://github.com/slimphp/Slim/pull/3116) thanks to @l0gicgate + +# 4.8.0 - 2021-05-19 +- [3034: Fix phpunit dependency version](https://github.com/slimphp/Slim/pull/3034) thanks to @l0gicgate +- [3037: Replace Travis by GitHub Actions](https://github.com/slimphp/Slim/pull/3037) thanks to @t0mmy742 +- [3043: Cover App creation from AppFactory with empty Container](https://github.com/slimphp/Slim/pull/3043) thanks to @t0mmy742 +- [3045: Update phpstan/phpstan requirement from ^0.12.58 to ^0.12.64](https://github.com/slimphp/Slim/pull/3045) thanks to @dependabot-preview[bot] +- [3047: documentation: min php 7.2 required](https://github.com/slimphp/Slim/pull/3047) thanks to @Rotzbua +- [3054: Update phpstan/phpstan requirement from ^0.12.64 to ^0.12.70](https://github.com/slimphp/Slim/pull/3054) thanks to @dependabot-preview[bot] +- [3056: Fix docblock in ErrorMiddleware](https://github.com/slimphp/Slim/pull/3056) thanks to @piotr-cz +- [3060: Update phpstan/phpstan requirement from ^0.12.70 to ^0.12.80](https://github.com/slimphp/Slim/pull/3060) thanks to @dependabot-preview[bot] +- [3061: Update nyholm/psr7 requirement from ^1.3 to ^1.4](https://github.com/slimphp/Slim/pull/3061) thanks to @dependabot-preview[bot] +- [3063: Allow ^1.0 || ^2.0 in psr/container](https://github.com/slimphp/Slim/pull/3063) thanks to @Ayesh +- [3069: Classname/Method Callable Arrays](https://github.com/slimphp/Slim/pull/3069) thanks to @ddrv +- [3078: Update squizlabs/php_codesniffer requirement from ^3.5 to ^3.6](https://github.com/slimphp/Slim/pull/3078) thanks to @dependabot[bot] +- [3079: Update phpspec/prophecy requirement from ^1.12 to ^1.13](https://github.com/slimphp/Slim/pull/3079) thanks to @dependabot[bot] +- [3080: Update guzzlehttp/psr7 requirement from ^1.7 to ^1.8](https://github.com/slimphp/Slim/pull/3080) thanks to @dependabot[bot] +- [3082: Update phpstan/phpstan requirement from ^0.12.80 to ^0.12.85](https://github.com/slimphp/Slim/pull/3082) thanks to @dependabot[bot] + +# 4.7.0 - 2020-11-30 + +### Fixed +- [3027: Fix: FastRoute dispatcher and data generator should match](https://github.com/slimphp/Slim/pull/3027) thanks to @edudobay + +### Added +- [3015: PHP 8 support](https://github.com/slimphp/Slim/pull/3015) thanks to @edudobay + +### Optimizations +- [3024: Randomize tests](https://github.com/slimphp/Slim/pull/3024) thanks to @pawel-slowik + +## 4.6.0 - 2020-11-15 + +### Fixed +- [2942: Fix PHPdoc for error handlers in ErrorMiddleware ](https://github.com/slimphp/Slim/pull/2942) thanks to @TiMESPLiNTER +- [2944: Remove unused function in ErrorHandler](https://github.com/slimphp/Slim/pull/2944) thanks to @l0gicgate +- [2960: Fix phpstan 0.12 errors](https://github.com/slimphp/Slim/pull/2960) thanks to @adriansuter +- [2982: Removing cloning statements in tests](https://github.com/slimphp/Slim/pull/2982) thanks to @l0gicgate +- [3017: Fix request creator factory test](https://github.com/slimphp/Slim/pull/3017) thanks to @pawel-slowik +- [3022: Ensure RouteParser Always Present After Routing](https://github.com/slimphp/Slim/pull/3022) thanks to @l0gicgate + +### Added +- [2949: Add the support in composer.json](https://github.com/slimphp/Slim/pull/2949) thanks to @ddrv +- [2958: Strict empty string content type checking in BodyParsingMiddleware::getMediaType](https://github.com/slimphp/Slim/pull/2958) thanks to @Ayesh +- [2997: Add hints to methods](https://github.com/slimphp/Slim/pull/2997) thanks to @evgsavosin - [3000: Fix route controller test](https://github.com/slimphp/Slim/pull/3000) thanks to @pawel-slowik +- [3001: Add missing `$strategy` parameter in a Route test](https://github.com/slimphp/Slim/pull/3001) thanks to @pawel-slowik + +### Optimizations +- [2951: Minor optimizations in if() blocks](https://github.com/slimphp/Slim/pull/2951) thanks to @Ayesh +- [2959: Micro optimization: Declare closures in BodyParsingMiddleware as static](https://github.com/slimphp/Slim/pull/2959) thanks to @Ayesh +- [2978: Split the routing results to its own function.](https://github.com/slimphp/Slim/pull/2978) thanks to @dlundgren + +### Dependencies Updated +- [2953: Update nyholm/psr7-server requirement from ^0.4.1](https://github.com/slimphp/Slim/pull/2953) thanks to @dependabot-preview[bot] +- [2954: Update laminas/laminas-diactoros requirement from ^2.1 to ^2.3](https://github.com/slimphp/Slim/pull/2954) thanks to @dependabot-preview[bot] +- [2955: Update guzzlehttp/psr7 requirement from ^1.5 to ^1.6](https://github.com/slimphp/Slim/pull/2955) thanks to @dependabot-preview[bot] +- [2956: Update slim/psr7 requirement from ^1.0 to ^1.1](https://github.com/slimphp/Slim/pull/2956) thanks to @dependabot-preview[bot] +- [2957: Update nyholm/psr7 requirement from ^1.1 to ^1.2](https://github.com/slimphp/Slim/pull/2957) thanks to @dependabot-preview[bot] +- [2963: Update phpstan/phpstan requirement from ^0.12.23 to ^0.12.25](https://github.com/slimphp/Slim/pull/2963) thanks to @dependabot-preview[bot] +- [2965: Update adriansuter/php-autoload-override requirement from ^1.0 to ^1.1](https://github.com/slimphp/Slim/pull/2965) thanks to @dependabot-preview[bot] +- [2967: Update nyholm/psr7 requirement from ^1.2 to ^1.3](https://github.com/slimphp/Slim/pull/2967) thanks to @dependabot-preview[bot] +- [2969: Update nyholm/psr7-server requirement from ^0.4.1 to ^1.0.0](https://github.com/slimphp/Slim/pull/2969) thanks to @dependabot-preview[bot] +- [2970: Update phpstan/phpstan requirement from ^0.12.25 to ^0.12.26](https://github.com/slimphp/Slim/pull/2970) thanks to @dependabot-preview[bot] +- [2971: Update phpstan/phpstan requirement from ^0.12.26 to ^0.12.27](https://github.com/slimphp/Slim/pull/2971) thanks to @dependabot-preview[bot] +- [2972: Update phpstan/phpstan requirement from ^0.12.27 to ^0.12.28](https://github.com/slimphp/Slim/pull/2972) thanks to @dependabot-preview[bot] +- [2973: Update phpstan/phpstan requirement from ^0.12.28 to ^0.12.29](https://github.com/slimphp/Slim/pull/2973) thanks to @dependabot-preview[bot] +- [2975: Update phpstan/phpstan requirement from ^0.12.29 to ^0.12.30](https://github.com/slimphp/Slim/pull/2975) thanks to @dependabot-preview[bot] +- [2976: Update phpstan/phpstan requirement from ^0.12.30 to ^0.12.31](https://github.com/slimphp/Slim/pull/2976) thanks to @dependabot-preview[bot] +- [2980: Update phpstan/phpstan requirement from ^0.12.31 to ^0.12.32](https://github.com/slimphp/Slim/pull/2980) thanks to @dependabot-preview[bot] +- [2981: Update phpspec/prophecy requirement from ^1.10 to ^1.11](https://github.com/slimphp/Slim/pull/2981) thanks to @dependabot-preview[bot] +- [2986: Update phpstan/phpstan requirement from ^0.12.32 to ^0.12.33](https://github.com/slimphp/Slim/pull/2986) thanks to @dependabot-preview[bot] +- [2990: Update phpstan/phpstan requirement from ^0.12.33 to ^0.12.34](https://github.com/slimphp/Slim/pull/2990) thanks to @dependabot-preview[bot] +- [2991: Update phpstan/phpstan requirement from ^0.12.34 to ^0.12.35](https://github.com/slimphp/Slim/pull/2991) thanks to @dependabot-preview[bot] +- [2993: Update phpstan/phpstan requirement from ^0.12.35 to ^0.12.36](https://github.com/slimphp/Slim/pull/2993) thanks to @dependabot-preview[bot] +- [2995: Update phpstan/phpstan requirement from ^0.12.36 to ^0.12.37](https://github.com/slimphp/Slim/pull/2995) thanks to @dependabot-preview[bot] +- [3010: Update guzzlehttp/psr7 requirement from ^1.6 to ^1.7](https://github.com/slimphp/Slim/pull/3010) thanks to @dependabot-preview[bot] +- [3011: Update phpspec/prophecy requirement from ^1.11 to ^1.12](https://github.com/slimphp/Slim/pull/3011) thanks to @dependabot-preview[bot] +- [3012: Update slim/http requirement from ^1.0 to ^1.1](https://github.com/slimphp/Slim/pull/3012) thanks to @dependabot-preview[bot] +- [3013: Update slim/psr7 requirement from ^1.1 to ^1.2](https://github.com/slimphp/Slim/pull/3013) thanks to @dependabot-preview[bot] +- [3014: Update laminas/laminas-diactoros requirement from ^2.3 to ^2.4](https://github.com/slimphp/Slim/pull/3014) thanks to @dependabot-preview[bot] +- [3018: Update phpstan/phpstan requirement from ^0.12.37 to ^0.12.54](https://github.com/slimphp/Slim/pull/3018) thanks to @dependabot-preview[bot] + +## 4.5.0 - 2020-04-14 + +### Added +- [2928](https://github.com/slimphp/Slim/pull/2928) Test against PHP 7.4 +- [2937](https://github.com/slimphp/Slim/pull/2937) Add support for PSR-3 + +### Fixed +- [2916](https://github.com/slimphp/Slim/pull/2916) Rename phpcs.xml to phpcs.xml.dist +- [2917](https://github.com/slimphp/Slim/pull/2917) Update .editorconfig +- [2925](https://github.com/slimphp/Slim/pull/2925) ResponseEmitter: Don't remove Content-Type and Content-Length when body is empt +- [2932](https://github.com/slimphp/Slim/pull/2932) Update the Tidelift enterprise language +- [2938](https://github.com/slimphp/Slim/pull/2938) Modify usage of deprecated expectExceptionMessageRegExp() method + +## 4.4.0 - 2020-01-04 + +### Added +- [2862](https://github.com/slimphp/Slim/pull/2862) Optionally handle subclasses of exceptions in custom error handler +- [2869](https://github.com/slimphp/Slim/pull/2869) php-di/php-di added in composer suggestion +- [2874](https://github.com/slimphp/Slim/pull/2874) Add `null` to param type-hints +- [2889](https://github.com/slimphp/Slim/pull/2889) Make `RouteContext` attributes customizable and change default to use private names +- [2907](https://github.com/slimphp/Slim/pull/2907) Migrate to PSR-12 convention +- [2910](https://github.com/slimphp/Slim/pull/2910) Migrate Zend to Laminas +- [2912](https://github.com/slimphp/Slim/pull/2912) Add Laminas PSR17 Factory +- [2913](https://github.com/slimphp/Slim/pull/2913) Update php-autoload-override version +- [2914](https://github.com/slimphp/Slim/pull/2914) Added ability to add handled exceptions as an array + +### Fixed +- [2864](https://github.com/slimphp/Slim/pull/2864) Optimize error message in error handling if displayErrorDetails was not set +- [2876](https://github.com/slimphp/Slim/pull/2876) Update links from http to https +- [2877](https://github.com/slimphp/Slim/pull/2877) Fix docblock for `Slim\Routing\RouteCollector::cacheFile` +- [2878](https://github.com/slimphp/Slim/pull/2878) check body is writable only on ouput buffering append +- [2896](https://github.com/slimphp/Slim/pull/2896) Render errors uniformly +- [2902](https://github.com/slimphp/Slim/pull/2902) Fix prophecies +- [2908](https://github.com/slimphp/Slim/pull/2908) Use autoload-dev for `Slim\Tests` namespace + +### Removed +- [2871](https://github.com/slimphp/Slim/pull/2871) Remove explicit type-hint +- [2872](https://github.com/slimphp/Slim/pull/2872) Remove type-hint + +## 4.3.0 - 2019-10-05 + +### Added +- [2819](https://github.com/slimphp/Slim/pull/2819) Added description to addRoutingMiddleware() +- [2820](https://github.com/slimphp/Slim/pull/2820) Update link to homepage in composer.json +- [2828](https://github.com/slimphp/Slim/pull/2828) Allow URIs with leading multi-slashes +- [2832](https://github.com/slimphp/Slim/pull/2832) Refactor `FastRouteDispatcher` +- [2835](https://github.com/slimphp/Slim/pull/2835) Rename `pathFor` to `urlFor` in docblock +- [2846](https://github.com/slimphp/Slim/pull/2846) Correcting the branch name as per issue-2843 +- [2849](https://github.com/slimphp/Slim/pull/2849) Create class alias for FastRoute\RouteCollector +- [2855](https://github.com/slimphp/Slim/pull/2855) Add list of allowed methods to HttpMethodNotAllowedException +- [2860](https://github.com/slimphp/Slim/pull/2860) Add base path to `$request` and use `RouteContext` to read + +### Fixed +- [2839](https://github.com/slimphp/Slim/pull/2839) Fix description for handler signature in phpdocs +- [2844](https://github.com/slimphp/Slim/pull/2844) Handle base path by routeCollector instead of RouteCollectorProxy +- [2845](https://github.com/slimphp/Slim/pull/2845) Fix composer scripts +- [2851](https://github.com/slimphp/Slim/pull/2851) Fix example of 'Hello World' app +- [2854](https://github.com/slimphp/Slim/pull/2854) Fix undefined property in tests + +### Removed +- [2853](https://github.com/slimphp/Slim/pull/2853) Remove unused classes + +## 4.2.0 - 2019-08-20 + +### Added +- [2787](https://github.com/slimphp/Slim/pull/2787) Add an advanced callable resolver +- [2791](https://github.com/slimphp/Slim/pull/2791) Add `inferPrivatePropertyTypeFromConstructor` to phpstan +- [2793](https://github.com/slimphp/Slim/pull/2793) Add ability to configure application via a container in `AppFactory` +- [2798](https://github.com/slimphp/Slim/pull/2798) Add PSR-7 Agnostic Body Parsing Middleware +- [2801](https://github.com/slimphp/Slim/pull/2801) Add `setLogErrorRenderer()` method to `ErrorHandler` +- [2807](https://github.com/slimphp/Slim/pull/2807) Add check for Slim callable notation if no resolver given +- [2803](https://github.com/slimphp/Slim/pull/2803) Add ability to emit non seekable streams in `ResponseEmitter` +- [2817](https://github.com/slimphp/Slim/pull/2817) Add the ability to pass in a custom `MiddlewareDispatcherInterface` to the `App` + +### Fixed +- [2789](https://github.com/slimphp/Slim/pull/2789) Fix Cookie header detection in `ResponseEmitter` +- [2796](https://github.com/slimphp/Slim/pull/2796) Fix http message format +- [2800](https://github.com/slimphp/Slim/pull/2800) Fix null comparisons more clear in `ErrorHandler` +- [2802](https://github.com/slimphp/Slim/pull/2802) Fix incorrect search of a header in stack +- [2806](https://github.com/slimphp/Slim/pull/2806) Simplify `Route::prepare()` method argument preparation +- [2809](https://github.com/slimphp/Slim/pull/2809) Eliminate a duplicate code via HOF in `MiddlewareDispatcher` +- [2816](https://github.com/slimphp/Slim/pull/2816) Fix RouteCollectorProxy::redirect() bug + +### Removed +- [2811](https://github.com/slimphp/Slim/pull/2811) Remove `DeferredCallable` + +## 4.1.0 - 2019-08-06 + +### Added +- [#2779](https://github.com/slimphp/Slim/pull/2774) Add support for Slim callables `Class:method` resolution & Container Closure auto-binding in `MiddlewareDispatcher` +- [#2774](https://github.com/slimphp/Slim/pull/2774) Add possibility for custom `RequestHandler` invocation strategies + +### Fixed +- [#2776](https://github.com/slimphp/Slim/pull/2774) Fix group middleware on multiple nested groups diff --git a/Sources/API/vendor/slim/slim/LICENSE.md b/Sources/API/vendor/slim/slim/LICENSE.md new file mode 100644 index 0000000..d6fd559 --- /dev/null +++ b/Sources/API/vendor/slim/slim/LICENSE.md @@ -0,0 +1,19 @@ +Copyright (c) 2011-2022 Josh Lockhart + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Sources/API/vendor/slim/slim/MAINTAINERS.md b/Sources/API/vendor/slim/slim/MAINTAINERS.md new file mode 100644 index 0000000..2b8ad04 --- /dev/null +++ b/Sources/API/vendor/slim/slim/MAINTAINERS.md @@ -0,0 +1,17 @@ +# Maintainers + +There aren't many rules for maintainers of Slim to remember; what we have is listed here. + +## We don't merge our own PRs + +Our code is better if more than one set of eyes looks at it. Therefore we do not merge our own pull requests unless there is an exceptional circumstance. This helps to spot errors in the patch and also enables us to share information about the project around the maintainer team. + +## PRs tagged `WIP` are not ready to be merged + +Sometimes it's helpful to collaborate on a patch before it's ready to be merged. We use the text `WIP` (for _Work in Progress_) in the title to mark these PRs. + +If a PR has `WIP` in its title, then it is not to be merged. The person who raised the PR will remove the `WIP` text when they are ready for a full review and merge. + +## Assign a merged PR to a milestone + +By ensuring that all merged PRs are assigned to a milestone, we can easily find which PRs were in which release. diff --git a/Sources/API/vendor/slim/slim/SECURITY.md b/Sources/API/vendor/slim/slim/SECURITY.md new file mode 100644 index 0000000..a5b6df0 --- /dev/null +++ b/Sources/API/vendor/slim/slim/SECURITY.md @@ -0,0 +1,14 @@ +# Security Policy + +### Supported Versions + + +| Version | Supported | +| ------- | ------------------ | +| 3.x.x | :white_check_mark: | +| 4.x.x | :white_check_mark: | + + +### Reporting a Vulnerability + +To report a vulnerability please send an email to security@slimframework.com diff --git a/Sources/API/vendor/slim/slim/Slim/App.php b/Sources/API/vendor/slim/slim/Slim/App.php new file mode 100644 index 0000000..1374d6f --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/App.php @@ -0,0 +1,216 @@ +routeResolver = $routeResolver ?? new RouteResolver($this->routeCollector); + $routeRunner = new RouteRunner($this->routeResolver, $this->routeCollector->getRouteParser(), $this); + + if (!$middlewareDispatcher) { + $middlewareDispatcher = new MiddlewareDispatcher($routeRunner, $this->callableResolver, $container); + } else { + $middlewareDispatcher->seedMiddlewareStack($routeRunner); + } + + $this->middlewareDispatcher = $middlewareDispatcher; + } + + /** + * @return RouteResolverInterface + */ + public function getRouteResolver(): RouteResolverInterface + { + return $this->routeResolver; + } + + /** + * @return MiddlewareDispatcherInterface + */ + public function getMiddlewareDispatcher(): MiddlewareDispatcherInterface + { + return $this->middlewareDispatcher; + } + + /** + * @param MiddlewareInterface|string|callable $middleware + */ + public function add($middleware): self + { + $this->middlewareDispatcher->add($middleware); + return $this; + } + + /** + * @param MiddlewareInterface $middleware + */ + public function addMiddleware(MiddlewareInterface $middleware): self + { + $this->middlewareDispatcher->addMiddleware($middleware); + return $this; + } + + /** + * Add the Slim built-in routing middleware to the app middleware stack + * + * This method can be used to control middleware order and is not required for default routing operation. + * + * @return RoutingMiddleware + */ + public function addRoutingMiddleware(): RoutingMiddleware + { + $routingMiddleware = new RoutingMiddleware( + $this->getRouteResolver(), + $this->getRouteCollector()->getRouteParser() + ); + $this->add($routingMiddleware); + return $routingMiddleware; + } + + /** + * Add the Slim built-in error middleware to the app middleware stack + * + * @param bool $displayErrorDetails + * @param bool $logErrors + * @param bool $logErrorDetails + * @param LoggerInterface|null $logger + * + * @return ErrorMiddleware + */ + public function addErrorMiddleware( + bool $displayErrorDetails, + bool $logErrors, + bool $logErrorDetails, + ?LoggerInterface $logger = null + ): ErrorMiddleware { + $errorMiddleware = new ErrorMiddleware( + $this->getCallableResolver(), + $this->getResponseFactory(), + $displayErrorDetails, + $logErrors, + $logErrorDetails, + $logger + ); + $this->add($errorMiddleware); + return $errorMiddleware; + } + + /** + * Add the Slim body parsing middleware to the app middleware stack + * + * @param callable[] $bodyParsers + * + * @return BodyParsingMiddleware + */ + public function addBodyParsingMiddleware(array $bodyParsers = []): BodyParsingMiddleware + { + $bodyParsingMiddleware = new BodyParsingMiddleware($bodyParsers); + $this->add($bodyParsingMiddleware); + return $bodyParsingMiddleware; + } + + /** + * Run application + * + * This method traverses the application middleware stack and then sends the + * resultant Response object to the HTTP client. + * + * @param ServerRequestInterface|null $request + * @return void + */ + public function run(?ServerRequestInterface $request = null): void + { + if (!$request) { + $serverRequestCreator = ServerRequestCreatorFactory::create(); + $request = $serverRequestCreator->createServerRequestFromGlobals(); + } + + $response = $this->handle($request); + $responseEmitter = new ResponseEmitter(); + $responseEmitter->emit($response); + } + + /** + * Handle a request + * + * This method traverses the application middleware stack and then returns the + * resultant Response object. + * + * @param ServerRequestInterface $request + * @return ResponseInterface + */ + public function handle(ServerRequestInterface $request): ResponseInterface + { + $response = $this->middlewareDispatcher->handle($request); + + /** + * This is to be in compliance with RFC 2616, Section 9. + * If the incoming request method is HEAD, we need to ensure that the response body + * is empty as the request may fall back on a GET route handler due to FastRoute's + * routing logic which could potentially append content to the response body + * https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4 + */ + $method = strtoupper($request->getMethod()); + if ($method === 'HEAD') { + $emptyBody = $this->responseFactory->createResponse()->getBody(); + return $response->withBody($emptyBody); + } + + return $response; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/CallableResolver.php b/Sources/API/vendor/slim/slim/Slim/CallableResolver.php new file mode 100644 index 0000000..66f225d --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/CallableResolver.php @@ -0,0 +1,193 @@ +container = $container; + } + + /** + * {@inheritdoc} + */ + public function resolve($toResolve): callable + { + $toResolve = $this->prepareToResolve($toResolve); + if (is_callable($toResolve)) { + return $this->bindToContainer($toResolve); + } + $resolved = $toResolve; + if (is_string($toResolve)) { + $resolved = $this->resolveSlimNotation($toResolve); + $resolved[1] ??= '__invoke'; + } + $callable = $this->assertCallable($resolved, $toResolve); + return $this->bindToContainer($callable); + } + + /** + * {@inheritdoc} + */ + public function resolveRoute($toResolve): callable + { + return $this->resolveByPredicate($toResolve, [$this, 'isRoute'], 'handle'); + } + + /** + * {@inheritdoc} + */ + public function resolveMiddleware($toResolve): callable + { + return $this->resolveByPredicate($toResolve, [$this, 'isMiddleware'], 'process'); + } + + /** + * @param string|callable $toResolve + * + * @throws RuntimeException + */ + private function resolveByPredicate($toResolve, callable $predicate, string $defaultMethod): callable + { + $toResolve = $this->prepareToResolve($toResolve); + if (is_callable($toResolve)) { + return $this->bindToContainer($toResolve); + } + $resolved = $toResolve; + if ($predicate($toResolve)) { + $resolved = [$toResolve, $defaultMethod]; + } + if (is_string($toResolve)) { + [$instance, $method] = $this->resolveSlimNotation($toResolve); + if ($method === null && $predicate($instance)) { + $method = $defaultMethod; + } + $resolved = [$instance, $method ?? '__invoke']; + } + $callable = $this->assertCallable($resolved, $toResolve); + return $this->bindToContainer($callable); + } + + /** + * @param mixed $toResolve + */ + private function isRoute($toResolve): bool + { + return $toResolve instanceof RequestHandlerInterface; + } + + /** + * @param mixed $toResolve + */ + private function isMiddleware($toResolve): bool + { + return $toResolve instanceof MiddlewareInterface; + } + + /** + * @throws RuntimeException + * + * @return array{object, string|null} [Instance, Method Name] + */ + private function resolveSlimNotation(string $toResolve): array + { + preg_match(CallableResolver::$callablePattern, $toResolve, $matches); + [$class, $method] = $matches ? [$matches[1], $matches[2]] : [$toResolve, null]; + + /** @var string $class */ + /** @var string|null $method */ + if ($this->container && $this->container->has($class)) { + $instance = $this->container->get($class); + if (!is_object($instance)) { + throw new RuntimeException(sprintf('%s container entry is not an object', $class)); + } + } else { + if (!class_exists($class)) { + if ($method) { + $class .= '::' . $method . '()'; + } + throw new RuntimeException(sprintf('Callable %s does not exist', $class)); + } + $instance = new $class($this->container); + } + return [$instance, $method]; + } + + /** + * @param mixed $resolved + * @param mixed $toResolve + * + * @throws RuntimeException + */ + private function assertCallable($resolved, $toResolve): callable + { + if (!is_callable($resolved)) { + if (is_callable($toResolve) || is_object($toResolve) || is_array($toResolve)) { + $formatedToResolve = ($toResolveJson = json_encode($toResolve)) !== false ? $toResolveJson : ''; + } else { + $formatedToResolve = is_string($toResolve) ? $toResolve : ''; + } + throw new RuntimeException(sprintf('%s is not resolvable', $formatedToResolve)); + } + return $resolved; + } + + private function bindToContainer(callable $callable): callable + { + if (is_array($callable) && $callable[0] instanceof Closure) { + $callable = $callable[0]; + } + if ($this->container && $callable instanceof Closure) { + /** @var Closure $callable */ + $callable = $callable->bindTo($this->container); + } + return $callable; + } + + /** + * @param string|callable $toResolve + * @return string|callable + */ + private function prepareToResolve($toResolve) + { + if (!is_array($toResolve)) { + return $toResolve; + } + $candidate = $toResolve; + $class = array_shift($candidate); + $method = array_shift($candidate); + if (is_string($class) && is_string($method)) { + return $class . ':' . $method; + } + return $toResolve; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Error/AbstractErrorRenderer.php b/Sources/API/vendor/slim/slim/Slim/Error/AbstractErrorRenderer.php new file mode 100644 index 0000000..90b290d --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Error/AbstractErrorRenderer.php @@ -0,0 +1,46 @@ +getTitle(); + } + + return $this->defaultErrorTitle; + } + + protected function getErrorDescription(Throwable $exception): string + { + if ($exception instanceof HttpException) { + return $exception->getDescription(); + } + + return $this->defaultErrorDescription; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Error/Renderers/HtmlErrorRenderer.php b/Sources/API/vendor/slim/slim/Slim/Error/Renderers/HtmlErrorRenderer.php new file mode 100644 index 0000000..e030522 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Error/Renderers/HtmlErrorRenderer.php @@ -0,0 +1,84 @@ +The application could not run because of the following error:

'; + $html .= '

Details

'; + $html .= $this->renderExceptionFragment($exception); + } else { + $html = "

{$this->getErrorDescription($exception)}

"; + } + + return $this->renderHtmlBody($this->getErrorTitle($exception), $html); + } + + private function renderExceptionFragment(Throwable $exception): string + { + $html = sprintf('
Type: %s
', get_class($exception)); + + /** @var int|string $code */ + $code = $exception->getCode(); + $html .= sprintf('
Code: %s
', $code); + + $html .= sprintf('
Message: %s
', htmlentities($exception->getMessage())); + + $html .= sprintf('
File: %s
', $exception->getFile()); + + $html .= sprintf('
Line: %s
', $exception->getLine()); + + $html .= '

Trace

'; + $html .= sprintf('
%s
', htmlentities($exception->getTraceAsString())); + + return $html; + } + + public function renderHtmlBody(string $title = '', string $html = ''): string + { + return sprintf( + '' . + '' . + ' ' . + ' ' . + ' ' . + ' %s' . + ' ' . + ' ' . + ' ' . + '

%s

' . + '
%s
' . + '
Go Back' . + ' ' . + '', + $title, + $title, + $html + ); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Error/Renderers/JsonErrorRenderer.php b/Sources/API/vendor/slim/slim/Slim/Error/Renderers/JsonErrorRenderer.php new file mode 100644 index 0000000..63d905b --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Error/Renderers/JsonErrorRenderer.php @@ -0,0 +1,56 @@ + $this->getErrorTitle($exception)]; + + if ($displayErrorDetails) { + $error['exception'] = []; + do { + $error['exception'][] = $this->formatExceptionFragment($exception); + } while ($exception = $exception->getPrevious()); + } + + return (string) json_encode($error, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); + } + + /** + * @return array + */ + private function formatExceptionFragment(Throwable $exception): array + { + /** @var int|string $code */ + $code = $exception->getCode(); + return [ + 'type' => get_class($exception), + 'code' => $code, + 'message' => $exception->getMessage(), + 'file' => $exception->getFile(), + 'line' => $exception->getLine(), + ]; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Error/Renderers/PlainTextErrorRenderer.php b/Sources/API/vendor/slim/slim/Slim/Error/Renderers/PlainTextErrorRenderer.php new file mode 100644 index 0000000..3d80c74 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Error/Renderers/PlainTextErrorRenderer.php @@ -0,0 +1,59 @@ +getErrorTitle($exception)}\n"; + + if ($displayErrorDetails) { + $text .= $this->formatExceptionFragment($exception); + + while ($exception = $exception->getPrevious()) { + $text .= "\nPrevious Error:\n"; + $text .= $this->formatExceptionFragment($exception); + } + } + + return $text; + } + + private function formatExceptionFragment(Throwable $exception): string + { + $text = sprintf("Type: %s\n", get_class($exception)); + + $code = $exception->getCode(); + /** @var int|string $code */ + $text .= sprintf("Code: %s\n", $code); + + $text .= sprintf("Message: %s\n", htmlentities($exception->getMessage())); + + $text .= sprintf("File: %s\n", $exception->getFile()); + + $text .= sprintf("Line: %s\n", $exception->getLine()); + + $text .= sprintf('Trace: %s', $exception->getTraceAsString()); + + return $text; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Error/Renderers/XmlErrorRenderer.php b/Sources/API/vendor/slim/slim/Slim/Error/Renderers/XmlErrorRenderer.php new file mode 100644 index 0000000..1171b79 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Error/Renderers/XmlErrorRenderer.php @@ -0,0 +1,54 @@ +\n"; + $xml .= "\n " . $this->createCdataSection($this->getErrorTitle($exception)) . "\n"; + + if ($displayErrorDetails) { + do { + $xml .= " \n"; + $xml .= ' ' . get_class($exception) . "\n"; + $xml .= ' ' . $exception->getCode() . "\n"; + $xml .= ' ' . $this->createCdataSection($exception->getMessage()) . "\n"; + $xml .= ' ' . $exception->getFile() . "\n"; + $xml .= ' ' . $exception->getLine() . "\n"; + $xml .= " \n"; + } while ($exception = $exception->getPrevious()); + } + + $xml .= ''; + + return $xml; + } + + /** + * Returns a CDATA section with the given content. + */ + private function createCdataSection(string $content): string + { + return sprintf('', str_replace(']]>', ']]]]>', $content)); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Exception/HttpBadRequestException.php b/Sources/API/vendor/slim/slim/Slim/Exception/HttpBadRequestException.php new file mode 100644 index 0000000..caea20f --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Exception/HttpBadRequestException.php @@ -0,0 +1,28 @@ +request = $request; + } + + public function getRequest(): ServerRequestInterface + { + return $this->request; + } + + public function getTitle(): string + { + return $this->title; + } + + public function setTitle(string $title): self + { + $this->title = $title; + return $this; + } + + public function getDescription(): string + { + return $this->description; + } + + public function setDescription(string $description): self + { + $this->description = $description; + return $this; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Exception/HttpForbiddenException.php b/Sources/API/vendor/slim/slim/Slim/Exception/HttpForbiddenException.php new file mode 100644 index 0000000..dd3bb23 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Exception/HttpForbiddenException.php @@ -0,0 +1,27 @@ +allowedMethods; + } + + /** + * @param string[] $methods + */ + public function setAllowedMethods(array $methods): self + { + $this->allowedMethods = $methods; + $this->message = 'Method not allowed. Must be one of: ' . implode(', ', $methods); + return $this; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Exception/HttpNotFoundException.php b/Sources/API/vendor/slim/slim/Slim/Exception/HttpNotFoundException.php new file mode 100644 index 0000000..865146d --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Exception/HttpNotFoundException.php @@ -0,0 +1,27 @@ +message = $message; + } + + parent::__construct($request, $this->message, $this->code, $previous); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Exception/HttpUnauthorizedException.php b/Sources/API/vendor/slim/slim/Slim/Exception/HttpUnauthorizedException.php new file mode 100644 index 0000000..07bd70d --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Exception/HttpUnauthorizedException.php @@ -0,0 +1,27 @@ +has(ResponseFactoryInterface::class) + && ( + $responseFactoryFromContainer = $container->get(ResponseFactoryInterface::class) + ) instanceof ResponseFactoryInterface + ? $responseFactoryFromContainer + : self::determineResponseFactory(); + + $callableResolver = $container->has(CallableResolverInterface::class) + && ( + $callableResolverFromContainer = $container->get(CallableResolverInterface::class) + ) instanceof CallableResolverInterface + ? $callableResolverFromContainer + : null; + + $routeCollector = $container->has(RouteCollectorInterface::class) + && ( + $routeCollectorFromContainer = $container->get(RouteCollectorInterface::class) + ) instanceof RouteCollectorInterface + ? $routeCollectorFromContainer + : null; + + $routeResolver = $container->has(RouteResolverInterface::class) + && ( + $routeResolverFromContainer = $container->get(RouteResolverInterface::class) + ) instanceof RouteResolverInterface + ? $routeResolverFromContainer + : null; + + $middlewareDispatcher = $container->has(MiddlewareDispatcherInterface::class) + && ( + $middlewareDispatcherFromContainer = $container->get(MiddlewareDispatcherInterface::class) + ) instanceof MiddlewareDispatcherInterface + ? $middlewareDispatcherFromContainer + : null; + + return new App( + $responseFactory, + $container, + $callableResolver, + $routeCollector, + $routeResolver, + $middlewareDispatcher + ); + } + + /** + * @throws RuntimeException + */ + public static function determineResponseFactory(): ResponseFactoryInterface + { + if (static::$responseFactory) { + if (static::$streamFactory) { + return static::attemptResponseFactoryDecoration(static::$responseFactory, static::$streamFactory); + } + return static::$responseFactory; + } + + $psr17FactoryProvider = static::$psr17FactoryProvider ?? new Psr17FactoryProvider(); + + /** @var Psr17Factory $psr17factory */ + foreach ($psr17FactoryProvider->getFactories() as $psr17factory) { + if ($psr17factory::isResponseFactoryAvailable()) { + $responseFactory = $psr17factory::getResponseFactory(); + + if (static::$streamFactory || $psr17factory::isStreamFactoryAvailable()) { + $streamFactory = static::$streamFactory ?? $psr17factory::getStreamFactory(); + return static::attemptResponseFactoryDecoration($responseFactory, $streamFactory); + } + + return $responseFactory; + } + } + + throw new RuntimeException( + "Could not detect any PSR-17 ResponseFactory implementations. " . + "Please install a supported implementation in order to use `AppFactory::create()`. " . + "See https://github.com/slimphp/Slim/blob/4.x/README.md for a list of supported implementations." + ); + } + + protected static function attemptResponseFactoryDecoration( + ResponseFactoryInterface $responseFactory, + StreamFactoryInterface $streamFactory + ): ResponseFactoryInterface { + if ( + static::$slimHttpDecoratorsAutomaticDetectionEnabled + && SlimHttpPsr17Factory::isResponseFactoryAvailable() + ) { + return SlimHttpPsr17Factory::createDecoratedResponseFactory($responseFactory, $streamFactory); + } + + return $responseFactory; + } + + public static function setPsr17FactoryProvider(Psr17FactoryProviderInterface $psr17FactoryProvider): void + { + static::$psr17FactoryProvider = $psr17FactoryProvider; + } + + public static function setResponseFactory(ResponseFactoryInterface $responseFactory): void + { + static::$responseFactory = $responseFactory; + } + + public static function setStreamFactory(StreamFactoryInterface $streamFactory): void + { + static::$streamFactory = $streamFactory; + } + + public static function setContainer(ContainerInterface $container): void + { + static::$container = $container; + } + + public static function setCallableResolver(CallableResolverInterface $callableResolver): void + { + static::$callableResolver = $callableResolver; + } + + public static function setRouteCollector(RouteCollectorInterface $routeCollector): void + { + static::$routeCollector = $routeCollector; + } + + public static function setRouteResolver(RouteResolverInterface $routeResolver): void + { + static::$routeResolver = $routeResolver; + } + + public static function setMiddlewareDispatcher(MiddlewareDispatcherInterface $middlewareDispatcher): void + { + static::$middlewareDispatcher = $middlewareDispatcher; + } + + public static function setSlimHttpDecoratorsAutomaticDetection(bool $enabled): void + { + static::$slimHttpDecoratorsAutomaticDetectionEnabled = $enabled; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Factory/Psr17/GuzzlePsr17Factory.php b/Sources/API/vendor/slim/slim/Slim/Factory/Psr17/GuzzlePsr17Factory.php new file mode 100644 index 0000000..32a548a --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Factory/Psr17/GuzzlePsr17Factory.php @@ -0,0 +1,19 @@ +serverRequestCreator = $serverRequestCreator; + $this->serverRequestCreatorMethod = $serverRequestCreatorMethod; + } + + /** + * {@inheritdoc} + */ + public function createServerRequestFromGlobals(): ServerRequestInterface + { + /** @var callable $callable */ + $callable = [$this->serverRequestCreator, $this->serverRequestCreatorMethod]; + return (Closure::fromCallable($callable))(); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Factory/Psr17/SlimHttpPsr17Factory.php b/Sources/API/vendor/slim/slim/Slim/Factory/Psr17/SlimHttpPsr17Factory.php new file mode 100644 index 0000000..5d63631 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Factory/Psr17/SlimHttpPsr17Factory.php @@ -0,0 +1,39 @@ +serverRequestCreator = $serverRequestCreator; + } + + /** + * {@inheritdoc} + */ + public function createServerRequestFromGlobals(): ServerRequestInterface + { + if (!static::isServerRequestDecoratorAvailable()) { + throw new RuntimeException('The Slim-Http ServerRequest decorator is not available.'); + } + + $request = $this->serverRequestCreator->createServerRequestFromGlobals(); + + if ( + !(( + $decoratedServerRequest = new static::$serverRequestDecoratorClass($request) + ) instanceof ServerRequestInterface) + ) { + throw new RuntimeException(get_called_class() . ' could not instantiate a decorated server request.'); + } + + return $decoratedServerRequest; + } + + public static function isServerRequestDecoratorAvailable(): bool + { + return class_exists(static::$serverRequestDecoratorClass); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Factory/Psr17/SlimPsr17Factory.php b/Sources/API/vendor/slim/slim/Slim/Factory/Psr17/SlimPsr17Factory.php new file mode 100644 index 0000000..46c46f9 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Factory/Psr17/SlimPsr17Factory.php @@ -0,0 +1,19 @@ +getFactories() as $psr17Factory) { + if ($psr17Factory::isServerRequestCreatorAvailable()) { + $serverRequestCreator = $psr17Factory::getServerRequestCreator(); + return static::attemptServerRequestCreatorDecoration($serverRequestCreator); + } + } + + throw new RuntimeException( + "Could not detect any ServerRequest creator implementations. " . + "Please install a supported implementation in order to use `App::run()` " . + "without having to pass in a `ServerRequest` object. " . + "See https://github.com/slimphp/Slim/blob/4.x/README.md for a list of supported implementations." + ); + } + + protected static function attemptServerRequestCreatorDecoration( + ServerRequestCreatorInterface $serverRequestCreator + ): ServerRequestCreatorInterface { + if ( + static::$slimHttpDecoratorsAutomaticDetectionEnabled + && SlimHttpServerRequestCreator::isServerRequestDecoratorAvailable() + ) { + return new SlimHttpServerRequestCreator($serverRequestCreator); + } + + return $serverRequestCreator; + } + + public static function setPsr17FactoryProvider(Psr17FactoryProviderInterface $psr17FactoryProvider): void + { + static::$psr17FactoryProvider = $psr17FactoryProvider; + } + + public static function setServerRequestCreator(ServerRequestCreatorInterface $serverRequestCreator): void + { + self::$serverRequestCreator = $serverRequestCreator; + } + + public static function setSlimHttpDecoratorsAutomaticDetection(bool $enabled): void + { + static::$slimHttpDecoratorsAutomaticDetectionEnabled = $enabled; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Handlers/ErrorHandler.php b/Sources/API/vendor/slim/slim/Slim/Handlers/ErrorHandler.php new file mode 100644 index 0000000..f9606e3 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Handlers/ErrorHandler.php @@ -0,0 +1,308 @@ + + */ + protected array $errorRenderers = [ + 'application/json' => JsonErrorRenderer::class, + 'application/xml' => XmlErrorRenderer::class, + 'text/xml' => XmlErrorRenderer::class, + 'text/html' => HtmlErrorRenderer::class, + 'text/plain' => PlainTextErrorRenderer::class, + ]; + + protected bool $displayErrorDetails = false; + + protected bool $logErrors; + + protected bool $logErrorDetails = false; + + protected ?string $contentType = null; + + protected ?string $method = null; + + protected ServerRequestInterface $request; + + protected Throwable $exception; + + protected int $statusCode; + + protected CallableResolverInterface $callableResolver; + + protected ResponseFactoryInterface $responseFactory; + + protected LoggerInterface $logger; + + public function __construct( + CallableResolverInterface $callableResolver, + ResponseFactoryInterface $responseFactory, + ?LoggerInterface $logger = null + ) { + $this->callableResolver = $callableResolver; + $this->responseFactory = $responseFactory; + $this->logger = $logger ?: $this->getDefaultLogger(); + } + + /** + * Invoke error handler + * + * @param ServerRequestInterface $request The most recent Request object + * @param Throwable $exception The caught Exception object + * @param bool $displayErrorDetails Whether or not to display the error details + * @param bool $logErrors Whether or not to log errors + * @param bool $logErrorDetails Whether or not to log error details + */ + public function __invoke( + ServerRequestInterface $request, + Throwable $exception, + bool $displayErrorDetails, + bool $logErrors, + bool $logErrorDetails + ): ResponseInterface { + $this->displayErrorDetails = $displayErrorDetails; + $this->logErrors = $logErrors; + $this->logErrorDetails = $logErrorDetails; + $this->request = $request; + $this->exception = $exception; + $this->method = $request->getMethod(); + $this->statusCode = $this->determineStatusCode(); + if ($this->contentType === null) { + $this->contentType = $this->determineContentType($request); + } + + if ($logErrors) { + $this->writeToErrorLog(); + } + + return $this->respond(); + } + + /** + * Force the content type for all error handler responses. + * + * @param string|null $contentType The content type + */ + public function forceContentType(?string $contentType): void + { + $this->contentType = $contentType; + } + + protected function determineStatusCode(): int + { + if ($this->method === 'OPTIONS') { + return 200; + } + + if ($this->exception instanceof HttpException) { + return $this->exception->getCode(); + } + + return 500; + } + + /** + * Determine which content type we know about is wanted using Accept header + * + * Note: This method is a bare-bones implementation designed specifically for + * Slim's error handling requirements. Consider a fully-feature solution such + * as willdurand/negotiation for any other situation. + */ + protected function determineContentType(ServerRequestInterface $request): ?string + { + $acceptHeader = $request->getHeaderLine('Accept'); + $selectedContentTypes = array_intersect( + explode(',', $acceptHeader), + array_keys($this->errorRenderers) + ); + $count = count($selectedContentTypes); + + if ($count) { + $current = current($selectedContentTypes); + + /** + * Ensure other supported content types take precedence over text/plain + * when multiple content types are provided via Accept header. + */ + if ($current === 'text/plain' && $count > 1) { + $next = next($selectedContentTypes); + if (is_string($next)) { + return $next; + } + } + + if (is_string($current)) { + return $current; + } + } + + if (preg_match('/\+(json|xml)/', $acceptHeader, $matches)) { + $mediaType = 'application/' . $matches[1]; + if (array_key_exists($mediaType, $this->errorRenderers)) { + return $mediaType; + } + } + + return null; + } + + /** + * Determine which renderer to use based on content type + * + * @throws RuntimeException + */ + protected function determineRenderer(): callable + { + if ($this->contentType !== null && array_key_exists($this->contentType, $this->errorRenderers)) { + $renderer = $this->errorRenderers[$this->contentType]; + } else { + $renderer = $this->defaultErrorRenderer; + } + + return $this->callableResolver->resolve($renderer); + } + + /** + * Register an error renderer for a specific content-type + * + * @param string $contentType The content-type this renderer should be registered to + * @param ErrorRendererInterface|string|callable $errorRenderer The error renderer + */ + public function registerErrorRenderer(string $contentType, $errorRenderer): void + { + $this->errorRenderers[$contentType] = $errorRenderer; + } + + /** + * Set the default error renderer + * + * @param string $contentType The content type of the default error renderer + * @param ErrorRendererInterface|string|callable $errorRenderer The default error renderer + */ + public function setDefaultErrorRenderer(string $contentType, $errorRenderer): void + { + $this->defaultErrorRendererContentType = $contentType; + $this->defaultErrorRenderer = $errorRenderer; + } + + /** + * Set the renderer for the error logger + * + * @param ErrorRendererInterface|string|callable $logErrorRenderer + */ + public function setLogErrorRenderer($logErrorRenderer): void + { + $this->logErrorRenderer = $logErrorRenderer; + } + + /** + * Write to the error log if $logErrors has been set to true + */ + protected function writeToErrorLog(): void + { + $renderer = $this->callableResolver->resolve($this->logErrorRenderer); + $error = $renderer($this->exception, $this->logErrorDetails); + if (!$this->displayErrorDetails) { + $error .= "\nTips: To display error details in HTTP response "; + $error .= 'set "displayErrorDetails" to true in the ErrorHandler constructor.'; + } + $this->logError($error); + } + + /** + * Wraps the error_log function so that this can be easily tested + */ + protected function logError(string $error): void + { + $this->logger->error($error); + } + + /** + * Returns a default logger implementation. + */ + protected function getDefaultLogger(): LoggerInterface + { + return new Logger(); + } + + protected function respond(): ResponseInterface + { + $response = $this->responseFactory->createResponse($this->statusCode); + if ($this->contentType !== null && array_key_exists($this->contentType, $this->errorRenderers)) { + $response = $response->withHeader('Content-type', $this->contentType); + } else { + $response = $response->withHeader('Content-type', $this->defaultErrorRendererContentType); + } + + if ($this->exception instanceof HttpMethodNotAllowedException) { + $allowedMethods = implode(', ', $this->exception->getAllowedMethods()); + $response = $response->withHeader('Allow', $allowedMethods); + } + + $renderer = $this->determineRenderer(); + $body = call_user_func($renderer, $this->exception, $this->displayErrorDetails); + if ($body !== false) { + /** @var string $body */ + $response->getBody()->write($body); + } + + return $response; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestHandler.php b/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestHandler.php new file mode 100644 index 0000000..ea88a5f --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestHandler.php @@ -0,0 +1,48 @@ +appendRouteArgumentsToRequestAttributes = $appendRouteArgumentsToRequestAttributes; + } + + /** + * Invoke a route callable that implements RequestHandlerInterface + * + * @param array $routeArguments + */ + public function __invoke( + callable $callable, + ServerRequestInterface $request, + ResponseInterface $response, + array $routeArguments + ): ResponseInterface { + if ($this->appendRouteArgumentsToRequestAttributes) { + foreach ($routeArguments as $k => $v) { + $request = $request->withAttribute($k, $v); + } + } + + return $callable($request); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php b/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php new file mode 100644 index 0000000..45b2c05 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php @@ -0,0 +1,40 @@ + $routeArguments + */ + public function __invoke( + callable $callable, + ServerRequestInterface $request, + ResponseInterface $response, + array $routeArguments + ): ResponseInterface { + foreach ($routeArguments as $k => $v) { + $request = $request->withAttribute($k, $v); + } + + return $callable($request, $response, $routeArguments); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponseArgs.php b/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponseArgs.php new file mode 100644 index 0000000..c4ab16d --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponseArgs.php @@ -0,0 +1,38 @@ + $routeArguments + */ + public function __invoke( + callable $callable, + ServerRequestInterface $request, + ResponseInterface $response, + array $routeArguments + ): ResponseInterface { + return $callable($request, $response, ...array_values($routeArguments)); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponseNamedArgs.php b/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponseNamedArgs.php new file mode 100644 index 0000000..651111d --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponseNamedArgs.php @@ -0,0 +1,44 @@ += 8.0.0'); + } + } + + /** + * Invoke a route callable with request, response and all route parameters + * as individual arguments. + * + * @param array $routeArguments + */ + public function __invoke( + callable $callable, + ServerRequestInterface $request, + ResponseInterface $response, + array $routeArguments + ): ResponseInterface { + return $callable($request, $response, ...$routeArguments); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Interfaces/AdvancedCallableResolverInterface.php b/Sources/API/vendor/slim/slim/Slim/Interfaces/AdvancedCallableResolverInterface.php new file mode 100644 index 0000000..aa1d897 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Interfaces/AdvancedCallableResolverInterface.php @@ -0,0 +1,28 @@ + $routeArguments The route's placeholder arguments + * + * @return ResponseInterface The response from the callable. + */ + public function __invoke( + callable $callable, + ServerRequestInterface $request, + ResponseInterface $response, + array $routeArguments + ): ResponseInterface; +} diff --git a/Sources/API/vendor/slim/slim/Slim/Interfaces/MiddlewareDispatcherInterface.php b/Sources/API/vendor/slim/slim/Slim/Interfaces/MiddlewareDispatcherInterface.php new file mode 100644 index 0000000..aa7a26a --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Interfaces/MiddlewareDispatcherInterface.php @@ -0,0 +1,42 @@ + + */ + public function getArguments(): array; + + /** + * Set a route argument + */ + public function setArgument(string $name, string $value): RouteInterface; + + /** + * Replace route arguments + * + * @param array $arguments + */ + public function setArguments(array $arguments): self; + + /** + * @param MiddlewareInterface|string|callable $middleware + */ + public function add($middleware): self; + + public function addMiddleware(MiddlewareInterface $middleware): self; + + /** + * Prepare the route for use + * + * @param array $arguments + */ + public function prepare(array $arguments): self; + + /** + * Run route + * + * This method traverses the middleware stack, including the route's callable + * and captures the resultant HTTP response object. It then sends the response + * back to the Application. + */ + public function run(ServerRequestInterface $request): ResponseInterface; +} diff --git a/Sources/API/vendor/slim/slim/Slim/Interfaces/RouteParserInterface.php b/Sources/API/vendor/slim/slim/Slim/Interfaces/RouteParserInterface.php new file mode 100644 index 0000000..03d9326 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Interfaces/RouteParserInterface.php @@ -0,0 +1,52 @@ + $data Named argument replacement data + * @param array $queryParams Optional query string parameters + * + * @throws RuntimeException If named route does not exist + * @throws InvalidArgumentException If required data not provided + */ + public function relativeUrlFor(string $routeName, array $data = [], array $queryParams = []): string; + + /** + * Build the path for a named route including the base path + * + * @param string $routeName Route name + * @param array $data Named argument replacement data + * @param array $queryParams Optional query string parameters + * + * @throws RuntimeException If named route does not exist + * @throws InvalidArgumentException If required data not provided + */ + public function urlFor(string $routeName, array $data = [], array $queryParams = []): string; + + /** + * Get fully qualified URL for named route + * + * @param UriInterface $uri + * @param string $routeName Route name + * @param array $data Named argument replacement data + * @param array $queryParams Optional query string parameters + */ + public function fullUrlFor(UriInterface $uri, string $routeName, array $data = [], array $queryParams = []): string; +} diff --git a/Sources/API/vendor/slim/slim/Slim/Interfaces/RouteResolverInterface.php b/Sources/API/vendor/slim/slim/Slim/Interfaces/RouteResolverInterface.php new file mode 100644 index 0000000..256a359 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Interfaces/RouteResolverInterface.php @@ -0,0 +1,17 @@ +getPath() + */ + public function computeRoutingResults(string $uri, string $method): RoutingResults; + + public function resolveRoute(string $identifier): RouteInterface; +} diff --git a/Sources/API/vendor/slim/slim/Slim/Interfaces/ServerRequestCreatorInterface.php b/Sources/API/vendor/slim/slim/Slim/Interfaces/ServerRequestCreatorInterface.php new file mode 100644 index 0000000..54d231e --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Interfaces/ServerRequestCreatorInterface.php @@ -0,0 +1,18 @@ + $context + * + * @throws InvalidArgumentException + */ + public function log($level, $message, array $context = []): void + { + error_log((string) $message); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Middleware/BodyParsingMiddleware.php b/Sources/API/vendor/slim/slim/Slim/Middleware/BodyParsingMiddleware.php new file mode 100644 index 0000000..9a90f30 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Middleware/BodyParsingMiddleware.php @@ -0,0 +1,196 @@ + callable + */ + public function __construct(array $bodyParsers = []) + { + $this->registerDefaultBodyParsers(); + + foreach ($bodyParsers as $mediaType => $parser) { + $this->registerBodyParser($mediaType, $parser); + } + } + + public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface + { + $parsedBody = $request->getParsedBody(); + + if (empty($parsedBody)) { + $parsedBody = $this->parseBody($request); + $request = $request->withParsedBody($parsedBody); + } + + return $handler->handle($request); + } + + /** + * @param string $mediaType A HTTP media type (excluding content-type params). + * @param callable $callable A callable that returns parsed contents for media type. + */ + public function registerBodyParser(string $mediaType, callable $callable): self + { + $this->bodyParsers[$mediaType] = $callable; + return $this; + } + + /** + * @param string $mediaType A HTTP media type (excluding content-type params). + */ + public function hasBodyParser(string $mediaType): bool + { + return isset($this->bodyParsers[$mediaType]); + } + + /** + * @param string $mediaType A HTTP media type (excluding content-type params). + * @throws RuntimeException + */ + public function getBodyParser(string $mediaType): callable + { + if (!isset($this->bodyParsers[$mediaType])) { + throw new RuntimeException('No parser for type ' . $mediaType); + } + return $this->bodyParsers[$mediaType]; + } + + protected function registerDefaultBodyParsers(): void + { + $this->registerBodyParser('application/json', static function ($input) { + $result = json_decode($input, true); + + if (!is_array($result)) { + return null; + } + + return $result; + }); + + $this->registerBodyParser('application/x-www-form-urlencoded', static function ($input) { + parse_str($input, $data); + return $data; + }); + + $xmlCallable = static function ($input) { + $backup = self::disableXmlEntityLoader(true); + $backup_errors = libxml_use_internal_errors(true); + $result = simplexml_load_string($input); + + self::disableXmlEntityLoader($backup); + libxml_clear_errors(); + libxml_use_internal_errors($backup_errors); + + if ($result === false) { + return null; + } + + return $result; + }; + + $this->registerBodyParser('application/xml', $xmlCallable); + $this->registerBodyParser('text/xml', $xmlCallable); + } + + /** + * @return null|array|object + */ + protected function parseBody(ServerRequestInterface $request) + { + $mediaType = $this->getMediaType($request); + if ($mediaType === null) { + return null; + } + + // Check if this specific media type has a parser registered first + if (!isset($this->bodyParsers[$mediaType])) { + // If not, look for a media type with a structured syntax suffix (RFC 6839) + $parts = explode('+', $mediaType); + if (count($parts) >= 2) { + $mediaType = 'application/' . $parts[count($parts) - 1]; + } + } + + if (isset($this->bodyParsers[$mediaType])) { + $body = (string)$request->getBody(); + $parsed = $this->bodyParsers[$mediaType]($body); + + if ($parsed !== null && !is_object($parsed) && !is_array($parsed)) { + throw new RuntimeException( + 'Request body media type parser return value must be an array, an object, or null' + ); + } + + return $parsed; + } + + return null; + } + + /** + * @return string|null The serverRequest media type, minus content-type params + */ + protected function getMediaType(ServerRequestInterface $request): ?string + { + $contentType = $request->getHeader('Content-Type')[0] ?? null; + + if (is_string($contentType) && trim($contentType) !== '') { + $contentTypeParts = explode(';', $contentType); + return strtolower(trim($contentTypeParts[0])); + } + + return null; + } + + protected static function disableXmlEntityLoader(bool $disable): bool + { + if (LIBXML_VERSION >= 20900) { + // libxml >= 2.9.0 disables entity loading by default, so it is + // safe to skip the real call (deprecated in PHP 8). + return true; + } + + // @codeCoverageIgnoreStart + return libxml_disable_entity_loader($disable); + // @codeCoverageIgnoreEnd + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Middleware/ContentLengthMiddleware.php b/Sources/API/vendor/slim/slim/Slim/Middleware/ContentLengthMiddleware.php new file mode 100644 index 0000000..8fa13bc --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Middleware/ContentLengthMiddleware.php @@ -0,0 +1,32 @@ +handle($request); + + // Add Content-Length header if not already added + $size = $response->getBody()->getSize(); + if ($size !== null && !$response->hasHeader('Content-Length')) { + $response = $response->withHeader('Content-Length', (string) $size); + } + + return $response; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php b/Sources/API/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php new file mode 100644 index 0000000..2eb5cc9 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php @@ -0,0 +1,212 @@ +callableResolver = $callableResolver; + $this->responseFactory = $responseFactory; + $this->displayErrorDetails = $displayErrorDetails; + $this->logErrors = $logErrors; + $this->logErrorDetails = $logErrorDetails; + $this->logger = $logger; + } + + public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface + { + try { + return $handler->handle($request); + } catch (Throwable $e) { + return $this->handleException($request, $e); + } + } + + public function handleException(ServerRequestInterface $request, Throwable $exception): ResponseInterface + { + if ($exception instanceof HttpException) { + $request = $exception->getRequest(); + } + + $exceptionType = get_class($exception); + $handler = $this->getErrorHandler($exceptionType); + + return $handler($request, $exception, $this->displayErrorDetails, $this->logErrors, $this->logErrorDetails); + } + + /** + * Get callable to handle scenarios where an error + * occurs when processing the current request. + * + * @param string $type Exception/Throwable name. ie: RuntimeException::class + * @return callable|ErrorHandler + */ + public function getErrorHandler(string $type) + { + if (isset($this->handlers[$type])) { + return $this->callableResolver->resolve($this->handlers[$type]); + } + + if (isset($this->subClassHandlers[$type])) { + return $this->callableResolver->resolve($this->subClassHandlers[$type]); + } + + foreach ($this->subClassHandlers as $class => $handler) { + if (is_subclass_of($type, $class)) { + return $this->callableResolver->resolve($handler); + } + } + + return $this->getDefaultErrorHandler(); + } + + /** + * Get default error handler + * + * @return ErrorHandler|callable + */ + public function getDefaultErrorHandler() + { + if ($this->defaultErrorHandler === null) { + $this->defaultErrorHandler = new ErrorHandler( + $this->callableResolver, + $this->responseFactory, + $this->logger + ); + } + + return $this->callableResolver->resolve($this->defaultErrorHandler); + } + + /** + * Set callable as the default Slim application error handler. + * + * The callable signature MUST match the ErrorHandlerInterface + * + * @see \Slim\Interfaces\ErrorHandlerInterface + * + * 1. Instance of \Psr\Http\Message\ServerRequestInterface + * 2. Instance of \Throwable + * 3. Boolean $displayErrorDetails + * 4. Boolean $logErrors + * 5. Boolean $logErrorDetails + * + * The callable MUST return an instance of + * \Psr\Http\Message\ResponseInterface. + * + * @param string|callable|ErrorHandler $handler + */ + public function setDefaultErrorHandler($handler): self + { + $this->defaultErrorHandler = $handler; + return $this; + } + + /** + * Set callable to handle scenarios where an error + * occurs when processing the current request. + * + * The callable signature MUST match the ErrorHandlerInterface + * + * Pass true to $handleSubclasses to make the handler handle all subclasses of + * the type as well. Pass an array of classes to make the same function handle multiple exceptions. + * + * @see \Slim\Interfaces\ErrorHandlerInterface + * + * 1. Instance of \Psr\Http\Message\ServerRequestInterface + * 2. Instance of \Throwable + * 3. Boolean $displayErrorDetails + * 4. Boolean $logErrors + * 5. Boolean $logErrorDetails + * + * The callable MUST return an instance of + * \Psr\Http\Message\ResponseInterface. + * + * @param string|string[] $typeOrTypes Exception/Throwable name. + * ie: RuntimeException::class or an array of classes + * ie: [HttpNotFoundException::class, HttpMethodNotAllowedException::class] + * @param string|callable|ErrorHandlerInterface $handler + */ + public function setErrorHandler($typeOrTypes, $handler, bool $handleSubclasses = false): self + { + if (is_array($typeOrTypes)) { + foreach ($typeOrTypes as $type) { + $this->addErrorHandler($type, $handler, $handleSubclasses); + } + } else { + $this->addErrorHandler($typeOrTypes, $handler, $handleSubclasses); + } + + return $this; + } + + /** + * Used internally to avoid code repetition when passing multiple exceptions to setErrorHandler(). + * @param string|callable|ErrorHandlerInterface $handler + */ + private function addErrorHandler(string $type, $handler, bool $handleSubclasses): void + { + if ($handleSubclasses) { + $this->subClassHandlers[$type] = $handler; + } else { + $this->handlers[$type] = $handler; + } + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Middleware/MethodOverrideMiddleware.php b/Sources/API/vendor/slim/slim/Slim/Middleware/MethodOverrideMiddleware.php new file mode 100644 index 0000000..079a1f1 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Middleware/MethodOverrideMiddleware.php @@ -0,0 +1,43 @@ +getHeaderLine('X-Http-Method-Override'); + + if ($methodHeader) { + $request = $request->withMethod($methodHeader); + } elseif (strtoupper($request->getMethod()) === 'POST') { + $body = $request->getParsedBody(); + + if (is_array($body) && !empty($body['_METHOD'])) { + $request = $request->withMethod($body['_METHOD']); + } + + if ($request->getBody()->eof()) { + $request->getBody()->rewind(); + } + } + + return $handler->handle($request); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Middleware/OutputBufferingMiddleware.php b/Sources/API/vendor/slim/slim/Slim/Middleware/OutputBufferingMiddleware.php new file mode 100644 index 0000000..69ee1f6 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Middleware/OutputBufferingMiddleware.php @@ -0,0 +1,74 @@ +streamFactory = $streamFactory; + $this->style = $style; + + if (!in_array($style, [static::APPEND, static::PREPEND], true)) { + throw new InvalidArgumentException("Invalid style `{$style}`. Must be `append` or `prepend`"); + } + } + + /** + * @throws Throwable + */ + public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface + { + try { + ob_start(); + $response = $handler->handle($request); + $output = ob_get_clean(); + } catch (Throwable $e) { + ob_end_clean(); + throw $e; + } + + if (!empty($output)) { + if ($this->style === static::PREPEND) { + $body = $this->streamFactory->createStream(); + $body->write($output . $response->getBody()); + $response = $response->withBody($body); + } elseif ($this->style === static::APPEND && $response->getBody()->isWritable()) { + $response->getBody()->write($output); + } + } + + return $response; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php b/Sources/API/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php new file mode 100644 index 0000000..a3d3085 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php @@ -0,0 +1,98 @@ +routeResolver = $routeResolver; + $this->routeParser = $routeParser; + } + + /** + * @throws HttpNotFoundException + * @throws HttpMethodNotAllowedException + * @throws RuntimeException + */ + public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface + { + $request = $this->performRouting($request); + return $handler->handle($request); + } + + /** + * Perform routing + * + * @param ServerRequestInterface $request PSR7 Server Request + * + * @throws HttpNotFoundException + * @throws HttpMethodNotAllowedException + * @throws RuntimeException + */ + public function performRouting(ServerRequestInterface $request): ServerRequestInterface + { + $request = $request->withAttribute(RouteContext::ROUTE_PARSER, $this->routeParser); + + $routingResults = $this->resolveRoutingResultsFromRequest($request); + $routeStatus = $routingResults->getRouteStatus(); + + $request = $request->withAttribute(RouteContext::ROUTING_RESULTS, $routingResults); + + switch ($routeStatus) { + case RoutingResults::FOUND: + $routeArguments = $routingResults->getRouteArguments(); + $routeIdentifier = $routingResults->getRouteIdentifier() ?? ''; + $route = $this->routeResolver + ->resolveRoute($routeIdentifier) + ->prepare($routeArguments); + return $request->withAttribute(RouteContext::ROUTE, $route); + + case RoutingResults::NOT_FOUND: + throw new HttpNotFoundException($request); + + case RoutingResults::METHOD_NOT_ALLOWED: + $exception = new HttpMethodNotAllowedException($request); + $exception->setAllowedMethods($routingResults->getAllowedMethods()); + throw $exception; + + default: + throw new RuntimeException('An unexpected error occurred while performing routing.'); + } + } + + /** + * Resolves the route from the given request + */ + protected function resolveRoutingResultsFromRequest(ServerRequestInterface $request): RoutingResults + { + return $this->routeResolver->computeRoutingResults( + $request->getUri()->getPath(), + $request->getMethod() + ); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/MiddlewareDispatcher.php b/Sources/API/vendor/slim/slim/Slim/MiddlewareDispatcher.php new file mode 100644 index 0000000..7e05644 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/MiddlewareDispatcher.php @@ -0,0 +1,275 @@ +seedMiddlewareStack($kernel); + $this->callableResolver = $callableResolver; + $this->container = $container; + } + + /** + * {@inheritdoc} + */ + public function seedMiddlewareStack(RequestHandlerInterface $kernel): void + { + $this->tip = $kernel; + } + + /** + * Invoke the middleware stack + */ + public function handle(ServerRequestInterface $request): ResponseInterface + { + return $this->tip->handle($request); + } + + /** + * Add a new middleware to the stack + * + * Middleware are organized as a stack. That means middleware + * that have been added before will be executed after the newly + * added one (last in, first out). + * + * @param MiddlewareInterface|string|callable $middleware + */ + public function add($middleware): MiddlewareDispatcherInterface + { + if ($middleware instanceof MiddlewareInterface) { + return $this->addMiddleware($middleware); + } + + if (is_string($middleware)) { + return $this->addDeferred($middleware); + } + + if (is_callable($middleware)) { + return $this->addCallable($middleware); + } + + /** @phpstan-ignore-next-line */ + throw new RuntimeException( + 'A middleware must be an object/class name referencing an implementation of ' . + 'MiddlewareInterface or a callable with a matching signature.' + ); + } + + /** + * Add a new middleware to the stack + * + * Middleware are organized as a stack. That means middleware + * that have been added before will be executed after the newly + * added one (last in, first out). + */ + public function addMiddleware(MiddlewareInterface $middleware): MiddlewareDispatcherInterface + { + $next = $this->tip; + $this->tip = new class ($middleware, $next) implements RequestHandlerInterface { + private MiddlewareInterface $middleware; + + private RequestHandlerInterface $next; + + public function __construct(MiddlewareInterface $middleware, RequestHandlerInterface $next) + { + $this->middleware = $middleware; + $this->next = $next; + } + + public function handle(ServerRequestInterface $request): ResponseInterface + { + return $this->middleware->process($request, $this->next); + } + }; + + return $this; + } + + /** + * Add a new middleware by class name + * + * Middleware are organized as a stack. That means middleware + * that have been added before will be executed after the newly + * added one (last in, first out). + */ + public function addDeferred(string $middleware): self + { + $next = $this->tip; + $this->tip = new class ( + $middleware, + $next, + $this->container, + $this->callableResolver + ) implements RequestHandlerInterface { + private string $middleware; + + private RequestHandlerInterface $next; + + private ?ContainerInterface $container; + + private ?CallableResolverInterface $callableResolver; + + public function __construct( + string $middleware, + RequestHandlerInterface $next, + ?ContainerInterface $container = null, + ?CallableResolverInterface $callableResolver = null + ) { + $this->middleware = $middleware; + $this->next = $next; + $this->container = $container; + $this->callableResolver = $callableResolver; + } + + public function handle(ServerRequestInterface $request): ResponseInterface + { + if ($this->callableResolver instanceof AdvancedCallableResolverInterface) { + $callable = $this->callableResolver->resolveMiddleware($this->middleware); + return $callable($request, $this->next); + } + + $callable = null; + + if ($this->callableResolver instanceof CallableResolverInterface) { + try { + $callable = $this->callableResolver->resolve($this->middleware); + } catch (RuntimeException $e) { + // Do Nothing + } + } + + if (!$callable) { + $resolved = $this->middleware; + $instance = null; + $method = null; + + // Check for Slim callable as `class:method` + if (preg_match(CallableResolver::$callablePattern, $resolved, $matches)) { + $resolved = $matches[1]; + $method = $matches[2]; + } + + if ($this->container && $this->container->has($resolved)) { + $instance = $this->container->get($resolved); + if ($instance instanceof MiddlewareInterface) { + return $instance->process($request, $this->next); + } + } elseif (!function_exists($resolved)) { + if (!class_exists($resolved)) { + throw new RuntimeException(sprintf('Middleware %s does not exist', $resolved)); + } + $instance = new $resolved($this->container); + } + + if ($instance && $instance instanceof MiddlewareInterface) { + return $instance->process($request, $this->next); + } + + $callable = $instance ?? $resolved; + if ($instance && $method) { + $callable = [$instance, $method]; + } + + if ($this->container && $callable instanceof Closure) { + $callable = $callable->bindTo($this->container); + } + } + + if (!is_callable($callable)) { + throw new RuntimeException( + sprintf( + 'Middleware %s is not resolvable', + $this->middleware + ) + ); + } + + return $callable($request, $this->next); + } + }; + + return $this; + } + + /** + * Add a (non-standard) callable middleware to the stack + * + * Middleware are organized as a stack. That means middleware + * that have been added before will be executed after the newly + * added one (last in, first out). + */ + public function addCallable(callable $middleware): self + { + $next = $this->tip; + + if ($this->container && $middleware instanceof Closure) { + /** @var Closure $middleware */ + $middleware = $middleware->bindTo($this->container); + } + + $this->tip = new class ($middleware, $next) implements RequestHandlerInterface { + /** + * @var callable + */ + private $middleware; + + /** + * @var RequestHandlerInterface + */ + private $next; + + public function __construct(callable $middleware, RequestHandlerInterface $next) + { + $this->middleware = $middleware; + $this->next = $next; + } + + public function handle(ServerRequestInterface $request): ResponseInterface + { + return ($this->middleware)($request, $this->next); + } + }; + + return $this; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/ResponseEmitter.php b/Sources/API/vendor/slim/slim/Slim/ResponseEmitter.php new file mode 100644 index 0000000..fac36e9 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/ResponseEmitter.php @@ -0,0 +1,136 @@ +responseChunkSize = $responseChunkSize; + } + + /** + * Send the response the client + */ + public function emit(ResponseInterface $response): void + { + $isEmpty = $this->isResponseEmpty($response); + if (headers_sent() === false) { + $this->emitHeaders($response); + + // Set the status _after_ the headers, because of PHP's "helpful" behavior with location headers. + // See https://github.com/slimphp/Slim/issues/1730 + + $this->emitStatusLine($response); + } + + if (!$isEmpty) { + $this->emitBody($response); + } + } + + /** + * Emit Response Headers + */ + private function emitHeaders(ResponseInterface $response): void + { + foreach ($response->getHeaders() as $name => $values) { + $first = strtolower($name) !== 'set-cookie'; + foreach ($values as $value) { + $header = sprintf('%s: %s', $name, $value); + header($header, $first); + $first = false; + } + } + } + + /** + * Emit Status Line + */ + private function emitStatusLine(ResponseInterface $response): void + { + $statusLine = sprintf( + 'HTTP/%s %s %s', + $response->getProtocolVersion(), + $response->getStatusCode(), + $response->getReasonPhrase() + ); + header($statusLine, true, $response->getStatusCode()); + } + + /** + * Emit Body + */ + private function emitBody(ResponseInterface $response): void + { + $body = $response->getBody(); + if ($body->isSeekable()) { + $body->rewind(); + } + + $amountToRead = (int) $response->getHeaderLine('Content-Length'); + if (!$amountToRead) { + $amountToRead = $body->getSize(); + } + + if ($amountToRead) { + while ($amountToRead > 0 && !$body->eof()) { + $length = min($this->responseChunkSize, $amountToRead); + $data = $body->read($length); + echo $data; + + $amountToRead -= strlen($data); + + if (connection_status() !== CONNECTION_NORMAL) { + break; + } + } + } else { + while (!$body->eof()) { + echo $body->read($this->responseChunkSize); + if (connection_status() !== CONNECTION_NORMAL) { + break; + } + } + } + } + + /** + * Asserts response body is empty or status code is 204, 205 or 304 + */ + public function isResponseEmpty(ResponseInterface $response): bool + { + if (in_array($response->getStatusCode(), [204, 205, 304], true)) { + return true; + } + $stream = $response->getBody(); + $seekable = $stream->isSeekable(); + if ($seekable) { + $stream->rewind(); + } + return $seekable ? $stream->read(1) === '' : $stream->eof(); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/Dispatcher.php b/Sources/API/vendor/slim/slim/Slim/Routing/Dispatcher.php new file mode 100644 index 0000000..e33eac3 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/Dispatcher.php @@ -0,0 +1,78 @@ +routeCollector = $routeCollector; + } + + protected function createDispatcher(): FastRouteDispatcher + { + if ($this->dispatcher) { + return $this->dispatcher; + } + + $routeDefinitionCallback = function (FastRouteCollector $r): void { + $basePath = $this->routeCollector->getBasePath(); + + foreach ($this->routeCollector->getRoutes() as $route) { + $r->addRoute($route->getMethods(), $basePath . $route->getPattern(), $route->getIdentifier()); + } + }; + + $cacheFile = $this->routeCollector->getCacheFile(); + if ($cacheFile) { + /** @var FastRouteDispatcher $dispatcher */ + $dispatcher = \FastRoute\cachedDispatcher($routeDefinitionCallback, [ + 'dataGenerator' => GroupCountBased::class, + 'dispatcher' => FastRouteDispatcher::class, + 'routeParser' => new Std(), + 'cacheFile' => $cacheFile, + ]); + } else { + /** @var FastRouteDispatcher $dispatcher */ + $dispatcher = \FastRoute\simpleDispatcher($routeDefinitionCallback, [ + 'dataGenerator' => GroupCountBased::class, + 'dispatcher' => FastRouteDispatcher::class, + 'routeParser' => new Std(), + ]); + } + + $this->dispatcher = $dispatcher; + return $this->dispatcher; + } + + /** + * {@inheritdoc} + */ + public function dispatch(string $method, string $uri): RoutingResults + { + $dispatcher = $this->createDispatcher(); + $results = $dispatcher->dispatch($method, $uri); + return new RoutingResults($this, $method, $uri, $results[0], $results[1], $results[2]); + } + + /** + * {@inheritdoc} + */ + public function getAllowedMethods(string $uri): array + { + $dispatcher = $this->createDispatcher(); + return $dispatcher->getAllowedMethods($uri); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/FastRouteDispatcher.php b/Sources/API/vendor/slim/slim/Slim/Routing/FastRouteDispatcher.php new file mode 100644 index 0000000..1f567b5 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/FastRouteDispatcher.php @@ -0,0 +1,109 @@ +} + */ + public function dispatch($httpMethod, $uri): array + { + $routingResults = $this->routingResults($httpMethod, $uri); + if ($routingResults[0] === self::FOUND) { + return $routingResults; + } + + // For HEAD requests, attempt fallback to GET + if ($httpMethod === 'HEAD') { + $routingResults = $this->routingResults('GET', $uri); + if ($routingResults[0] === self::FOUND) { + return $routingResults; + } + } + + // If nothing else matches, try fallback routes + $routingResults = $this->routingResults('*', $uri); + if ($routingResults[0] === self::FOUND) { + return $routingResults; + } + + if (!empty($this->getAllowedMethods($uri))) { + return [self::METHOD_NOT_ALLOWED, null, []]; + } + + return [self::NOT_FOUND, null, []]; + } + + /** + * @param string $httpMethod + * @param string $uri + * + * @return array{int, string|null, array} + */ + private function routingResults(string $httpMethod, string $uri): array + { + if (isset($this->staticRouteMap[$httpMethod][$uri])) { + /** @var string $routeIdentifier */ + $routeIdentifier = $this->staticRouteMap[$httpMethod][$uri]; + return [self::FOUND, $routeIdentifier, []]; + } + + if (isset($this->variableRouteData[$httpMethod])) { + /** @var array{0: int, 1?: string, 2?: array} $result */ + $result = $this->dispatchVariableRoute($this->variableRouteData[$httpMethod], $uri); + if ($result[0] === self::FOUND) { + /** @var array{int, string, array} $result */ + return [self::FOUND, $result[1], $result[2]]; + } + } + + return [self::NOT_FOUND, null, []]; + } + + /** + * @param string $uri + * + * @return string[] + */ + public function getAllowedMethods(string $uri): array + { + if (isset($this->allowedMethods[$uri])) { + return $this->allowedMethods[$uri]; + } + + $this->allowedMethods[$uri] = []; + foreach ($this->staticRouteMap as $method => $uriMap) { + if (isset($uriMap[$uri])) { + $this->allowedMethods[$uri][] = $method; + } + } + + foreach ($this->variableRouteData as $method => $routeData) { + $result = $this->dispatchVariableRoute($routeData, $uri); + if ($result[0] === self::FOUND) { + $this->allowedMethods[$uri][] = $method; + } + } + + return $this->allowedMethods[$uri]; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/Route.php b/Sources/API/vendor/slim/slim/Slim/Routing/Route.php new file mode 100644 index 0000000..c498423 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/Route.php @@ -0,0 +1,360 @@ + + */ + protected array $arguments = []; + + /** + * Route arguments parameters + * + * @var string[] + */ + protected array $savedArguments = []; + + /** + * Container + */ + protected ?ContainerInterface $container = null; + + protected MiddlewareDispatcher $middlewareDispatcher; + + /** + * Route callable + * + * @var callable|string + */ + protected $callable; + + protected CallableResolverInterface $callableResolver; + + protected ResponseFactoryInterface $responseFactory; + + /** + * Route pattern + */ + protected string $pattern; + + protected bool $groupMiddlewareAppended = false; + + /** + * @param string[] $methods The route HTTP methods + * @param string $pattern The route pattern + * @param callable|string $callable The route callable + * @param ResponseFactoryInterface $responseFactory + * @param CallableResolverInterface $callableResolver + * @param ContainerInterface|null $container + * @param InvocationStrategyInterface|null $invocationStrategy + * @param RouteGroup[] $groups The parent route groups + * @param int $identifier The route identifier + */ + public function __construct( + array $methods, + string $pattern, + $callable, + ResponseFactoryInterface $responseFactory, + CallableResolverInterface $callableResolver, + ?ContainerInterface $container = null, + ?InvocationStrategyInterface $invocationStrategy = null, + array $groups = [], + int $identifier = 0 + ) { + $this->methods = $methods; + $this->pattern = $pattern; + $this->callable = $callable; + $this->responseFactory = $responseFactory; + $this->callableResolver = $callableResolver; + $this->container = $container; + $this->invocationStrategy = $invocationStrategy ?? new RequestResponse(); + $this->groups = $groups; + $this->identifier = 'route' . $identifier; + $this->middlewareDispatcher = new MiddlewareDispatcher($this, $callableResolver, $container); + } + + public function getCallableResolver(): CallableResolverInterface + { + return $this->callableResolver; + } + + /** + * {@inheritdoc} + */ + public function getInvocationStrategy(): InvocationStrategyInterface + { + return $this->invocationStrategy; + } + + /** + * {@inheritdoc} + */ + public function setInvocationStrategy(InvocationStrategyInterface $invocationStrategy): RouteInterface + { + $this->invocationStrategy = $invocationStrategy; + return $this; + } + + /** + * {@inheritdoc} + */ + public function getMethods(): array + { + return $this->methods; + } + + /** + * {@inheritdoc} + */ + public function getPattern(): string + { + return $this->pattern; + } + + /** + * {@inheritdoc} + */ + public function setPattern(string $pattern): RouteInterface + { + $this->pattern = $pattern; + return $this; + } + + /** + * {@inheritdoc} + */ + public function getCallable() + { + return $this->callable; + } + + /** + * {@inheritdoc} + */ + public function setCallable($callable): RouteInterface + { + $this->callable = $callable; + return $this; + } + + /** + * {@inheritdoc} + */ + public function getName(): ?string + { + return $this->name; + } + + /** + * {@inheritdoc} + */ + public function setName(string $name): RouteInterface + { + $this->name = $name; + return $this; + } + + /** + * {@inheritdoc} + */ + public function getIdentifier(): string + { + return $this->identifier; + } + + /** + * {@inheritdoc} + */ + public function getArgument(string $name, ?string $default = null): ?string + { + if (array_key_exists($name, $this->arguments)) { + return $this->arguments[$name]; + } + return $default; + } + + /** + * {@inheritdoc} + */ + public function getArguments(): array + { + return $this->arguments; + } + + /** + * {@inheritdoc} + */ + public function setArguments(array $arguments, bool $includeInSavedArguments = true): RouteInterface + { + if ($includeInSavedArguments) { + $this->savedArguments = $arguments; + } + + $this->arguments = $arguments; + return $this; + } + + /** + * @return RouteGroupInterface[] + */ + public function getGroups(): array + { + return $this->groups; + } + + /** + * {@inheritdoc} + */ + public function add($middleware): RouteInterface + { + $this->middlewareDispatcher->add($middleware); + return $this; + } + + /** + * {@inheritdoc} + */ + public function addMiddleware(MiddlewareInterface $middleware): RouteInterface + { + $this->middlewareDispatcher->addMiddleware($middleware); + return $this; + } + + /** + * {@inheritdoc} + */ + public function prepare(array $arguments): RouteInterface + { + $this->arguments = array_replace($this->savedArguments, $arguments); + return $this; + } + + /** + * {@inheritdoc} + */ + public function setArgument(string $name, string $value, bool $includeInSavedArguments = true): RouteInterface + { + if ($includeInSavedArguments) { + $this->savedArguments[$name] = $value; + } + + $this->arguments[$name] = $value; + return $this; + } + + /** + * {@inheritdoc} + */ + public function run(ServerRequestInterface $request): ResponseInterface + { + if (!$this->groupMiddlewareAppended) { + $this->appendGroupMiddlewareToRoute(); + } + + return $this->middlewareDispatcher->handle($request); + } + + /** + * @return void + */ + protected function appendGroupMiddlewareToRoute(): void + { + $inner = $this->middlewareDispatcher; + $this->middlewareDispatcher = new MiddlewareDispatcher($inner, $this->callableResolver, $this->container); + + /** @var RouteGroupInterface $group */ + foreach (array_reverse($this->groups) as $group) { + $group->appendMiddlewareToDispatcher($this->middlewareDispatcher); + } + + $this->groupMiddlewareAppended = true; + } + + /** + * {@inheritdoc} + */ + public function handle(ServerRequestInterface $request): ResponseInterface + { + if ($this->callableResolver instanceof AdvancedCallableResolverInterface) { + $callable = $this->callableResolver->resolveRoute($this->callable); + } else { + $callable = $this->callableResolver->resolve($this->callable); + } + $strategy = $this->invocationStrategy; + + /** @var string[] $strategyImplements */ + $strategyImplements = class_implements($strategy); + + if ( + is_array($callable) + && $callable[0] instanceof RequestHandlerInterface + && !in_array(RequestHandlerInvocationStrategyInterface::class, $strategyImplements) + ) { + $strategy = new RequestHandler(); + } + + $response = $this->responseFactory->createResponse(); + return $strategy($callable, $request, $response, $this->arguments); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/RouteCollector.php b/Sources/API/vendor/slim/slim/Slim/Routing/RouteCollector.php new file mode 100644 index 0000000..4a74285 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/RouteCollector.php @@ -0,0 +1,280 @@ +responseFactory = $responseFactory; + $this->callableResolver = $callableResolver; + $this->container = $container; + $this->defaultInvocationStrategy = $defaultInvocationStrategy ?? new RequestResponse(); + $this->routeParser = $routeParser ?? new RouteParser($this); + + if ($cacheFile) { + $this->setCacheFile($cacheFile); + } + } + + public function getRouteParser(): RouteParserInterface + { + return $this->routeParser; + } + + /** + * Get default route invocation strategy + */ + public function getDefaultInvocationStrategy(): InvocationStrategyInterface + { + return $this->defaultInvocationStrategy; + } + + public function setDefaultInvocationStrategy(InvocationStrategyInterface $strategy): RouteCollectorInterface + { + $this->defaultInvocationStrategy = $strategy; + return $this; + } + + /** + * {@inheritdoc} + */ + public function getCacheFile(): ?string + { + return $this->cacheFile; + } + + /** + * {@inheritdoc} + */ + public function setCacheFile(string $cacheFile): RouteCollectorInterface + { + if (file_exists($cacheFile) && !is_readable($cacheFile)) { + throw new RuntimeException( + sprintf('Route collector cache file `%s` is not readable', $cacheFile) + ); + } + + if (!file_exists($cacheFile) && !is_writable(dirname($cacheFile))) { + throw new RuntimeException( + sprintf('Route collector cache file directory `%s` is not writable', dirname($cacheFile)) + ); + } + + $this->cacheFile = $cacheFile; + return $this; + } + + /** + * {@inheritdoc} + */ + public function getBasePath(): string + { + return $this->basePath; + } + + /** + * Set the base path used in urlFor() + */ + public function setBasePath(string $basePath): RouteCollectorInterface + { + $this->basePath = $basePath; + + return $this; + } + + /** + * {@inheritdoc} + */ + public function getRoutes(): array + { + return $this->routes; + } + + /** + * {@inheritdoc} + */ + public function removeNamedRoute(string $name): RouteCollectorInterface + { + $route = $this->getNamedRoute($name); + + unset($this->routesByName[$route->getName()], $this->routes[$route->getIdentifier()]); + return $this; + } + + /** + * {@inheritdoc} + */ + public function getNamedRoute(string $name): RouteInterface + { + if (isset($this->routesByName[$name])) { + $route = $this->routesByName[$name]; + if ($route->getName() === $name) { + return $route; + } + + unset($this->routesByName[$name]); + } + + foreach ($this->routes as $route) { + if ($name === $route->getName()) { + $this->routesByName[$name] = $route; + return $route; + } + } + + throw new RuntimeException('Named route does not exist for name: ' . $name); + } + + /** + * {@inheritdoc} + */ + public function lookupRoute(string $identifier): RouteInterface + { + if (!isset($this->routes[$identifier])) { + throw new RuntimeException('Route not found, looks like your route cache is stale.'); + } + return $this->routes[$identifier]; + } + + /** + * {@inheritdoc} + */ + public function group(string $pattern, $callable): RouteGroupInterface + { + $routeCollectorProxy = new RouteCollectorProxy( + $this->responseFactory, + $this->callableResolver, + $this->container, + $this, + $pattern + ); + + $routeGroup = new RouteGroup($pattern, $callable, $this->callableResolver, $routeCollectorProxy); + $this->routeGroups[] = $routeGroup; + + $routeGroup->collectRoutes(); + array_pop($this->routeGroups); + + return $routeGroup; + } + + /** + * {@inheritdoc} + */ + public function map(array $methods, string $pattern, $handler): RouteInterface + { + $route = $this->createRoute($methods, $pattern, $handler); + $this->routes[$route->getIdentifier()] = $route; + + $routeName = $route->getName(); + if ($routeName !== null && !isset($this->routesByName[$routeName])) { + $this->routesByName[$routeName] = $route; + } + + $this->routeCounter++; + + return $route; + } + + /** + * @param string[] $methods + * @param callable|string $callable + */ + protected function createRoute(array $methods, string $pattern, $callable): RouteInterface + { + return new Route( + $methods, + $pattern, + $callable, + $this->responseFactory, + $this->callableResolver, + $this->container, + $this->defaultInvocationStrategy, + $this->routeGroups, + $this->routeCounter + ); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/RouteCollectorProxy.php b/Sources/API/vendor/slim/slim/Slim/Routing/RouteCollectorProxy.php new file mode 100644 index 0000000..f8bc232 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/RouteCollectorProxy.php @@ -0,0 +1,187 @@ +responseFactory = $responseFactory; + $this->callableResolver = $callableResolver; + $this->container = $container; + $this->routeCollector = $routeCollector ?? new RouteCollector($responseFactory, $callableResolver, $container); + $this->groupPattern = $groupPattern; + } + + /** + * {@inheritdoc} + */ + public function getResponseFactory(): ResponseFactoryInterface + { + return $this->responseFactory; + } + + /** + * {@inheritdoc} + */ + public function getCallableResolver(): CallableResolverInterface + { + return $this->callableResolver; + } + + /** + * {@inheritdoc} + */ + public function getContainer(): ?ContainerInterface + { + return $this->container; + } + + /** + * {@inheritdoc} + */ + public function getRouteCollector(): RouteCollectorInterface + { + return $this->routeCollector; + } + + /** + * {@inheritdoc} + */ + public function getBasePath(): string + { + return $this->routeCollector->getBasePath(); + } + + /** + * {@inheritdoc} + */ + public function setBasePath(string $basePath): RouteCollectorProxyInterface + { + $this->routeCollector->setBasePath($basePath); + + return $this; + } + + /** + * {@inheritdoc} + */ + public function get(string $pattern, $callable): RouteInterface + { + return $this->map(['GET'], $pattern, $callable); + } + + /** + * {@inheritdoc} + */ + public function post(string $pattern, $callable): RouteInterface + { + return $this->map(['POST'], $pattern, $callable); + } + + /** + * {@inheritdoc} + */ + public function put(string $pattern, $callable): RouteInterface + { + return $this->map(['PUT'], $pattern, $callable); + } + + /** + * {@inheritdoc} + */ + public function patch(string $pattern, $callable): RouteInterface + { + return $this->map(['PATCH'], $pattern, $callable); + } + + /** + * {@inheritdoc} + */ + public function delete(string $pattern, $callable): RouteInterface + { + return $this->map(['DELETE'], $pattern, $callable); + } + + /** + * {@inheritdoc} + */ + public function options(string $pattern, $callable): RouteInterface + { + return $this->map(['OPTIONS'], $pattern, $callable); + } + + /** + * {@inheritdoc} + */ + public function any(string $pattern, $callable): RouteInterface + { + return $this->map(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'], $pattern, $callable); + } + + /** + * {@inheritdoc} + */ + public function map(array $methods, string $pattern, $callable): RouteInterface + { + $pattern = $this->groupPattern . $pattern; + + return $this->routeCollector->map($methods, $pattern, $callable); + } + + /** + * {@inheritdoc} + */ + public function group(string $pattern, $callable): RouteGroupInterface + { + $pattern = $this->groupPattern . $pattern; + + return $this->routeCollector->group($pattern, $callable); + } + + /** + * {@inheritdoc} + */ + public function redirect(string $from, $to, int $status = 302): RouteInterface + { + $responseFactory = $this->responseFactory; + + $handler = function () use ($to, $status, $responseFactory) { + $response = $responseFactory->createResponse($status); + return $response->withHeader('Location', (string) $to); + }; + + return $this->get($from, $handler); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/RouteContext.php b/Sources/API/vendor/slim/slim/Slim/Routing/RouteContext.php new file mode 100644 index 0000000..3ba5e23 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/RouteContext.php @@ -0,0 +1,88 @@ +getAttribute(self::ROUTE); + $routeParser = $serverRequest->getAttribute(self::ROUTE_PARSER); + $routingResults = $serverRequest->getAttribute(self::ROUTING_RESULTS); + $basePath = $serverRequest->getAttribute(self::BASE_PATH); + + if ($routeParser === null || $routingResults === null) { + throw new RuntimeException('Cannot create RouteContext before routing has been completed'); + } + + /** @var RouteInterface|null $route */ + /** @var RouteParserInterface $routeParser */ + /** @var RoutingResults $routingResults */ + /** @var string|null $basePath */ + return new self($route, $routeParser, $routingResults, $basePath); + } + + private ?RouteInterface $route; + + private RouteParserInterface $routeParser; + + private RoutingResults $routingResults; + + private ?string $basePath; + + private function __construct( + ?RouteInterface $route, + RouteParserInterface $routeParser, + RoutingResults $routingResults, + ?string $basePath = null + ) { + $this->route = $route; + $this->routeParser = $routeParser; + $this->routingResults = $routingResults; + $this->basePath = $basePath; + } + + public function getRoute(): ?RouteInterface + { + return $this->route; + } + + public function getRouteParser(): RouteParserInterface + { + return $this->routeParser; + } + + public function getRoutingResults(): RoutingResults + { + return $this->routingResults; + } + + public function getBasePath(): string + { + if ($this->basePath === null) { + throw new RuntimeException('No base path defined.'); + } + return $this->basePath; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/RouteGroup.php b/Sources/API/vendor/slim/slim/Slim/Routing/RouteGroup.php new file mode 100644 index 0000000..cd2f4e7 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/RouteGroup.php @@ -0,0 +1,104 @@ +pattern = $pattern; + $this->callable = $callable; + $this->callableResolver = $callableResolver; + $this->routeCollectorProxy = $routeCollectorProxy; + } + + /** + * {@inheritdoc} + */ + public function collectRoutes(): RouteGroupInterface + { + if ($this->callableResolver instanceof AdvancedCallableResolverInterface) { + $callable = $this->callableResolver->resolveRoute($this->callable); + } else { + $callable = $this->callableResolver->resolve($this->callable); + } + $callable($this->routeCollectorProxy); + return $this; + } + + /** + * {@inheritdoc} + */ + public function add($middleware): RouteGroupInterface + { + $this->middleware[] = $middleware; + return $this; + } + + /** + * {@inheritdoc} + */ + public function addMiddleware(MiddlewareInterface $middleware): RouteGroupInterface + { + $this->middleware[] = $middleware; + return $this; + } + + /** + * {@inheritdoc} + */ + public function appendMiddlewareToDispatcher(MiddlewareDispatcher $dispatcher): RouteGroupInterface + { + foreach ($this->middleware as $middleware) { + $dispatcher->add($middleware); + } + + return $this; + } + + /** + * {@inheritdoc} + */ + public function getPattern(): string + { + return $this->pattern; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/RouteParser.php b/Sources/API/vendor/slim/slim/Slim/Routing/RouteParser.php new file mode 100644 index 0000000..afb533c --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/RouteParser.php @@ -0,0 +1,127 @@ +routeCollector = $routeCollector; + $this->routeParser = new Std(); + } + + /** + * {@inheritdoc} + */ + public function relativeUrlFor(string $routeName, array $data = [], array $queryParams = []): string + { + $route = $this->routeCollector->getNamedRoute($routeName); + $pattern = $route->getPattern(); + + $segments = []; + $segmentName = ''; + + /* + * $routes is an associative array of expressions representing a route as multiple segments + * There is an expression for each optional parameter plus one without the optional parameters + * The most specific is last, hence why we reverse the array before iterating over it + */ + $expressions = array_reverse($this->routeParser->parse($pattern)); + foreach ($expressions as $expression) { + foreach ($expression as $segment) { + /* + * Each $segment is either a string or an array of strings + * containing optional parameters of an expression + */ + if (is_string($segment)) { + $segments[] = $segment; + continue; + } + + /** @var string[] $segment */ + /* + * If we don't have a data element for this segment in the provided $data + * we cancel testing to move onto the next expression with a less specific item + */ + if (!array_key_exists($segment[0], $data)) { + $segments = []; + $segmentName = $segment[0]; + break; + } + + $segments[] = $data[$segment[0]]; + } + + /* + * If we get to this logic block we have found all the parameters + * for the provided $data which means we don't need to continue testing + * less specific expressions + */ + if (!empty($segments)) { + break; + } + } + + if (empty($segments)) { + throw new InvalidArgumentException('Missing data for URL segment: ' . $segmentName); + } + + $url = implode('', $segments); + if ($queryParams) { + $url .= '?' . http_build_query($queryParams); + } + + return $url; + } + + /** + * {@inheritdoc} + */ + public function urlFor(string $routeName, array $data = [], array $queryParams = []): string + { + $basePath = $this->routeCollector->getBasePath(); + $url = $this->relativeUrlFor($routeName, $data, $queryParams); + + if ($basePath) { + $url = $basePath . $url; + } + + return $url; + } + + /** + * {@inheritdoc} + */ + public function fullUrlFor(UriInterface $uri, string $routeName, array $data = [], array $queryParams = []): string + { + $path = $this->urlFor($routeName, $data, $queryParams); + $scheme = $uri->getScheme(); + $authority = $uri->getAuthority(); + $protocol = ($scheme ? $scheme . ':' : '') . ($authority ? '//' . $authority : ''); + return $protocol . $path; + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/RouteResolver.php b/Sources/API/vendor/slim/slim/Slim/Routing/RouteResolver.php new file mode 100644 index 0000000..d4f4eaf --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/RouteResolver.php @@ -0,0 +1,56 @@ +routeCollector = $routeCollector; + $this->dispatcher = $dispatcher ?? new Dispatcher($routeCollector); + } + + /** + * @param string $uri Should be $request->getUri()->getPath() + */ + public function computeRoutingResults(string $uri, string $method): RoutingResults + { + $uri = rawurldecode($uri); + if ($uri === '' || $uri[0] !== '/') { + $uri = '/' . $uri; + } + return $this->dispatcher->dispatch($method, $uri); + } + + /** + * @throws RuntimeException + */ + public function resolveRoute(string $identifier): RouteInterface + { + return $this->routeCollector->lookupRoute($identifier); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/RouteRunner.php b/Sources/API/vendor/slim/slim/Slim/Routing/RouteRunner.php new file mode 100644 index 0000000..40946af --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/RouteRunner.php @@ -0,0 +1,70 @@ +routeResolver = $routeResolver; + $this->routeParser = $routeParser; + $this->routeCollectorProxy = $routeCollectorProxy; + } + + /** + * This request handler is instantiated automatically in App::__construct() + * It is at the very tip of the middleware queue meaning it will be executed + * last and it detects whether or not routing has been performed in the user + * defined middleware stack. In the event that the user did not perform routing + * it is done here + * + * @throws HttpNotFoundException + * @throws HttpMethodNotAllowedException + */ + public function handle(ServerRequestInterface $request): ResponseInterface + { + // If routing hasn't been done, then do it now so we can dispatch + if ($request->getAttribute(RouteContext::ROUTING_RESULTS) === null) { + $routingMiddleware = new RoutingMiddleware($this->routeResolver, $this->routeParser); + $request = $routingMiddleware->performRouting($request); + } + + if ($this->routeCollectorProxy !== null) { + $request = $request->withAttribute( + RouteContext::BASE_PATH, + $this->routeCollectorProxy->getBasePath() + ); + } + + /** @var Route $route */ + $route = $request->getAttribute(RouteContext::ROUTE); + return $route->run($request); + } +} diff --git a/Sources/API/vendor/slim/slim/Slim/Routing/RoutingResults.php b/Sources/API/vendor/slim/slim/Slim/Routing/RoutingResults.php new file mode 100644 index 0000000..ac2fa64 --- /dev/null +++ b/Sources/API/vendor/slim/slim/Slim/Routing/RoutingResults.php @@ -0,0 +1,112 @@ + + */ + protected array $routeArguments; + + /** + * @param array $routeArguments + */ + public function __construct( + DispatcherInterface $dispatcher, + string $method, + string $uri, + int $routeStatus, + ?string $routeIdentifier = null, + array $routeArguments = [] + ) { + $this->dispatcher = $dispatcher; + $this->method = $method; + $this->uri = $uri; + $this->routeStatus = $routeStatus; + $this->routeIdentifier = $routeIdentifier; + $this->routeArguments = $routeArguments; + } + + public function getDispatcher(): DispatcherInterface + { + return $this->dispatcher; + } + + public function getMethod(): string + { + return $this->method; + } + + public function getUri(): string + { + return $this->uri; + } + + public function getRouteStatus(): int + { + return $this->routeStatus; + } + + public function getRouteIdentifier(): ?string + { + return $this->routeIdentifier; + } + + /** + * @return array + */ + public function getRouteArguments(bool $urlDecode = true): array + { + if (!$urlDecode) { + return $this->routeArguments; + } + + $routeArguments = []; + foreach ($this->routeArguments as $key => $value) { + $routeArguments[$key] = rawurldecode($value); + } + + return $routeArguments; + } + + /** + * @return string[] + */ + public function getAllowedMethods(): array + { + return $this->dispatcher->getAllowedMethods($this->uri); + } +} diff --git a/Sources/API/vendor/slim/slim/composer.json b/Sources/API/vendor/slim/slim/composer.json new file mode 100644 index 0000000..31e8b55 --- /dev/null +++ b/Sources/API/vendor/slim/slim/composer.json @@ -0,0 +1,102 @@ +{ + "name": "slim/slim", + "type": "library", + "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs", + "keywords": ["framework","micro","api","router"], + "homepage": "https://www.slimframework.com", + "license": "MIT", + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "https://joshlockhart.com" + }, + { + "name": "Andrew Smith", + "email": "a.smith@silentworks.co.uk", + "homepage": "http://silentworks.co.uk" + }, + { + "name": "Rob Allen", + "email": "rob@akrabat.com", + "homepage": "http://akrabat.com" + }, + { + "name": "Pierre Berube", + "email": "pierre@lgse.com", + "homepage": "http://www.lgse.com" + }, + { + "name": "Gabriel Manricks", + "email": "gmanricks@me.com", + "homepage": "http://gabrielmanricks.com" + } + ], + "support": { + "docs": "https://www.slimframework.com/docs/v4/", + "forum": "https://discourse.slimframework.com/", + "irc": "irc://irc.freenode.net:6667/slimphp", + "issues": "https://github.com/slimphp/Slim/issues", + "rss": "https://www.slimframework.com/blog/feed.rss", + "slack": "https://slimphp.slack.com/", + "source": "https://github.com/slimphp/Slim", + "wiki": "https://github.com/slimphp/Slim/wiki" + }, + "require": { + "php": "^7.4 || ^8.0", + "ext-json": "*", + "nikic/fast-route": "^1.3", + "psr/container": "^1.0 || ^2.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "ext-simplexml": "*", + "adriansuter/php-autoload-override": "^1.3", + "guzzlehttp/psr7": "^2.4", + "httpsoft/http-message": "^1.0", + "httpsoft/http-server-request": "^1.0", + "laminas/laminas-diactoros": "^2.17", + "nyholm/psr7": "^1.5", + "nyholm/psr7-server": "^1.0", + "phpspec/prophecy": "^1.15", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "slim/http": "^1.2", + "slim/psr7": "^1.5", + "squizlabs/php_codesniffer": "^3.7" + }, + "autoload": { + "psr-4": { + "Slim\\": "Slim" + } + }, + "autoload-dev": { + "psr-4": { + "Slim\\Tests\\": "tests" + } + }, + "scripts": { + "test": [ + "@phpunit", + "@phpcs", + "@phpstan" + ], + "phpunit": "phpunit", + "phpcs": "phpcs", + "phpstan": "phpstan --memory-limit=-1" + }, + "suggest": { + "ext-simplexml": "Needed to support XML format in BodyParsingMiddleware", + "ext-xml": "Needed to support XML format in BodyParsingMiddleware", + "slim/psr7": "Slim PSR-7 implementation. See https://www.slimframework.com/docs/v4/start/installation.html for more information.", + "php-di/php-di": "PHP-DI is the recommended container library to be used with Slim" + }, + "config": { + "sort-packages": true + } +} diff --git a/Sources/API/vendor/symfony/polyfill-php80/LICENSE b/Sources/API/vendor/symfony/polyfill-php80/LICENSE new file mode 100644 index 0000000..5593b1d --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2020 Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Sources/API/vendor/symfony/polyfill-php80/Php80.php b/Sources/API/vendor/symfony/polyfill-php80/Php80.php new file mode 100644 index 0000000..362dd1a --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/Php80.php @@ -0,0 +1,115 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Php80; + +/** + * @author Ion Bazan + * @author Nico Oelgart + * @author Nicolas Grekas + * + * @internal + */ +final class Php80 +{ + public static function fdiv(float $dividend, float $divisor): float + { + return @($dividend / $divisor); + } + + public static function get_debug_type($value): string + { + switch (true) { + case null === $value: return 'null'; + case \is_bool($value): return 'bool'; + case \is_string($value): return 'string'; + case \is_array($value): return 'array'; + case \is_int($value): return 'int'; + case \is_float($value): return 'float'; + case \is_object($value): break; + case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class'; + default: + if (null === $type = @get_resource_type($value)) { + return 'unknown'; + } + + if ('Unknown' === $type) { + $type = 'closed'; + } + + return "resource ($type)"; + } + + $class = \get_class($value); + + if (false === strpos($class, '@')) { + return $class; + } + + return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous'; + } + + public static function get_resource_id($res): int + { + if (!\is_resource($res) && null === @get_resource_type($res)) { + throw new \TypeError(sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res))); + } + + return (int) $res; + } + + public static function preg_last_error_msg(): string + { + switch (preg_last_error()) { + case \PREG_INTERNAL_ERROR: + return 'Internal error'; + case \PREG_BAD_UTF8_ERROR: + return 'Malformed UTF-8 characters, possibly incorrectly encoded'; + case \PREG_BAD_UTF8_OFFSET_ERROR: + return 'The offset did not correspond to the beginning of a valid UTF-8 code point'; + case \PREG_BACKTRACK_LIMIT_ERROR: + return 'Backtrack limit exhausted'; + case \PREG_RECURSION_LIMIT_ERROR: + return 'Recursion limit exhausted'; + case \PREG_JIT_STACKLIMIT_ERROR: + return 'JIT stack limit exhausted'; + case \PREG_NO_ERROR: + return 'No error'; + default: + return 'Unknown error'; + } + } + + public static function str_contains(string $haystack, string $needle): bool + { + return '' === $needle || false !== strpos($haystack, $needle); + } + + public static function str_starts_with(string $haystack, string $needle): bool + { + return 0 === strncmp($haystack, $needle, \strlen($needle)); + } + + public static function str_ends_with(string $haystack, string $needle): bool + { + if ('' === $needle || $needle === $haystack) { + return true; + } + + if ('' === $haystack) { + return false; + } + + $needleLength = \strlen($needle); + + return $needleLength <= \strlen($haystack) && 0 === substr_compare($haystack, $needle, -$needleLength); + } +} diff --git a/Sources/API/vendor/symfony/polyfill-php80/PhpToken.php b/Sources/API/vendor/symfony/polyfill-php80/PhpToken.php new file mode 100644 index 0000000..fe6e691 --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/PhpToken.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Polyfill\Php80; + +/** + * @author Fedonyuk Anton + * + * @internal + */ +class PhpToken implements \Stringable +{ + /** + * @var int + */ + public $id; + + /** + * @var string + */ + public $text; + + /** + * @var int + */ + public $line; + + /** + * @var int + */ + public $pos; + + public function __construct(int $id, string $text, int $line = -1, int $position = -1) + { + $this->id = $id; + $this->text = $text; + $this->line = $line; + $this->pos = $position; + } + + public function getTokenName(): ?string + { + if ('UNKNOWN' === $name = token_name($this->id)) { + $name = \strlen($this->text) > 1 || \ord($this->text) < 32 ? null : $this->text; + } + + return $name; + } + + /** + * @param int|string|array $kind + */ + public function is($kind): bool + { + foreach ((array) $kind as $value) { + if (\in_array($value, [$this->id, $this->text], true)) { + return true; + } + } + + return false; + } + + public function isIgnorable(): bool + { + return \in_array($this->id, [\T_WHITESPACE, \T_COMMENT, \T_DOC_COMMENT, \T_OPEN_TAG], true); + } + + public function __toString(): string + { + return (string) $this->text; + } + + /** + * @return static[] + */ + public static function tokenize(string $code, int $flags = 0): array + { + $line = 1; + $position = 0; + $tokens = token_get_all($code, $flags); + foreach ($tokens as $index => $token) { + if (\is_string($token)) { + $id = \ord($token); + $text = $token; + } else { + [$id, $text, $line] = $token; + } + $tokens[$index] = new static($id, $text, $line, $position); + $position += \strlen($text); + } + + return $tokens; + } +} diff --git a/Sources/API/vendor/symfony/polyfill-php80/README.md b/Sources/API/vendor/symfony/polyfill-php80/README.md new file mode 100644 index 0000000..3816c55 --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/README.md @@ -0,0 +1,25 @@ +Symfony Polyfill / Php80 +======================== + +This component provides features added to PHP 8.0 core: + +- [`Stringable`](https://php.net/stringable) interface +- [`fdiv`](https://php.net/fdiv) +- [`ValueError`](https://php.net/valueerror) class +- [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class +- `FILTER_VALIDATE_BOOL` constant +- [`get_debug_type`](https://php.net/get_debug_type) +- [`PhpToken`](https://php.net/phptoken) class +- [`preg_last_error_msg`](https://php.net/preg_last_error_msg) +- [`str_contains`](https://php.net/str_contains) +- [`str_starts_with`](https://php.net/str_starts_with) +- [`str_ends_with`](https://php.net/str_ends_with) +- [`get_resource_id`](https://php.net/get_resource_id) + +More information can be found in the +[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). + +License +======= + +This library is released under the [MIT license](LICENSE). diff --git a/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php new file mode 100644 index 0000000..2b95542 --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +#[Attribute(Attribute::TARGET_CLASS)] +final class Attribute +{ + public const TARGET_CLASS = 1; + public const TARGET_FUNCTION = 2; + public const TARGET_METHOD = 4; + public const TARGET_PROPERTY = 8; + public const TARGET_CLASS_CONSTANT = 16; + public const TARGET_PARAMETER = 32; + public const TARGET_ALL = 63; + public const IS_REPEATABLE = 64; + + /** @var int */ + public $flags; + + public function __construct(int $flags = self::TARGET_ALL) + { + $this->flags = $flags; + } +} diff --git a/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php new file mode 100644 index 0000000..bd1212f --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (\PHP_VERSION_ID < 80000 && extension_loaded('tokenizer')) { + class PhpToken extends Symfony\Polyfill\Php80\PhpToken + { + } +} diff --git a/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php new file mode 100644 index 0000000..7c62d75 --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php @@ -0,0 +1,20 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (\PHP_VERSION_ID < 80000) { + interface Stringable + { + /** + * @return string + */ + public function __toString(); + } +} diff --git a/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php new file mode 100644 index 0000000..01c6c6c --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (\PHP_VERSION_ID < 80000) { + class UnhandledMatchError extends Error + { + } +} diff --git a/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php new file mode 100644 index 0000000..783dbc2 --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (\PHP_VERSION_ID < 80000) { + class ValueError extends Error + { + } +} diff --git a/Sources/API/vendor/symfony/polyfill-php80/bootstrap.php b/Sources/API/vendor/symfony/polyfill-php80/bootstrap.php new file mode 100644 index 0000000..e5f7dbc --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/bootstrap.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Symfony\Polyfill\Php80 as p; + +if (\PHP_VERSION_ID >= 80000) { + return; +} + +if (!defined('FILTER_VALIDATE_BOOL') && defined('FILTER_VALIDATE_BOOLEAN')) { + define('FILTER_VALIDATE_BOOL', \FILTER_VALIDATE_BOOLEAN); +} + +if (!function_exists('fdiv')) { + function fdiv(float $num1, float $num2): float { return p\Php80::fdiv($num1, $num2); } +} +if (!function_exists('preg_last_error_msg')) { + function preg_last_error_msg(): string { return p\Php80::preg_last_error_msg(); } +} +if (!function_exists('str_contains')) { + function str_contains(?string $haystack, ?string $needle): bool { return p\Php80::str_contains($haystack ?? '', $needle ?? ''); } +} +if (!function_exists('str_starts_with')) { + function str_starts_with(?string $haystack, ?string $needle): bool { return p\Php80::str_starts_with($haystack ?? '', $needle ?? ''); } +} +if (!function_exists('str_ends_with')) { + function str_ends_with(?string $haystack, ?string $needle): bool { return p\Php80::str_ends_with($haystack ?? '', $needle ?? ''); } +} +if (!function_exists('get_debug_type')) { + function get_debug_type($value): string { return p\Php80::get_debug_type($value); } +} +if (!function_exists('get_resource_id')) { + function get_resource_id($resource): int { return p\Php80::get_resource_id($resource); } +} diff --git a/Sources/API/vendor/symfony/polyfill-php80/composer.json b/Sources/API/vendor/symfony/polyfill-php80/composer.json new file mode 100644 index 0000000..bd9a326 --- /dev/null +++ b/Sources/API/vendor/symfony/polyfill-php80/composer.json @@ -0,0 +1,40 @@ +{ + "name": "symfony/polyfill-php80", + "type": "library", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "keywords": ["polyfill", "shim", "compatibility", "portable"], + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=7.1" + }, + "autoload": { + "psr-4": { "Symfony\\Polyfill\\Php80\\": "" }, + "files": [ "bootstrap.php" ], + "classmap": [ "Resources/stubs" ] + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + } +}