@valkyrjaio/valkyrja 26.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +136 -0
- package/package.json +63 -0
- package/src/Valkyrja/Application/Constant/ApplicationInfo.ts +26 -0
- package/src/Valkyrja/Application/Constant/ApplicationServiceId.ts +16 -0
- package/src/Valkyrja/Application/Data/CliConfig.ts +51 -0
- package/src/Valkyrja/Application/Data/Config.ts +31 -0
- package/src/Valkyrja/Application/Data/Contract/CliConfigContract.ts +27 -0
- package/src/Valkyrja/Application/Data/Contract/ConfigContract.ts +31 -0
- package/src/Valkyrja/Application/Data/Contract/HttpConfigContract.ts +26 -0
- package/src/Valkyrja/Application/Data/HttpConfig.ts +41 -0
- package/src/Valkyrja/Application/Directory/Directory.ts +80 -0
- package/src/Valkyrja/Application/Entry/Abstract/App.ts +117 -0
- package/src/Valkyrja/Application/Entry/Abstract/WorkerHttp.ts +83 -0
- package/src/Valkyrja/Application/Entry/Cli.ts +34 -0
- package/src/Valkyrja/Application/Entry/Http.ts +41 -0
- package/src/Valkyrja/Application/Kernel/ChildApplication.ts +63 -0
- package/src/Valkyrja/Application/Kernel/Contract/ApplicationContract.ts +34 -0
- package/src/Valkyrja/Application/Kernel/Valkyrja.ts +141 -0
- package/src/Valkyrja/Application/Provider/ApplicationComponentProvider.ts +39 -0
- package/src/Valkyrja/Application/Provider/CliApplicationComponentProvider.ts +30 -0
- package/src/Valkyrja/Application/Provider/CliWithHttpApplicationComponentProvider.ts +32 -0
- package/src/Valkyrja/Application/Provider/Contract/ComponentProviderContract.ts +28 -0
- package/src/Valkyrja/Application/Provider/Contract/PublishableComponentProviderContract.ts +20 -0
- package/src/Valkyrja/Application/Provider/HttpApplicationComponentProvider.ts +20 -0
- package/src/Valkyrja/Application/Throwable/Contract/ApplicationThrowable.ts +12 -0
- package/src/Valkyrja/Application/Throwable/Exception/Abstract/ApplicationInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Application/Throwable/Exception/Abstract/ApplicationRuntimeException.ts +14 -0
- package/src/Valkyrja/Cli/Interaction/Argument/Argument.ts +25 -0
- package/src/Valkyrja/Cli/Interaction/Argument/Contract/ArgumentContract.ts +19 -0
- package/src/Valkyrja/Cli/Interaction/Argument/Factory/ArgumentFactory.ts +16 -0
- package/src/Valkyrja/Cli/Interaction/Constant/CliInteractionServiceId.ts +16 -0
- package/src/Valkyrja/Cli/Interaction/Data/CliInteractionConfig.ts +18 -0
- package/src/Valkyrja/Cli/Interaction/Data/Contract/CliInteractionConfigContract.ts +20 -0
- package/src/Valkyrja/Cli/Interaction/Enum/BackgroundColor.ts +33 -0
- package/src/Valkyrja/Cli/Interaction/Enum/ExitCode.ts +30 -0
- package/src/Valkyrja/Cli/Interaction/Enum/OptionType.ts +13 -0
- package/src/Valkyrja/Cli/Interaction/Enum/Style.ts +33 -0
- package/src/Valkyrja/Cli/Interaction/Enum/TextColor.ts +33 -0
- package/src/Valkyrja/Cli/Interaction/Format/BackgroundColorFormat.ts +17 -0
- package/src/Valkyrja/Cli/Interaction/Format/Contract/FormatContract.ts +21 -0
- package/src/Valkyrja/Cli/Interaction/Format/Format.ts +38 -0
- package/src/Valkyrja/Cli/Interaction/Format/StyleFormat.ts +17 -0
- package/src/Valkyrja/Cli/Interaction/Format/TextColorFormat.ts +17 -0
- package/src/Valkyrja/Cli/Interaction/Formatter/Contract/FormatterContract.ts +22 -0
- package/src/Valkyrja/Cli/Interaction/Formatter/ErrorFormatter.ts +20 -0
- package/src/Valkyrja/Cli/Interaction/Formatter/Formatter.ts +46 -0
- package/src/Valkyrja/Cli/Interaction/Formatter/HighlightedTextFormatter.ts +18 -0
- package/src/Valkyrja/Cli/Interaction/Formatter/QuestionFormatter.ts +18 -0
- package/src/Valkyrja/Cli/Interaction/Formatter/SuccessFormatter.ts +20 -0
- package/src/Valkyrja/Cli/Interaction/Formatter/WarningFormatter.ts +20 -0
- package/src/Valkyrja/Cli/Interaction/Input/Contract/InputContract.ts +36 -0
- package/src/Valkyrja/Cli/Interaction/Input/Factory/InputFactory.ts +47 -0
- package/src/Valkyrja/Cli/Interaction/Input/Input.ts +106 -0
- package/src/Valkyrja/Cli/Interaction/Message/Answer.ts +130 -0
- package/src/Valkyrja/Cli/Interaction/Message/Banner.ts +41 -0
- package/src/Valkyrja/Cli/Interaction/Message/Contract/AnswerContract.ts +32 -0
- package/src/Valkyrja/Cli/Interaction/Message/Contract/MessageContract.ts +26 -0
- package/src/Valkyrja/Cli/Interaction/Message/Contract/ProgressContract.ts +23 -0
- package/src/Valkyrja/Cli/Interaction/Message/Contract/QuestionContract.ts +26 -0
- package/src/Valkyrja/Cli/Interaction/Message/ErrorMessage.ts +17 -0
- package/src/Valkyrja/Cli/Interaction/Message/Header.ts +111 -0
- package/src/Valkyrja/Cli/Interaction/Message/Message.ts +64 -0
- package/src/Valkyrja/Cli/Interaction/Message/Messages.ts +28 -0
- package/src/Valkyrja/Cli/Interaction/Message/NewLine.ts +17 -0
- package/src/Valkyrja/Cli/Interaction/Message/Progress.ts +44 -0
- package/src/Valkyrja/Cli/Interaction/Message/Question.ts +91 -0
- package/src/Valkyrja/Cli/Interaction/Message/SuccessMessage.ts +17 -0
- package/src/Valkyrja/Cli/Interaction/Message/WarningMessage.ts +17 -0
- package/src/Valkyrja/Cli/Interaction/Option/Contract/OptionContract.ts +27 -0
- package/src/Valkyrja/Cli/Interaction/Option/Factory/OptionFactory.ts +60 -0
- package/src/Valkyrja/Cli/Interaction/Option/Option.ts +61 -0
- package/src/Valkyrja/Cli/Interaction/Output/Contract/EmptyOutputContract.ts +18 -0
- package/src/Valkyrja/Cli/Interaction/Output/Contract/FileOutputContract.ts +21 -0
- package/src/Valkyrja/Cli/Interaction/Output/Contract/OutputContract.ts +41 -0
- package/src/Valkyrja/Cli/Interaction/Output/Contract/PlainOutputContract.ts +18 -0
- package/src/Valkyrja/Cli/Interaction/Output/Contract/StreamOutputContract.ts +21 -0
- package/src/Valkyrja/Cli/Interaction/Output/EmptyOutput.ts +18 -0
- package/src/Valkyrja/Cli/Interaction/Output/Factory/Contract/OutputFactoryContract.ts +38 -0
- package/src/Valkyrja/Cli/Interaction/Output/Factory/OutputFactory.ts +88 -0
- package/src/Valkyrja/Cli/Interaction/Output/FileOutput.ts +41 -0
- package/src/Valkyrja/Cli/Interaction/Output/Output.ts +163 -0
- package/src/Valkyrja/Cli/Interaction/Output/PlainOutput.ts +18 -0
- package/src/Valkyrja/Cli/Interaction/Output/StreamOutput.ts +41 -0
- package/src/Valkyrja/Cli/Interaction/Provider/CliInteractionComponentProvider.ts +39 -0
- package/src/Valkyrja/Cli/Interaction/Provider/CliInteractionServiceProvider.ts +46 -0
- package/src/Valkyrja/Cli/Interaction/Throwable/Contract/CliInteractionThrowable.ts +12 -0
- package/src/Valkyrja/Cli/Interaction/Throwable/Exception/Abstract/CliInteractionInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Cli/Interaction/Throwable/Exception/Abstract/CliInteractionRuntimeException.ts +14 -0
- package/src/Valkyrja/Cli/Interaction/Throwable/Exception/CliInteractionExpectedQuestionOutputException.ts +12 -0
- package/src/Valkyrja/Cli/Interaction/Throwable/Exception/CliInteractionInvalidEmptyValueException.ts +12 -0
- package/src/Valkyrja/Cli/Interaction/Throwable/Exception/CliInteractionInvalidNonEmptyValueException.ts +12 -0
- package/src/Valkyrja/Cli/Interaction/Throwable/Exception/CliInteractionInvalidOptionNameException.ts +12 -0
- package/src/Valkyrja/Cli/Interaction/Throwable/Exception/CliInteractionNoFormatterException.ts +12 -0
- package/src/Valkyrja/Cli/Interaction/Throwable/Exception/CliInteractionNoValidationCallableException.ts +12 -0
- package/src/Valkyrja/Cli/Interaction/Writer/Contract/WriterContract.ts +22 -0
- package/src/Valkyrja/Cli/Interaction/Writer/QuestionWriter.ts +86 -0
- package/src/Valkyrja/Cli/Middleware/Constant/CliMiddlewareServiceId.ts +22 -0
- package/src/Valkyrja/Cli/Middleware/Contract/ExitedMiddlewareContract.ts +22 -0
- package/src/Valkyrja/Cli/Middleware/Contract/InputReceivedMiddlewareContract.ts +22 -0
- package/src/Valkyrja/Cli/Middleware/Contract/RouteDispatchedMiddlewareContract.ts +28 -0
- package/src/Valkyrja/Cli/Middleware/Contract/RouteMatchedMiddlewareContract.ts +27 -0
- package/src/Valkyrja/Cli/Middleware/Contract/RouteNotMatchedMiddlewareContract.ts +26 -0
- package/src/Valkyrja/Cli/Middleware/Contract/ThrowableCaughtMiddlewareContract.ts +27 -0
- package/src/Valkyrja/Cli/Middleware/Handler/Abstract/Handler.ts +48 -0
- package/src/Valkyrja/Cli/Middleware/Handler/Contract/ExitedHandlerContract.ts +22 -0
- package/src/Valkyrja/Cli/Middleware/Handler/Contract/HandlerContract.ts +33 -0
- package/src/Valkyrja/Cli/Middleware/Handler/Contract/InputReceivedHandlerContract.ts +22 -0
- package/src/Valkyrja/Cli/Middleware/Handler/Contract/RouteDispatchedHandlerContract.ts +23 -0
- package/src/Valkyrja/Cli/Middleware/Handler/Contract/RouteMatchedHandlerContract.ts +23 -0
- package/src/Valkyrja/Cli/Middleware/Handler/Contract/RouteNotMatchedHandlerContract.ts +22 -0
- package/src/Valkyrja/Cli/Middleware/Handler/Contract/ThrowableCaughtHandlerContract.ts +22 -0
- package/src/Valkyrja/Cli/Middleware/Handler/ExitedHandler.ts +24 -0
- package/src/Valkyrja/Cli/Middleware/Handler/InputReceivedHandler.ts +24 -0
- package/src/Valkyrja/Cli/Middleware/Handler/RouteDispatchedHandler.ts +25 -0
- package/src/Valkyrja/Cli/Middleware/Handler/RouteMatchedHandler.ts +25 -0
- package/src/Valkyrja/Cli/Middleware/Handler/RouteNotMatchedHandler.ts +24 -0
- package/src/Valkyrja/Cli/Middleware/Handler/ThrowableCaughtHandler.ts +29 -0
- package/src/Valkyrja/Cli/Middleware/Provider/CliMiddlewareComponentProvider.ts +39 -0
- package/src/Valkyrja/Cli/Middleware/Provider/CliMiddlewareServiceProvider.ts +119 -0
- package/src/Valkyrja/Cli/Middleware/Throwable/Contract/CliMiddlewareThrowable.ts +12 -0
- package/src/Valkyrja/Cli/Middleware/Throwable/Exception/Abstract/CliMiddlewareInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Cli/Middleware/Throwable/Exception/Abstract/CliMiddlewareRuntimeException.ts +14 -0
- package/src/Valkyrja/Cli/Routing/Collection/Contract/RouteCollectionContract.ts +26 -0
- package/src/Valkyrja/Cli/Routing/Collection/RouteCollection.ts +60 -0
- package/src/Valkyrja/Cli/Routing/Collector/Contract/RouteCollectorContract.ts +20 -0
- package/src/Valkyrja/Cli/Routing/Constant/CliRoutingServiceId.ts +16 -0
- package/src/Valkyrja/Cli/Routing/Constant/OptionName.ts +17 -0
- package/src/Valkyrja/Cli/Routing/Constant/OptionShortName.ts +17 -0
- package/src/Valkyrja/Cli/Routing/Controller/Controller.ts +18 -0
- package/src/Valkyrja/Cli/Routing/Data/Abstract/Parameter.ts +91 -0
- package/src/Valkyrja/Cli/Routing/Data/ArgumentParameter.ts +99 -0
- package/src/Valkyrja/Cli/Routing/Data/CliRoutingData.ts +14 -0
- package/src/Valkyrja/Cli/Routing/Data/Contract/ArgumentParameterContract.ts +29 -0
- package/src/Valkyrja/Cli/Routing/Data/Contract/CliRoutingConfigContract.ts +18 -0
- package/src/Valkyrja/Cli/Routing/Data/Contract/OptionParameterContract.ts +41 -0
- package/src/Valkyrja/Cli/Routing/Data/Contract/ParameterContract.ts +32 -0
- package/src/Valkyrja/Cli/Routing/Data/Contract/RouteContract.ts +57 -0
- package/src/Valkyrja/Cli/Routing/Data/Option/HelpOptionParameter.ts +30 -0
- package/src/Valkyrja/Cli/Routing/Data/Option/NoInteractionOptionParameter.ts +30 -0
- package/src/Valkyrja/Cli/Routing/Data/Option/QuietOptionParameter.ts +30 -0
- package/src/Valkyrja/Cli/Routing/Data/Option/SilentOptionParameter.ts +30 -0
- package/src/Valkyrja/Cli/Routing/Data/Option/VersionOptionParameter.ts +30 -0
- package/src/Valkyrja/Cli/Routing/Data/OptionParameter.ts +188 -0
- package/src/Valkyrja/Cli/Routing/Data/Route.ts +211 -0
- package/src/Valkyrja/Cli/Routing/Dispatcher/Contract/RouterContract.ts +23 -0
- package/src/Valkyrja/Cli/Routing/Dispatcher/Router.ts +155 -0
- package/src/Valkyrja/Cli/Routing/Enum/ArgumentMode.ts +13 -0
- package/src/Valkyrja/Cli/Routing/Enum/ArgumentValueMode.ts +13 -0
- package/src/Valkyrja/Cli/Routing/Enum/OptionMode.ts +13 -0
- package/src/Valkyrja/Cli/Routing/Enum/OptionValueMode.ts +14 -0
- package/src/Valkyrja/Cli/Routing/Provider/CliRoutingCliRouteProvider.ts +111 -0
- package/src/Valkyrja/Cli/Routing/Provider/CliRoutingComponentProvider.ts +40 -0
- package/src/Valkyrja/Cli/Routing/Provider/CliRoutingServiceProvider.ts +88 -0
- package/src/Valkyrja/Cli/Routing/Provider/Contract/CliRouteProviderContract.ts +20 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Contract/CliRoutingThrowable.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/Abstract/CliRoutingInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/Abstract/CliRoutingRuntimeException.ts +14 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingArgumentValuesValidationException.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingInvalidArgumentNameException.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingInvalidHelpTextCallableException.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingInvalidOptionNameException.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingInvalidOptionWithValueException.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingInvalidRouteNameException.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingNoCastException.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingNoHelpTextException.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingNoOutputDispatchException.ts +12 -0
- package/src/Valkyrja/Cli/Routing/Throwable/Exception/CliRoutingOptionValuesValidationException.ts +12 -0
- package/src/Valkyrja/Cli/Server/Command/HelpCommand.ts +313 -0
- package/src/Valkyrja/Cli/Server/Command/ListBashCommand.ts +44 -0
- package/src/Valkyrja/Cli/Server/Command/ListCommand.ts +98 -0
- package/src/Valkyrja/Cli/Server/Command/VersionCommand.ts +34 -0
- package/src/Valkyrja/Cli/Server/Constant/CliServerServiceId.ts +28 -0
- package/src/Valkyrja/Cli/Server/Constant/CommandName.ts +16 -0
- package/src/Valkyrja/Cli/Server/Data/Contract/CliHelpCommandConfigContract.ts +20 -0
- package/src/Valkyrja/Cli/Server/Data/Contract/CliNoInteractionConfigContract.ts +19 -0
- package/src/Valkyrja/Cli/Server/Data/Contract/CliQuietInteractionConfigContract.ts +19 -0
- package/src/Valkyrja/Cli/Server/Data/Contract/CliSilentInteractionConfigContract.ts +19 -0
- package/src/Valkyrja/Cli/Server/Data/Contract/CliVersionCommandConfigContract.ts +20 -0
- package/src/Valkyrja/Cli/Server/Handler/Contract/InputHandlerContract.ts +17 -0
- package/src/Valkyrja/Cli/Server/Handler/InputHandler.ts +112 -0
- package/src/Valkyrja/Cli/Server/Middleware/InputReceived/CheckForHelpOptionsMiddleware.ts +30 -0
- package/src/Valkyrja/Cli/Server/Middleware/InputReceived/CheckForVersionOptionsMiddleware.ts +29 -0
- package/src/Valkyrja/Cli/Server/Middleware/InputReceived/CheckGlobalInteractionOptionsMiddleware.ts +52 -0
- package/src/Valkyrja/Cli/Server/Middleware/RouteNotMatched/CheckCommandForTypoMiddleware.ts +119 -0
- package/src/Valkyrja/Cli/Server/Middleware/ThrowableCaught/LogThrowableCaughtMiddleware.ts +32 -0
- package/src/Valkyrja/Cli/Server/Middleware/ThrowableCaught/OutputThrowableCaughtMiddleware.ts +57 -0
- package/src/Valkyrja/Cli/Server/Provider/CliServerComponentProvider.ts +39 -0
- package/src/Valkyrja/Cli/Server/Provider/CliServerServiceProvider.ts +269 -0
- package/src/Valkyrja/Cli/Server/Support/Exiter.ts +32 -0
- package/src/Valkyrja/Cli/Server/Throwable/Contract/CliServerThrowable.ts +12 -0
- package/src/Valkyrja/Cli/Server/Throwable/Exception/Abstract/CliServerInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Cli/Server/Throwable/Exception/Abstract/CliServerRuntimeException.ts +14 -0
- package/src/Valkyrja/Cli/Throwable/Contract/CliThrowable.ts +12 -0
- package/src/Valkyrja/Cli/Throwable/Exception/Abstract/CliInvalidArgumentException.ts +14 -0
- package/src/Valkyrja/Cli/Throwable/Exception/Abstract/CliRuntimeException.ts +14 -0
- package/src/Valkyrja/Container/Constant/ContainerServiceId.ts +13 -0
- package/src/Valkyrja/Container/Data/ContainerData.ts +31 -0
- package/src/Valkyrja/Container/Enum/InvalidReferenceMode.ts +13 -0
- package/src/Valkyrja/Container/Manager/ChildContainer.ts +69 -0
- package/src/Valkyrja/Container/Manager/Container.ts +244 -0
- package/src/Valkyrja/Container/Manager/Contract/ContainerContract.ts +31 -0
- package/src/Valkyrja/Container/Manager/Contract/ProvidersAwareContract.ts +17 -0
- package/src/Valkyrja/Container/Provider/ContainerComponentProvider.ts +39 -0
- package/src/Valkyrja/Container/Provider/ContainerServiceProvider.ts +33 -0
- package/src/Valkyrja/Container/Provider/Contract/ServiceProviderContract.ts +20 -0
- package/src/Valkyrja/Container/Throwable/Contract/ContainerThrowable.ts +12 -0
- package/src/Valkyrja/Container/Throwable/Exception/Abstract/ContainerInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Container/Throwable/Exception/Abstract/ContainerRuntimeException.ts +14 -0
- package/src/Valkyrja/Container/Throwable/Exception/ContainerInvalidPublishCallbackException.ts +12 -0
- package/src/Valkyrja/Container/Throwable/Exception/ContainerInvalidReferenceException.ts +17 -0
- package/src/Valkyrja/Event/Constant/EventServiceId.ts +12 -0
- package/src/Valkyrja/Event/Data/Contract/ListenerContract.ts +25 -0
- package/src/Valkyrja/Event/Data/EventData.ts +15 -0
- package/src/Valkyrja/Event/Provider/Contract/ListenerProviderContract.ts +20 -0
- package/src/Valkyrja/Http/Client/Manager/Contract/ClientContract.ts +15 -0
- package/src/Valkyrja/Http/Client/Manager/LogClient.ts +28 -0
- package/src/Valkyrja/Http/Client/Manager/NullClient.ts +20 -0
- package/src/Valkyrja/Http/Client/Throwable/Contract/HttpClientThrowable.ts +12 -0
- package/src/Valkyrja/Http/Client/Throwable/Exception/Abstract/HttpClientInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Http/Client/Throwable/Exception/Abstract/HttpClientRuntimeException.ts +14 -0
- package/src/Valkyrja/Http/Message/Constant/ContentTypeValue.ts +22 -0
- package/src/Valkyrja/Http/Message/Constant/HeaderName.ts +60 -0
- package/src/Valkyrja/Http/Message/Constant/HeaderValue.ts +12 -0
- package/src/Valkyrja/Http/Message/Constant/HttpMessageServiceId.ts +13 -0
- package/src/Valkyrja/Http/Message/Constant/Port.ts +19 -0
- package/src/Valkyrja/Http/Message/Contract/MessageContract.ts +21 -0
- package/src/Valkyrja/Http/Message/Enum/ProtocolVersion.ts +15 -0
- package/src/Valkyrja/Http/Message/Enum/RequestMethod.ts +35 -0
- package/src/Valkyrja/Http/Message/Enum/SameSite.ts +14 -0
- package/src/Valkyrja/Http/Message/Enum/StatusCode.ts +152 -0
- package/src/Valkyrja/Http/Message/Enum/StatusText.ts +73 -0
- package/src/Valkyrja/Http/Message/File/Collection/Contract/UploadedFileCollectionContract.ts +20 -0
- package/src/Valkyrja/Http/Message/File/Collection/UploadedFileCollection.ts +83 -0
- package/src/Valkyrja/Http/Message/File/Constant/UploadErrorExceptionMessage.ts +20 -0
- package/src/Valkyrja/Http/Message/File/Contract/UploadedFileContract.ts +22 -0
- package/src/Valkyrja/Http/Message/File/Enum/UploadError.ts +19 -0
- package/src/Valkyrja/Http/Message/File/Factory/UploadedFileFactory.ts +34 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Contract/UploadedFileThrowable.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/Abstract/UploadedFileInvalidArgumentException.ts +15 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/Abstract/UploadedFileRuntimeException.ts +15 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileAlreadyMovedException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileInvalidDirectoryException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileInvalidFilesArrayStructureException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileInvalidKeyException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileInvalidParamException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileInvalidTmpNameException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileInvalidUploadErrorException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileInvalidUploadedFileException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileInvalidValueException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileMoveFailureException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileUnableToWriteFileException.ts +12 -0
- package/src/Valkyrja/Http/Message/File/Throwable/Exception/UploadedFileUploadErrorException.ts +48 -0
- package/src/Valkyrja/Http/Message/File/UploadedFile.ts +156 -0
- package/src/Valkyrja/Http/Message/Header/Collection/Contract/HeaderCollectionContract.ts +23 -0
- package/src/Valkyrja/Http/Message/Header/Collection/HeaderCollection.ts +117 -0
- package/src/Valkyrja/Http/Message/Header/ContentType.ts +18 -0
- package/src/Valkyrja/Http/Message/Header/Contract/HeaderContract.ts +21 -0
- package/src/Valkyrja/Http/Message/Header/Factory/CookieFactory.ts +35 -0
- package/src/Valkyrja/Http/Message/Header/Factory/HeaderFactory.ts +79 -0
- package/src/Valkyrja/Http/Message/Header/Header.ts +104 -0
- package/src/Valkyrja/Http/Message/Header/Location.ts +18 -0
- package/src/Valkyrja/Http/Message/Header/Referer.ts +18 -0
- package/src/Valkyrja/Http/Message/Header/SetCookie.ts +18 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Contract/HttpHeaderThrowable.ts +12 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Exception/Abstract/HttpHeaderInvalidArgumentException.ts +15 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Exception/Abstract/HttpHeaderRuntimeException.ts +13 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Exception/HttpHeaderInvalidHeaderNameException.ts +12 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Exception/HttpHeaderInvalidHeaderParamException.ts +12 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Exception/HttpHeaderInvalidNameException.ts +12 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Exception/HttpHeaderInvalidValueException.ts +12 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Exception/HttpHeaderUnsupportedMethodException.ts +12 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Exception/HttpHeaderUnsupportedOffsetSetException.ts +12 -0
- package/src/Valkyrja/Http/Message/Header/Throwable/Exception/HttpHeaderUnsupportedOffsetUnsetException.ts +12 -0
- package/src/Valkyrja/Http/Message/Header/Value/Component/Component.ts +54 -0
- package/src/Valkyrja/Http/Message/Header/Value/Component/Contract/ComponentContract.ts +16 -0
- package/src/Valkyrja/Http/Message/Header/Value/Contract/CookieContract.ts +35 -0
- package/src/Valkyrja/Http/Message/Header/Value/Contract/ValueContract.ts +17 -0
- package/src/Valkyrja/Http/Message/Header/Value/Cookie.ts +165 -0
- package/src/Valkyrja/Http/Message/Header/Value/Value.ts +56 -0
- package/src/Valkyrja/Http/Message/Param/Abstract/ParamCollection.ts +63 -0
- package/src/Valkyrja/Http/Message/Param/AttributeParamCollection.ts +13 -0
- package/src/Valkyrja/Http/Message/Param/Contract/AttributeParamCollectionContract.ts +12 -0
- package/src/Valkyrja/Http/Message/Param/Contract/CookieParamCollectionContract.ts +12 -0
- package/src/Valkyrja/Http/Message/Param/Contract/ParamCollectionContract.ts +18 -0
- package/src/Valkyrja/Http/Message/Param/Contract/ParsedBodyParamCollectionContract.ts +12 -0
- package/src/Valkyrja/Http/Message/Param/Contract/ParsedJsonParamCollectionContract.ts +12 -0
- package/src/Valkyrja/Http/Message/Param/Contract/QueryParamCollectionContract.ts +12 -0
- package/src/Valkyrja/Http/Message/Param/Contract/ServerParamCollectionContract.ts +12 -0
- package/src/Valkyrja/Http/Message/Param/CookieParamCollection.ts +13 -0
- package/src/Valkyrja/Http/Message/Param/ParsedBodyParamCollection.ts +15 -0
- package/src/Valkyrja/Http/Message/Param/ParsedJsonParamCollection.ts +13 -0
- package/src/Valkyrja/Http/Message/Param/QueryParamCollection.ts +13 -0
- package/src/Valkyrja/Http/Message/Param/ServerParamCollection.ts +15 -0
- package/src/Valkyrja/Http/Message/Provider/HttpMessageServiceProvider.ts +30 -0
- package/src/Valkyrja/Http/Message/Request/Contract/JsonServerRequestContract.ts +16 -0
- package/src/Valkyrja/Http/Message/Request/Contract/RequestContract.ts +21 -0
- package/src/Valkyrja/Http/Message/Request/Contract/ServerRequestContract.ts +32 -0
- package/src/Valkyrja/Http/Message/Request/Factory/RequestFactory.ts +106 -0
- package/src/Valkyrja/Http/Message/Request/JsonServerRequest.ts +76 -0
- package/src/Valkyrja/Http/Message/Request/Request.ts +109 -0
- package/src/Valkyrja/Http/Message/Request/ServerRequest.ts +116 -0
- package/src/Valkyrja/Http/Message/Request/Throwable/Contract/HttpRequestThrowable.ts +12 -0
- package/src/Valkyrja/Http/Message/Request/Throwable/Exception/Abstract/HttpRequestInvalidArgumentException.ts +15 -0
- package/src/Valkyrja/Http/Message/Request/Throwable/Exception/Abstract/HttpRequestRuntimeException.ts +13 -0
- package/src/Valkyrja/Http/Message/Request/Throwable/Exception/HttpRequestInvalidMethodException.ts +12 -0
- package/src/Valkyrja/Http/Message/Request/Throwable/Exception/HttpRequestInvalidRequestTargetException.ts +12 -0
- package/src/Valkyrja/Http/Message/Response/Contract/EmptyResponseContract.ts +12 -0
- package/src/Valkyrja/Http/Message/Response/Contract/HtmlResponseContract.ts +12 -0
- package/src/Valkyrja/Http/Message/Response/Contract/JsonResponseContract.ts +24 -0
- package/src/Valkyrja/Http/Message/Response/Contract/RedirectResponseContract.ts +26 -0
- package/src/Valkyrja/Http/Message/Response/Contract/ResponseContract.ts +23 -0
- package/src/Valkyrja/Http/Message/Response/Contract/TextResponseContract.ts +12 -0
- package/src/Valkyrja/Http/Message/Response/EmptyResponse.ts +22 -0
- package/src/Valkyrja/Http/Message/Response/Factory/Contract/ResponseFactoryContract.ts +44 -0
- package/src/Valkyrja/Http/Message/Response/Factory/ResponseFactory.ts +64 -0
- package/src/Valkyrja/Http/Message/Response/HtmlResponse.ts +36 -0
- package/src/Valkyrja/Http/Message/Response/JsonResponse.ts +111 -0
- package/src/Valkyrja/Http/Message/Response/RedirectResponse.ts +101 -0
- package/src/Valkyrja/Http/Message/Response/Response.ts +81 -0
- package/src/Valkyrja/Http/Message/Response/TextResponse.ts +44 -0
- package/src/Valkyrja/Http/Message/Response/Throwable/Contract/HttpResponseThrowable.ts +12 -0
- package/src/Valkyrja/Http/Message/Response/Throwable/Exception/Abstract/HttpResponseInvalidArgumentException.ts +15 -0
- package/src/Valkyrja/Http/Message/Response/Throwable/Exception/Abstract/HttpResponseRuntimeException.ts +15 -0
- package/src/Valkyrja/Http/Message/Response/Throwable/Exception/HttpRequestInvalidJsonCallbackException.ts +12 -0
- package/src/Valkyrja/Http/Message/Response/Throwable/Exception/HttpRequestInvalidRedirectStatusCodeException.ts +12 -0
- package/src/Valkyrja/Http/Message/Response/XmlResponse.ts +40 -0
- package/src/Valkyrja/Http/Message/Stream/Contract/StreamContract.ts +27 -0
- package/src/Valkyrja/Http/Message/Stream/Enum/Mode.ts +47 -0
- package/src/Valkyrja/Http/Message/Stream/Enum/ModeTranslation.ts +14 -0
- package/src/Valkyrja/Http/Message/Stream/Factory/StreamFactory.ts +83 -0
- package/src/Valkyrja/Http/Message/Stream/Stream.ts +140 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Contract/HttpStreamThrowable.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/Abstract/HttpStreamInvalidArgumentException.ts +15 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/Abstract/HttpStreamRuntimeException.ts +13 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamInvalidLengthException.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamInvalidStreamException.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamNoStreamAvailableException.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamStreamReadException.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamStreamSeekException.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamStreamTellException.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamStreamWriteException.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamUnreadableStreamException.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamUnseekableStreamException.ts +12 -0
- package/src/Valkyrja/Http/Message/Stream/Throwable/Exception/HttpStreamUnwritableStreamException.ts +12 -0
- package/src/Valkyrja/Http/Message/Throwable/Contract/HttpMessageThrowable.ts +12 -0
- package/src/Valkyrja/Http/Message/Throwable/Exception/Abstract/HttpMessageInvalidArgumentException.ts +15 -0
- package/src/Valkyrja/Http/Message/Throwable/Exception/Abstract/HttpMessageRuntimeException.ts +13 -0
- package/src/Valkyrja/Http/Message/Throwable/Exception/HttpNotFoundResponseException.ts +22 -0
- package/src/Valkyrja/Http/Message/Throwable/Exception/HttpRedirectResponseException.ts +42 -0
- package/src/Valkyrja/Http/Message/Throwable/Exception/HttpResponseException.ts +44 -0
- package/src/Valkyrja/Http/Message/Trait/Message.ts +77 -0
- package/src/Valkyrja/Http/Message/Uri/Contract/UriContract.ts +37 -0
- package/src/Valkyrja/Http/Message/Uri/Data/HostPortAccumulator.ts +15 -0
- package/src/Valkyrja/Http/Message/Uri/Enum/Scheme.ts +14 -0
- package/src/Valkyrja/Http/Message/Uri/Factory/UriFactory.ts +152 -0
- package/src/Valkyrja/Http/Message/Uri/Throwable/Contract/HttpUriThrowable.ts +12 -0
- package/src/Valkyrja/Http/Message/Uri/Throwable/Exception/Abstract/HttpUriInvalidArgumentException.ts +15 -0
- package/src/Valkyrja/Http/Message/Uri/Throwable/Exception/Abstract/HttpUriRuntimeException.ts +13 -0
- package/src/Valkyrja/Http/Message/Uri/Throwable/Exception/HttpUriInvalidFromStringException.ts +12 -0
- package/src/Valkyrja/Http/Message/Uri/Throwable/Exception/HttpUriInvalidPathException.ts +12 -0
- package/src/Valkyrja/Http/Message/Uri/Throwable/Exception/HttpUriInvalidPortException.ts +12 -0
- package/src/Valkyrja/Http/Message/Uri/Throwable/Exception/HttpUriInvalidQueryException.ts +12 -0
- package/src/Valkyrja/Http/Message/Uri/Throwable/Exception/NoPortExceptionHttpUri.ts +12 -0
- package/src/Valkyrja/Http/Message/Uri/Type/Port.ts +39 -0
- package/src/Valkyrja/Http/Message/Uri/Uri.ts +191 -0
- package/src/Valkyrja/Http/Middleware/Constant/HttpMiddlewareServiceId.ts +24 -0
- package/src/Valkyrja/Http/Middleware/Contract/RequestReceivedMiddlewareContract.ts +19 -0
- package/src/Valkyrja/Http/Middleware/Contract/RouteDispatchedMiddlewareContract.ts +22 -0
- package/src/Valkyrja/Http/Middleware/Contract/RouteMatchedMiddlewareContract.ts +21 -0
- package/src/Valkyrja/Http/Middleware/Contract/RouteNotMatchedMiddlewareContract.ts +20 -0
- package/src/Valkyrja/Http/Middleware/Contract/SendingResponseMiddlewareContract.ts +20 -0
- package/src/Valkyrja/Http/Middleware/Contract/TerminatedMiddlewareContract.ts +16 -0
- package/src/Valkyrja/Http/Middleware/Contract/ThrowableCaughtMiddlewareContract.ts +21 -0
- package/src/Valkyrja/Http/Middleware/Handler/Abstract/Handler.ts +50 -0
- package/src/Valkyrja/Http/Middleware/Handler/Contract/HandlerContract.ts +29 -0
- package/src/Valkyrja/Http/Middleware/Handler/Contract/RequestReceivedHandlerContract.ts +17 -0
- package/src/Valkyrja/Http/Middleware/Handler/Contract/RouteDispatchedHandlerContract.ts +18 -0
- package/src/Valkyrja/Http/Middleware/Handler/Contract/RouteMatchedHandlerContract.ts +18 -0
- package/src/Valkyrja/Http/Middleware/Handler/Contract/RouteNotMatchedHandlerContract.ts +17 -0
- package/src/Valkyrja/Http/Middleware/Handler/Contract/SendingResponseHandlerContract.ts +17 -0
- package/src/Valkyrja/Http/Middleware/Handler/Contract/TerminatedHandlerContract.ts +17 -0
- package/src/Valkyrja/Http/Middleware/Handler/Contract/ThrowableCaughtHandlerContract.ts +17 -0
- package/src/Valkyrja/Http/Middleware/Handler/RequestReceivedHandler.ts +25 -0
- package/src/Valkyrja/Http/Middleware/Handler/RouteDispatchedHandler.ts +30 -0
- package/src/Valkyrja/Http/Middleware/Handler/RouteMatchedHandler.ts +26 -0
- package/src/Valkyrja/Http/Middleware/Handler/RouteNotMatchedHandler.ts +25 -0
- package/src/Valkyrja/Http/Middleware/Handler/SendingResponseHandler.ts +25 -0
- package/src/Valkyrja/Http/Middleware/Handler/TerminatedHandler.ts +24 -0
- package/src/Valkyrja/Http/Middleware/Handler/ThrowableCaughtHandler.ts +25 -0
- package/src/Valkyrja/Http/Middleware/Throwable/Contract/HttpMiddlewareThrowable.ts +12 -0
- package/src/Valkyrja/Http/Middleware/Throwable/Exception/Abstract/HttpMiddlewareInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Http/Middleware/Throwable/Exception/Abstract/HttpMiddlewareRuntimeException.ts +14 -0
- package/src/Valkyrja/Http/Routing/Cli/Command/Constant/CommandName.ts +12 -0
- package/src/Valkyrja/Http/Routing/Cli/Command/ListCommand.ts +95 -0
- package/src/Valkyrja/Http/Routing/Collection/Contract/RouteCollectionContract.ts +28 -0
- package/src/Valkyrja/Http/Routing/Collection/RouteCollection.ts +227 -0
- package/src/Valkyrja/Http/Routing/Collector/Contract/RouteCollectorContract.ts +14 -0
- package/src/Valkyrja/Http/Routing/Constant/HttpRoutingServiceId.ts +21 -0
- package/src/Valkyrja/Http/Routing/Constant/Regex.ts +57 -0
- package/src/Valkyrja/Http/Routing/Controller/Controller.ts +18 -0
- package/src/Valkyrja/Http/Routing/Data/Contract/DynamicRouteContract.ts +19 -0
- package/src/Valkyrja/Http/Routing/Data/Contract/ParameterContract.ts +28 -0
- package/src/Valkyrja/Http/Routing/Data/Contract/RouteContract.ts +69 -0
- package/src/Valkyrja/Http/Routing/Data/DynamicRoute.ts +83 -0
- package/src/Valkyrja/Http/Routing/Data/HttpRoutingData.ts +22 -0
- package/src/Valkyrja/Http/Routing/Data/Parameter.ts +104 -0
- package/src/Valkyrja/Http/Routing/Data/Route.ts +252 -0
- package/src/Valkyrja/Http/Routing/Dispatcher/Contract/RouterContract.ts +17 -0
- package/src/Valkyrja/Http/Routing/Dispatcher/Router.ts +102 -0
- package/src/Valkyrja/Http/Routing/Factory/Contract/RoutingResponseFactoryContract.ts +21 -0
- package/src/Valkyrja/Http/Routing/Factory/RoutingResponseFactory.ts +33 -0
- package/src/Valkyrja/Http/Routing/Matcher/Contract/MatcherContract.ts +17 -0
- package/src/Valkyrja/Http/Routing/Matcher/Matcher.ts +109 -0
- package/src/Valkyrja/Http/Routing/Processor/Contract/ProcessorContract.ts +14 -0
- package/src/Valkyrja/Http/Routing/Processor/Processor.ts +108 -0
- package/src/Valkyrja/Http/Routing/Provider/Contract/HttpRouteProviderContract.ts +21 -0
- package/src/Valkyrja/Http/Routing/Provider/HttpRoutingCliComponentProvider.ts +39 -0
- package/src/Valkyrja/Http/Routing/Provider/HttpRoutingCliRouteProvider.ts +42 -0
- package/src/Valkyrja/Http/Routing/Throwable/Contract/HttpRoutingThrowable.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/Abstract/HttpRoutingInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/Abstract/HttpRoutingRuntimeException.ts +14 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingInvalidDynamicRouteNameException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingInvalidMethodTypeException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingInvalidParameterRegexException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingInvalidRouteNameException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingInvalidRouteParameterException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingInvalidRoutePathException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingInvalidRouteRegexException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingNoCastException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingNoRequestStructException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Throwable/Exception/HttpRoutingNoResponseStructException.ts +12 -0
- package/src/Valkyrja/Http/Routing/Url/Contract/UrlContract.ts +12 -0
- package/src/Valkyrja/Http/Routing/Url/Url.ts +27 -0
- package/src/Valkyrja/Http/Server/Constant/HttpServerServiceId.ts +14 -0
- package/src/Valkyrja/Http/Server/Handler/Contract/ExceptionResponseRequestHandlerContract.ts +15 -0
- package/src/Valkyrja/Http/Server/Handler/Contract/RequestHandlerContract.ts +20 -0
- package/src/Valkyrja/Http/Server/Handler/RequestHandler.ts +141 -0
- package/src/Valkyrja/Http/Server/Middleware/RequestReceived/RedirectTrailingSlashMiddleware.ts +47 -0
- package/src/Valkyrja/Http/Server/Middleware/RouteMatched/ResponseStructMiddleware.ts +45 -0
- package/src/Valkyrja/Http/Server/Middleware/SendingResponse/NoCacheResponseMiddleware.ts +36 -0
- package/src/Valkyrja/Http/Server/Middleware/ThrowableCaught/LogThrowableCaughtMiddleware.ts +32 -0
- package/src/Valkyrja/Http/Server/Throwable/Contract/HttpServerThrowable.ts +12 -0
- package/src/Valkyrja/Http/Server/Throwable/Exception/Abstract/HttpServerInvalidArgumentException.ts +16 -0
- package/src/Valkyrja/Http/Server/Throwable/Exception/Abstract/HttpServerRuntimeException.ts +14 -0
- package/src/Valkyrja/Http/Struct/Contract/StructContract.ts +13 -0
- package/src/Valkyrja/Http/Struct/Request/Abstract/JsonRequestStruct.ts +33 -0
- package/src/Valkyrja/Http/Struct/Request/Abstract/ParsedBodyRequestStruct.ts +21 -0
- package/src/Valkyrja/Http/Struct/Request/Abstract/QueryRequestStruct.ts +21 -0
- package/src/Valkyrja/Http/Struct/Request/Abstract/RequestStruct.ts +36 -0
- package/src/Valkyrja/Http/Struct/Request/Contract/RequestStructContract.ts +16 -0
- package/src/Valkyrja/Http/Struct/Response/Abstract/ResponseStruct.ts +31 -0
- package/src/Valkyrja/Http/Struct/Response/Contract/ResponseStructContract.ts +14 -0
- package/src/Valkyrja/Http/Struct/Throwable/Contract/HttpStructThrowable.ts +12 -0
- package/src/Valkyrja/Http/Struct/Throwable/Exception/Abstract/HttpStructInvalidArgumentException.ts +15 -0
- package/src/Valkyrja/Http/Struct/Throwable/Exception/Abstract/HttpStructRuntimeException.ts +13 -0
- package/src/Valkyrja/Http/Struct/Throwable/Exception/HttpStructJsonServerRequestExpectedException.ts +12 -0
- package/src/Valkyrja/Http/Throwable/Contract/HttpThrowable.ts +12 -0
- package/src/Valkyrja/Http/Throwable/Exception/Abstract/HttpInvalidArgumentException.ts +13 -0
- package/src/Valkyrja/Http/Throwable/Exception/Abstract/HttpRuntimeException.ts +13 -0
- package/src/Valkyrja/Log/Logger/Contract/LoggerContract.ts +22 -0
- package/src/Valkyrja/Throwable/Constant/ThrowableServiceId.ts +12 -0
- package/src/Valkyrja/Throwable/Contract/ValkyrjaThrowable.ts +12 -0
- package/src/Valkyrja/Throwable/Exception/Abstract/ValkyrjaInvalidArgumentException.ts +18 -0
- package/src/Valkyrja/Throwable/Exception/Abstract/ValkyrjaRuntimeException.ts +18 -0
- package/src/Valkyrja/Throwable/Handler/Abstract/ThrowableHandler.ts +22 -0
- package/src/Valkyrja/Throwable/Handler/Contract/ThrowableHandlerContract.ts +18 -0
- package/src/Valkyrja/Type/Data/Cast.ts +16 -0
- package/src/Valkyrja/Type/Object/Factory/ObjectFactory.ts +14 -0
- package/src/Valkyrja/Validation/Constant/ErrorMessage.ts +33 -0
- package/src/Valkyrja/Validation/Rule/Abstract/Rule.ts +30 -0
- package/src/Valkyrja/Validation/Rule/Contract/RuleContract.ts +14 -0
- package/src/Valkyrja/Validation/Rule/Int/GreaterThan.ts +24 -0
- package/src/Valkyrja/Validation/Rule/Int/LessThan.ts +24 -0
- package/src/Valkyrja/Validation/Rule/Is/Email.ts +16 -0
- package/src/Valkyrja/Validation/Rule/Is/Equal.ts +24 -0
- package/src/Valkyrja/Validation/Rule/Is/IsBool.ts +16 -0
- package/src/Valkyrja/Validation/Rule/Is/IsEmpty.ts +16 -0
- package/src/Valkyrja/Validation/Rule/Is/IsNumeric.ts +16 -0
- package/src/Valkyrja/Validation/Rule/Is/IsString.ts +16 -0
- package/src/Valkyrja/Validation/Rule/Is/NotEmpty.ts +16 -0
- package/src/Valkyrja/Validation/Rule/Is/NotEqual.ts +24 -0
- package/src/Valkyrja/Validation/Rule/Is/Required.ts +16 -0
- package/src/Valkyrja/Validation/Rule/String/Alpha.ts +16 -0
- package/src/Valkyrja/Validation/Rule/String/Contains.ts +24 -0
- package/src/Valkyrja/Validation/Rule/String/EndsWith.ts +24 -0
- package/src/Valkyrja/Validation/Rule/String/Lowercase.ts +16 -0
- package/src/Valkyrja/Validation/Rule/String/Max.ts +24 -0
- package/src/Valkyrja/Validation/Rule/String/Min.ts +24 -0
- package/src/Valkyrja/Validation/Rule/String/Regex.ts +24 -0
- package/src/Valkyrja/Validation/Rule/String/StartsWith.ts +24 -0
- package/src/Valkyrja/Validation/Rule/String/Uppercase.ts +16 -0
- package/src/Valkyrja/Validation/Throwable/Contract/ValidationThrowable.ts +12 -0
- package/src/Valkyrja/Validation/Throwable/Exception/Abstract/ValidationInvalidArgumentException.ts +15 -0
- package/src/Valkyrja/Validation/Throwable/Exception/Abstract/ValidationRuntimeException.ts +13 -0
- package/src/Valkyrja/Validation/Throwable/Exception/ValidationRuleFailureException.ts +12 -0
- package/src/Valkyrja/Validation/Validator/Contract/ValidatorContract.ts +18 -0
- package/src/Valkyrja/Validation/Validator/Validator.ts +57 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { Container } from '../../../../Container/Manager/Container.js';
|
|
11
|
+
|
|
12
|
+
import type { ContainerContract } from '../../../../Container/Manager/Contract/ContainerContract.js';
|
|
13
|
+
import type { AnyMiddleware, HandlerContract } from '../Contract/HandlerContract.js';
|
|
14
|
+
|
|
15
|
+
export abstract class Handler<Middleware extends AnyMiddleware = AnyMiddleware> implements HandlerContract<Middleware> {
|
|
16
|
+
protected middleware: Array<new (...args: unknown[]) => Middleware>;
|
|
17
|
+
protected next: (new (...args: unknown[]) => Middleware) | null;
|
|
18
|
+
protected index: number;
|
|
19
|
+
|
|
20
|
+
constructor(
|
|
21
|
+
protected container: ContainerContract = new Container(),
|
|
22
|
+
...middleware: Array<new (...args: unknown[]) => Middleware>
|
|
23
|
+
) {
|
|
24
|
+
this.middleware = middleware;
|
|
25
|
+
this.index = 0;
|
|
26
|
+
this.next = null;
|
|
27
|
+
|
|
28
|
+
this.updateNext();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
add(...middleware: Array<new (...args: unknown[]) => Middleware>): void {
|
|
32
|
+
this.middleware = [...this.middleware, ...middleware];
|
|
33
|
+
|
|
34
|
+
this.updateNext();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
protected getMiddleware(middleware: new (...args: unknown[]) => Middleware): Middleware {
|
|
38
|
+
const item = this.container.get<Middleware>(middleware.name);
|
|
39
|
+
|
|
40
|
+
this.index++;
|
|
41
|
+
|
|
42
|
+
this.updateNext();
|
|
43
|
+
|
|
44
|
+
return item;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
protected updateNext(): void {
|
|
48
|
+
this.next = this.middleware[this.index] ?? null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { RequestReceivedMiddlewareContract } from '../../Contract/RequestReceivedMiddlewareContract.js';
|
|
11
|
+
import type { RouteDispatchedMiddlewareContract } from '../../Contract/RouteDispatchedMiddlewareContract.js';
|
|
12
|
+
import type { RouteMatchedMiddlewareContract } from '../../Contract/RouteMatchedMiddlewareContract.js';
|
|
13
|
+
import type { RouteNotMatchedMiddlewareContract } from '../../Contract/RouteNotMatchedMiddlewareContract.js';
|
|
14
|
+
import type { SendingResponseMiddlewareContract } from '../../Contract/SendingResponseMiddlewareContract.js';
|
|
15
|
+
import type { TerminatedMiddlewareContract } from '../../Contract/TerminatedMiddlewareContract.js';
|
|
16
|
+
import type { ThrowableCaughtMiddlewareContract } from '../../Contract/ThrowableCaughtMiddlewareContract.js';
|
|
17
|
+
|
|
18
|
+
export type AnyMiddleware =
|
|
19
|
+
| RequestReceivedMiddlewareContract
|
|
20
|
+
| SendingResponseMiddlewareContract
|
|
21
|
+
| RouteMatchedMiddlewareContract
|
|
22
|
+
| RouteNotMatchedMiddlewareContract
|
|
23
|
+
| RouteDispatchedMiddlewareContract
|
|
24
|
+
| ThrowableCaughtMiddlewareContract
|
|
25
|
+
| TerminatedMiddlewareContract;
|
|
26
|
+
|
|
27
|
+
export interface HandlerContract<Middleware extends AnyMiddleware = AnyMiddleware> {
|
|
28
|
+
add(...middleware: Array<new (...args: unknown[]) => Middleware>): void;
|
|
29
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { RequestReceivedMiddlewareContract } from '../../Contract/RequestReceivedMiddlewareContract.js';
|
|
13
|
+
import type { HandlerContract } from './HandlerContract.js';
|
|
14
|
+
|
|
15
|
+
export interface RequestReceivedHandlerContract extends HandlerContract<RequestReceivedMiddlewareContract> {
|
|
16
|
+
requestReceived(request: ServerRequestContract): ResponseContract | ServerRequestContract;
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { RouteContract } from '../../../Routing/Data/Contract/RouteContract.js';
|
|
13
|
+
import type { RouteDispatchedMiddlewareContract } from '../../Contract/RouteDispatchedMiddlewareContract.js';
|
|
14
|
+
import type { HandlerContract } from './HandlerContract.js';
|
|
15
|
+
|
|
16
|
+
export interface RouteDispatchedHandlerContract extends HandlerContract<RouteDispatchedMiddlewareContract> {
|
|
17
|
+
routeDispatched(request: ServerRequestContract, response: ResponseContract, route: RouteContract): ResponseContract;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { RouteContract } from '../../../Routing/Data/Contract/RouteContract.js';
|
|
13
|
+
import type { RouteMatchedMiddlewareContract } from '../../Contract/RouteMatchedMiddlewareContract.js';
|
|
14
|
+
import type { HandlerContract } from './HandlerContract.js';
|
|
15
|
+
|
|
16
|
+
export interface RouteMatchedHandlerContract extends HandlerContract<RouteMatchedMiddlewareContract> {
|
|
17
|
+
routeMatched(request: ServerRequestContract, route: RouteContract): RouteContract | ResponseContract;
|
|
18
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { RouteNotMatchedMiddlewareContract } from '../../Contract/RouteNotMatchedMiddlewareContract.js';
|
|
13
|
+
import type { HandlerContract } from './HandlerContract.js';
|
|
14
|
+
|
|
15
|
+
export interface RouteNotMatchedHandlerContract extends HandlerContract<RouteNotMatchedMiddlewareContract> {
|
|
16
|
+
routeNotMatched(request: ServerRequestContract, response: ResponseContract): ResponseContract;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { SendingResponseMiddlewareContract } from '../../Contract/SendingResponseMiddlewareContract.js';
|
|
13
|
+
import type { HandlerContract } from './HandlerContract.js';
|
|
14
|
+
|
|
15
|
+
export interface SendingResponseHandlerContract extends HandlerContract<SendingResponseMiddlewareContract> {
|
|
16
|
+
sendingResponse(request: ServerRequestContract, response: ResponseContract): ResponseContract;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { TerminatedMiddlewareContract } from '../../Contract/TerminatedMiddlewareContract.js';
|
|
13
|
+
import type { HandlerContract } from './HandlerContract.js';
|
|
14
|
+
|
|
15
|
+
export interface TerminatedHandlerContract extends HandlerContract<TerminatedMiddlewareContract> {
|
|
16
|
+
terminated(request: ServerRequestContract, response: ResponseContract): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { ThrowableCaughtMiddlewareContract } from '../../Contract/ThrowableCaughtMiddlewareContract.js';
|
|
13
|
+
import type { HandlerContract } from './HandlerContract.js';
|
|
14
|
+
|
|
15
|
+
export interface ThrowableCaughtHandlerContract extends HandlerContract<ThrowableCaughtMiddlewareContract> {
|
|
16
|
+
throwableCaught(request: ServerRequestContract, response: ResponseContract, throwable: Error): ResponseContract;
|
|
17
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { RequestReceivedMiddlewareContract } from '../Contract/RequestReceivedMiddlewareContract.js';
|
|
13
|
+
import { Handler } from './Abstract/Handler.js';
|
|
14
|
+
import type { RequestReceivedHandlerContract } from './Contract/RequestReceivedHandlerContract.js';
|
|
15
|
+
|
|
16
|
+
export class RequestReceivedHandler
|
|
17
|
+
extends Handler<RequestReceivedMiddlewareContract>
|
|
18
|
+
implements RequestReceivedHandlerContract
|
|
19
|
+
{
|
|
20
|
+
requestReceived(request: ServerRequestContract): ResponseContract | ServerRequestContract {
|
|
21
|
+
const next = this.next;
|
|
22
|
+
|
|
23
|
+
return next !== null ? this.getMiddleware(next).requestReceived(request, this) : request;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { RouteContract } from '../../Routing/Data/Contract/RouteContract.js';
|
|
13
|
+
import type { RouteDispatchedMiddlewareContract } from '../Contract/RouteDispatchedMiddlewareContract.js';
|
|
14
|
+
import { Handler } from './Abstract/Handler.js';
|
|
15
|
+
import type { RouteDispatchedHandlerContract } from './Contract/RouteDispatchedHandlerContract.js';
|
|
16
|
+
|
|
17
|
+
export class RouteDispatchedHandler
|
|
18
|
+
extends Handler<RouteDispatchedMiddlewareContract>
|
|
19
|
+
implements RouteDispatchedHandlerContract
|
|
20
|
+
{
|
|
21
|
+
routeDispatched(
|
|
22
|
+
request: ServerRequestContract,
|
|
23
|
+
response: ResponseContract,
|
|
24
|
+
route: RouteContract,
|
|
25
|
+
): ResponseContract {
|
|
26
|
+
const next = this.next;
|
|
27
|
+
|
|
28
|
+
return next !== null ? this.getMiddleware(next).routeDispatched(request, response, route, this) : response;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { RouteContract } from '../../Routing/Data/Contract/RouteContract.js';
|
|
13
|
+
import type { RouteMatchedMiddlewareContract } from '../Contract/RouteMatchedMiddlewareContract.js';
|
|
14
|
+
import { Handler } from './Abstract/Handler.js';
|
|
15
|
+
import type { RouteMatchedHandlerContract } from './Contract/RouteMatchedHandlerContract.js';
|
|
16
|
+
|
|
17
|
+
export class RouteMatchedHandler
|
|
18
|
+
extends Handler<RouteMatchedMiddlewareContract>
|
|
19
|
+
implements RouteMatchedHandlerContract
|
|
20
|
+
{
|
|
21
|
+
routeMatched(request: ServerRequestContract, route: RouteContract): RouteContract | ResponseContract {
|
|
22
|
+
const next = this.next;
|
|
23
|
+
|
|
24
|
+
return next !== null ? this.getMiddleware(next).routeMatched(request, route, this) : route;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { RouteNotMatchedMiddlewareContract } from '../Contract/RouteNotMatchedMiddlewareContract.js';
|
|
13
|
+
import { Handler } from './Abstract/Handler.js';
|
|
14
|
+
import type { RouteNotMatchedHandlerContract } from './Contract/RouteNotMatchedHandlerContract.js';
|
|
15
|
+
|
|
16
|
+
export class RouteNotMatchedHandler
|
|
17
|
+
extends Handler<RouteNotMatchedMiddlewareContract>
|
|
18
|
+
implements RouteNotMatchedHandlerContract
|
|
19
|
+
{
|
|
20
|
+
routeNotMatched(request: ServerRequestContract, response: ResponseContract): ResponseContract {
|
|
21
|
+
const next = this.next;
|
|
22
|
+
|
|
23
|
+
return next !== null ? this.getMiddleware(next).routeNotMatched(request, response, this) : response;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { SendingResponseMiddlewareContract } from '../Contract/SendingResponseMiddlewareContract.js';
|
|
13
|
+
import { Handler } from './Abstract/Handler.js';
|
|
14
|
+
import type { SendingResponseHandlerContract } from './Contract/SendingResponseHandlerContract.js';
|
|
15
|
+
|
|
16
|
+
export class SendingResponseHandler
|
|
17
|
+
extends Handler<SendingResponseMiddlewareContract>
|
|
18
|
+
implements SendingResponseHandlerContract
|
|
19
|
+
{
|
|
20
|
+
sendingResponse(request: ServerRequestContract, response: ResponseContract): ResponseContract {
|
|
21
|
+
const next = this.next;
|
|
22
|
+
|
|
23
|
+
return next !== null ? this.getMiddleware(next).sendingResponse(request, response, this) : response;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { TerminatedMiddlewareContract } from '../Contract/TerminatedMiddlewareContract.js';
|
|
13
|
+
import { Handler } from './Abstract/Handler.js';
|
|
14
|
+
import type { TerminatedHandlerContract } from './Contract/TerminatedHandlerContract.js';
|
|
15
|
+
|
|
16
|
+
export class TerminatedHandler extends Handler<TerminatedMiddlewareContract> implements TerminatedHandlerContract {
|
|
17
|
+
terminated(request: ServerRequestContract, response: ResponseContract): void {
|
|
18
|
+
const next = this.next;
|
|
19
|
+
|
|
20
|
+
if (next !== null) {
|
|
21
|
+
this.getMiddleware(next).terminated(request, response, this);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { ServerRequestContract } from '../../Message/Request/Contract/ServerRequestContract.js';
|
|
11
|
+
import type { ResponseContract } from '../../Message/Response/Contract/ResponseContract.js';
|
|
12
|
+
import type { ThrowableCaughtMiddlewareContract } from '../Contract/ThrowableCaughtMiddlewareContract.js';
|
|
13
|
+
import { Handler } from './Abstract/Handler.js';
|
|
14
|
+
import type { ThrowableCaughtHandlerContract } from './Contract/ThrowableCaughtHandlerContract.js';
|
|
15
|
+
|
|
16
|
+
export class ThrowableCaughtHandler
|
|
17
|
+
extends Handler<ThrowableCaughtMiddlewareContract>
|
|
18
|
+
implements ThrowableCaughtHandlerContract
|
|
19
|
+
{
|
|
20
|
+
throwableCaught(request: ServerRequestContract, response: ResponseContract, throwable: Error): ResponseContract {
|
|
21
|
+
const next = this.next;
|
|
22
|
+
|
|
23
|
+
return next !== null ? this.getMiddleware(next).throwableCaught(request, response, throwable, this) : response;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { HttpThrowable } from '../../../Throwable/Contract/HttpThrowable.js';
|
|
11
|
+
|
|
12
|
+
export type HttpMiddlewareThrowable = HttpThrowable;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { HttpInvalidArgumentException } from '../../../../Throwable/Exception/Abstract/HttpInvalidArgumentException.js';
|
|
11
|
+
|
|
12
|
+
import type { HttpMiddlewareThrowable } from '../../Contract/HttpMiddlewareThrowable.js';
|
|
13
|
+
|
|
14
|
+
export abstract class HttpMiddlewareInvalidArgumentException
|
|
15
|
+
extends HttpInvalidArgumentException
|
|
16
|
+
implements HttpMiddlewareThrowable {}
|
package/src/Valkyrja/Http/Middleware/Throwable/Exception/Abstract/HttpMiddlewareRuntimeException.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { HttpRuntimeException } from '../../../../Throwable/Exception/Abstract/HttpRuntimeException.js';
|
|
11
|
+
|
|
12
|
+
import type { HttpMiddlewareThrowable } from '../../Contract/HttpMiddlewareThrowable.js';
|
|
13
|
+
|
|
14
|
+
export abstract class HttpMiddlewareRuntimeException extends HttpRuntimeException implements HttpMiddlewareThrowable {}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export class HttpCommandName {
|
|
11
|
+
static readonly LIST = 'http:list' as const;
|
|
12
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { ExitCode } from '../../../../Cli/Interaction/Enum/ExitCode.js';
|
|
11
|
+
import { TextColor } from '../../../../Cli/Interaction/Enum/TextColor.js';
|
|
12
|
+
import { TextColorFormat } from '../../../../Cli/Interaction/Format/TextColorFormat.js';
|
|
13
|
+
import { Formatter } from '../../../../Cli/Interaction/Formatter/Formatter.js';
|
|
14
|
+
import { HighlightedTextFormatter } from '../../../../Cli/Interaction/Formatter/HighlightedTextFormatter.js';
|
|
15
|
+
import { Banner } from '../../../../Cli/Interaction/Message/Banner.js';
|
|
16
|
+
import { ErrorMessage } from '../../../../Cli/Interaction/Message/ErrorMessage.js';
|
|
17
|
+
import { Header } from '../../../../Cli/Interaction/Message/Header.js';
|
|
18
|
+
import { Message } from '../../../../Cli/Interaction/Message/Message.js';
|
|
19
|
+
import { NewLine } from '../../../../Cli/Interaction/Message/NewLine.js';
|
|
20
|
+
import { RequestMethod } from '../../../Message/Enum/RequestMethod.js';
|
|
21
|
+
|
|
22
|
+
import type { CliConfigContract } from '../../../../Application/Data/Contract/CliConfigContract.js';
|
|
23
|
+
import type { MessageContract } from '../../../../Cli/Interaction/Message/Contract/MessageContract.js';
|
|
24
|
+
import type { OutputContract } from '../../../../Cli/Interaction/Output/Contract/OutputContract.js';
|
|
25
|
+
import type { OutputFactoryContract } from '../../../../Cli/Interaction/Output/Factory/Contract/OutputFactoryContract.js';
|
|
26
|
+
import type { RouteContract as CliRouteContract } from '../../../../Cli/Routing/Data/Contract/RouteContract.js';
|
|
27
|
+
import type { DynamicRouteContract } from '../../Data/Contract/DynamicRouteContract.js';
|
|
28
|
+
import type { RouteContract } from '../../Data/Contract/RouteContract.js';
|
|
29
|
+
import type { RouteCollectionContract } from '../../Collection/Contract/RouteCollectionContract.js';
|
|
30
|
+
|
|
31
|
+
export class ListCommand {
|
|
32
|
+
constructor(
|
|
33
|
+
protected config: CliConfigContract,
|
|
34
|
+
protected cliRoute: CliRouteContract,
|
|
35
|
+
protected collection: RouteCollectionContract,
|
|
36
|
+
protected outputFactory: OutputFactoryContract,
|
|
37
|
+
) {}
|
|
38
|
+
|
|
39
|
+
static help(): MessageContract {
|
|
40
|
+
return new Message('A command to list all the routes present within the Http component.');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
run(): OutputContract {
|
|
44
|
+
const routes = Object.values(this.collection.getAll(RequestMethod.ANY));
|
|
45
|
+
|
|
46
|
+
if (routes.length === 0) {
|
|
47
|
+
return this.outputFactory
|
|
48
|
+
.createOutput()
|
|
49
|
+
.withExitCode(ExitCode.ERROR)
|
|
50
|
+
.withAddedMessages(new Banner(new ErrorMessage('No routes were found')));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
routes.sort((a, b) => a.getPath().localeCompare(b.getPath()));
|
|
54
|
+
|
|
55
|
+
let output = this.outputFactory
|
|
56
|
+
.createOutput()
|
|
57
|
+
.withMessages(new Header(this.config.namespace, this.config.version, this.cliRoute))
|
|
58
|
+
.withAddedMessages(new NewLine(), new Message('Routes:', new HighlightedTextFormatter()), new NewLine());
|
|
59
|
+
|
|
60
|
+
for (const route of routes) {
|
|
61
|
+
output = output.withAddedMessages(
|
|
62
|
+
new Message(' '),
|
|
63
|
+
new Message(route.getPath(), new Formatter(new TextColorFormat(TextColor.MAGENTA))),
|
|
64
|
+
new NewLine(),
|
|
65
|
+
new Message(' - '),
|
|
66
|
+
new Message('Name: '),
|
|
67
|
+
new Message(route.getName(), new HighlightedTextFormatter()),
|
|
68
|
+
new NewLine(),
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
output = this.addDynamicRouteMessages(output, route);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return output.withAddedMessages(new NewLine());
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
protected addDynamicRouteMessages(output: OutputContract, route: RouteContract): OutputContract {
|
|
78
|
+
if (!('getRegex' in route)) {
|
|
79
|
+
return output;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const regex = (route as DynamicRouteContract).getRegex();
|
|
83
|
+
|
|
84
|
+
if (regex === '') {
|
|
85
|
+
return output;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return output.withAddedMessages(
|
|
89
|
+
new Message(' - '),
|
|
90
|
+
new Message('Regex: '),
|
|
91
|
+
new Message(regex, new HighlightedTextFormatter()),
|
|
92
|
+
new NewLine(),
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the Valkyrja package.
|
|
3
|
+
*
|
|
4
|
+
* (c) Melech Mizrachi <melechmizrachi@gmail.com>
|
|
5
|
+
*
|
|
6
|
+
* For the full copyright and license information, please view the LICENSE
|
|
7
|
+
* file that was distributed with this source code.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { RequestMethod } from '../../../Message/Enum/RequestMethod.js';
|
|
11
|
+
import type { DynamicRouteContract } from '../../Data/Contract/DynamicRouteContract.js';
|
|
12
|
+
import type { RouteContract } from '../../Data/Contract/RouteContract.js';
|
|
13
|
+
import type { HttpRoutingData } from '../../Data/HttpRoutingData.js';
|
|
14
|
+
|
|
15
|
+
export interface RouteCollectionContract {
|
|
16
|
+
getData(): HttpRoutingData;
|
|
17
|
+
setFromData(data: HttpRoutingData): void;
|
|
18
|
+
add(route: RouteContract): void;
|
|
19
|
+
hasPath(path: string, method: RequestMethod): boolean;
|
|
20
|
+
getByPath(path: string, method: RequestMethod): RouteContract;
|
|
21
|
+
hasRegex(regex: string, method: RequestMethod): boolean;
|
|
22
|
+
getByRegex(regex: string, method: RequestMethod): DynamicRouteContract;
|
|
23
|
+
getPaths(method: RequestMethod): Record<string, string>;
|
|
24
|
+
getRegexes(method: RequestMethod): Record<string, string>;
|
|
25
|
+
hasName(name: string): boolean;
|
|
26
|
+
getByName(name: string): RouteContract;
|
|
27
|
+
getAll(method: RequestMethod): Record<string, RouteContract>;
|
|
28
|
+
}
|