@c9up/ream 0.1.3
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 +21 -0
- package/README.md +70 -0
- package/dist/Application.d.ts +71 -0
- package/dist/Application.d.ts.map +1 -0
- package/dist/Application.js +151 -0
- package/dist/Application.js.map +1 -0
- package/dist/Codemods.d.ts +16 -0
- package/dist/Codemods.d.ts.map +1 -0
- package/dist/Codemods.js +277 -0
- package/dist/Codemods.js.map +1 -0
- package/dist/ConfigLoader.d.ts +29 -0
- package/dist/ConfigLoader.d.ts.map +1 -0
- package/dist/ConfigLoader.js +43 -0
- package/dist/ConfigLoader.js.map +1 -0
- package/dist/ErrorBoundary.d.ts +51 -0
- package/dist/ErrorBoundary.d.ts.map +1 -0
- package/dist/ErrorBoundary.js +122 -0
- package/dist/ErrorBoundary.js.map +1 -0
- package/dist/GracefulShutdown.d.ts +28 -0
- package/dist/GracefulShutdown.d.ts.map +1 -0
- package/dist/GracefulShutdown.js +55 -0
- package/dist/GracefulShutdown.js.map +1 -0
- package/dist/HealthCheck.d.ts +42 -0
- package/dist/HealthCheck.d.ts.map +1 -0
- package/dist/HealthCheck.js +65 -0
- package/dist/HealthCheck.js.map +1 -0
- package/dist/HotReload.d.ts +28 -0
- package/dist/HotReload.d.ts.map +1 -0
- package/dist/HotReload.js +60 -0
- package/dist/HotReload.js.map +1 -0
- package/dist/HttpKernel.d.ts +62 -0
- package/dist/HttpKernel.d.ts.map +1 -0
- package/dist/HttpKernel.js +210 -0
- package/dist/HttpKernel.js.map +1 -0
- package/dist/Ignitor.d.ts +195 -0
- package/dist/Ignitor.d.ts.map +1 -0
- package/dist/Ignitor.js +505 -0
- package/dist/Ignitor.js.map +1 -0
- package/dist/Provider.d.ts +54 -0
- package/dist/Provider.d.ts.map +1 -0
- package/dist/Provider.js +37 -0
- package/dist/Provider.js.map +1 -0
- package/dist/bodyparser/BodyParserMiddleware.d.ts +38 -0
- package/dist/bodyparser/BodyParserMiddleware.d.ts.map +1 -0
- package/dist/bodyparser/BodyParserMiddleware.js +143 -0
- package/dist/bodyparser/BodyParserMiddleware.js.map +1 -0
- package/dist/bodyparser/MultipartFile.d.ts +77 -0
- package/dist/bodyparser/MultipartFile.d.ts.map +1 -0
- package/dist/bodyparser/MultipartFile.js +138 -0
- package/dist/bodyparser/MultipartFile.js.map +1 -0
- package/dist/bodyparser/parseSize.d.ts +6 -0
- package/dist/bodyparser/parseSize.d.ts.map +1 -0
- package/dist/bodyparser/parseSize.js +21 -0
- package/dist/bodyparser/parseSize.js.map +1 -0
- package/dist/bootstrap/hyper-server.d.ts +27 -0
- package/dist/bootstrap/hyper-server.d.ts.map +1 -0
- package/dist/bootstrap/hyper-server.js +63 -0
- package/dist/bootstrap/hyper-server.js.map +1 -0
- package/dist/console/CommandRunner.d.ts +18 -0
- package/dist/console/CommandRunner.d.ts.map +1 -0
- package/dist/console/CommandRunner.js +65 -0
- package/dist/console/CommandRunner.js.map +1 -0
- package/dist/container/Container.d.ts +60 -0
- package/dist/container/Container.d.ts.map +1 -0
- package/dist/container/Container.js +329 -0
- package/dist/container/Container.js.map +1 -0
- package/dist/container/types.d.ts +25 -0
- package/dist/container/types.d.ts.map +1 -0
- package/dist/container/types.js +6 -0
- package/dist/container/types.js.map +1 -0
- package/dist/decorators/Lazy.d.ts +19 -0
- package/dist/decorators/Lazy.d.ts.map +1 -0
- package/dist/decorators/Lazy.js +53 -0
- package/dist/decorators/Lazy.js.map +1 -0
- package/dist/decorators/Service.d.ts +48 -0
- package/dist/decorators/Service.d.ts.map +1 -0
- package/dist/decorators/Service.js +70 -0
- package/dist/decorators/Service.js.map +1 -0
- package/dist/errors/FuzzyMatcher.d.ts +41 -0
- package/dist/errors/FuzzyMatcher.d.ts.map +1 -0
- package/dist/errors/FuzzyMatcher.js +81 -0
- package/dist/errors/FuzzyMatcher.js.map +1 -0
- package/dist/errors/ModuleErrors.d.ts +41 -0
- package/dist/errors/ModuleErrors.d.ts.map +1 -0
- package/dist/errors/ModuleErrors.js +65 -0
- package/dist/errors/ModuleErrors.js.map +1 -0
- package/dist/errors/PipelineStageError.d.ts +31 -0
- package/dist/errors/PipelineStageError.d.ts.map +1 -0
- package/dist/errors/PipelineStageError.js +77 -0
- package/dist/errors/PipelineStageError.js.map +1 -0
- package/dist/errors/ReamError.d.ts +50 -0
- package/dist/errors/ReamError.d.ts.map +1 -0
- package/dist/errors/ReamError.js +108 -0
- package/dist/errors/ReamError.js.map +1 -0
- package/dist/events/Emitter.d.ts +124 -0
- package/dist/events/Emitter.d.ts.map +1 -0
- package/dist/events/Emitter.js +271 -0
- package/dist/events/Emitter.js.map +1 -0
- package/dist/events/EventsProvider.d.ts +28 -0
- package/dist/events/EventsProvider.d.ts.map +1 -0
- package/dist/events/EventsProvider.js +36 -0
- package/dist/events/EventsProvider.js.map +1 -0
- package/dist/events/config.d.ts +8 -0
- package/dist/events/config.d.ts.map +1 -0
- package/dist/events/config.js +4 -0
- package/dist/events/config.js.map +1 -0
- package/dist/events/configure.d.ts +10 -0
- package/dist/events/configure.d.ts.map +1 -0
- package/dist/events/configure.js +11 -0
- package/dist/events/configure.js.map +1 -0
- package/dist/events/helix/helpers.d.ts +62 -0
- package/dist/events/helix/helpers.d.ts.map +1 -0
- package/dist/events/helix/helpers.js +187 -0
- package/dist/events/helix/helpers.js.map +1 -0
- package/dist/events/index.d.ts +17 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +15 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/native.d.ts +21 -0
- package/dist/events/native.d.ts.map +1 -0
- package/dist/events/native.js +17 -0
- package/dist/events/native.js.map +1 -0
- package/dist/events/services/main.d.ts +18 -0
- package/dist/events/services/main.d.ts.map +1 -0
- package/dist/events/services/main.js +31 -0
- package/dist/events/services/main.js.map +1 -0
- package/dist/events/testing/FakeBus.d.ts +66 -0
- package/dist/events/testing/FakeBus.d.ts.map +1 -0
- package/dist/events/testing/FakeBus.js +356 -0
- package/dist/events/testing/FakeBus.js.map +1 -0
- package/dist/graphql/GraphQLEngine.d.ts +69 -0
- package/dist/graphql/GraphQLEngine.d.ts.map +1 -0
- package/dist/graphql/GraphQLEngine.js +309 -0
- package/dist/graphql/GraphQLEngine.js.map +1 -0
- package/dist/graphql/GraphQLProvider.d.ts +32 -0
- package/dist/graphql/GraphQLProvider.d.ts.map +1 -0
- package/dist/graphql/GraphQLProvider.js +49 -0
- package/dist/graphql/GraphQLProvider.js.map +1 -0
- package/dist/helpers/base64.d.ts +40 -0
- package/dist/helpers/base64.d.ts.map +1 -0
- package/dist/helpers/base64.js +70 -0
- package/dist/helpers/base64.js.map +1 -0
- package/dist/helpers/index.d.ts +7 -0
- package/dist/helpers/index.d.ts.map +1 -0
- package/dist/helpers/index.js +5 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/is.d.ts +101 -0
- package/dist/helpers/is.d.ts.map +1 -0
- package/dist/helpers/is.js +151 -0
- package/dist/helpers/is.js.map +1 -0
- package/dist/helpers/napi-loader.d.ts +46 -0
- package/dist/helpers/napi-loader.d.ts.map +1 -0
- package/dist/helpers/napi-loader.js +69 -0
- package/dist/helpers/napi-loader.js.map +1 -0
- package/dist/helpers/safeEqual.d.ts +9 -0
- package/dist/helpers/safeEqual.d.ts.map +1 -0
- package/dist/helpers/safeEqual.js +16 -0
- package/dist/helpers/safeEqual.js.map +1 -0
- package/dist/helpers/string.d.ts +161 -0
- package/dist/helpers/string.d.ts.map +1 -0
- package/dist/helpers/string.js +429 -0
- package/dist/helpers/string.js.map +1 -0
- package/dist/helpers/types.d.ts +83 -0
- package/dist/helpers/types.d.ts.map +1 -0
- package/dist/helpers/types.js +6 -0
- package/dist/helpers/types.js.map +1 -0
- package/dist/http/Exception.d.ts +103 -0
- package/dist/http/Exception.d.ts.map +1 -0
- package/dist/http/Exception.js +228 -0
- package/dist/http/Exception.js.map +1 -0
- package/dist/http/HttpContext.d.ts +69 -0
- package/dist/http/HttpContext.d.ts.map +1 -0
- package/dist/http/HttpContext.js +55 -0
- package/dist/http/HttpContext.js.map +1 -0
- package/dist/http/RedirectBuilder.d.ts +31 -0
- package/dist/http/RedirectBuilder.d.ts.map +1 -0
- package/dist/http/RedirectBuilder.js +75 -0
- package/dist/http/RedirectBuilder.js.map +1 -0
- package/dist/http/Request.d.ts +160 -0
- package/dist/http/Request.d.ts.map +1 -0
- package/dist/http/Request.js +484 -0
- package/dist/http/Request.js.map +1 -0
- package/dist/http/Response.d.ts +114 -0
- package/dist/http/Response.d.ts.map +1 -0
- package/dist/http/Response.js +303 -0
- package/dist/http/Response.js.map +1 -0
- package/dist/http/SseStream.d.ts +89 -0
- package/dist/http/SseStream.d.ts.map +1 -0
- package/dist/http/SseStream.js +228 -0
- package/dist/http/SseStream.js.map +1 -0
- package/dist/http/urlDecode.d.ts +8 -0
- package/dist/http/urlDecode.d.ts.map +1 -0
- package/dist/http/urlDecode.js +18 -0
- package/dist/http/urlDecode.js.map +1 -0
- package/dist/index.d.ts +92 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/Pipeline.d.ts +36 -0
- package/dist/middleware/Pipeline.d.ts.map +1 -0
- package/dist/middleware/Pipeline.js +104 -0
- package/dist/middleware/Pipeline.js.map +1 -0
- package/dist/openapi/OpenApiGenerator.d.ts +58 -0
- package/dist/openapi/OpenApiGenerator.d.ts.map +1 -0
- package/dist/openapi/OpenApiGenerator.js +192 -0
- package/dist/openapi/OpenApiGenerator.js.map +1 -0
- package/dist/openapi/OpenApiMiddleware.d.ts +24 -0
- package/dist/openapi/OpenApiMiddleware.d.ts.map +1 -0
- package/dist/openapi/OpenApiMiddleware.js +78 -0
- package/dist/openapi/OpenApiMiddleware.js.map +1 -0
- package/dist/openapi/OpenApiProvider.d.ts +36 -0
- package/dist/openapi/OpenApiProvider.d.ts.map +1 -0
- package/dist/openapi/OpenApiProvider.js +42 -0
- package/dist/openapi/OpenApiProvider.js.map +1 -0
- package/dist/resources/ApiResource.d.ts +45 -0
- package/dist/resources/ApiResource.d.ts.map +1 -0
- package/dist/resources/ApiResource.js +58 -0
- package/dist/resources/ApiResource.js.map +1 -0
- package/dist/router/Router.d.ts +205 -0
- package/dist/router/Router.d.ts.map +1 -0
- package/dist/router/Router.js +552 -0
- package/dist/router/Router.js.map +1 -0
- package/dist/rpc/RpcProvider.d.ts +34 -0
- package/dist/rpc/RpcProvider.d.ts.map +1 -0
- package/dist/rpc/RpcProvider.js +37 -0
- package/dist/rpc/RpcProvider.js.map +1 -0
- package/dist/rpc/RpcRouter.d.ts +61 -0
- package/dist/rpc/RpcRouter.d.ts.map +1 -0
- package/dist/rpc/RpcRouter.js +187 -0
- package/dist/rpc/RpcRouter.js.map +1 -0
- package/dist/scheduler/Schedule.d.ts +53 -0
- package/dist/scheduler/Schedule.d.ts.map +1 -0
- package/dist/scheduler/Schedule.js +76 -0
- package/dist/scheduler/Schedule.js.map +1 -0
- package/dist/scheduler/ScheduleProvider.d.ts +56 -0
- package/dist/scheduler/ScheduleProvider.d.ts.map +1 -0
- package/dist/scheduler/ScheduleProvider.js +145 -0
- package/dist/scheduler/ScheduleProvider.js.map +1 -0
- package/dist/scheduler/Scheduler.d.ts +209 -0
- package/dist/scheduler/Scheduler.d.ts.map +1 -0
- package/dist/scheduler/Scheduler.js +432 -0
- package/dist/scheduler/Scheduler.js.map +1 -0
- package/dist/scheduler/index.d.ts +14 -0
- package/dist/scheduler/index.d.ts.map +1 -0
- package/dist/scheduler/index.js +6 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/scheduler/locks/LockBackend.d.ts +37 -0
- package/dist/scheduler/locks/LockBackend.d.ts.map +1 -0
- package/dist/scheduler/locks/LockBackend.js +13 -0
- package/dist/scheduler/locks/LockBackend.js.map +1 -0
- package/dist/scheduler/locks/MemoryLockBackend.d.ts +39 -0
- package/dist/scheduler/locks/MemoryLockBackend.d.ts.map +1 -0
- package/dist/scheduler/locks/MemoryLockBackend.js +71 -0
- package/dist/scheduler/locks/MemoryLockBackend.js.map +1 -0
- package/dist/scheduler/observability/ErrorReporter.d.ts +15 -0
- package/dist/scheduler/observability/ErrorReporter.d.ts.map +1 -0
- package/dist/scheduler/observability/ErrorReporter.js +13 -0
- package/dist/scheduler/observability/ErrorReporter.js.map +1 -0
- package/dist/scheduler/observability/ScheduleEvent.d.ts +57 -0
- package/dist/scheduler/observability/ScheduleEvent.d.ts.map +1 -0
- package/dist/scheduler/observability/ScheduleEvent.js +12 -0
- package/dist/scheduler/observability/ScheduleEvent.js.map +1 -0
- package/dist/scheduler/observability/ScheduleEventSink.d.ts +20 -0
- package/dist/scheduler/observability/ScheduleEventSink.d.ts.map +1 -0
- package/dist/scheduler/observability/ScheduleEventSink.js +17 -0
- package/dist/scheduler/observability/ScheduleEventSink.js.map +1 -0
- package/dist/scheduler/observability/StatsTracker.d.ts +50 -0
- package/dist/scheduler/observability/StatsTracker.d.ts.map +1 -0
- package/dist/scheduler/observability/StatsTracker.js +96 -0
- package/dist/scheduler/observability/StatsTracker.js.map +1 -0
- package/dist/security/CookieSigner.d.ts +13 -0
- package/dist/security/CookieSigner.d.ts.map +1 -0
- package/dist/security/CookieSigner.js +51 -0
- package/dist/security/CookieSigner.js.map +1 -0
- package/dist/security/SignedUrl.d.ts +17 -0
- package/dist/security/SignedUrl.d.ts.map +1 -0
- package/dist/security/SignedUrl.js +63 -0
- package/dist/security/SignedUrl.js.map +1 -0
- package/dist/security/crypto.d.ts +25 -0
- package/dist/security/crypto.d.ts.map +1 -0
- package/dist/security/crypto.js +82 -0
- package/dist/security/crypto.js.map +1 -0
- package/dist/server/HyperServer.d.ts +64 -0
- package/dist/server/HyperServer.d.ts.map +1 -0
- package/dist/server/HyperServer.js +54 -0
- package/dist/server/HyperServer.js.map +1 -0
- package/dist/server/Server.d.ts +68 -0
- package/dist/server/Server.d.ts.map +1 -0
- package/dist/server/Server.js +113 -0
- package/dist/server/Server.js.map +1 -0
- package/dist/services/app.d.ts +14 -0
- package/dist/services/app.d.ts.map +1 -0
- package/dist/services/app.js +27 -0
- package/dist/services/app.js.map +1 -0
- package/dist/services/router.d.ts +21 -0
- package/dist/services/router.d.ts.map +1 -0
- package/dist/services/router.js +36 -0
- package/dist/services/router.js.map +1 -0
- package/dist/services/server.d.ts +16 -0
- package/dist/services/server.d.ts.map +1 -0
- package/dist/services/server.js +32 -0
- package/dist/services/server.js.map +1 -0
- package/dist/session/Session.d.ts +88 -0
- package/dist/session/Session.d.ts.map +1 -0
- package/dist/session/Session.js +186 -0
- package/dist/session/Session.js.map +1 -0
- package/dist/session/SessionMiddleware.d.ts +16 -0
- package/dist/session/SessionMiddleware.d.ts.map +1 -0
- package/dist/session/SessionMiddleware.js +132 -0
- package/dist/session/SessionMiddleware.js.map +1 -0
- package/dist/session/drivers/CookieDriver.d.ts +17 -0
- package/dist/session/drivers/CookieDriver.d.ts.map +1 -0
- package/dist/session/drivers/CookieDriver.js +42 -0
- package/dist/session/drivers/CookieDriver.js.map +1 -0
- package/dist/session/drivers/MemoryDriver.d.ts +9 -0
- package/dist/session/drivers/MemoryDriver.d.ts.map +1 -0
- package/dist/session/drivers/MemoryDriver.js +24 -0
- package/dist/session/drivers/MemoryDriver.js.map +1 -0
- package/dist/storage/S3Driver.d.ts +27 -0
- package/dist/storage/S3Driver.d.ts.map +1 -0
- package/dist/storage/S3Driver.js +135 -0
- package/dist/storage/S3Driver.js.map +1 -0
- package/dist/storage/StaticMiddleware.d.ts +27 -0
- package/dist/storage/StaticMiddleware.d.ts.map +1 -0
- package/dist/storage/StaticMiddleware.js +153 -0
- package/dist/storage/StaticMiddleware.js.map +1 -0
- package/dist/storage/StaticProvider.d.ts +26 -0
- package/dist/storage/StaticProvider.d.ts.map +1 -0
- package/dist/storage/StaticProvider.js +31 -0
- package/dist/storage/StaticProvider.js.map +1 -0
- package/dist/storage/StorageManager.d.ts +31 -0
- package/dist/storage/StorageManager.d.ts.map +1 -0
- package/dist/storage/StorageManager.js +120 -0
- package/dist/storage/StorageManager.js.map +1 -0
- package/dist/testing/RequestBuilder.d.ts +67 -0
- package/dist/testing/RequestBuilder.d.ts.map +1 -0
- package/dist/testing/RequestBuilder.js +202 -0
- package/dist/testing/RequestBuilder.js.map +1 -0
- package/dist/testing/TestClient.d.ts +96 -0
- package/dist/testing/TestClient.d.ts.map +1 -0
- package/dist/testing/TestClient.js +263 -0
- package/dist/testing/TestClient.js.map +1 -0
- package/dist/types/helpers.d.ts +47 -0
- package/dist/types/helpers.d.ts.map +1 -0
- package/dist/types/helpers.js +5 -0
- package/dist/types/helpers.js.map +1 -0
- package/events.darwin-arm64.node +0 -0
- package/events.darwin-x64.node +0 -0
- package/events.linux-arm64-gnu.node +0 -0
- package/events.linux-x64-gnu.node +0 -0
- package/events.win32-x64-msvc.node +0 -0
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +106 -0
- package/scheduler.darwin-arm64.node +0 -0
- package/scheduler.darwin-x64.node +0 -0
- package/scheduler.linux-arm64-gnu.node +0 -0
- package/scheduler.linux-x64-gnu.node +0 -0
- package/scheduler.win32-x64-msvc.node +0 -0
- package/scripts/copy-napi.mjs +113 -0
- package/src/Application.ts +177 -0
- package/src/Codemods.ts +343 -0
- package/src/ConfigLoader.ts +49 -0
- package/src/ErrorBoundary.ts +157 -0
- package/src/GracefulShutdown.ts +80 -0
- package/src/HealthCheck.ts +96 -0
- package/src/HotReload.ts +78 -0
- package/src/HttpKernel.ts +305 -0
- package/src/Ignitor.ts +656 -0
- package/src/Provider.ts +74 -0
- package/src/bodyparser/BodyParserMiddleware.ts +183 -0
- package/src/bodyparser/MultipartFile.ts +181 -0
- package/src/bodyparser/parseSize.ts +19 -0
- package/src/bootstrap/hyper-server.ts +78 -0
- package/src/console/CommandRunner.ts +82 -0
- package/src/container/Container.ts +383 -0
- package/src/container/types.ts +30 -0
- package/src/decorators/Lazy.ts +57 -0
- package/src/decorators/Service.ts +85 -0
- package/src/errors/FuzzyMatcher.ts +93 -0
- package/src/errors/ModuleErrors.ts +73 -0
- package/src/errors/PipelineStageError.ts +97 -0
- package/src/errors/ReamError.ts +138 -0
- package/src/events/Emitter.ts +333 -0
- package/src/events/EventsProvider.ts +58 -0
- package/src/events/config.ts +10 -0
- package/src/events/configure.ts +19 -0
- package/src/events/helix/helpers.ts +260 -0
- package/src/events/index.ts +22 -0
- package/src/events/native.ts +37 -0
- package/src/events/services/main.ts +39 -0
- package/src/events/testing/FakeBus.ts +420 -0
- package/src/graphql/GraphQLEngine.ts +421 -0
- package/src/graphql/GraphQLProvider.ts +59 -0
- package/src/helpers/base64.ts +72 -0
- package/src/helpers/index.ts +6 -0
- package/src/helpers/is.ts +162 -0
- package/src/helpers/napi-loader.ts +106 -0
- package/src/helpers/safeEqual.ts +15 -0
- package/src/helpers/string.ts +469 -0
- package/src/helpers/types.ts +100 -0
- package/src/http/Exception.ts +272 -0
- package/src/http/HttpContext.ts +108 -0
- package/src/http/RedirectBuilder.ts +89 -0
- package/src/http/Request.ts +540 -0
- package/src/http/Response.ts +351 -0
- package/src/http/SseStream.ts +250 -0
- package/src/http/urlDecode.ts +18 -0
- package/src/index.ts +263 -0
- package/src/middleware/Pipeline.ts +136 -0
- package/src/openapi/OpenApiGenerator.ts +254 -0
- package/src/openapi/OpenApiMiddleware.ts +101 -0
- package/src/openapi/OpenApiProvider.ts +67 -0
- package/src/resources/ApiResource.ts +79 -0
- package/src/router/Router.ts +733 -0
- package/src/rpc/RpcProvider.ts +54 -0
- package/src/rpc/RpcRouter.ts +243 -0
- package/src/scheduler/Schedule.ts +96 -0
- package/src/scheduler/ScheduleProvider.ts +177 -0
- package/src/scheduler/Scheduler.ts +601 -0
- package/src/scheduler/index.ts +24 -0
- package/src/scheduler/locks/LockBackend.ts +38 -0
- package/src/scheduler/locks/MemoryLockBackend.ts +85 -0
- package/src/scheduler/observability/ErrorReporter.ts +13 -0
- package/src/scheduler/observability/ScheduleEvent.ts +61 -0
- package/src/scheduler/observability/ScheduleEventSink.ts +21 -0
- package/src/scheduler/observability/StatsTracker.ts +134 -0
- package/src/security/CookieSigner.ts +54 -0
- package/src/security/SignedUrl.ts +71 -0
- package/src/security/crypto.ts +98 -0
- package/src/server/HyperServer.ts +121 -0
- package/src/server/Server.ts +147 -0
- package/src/services/app.ts +34 -0
- package/src/services/router.ts +44 -0
- package/src/services/server.ts +40 -0
- package/src/session/Session.ts +231 -0
- package/src/session/SessionMiddleware.ts +153 -0
- package/src/session/drivers/CookieDriver.ts +48 -0
- package/src/session/drivers/MemoryDriver.ts +29 -0
- package/src/storage/S3Driver.ts +171 -0
- package/src/storage/StaticMiddleware.ts +182 -0
- package/src/storage/StaticProvider.ts +40 -0
- package/src/storage/StorageManager.ts +142 -0
- package/src/testing/RequestBuilder.ts +275 -0
- package/src/testing/TestClient.ts +344 -0
- package/src/types/helpers.ts +52 -0
- package/swcrc.app.json +17 -0
- package/tsconfig.app.json +21 -0
package/dist/Ignitor.js
ADDED
|
@@ -0,0 +1,505 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ignitor — AdonisJS-compatible application bootstrap.
|
|
3
|
+
*
|
|
4
|
+
* Usage (like AdonisJS):
|
|
5
|
+
* new Ignitor(APP_ROOT, { importer: IMPORTER })
|
|
6
|
+
* .tap((app) => {
|
|
7
|
+
* app.booting(async () => { await import('#start/env') })
|
|
8
|
+
* app.listen('SIGTERM', () => app.terminate())
|
|
9
|
+
* })
|
|
10
|
+
* .httpServer()
|
|
11
|
+
* .start()
|
|
12
|
+
*
|
|
13
|
+
* @implements FR17, FR20, FR23
|
|
14
|
+
*/
|
|
15
|
+
import { Application } from './Application.js';
|
|
16
|
+
import { ErrorBoundary } from './ErrorBoundary.js';
|
|
17
|
+
import { ReamError } from './errors/ReamError.js';
|
|
18
|
+
import { startHotReload } from './HotReload.js';
|
|
19
|
+
import { createHttpKernel } from './HttpKernel.js';
|
|
20
|
+
import { ExceptionHandler } from './http/Exception.js';
|
|
21
|
+
import { MiddlewareRegistry } from './middleware/Pipeline.js';
|
|
22
|
+
import { callProviderPhase } from './Provider.js';
|
|
23
|
+
import { Router } from './router/Router.js';
|
|
24
|
+
import { Server } from './server/Server.js';
|
|
25
|
+
import { setApp } from './services/app.js';
|
|
26
|
+
import { setRouter } from './services/router.js';
|
|
27
|
+
import { setServer } from './services/server.js';
|
|
28
|
+
/** defineConfig helper — like AdonisJS defineConfig(). */
|
|
29
|
+
export function defineConfig(config) {
|
|
30
|
+
return config;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Ignitor — boots and wires the Ream framework.
|
|
34
|
+
*
|
|
35
|
+
* Lifecycle: register → boot → start → ready → shutdown
|
|
36
|
+
*/
|
|
37
|
+
export class Ignitor {
|
|
38
|
+
app;
|
|
39
|
+
router;
|
|
40
|
+
server;
|
|
41
|
+
middleware;
|
|
42
|
+
errorBoundary;
|
|
43
|
+
_httpServer;
|
|
44
|
+
config;
|
|
45
|
+
appRoot;
|
|
46
|
+
environment = 'unknown';
|
|
47
|
+
reamrc;
|
|
48
|
+
providers = [];
|
|
49
|
+
errorListeners = [];
|
|
50
|
+
phase = 'created';
|
|
51
|
+
hotReloadCleanup;
|
|
52
|
+
// Inline configuration (for simple use or testing)
|
|
53
|
+
inlineRoutes;
|
|
54
|
+
inlineMiddleware = [];
|
|
55
|
+
inlineNamedMiddleware = [];
|
|
56
|
+
inlineProviderFactories = [];
|
|
57
|
+
/**
|
|
58
|
+
* Create the Ignitor.
|
|
59
|
+
*
|
|
60
|
+
* AdonisJS-style:
|
|
61
|
+
* new Ignitor(APP_ROOT, { importer: IMPORTER })
|
|
62
|
+
*
|
|
63
|
+
* Simple-style:
|
|
64
|
+
* new Ignitor({ port: 3000, serverFactory: ... })
|
|
65
|
+
*/
|
|
66
|
+
constructor(appRootOrConfig, config) {
|
|
67
|
+
if (appRootOrConfig instanceof URL) {
|
|
68
|
+
this.appRoot = appRootOrConfig;
|
|
69
|
+
this.config = config ?? {};
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.config = appRootOrConfig ?? {};
|
|
73
|
+
}
|
|
74
|
+
this.app = new Application();
|
|
75
|
+
this.router = new Router();
|
|
76
|
+
this.server = new Server(this.router);
|
|
77
|
+
this.middleware = new MiddlewareRegistry();
|
|
78
|
+
this.errorBoundary = new ErrorBoundary((event) => this.handleError(event), this.isDevMode());
|
|
79
|
+
// Register framework services in container
|
|
80
|
+
this.app.container.singleton('router', () => this.router);
|
|
81
|
+
this.app.container.singleton('server', () => this.server);
|
|
82
|
+
this.app.container.singleton('middleware', () => this.middleware);
|
|
83
|
+
this.app.container.singleton('app', () => this.app);
|
|
84
|
+
// `appRoot` is the URL passed to `new Ignitor(new URL('../', import.meta.url))`.
|
|
85
|
+
// Providers resolve it through the container so they can interpret
|
|
86
|
+
// relative paths in config files (e.g. `pages.root: './resources/pages'`)
|
|
87
|
+
// against the project root — same convention `modules.path` uses.
|
|
88
|
+
if (this.appRoot) {
|
|
89
|
+
const root = this.appRoot;
|
|
90
|
+
this.app.container.singleton('appRoot', () => root);
|
|
91
|
+
}
|
|
92
|
+
// Set service singletons so route/kernel files can import them
|
|
93
|
+
setApp(this.app);
|
|
94
|
+
setRouter(this.router);
|
|
95
|
+
setServer(this.server);
|
|
96
|
+
}
|
|
97
|
+
// ─── Configuration ────────────────────────────────────────
|
|
98
|
+
/**
|
|
99
|
+
* Access the Application instance before start.
|
|
100
|
+
* Like AdonisJS: .tap((app) => { app.booting(...) })
|
|
101
|
+
*/
|
|
102
|
+
tap(callback) {
|
|
103
|
+
callback(this.app);
|
|
104
|
+
return this;
|
|
105
|
+
}
|
|
106
|
+
/** Set the application environment. */
|
|
107
|
+
setEnvironment(env) {
|
|
108
|
+
this.environment = env;
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
getEnvironment() {
|
|
112
|
+
return this.environment;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Load the reamrc config (equivalent to adonisrc.ts).
|
|
116
|
+
*/
|
|
117
|
+
useRcFile(reamrc) {
|
|
118
|
+
this.reamrc = reamrc;
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
// === Inline configuration (simple mode / testing) ===
|
|
122
|
+
/** Define routes inline (simple mode). */
|
|
123
|
+
routes(callback) {
|
|
124
|
+
this.inlineRoutes = callback;
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
/** Add global middleware inline. */
|
|
128
|
+
use(mw) {
|
|
129
|
+
this.inlineMiddleware.push(mw);
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
/** Register a named middleware inline. */
|
|
133
|
+
named(name, mw) {
|
|
134
|
+
this.inlineNamedMiddleware.push([name, mw]);
|
|
135
|
+
return this;
|
|
136
|
+
}
|
|
137
|
+
/** Register a provider inline (for testing or simple apps). */
|
|
138
|
+
provider(factory) {
|
|
139
|
+
this.inlineProviderFactories.push(factory);
|
|
140
|
+
return this;
|
|
141
|
+
}
|
|
142
|
+
/** Listen for error events. */
|
|
143
|
+
onError(listener) {
|
|
144
|
+
this.errorListeners.push(listener);
|
|
145
|
+
return this;
|
|
146
|
+
}
|
|
147
|
+
/** Set a config value. */
|
|
148
|
+
configure(key, value) {
|
|
149
|
+
this.app.config.set(key, value);
|
|
150
|
+
return this;
|
|
151
|
+
}
|
|
152
|
+
// ─── Mode selection ───────────────────────────────────────
|
|
153
|
+
/** Configure for HTTP server mode. */
|
|
154
|
+
httpServer() {
|
|
155
|
+
this.environment = 'web';
|
|
156
|
+
return this;
|
|
157
|
+
}
|
|
158
|
+
/** Configure for CLI/console mode. Returns a ConsoleKernel for dispatching commands. */
|
|
159
|
+
console() {
|
|
160
|
+
this.environment = 'console';
|
|
161
|
+
return new ConsoleKernel(this);
|
|
162
|
+
}
|
|
163
|
+
/** Configure for test mode. */
|
|
164
|
+
testMode() {
|
|
165
|
+
this.environment = 'test';
|
|
166
|
+
return this;
|
|
167
|
+
}
|
|
168
|
+
// ─── Lifecycle ────────────────────────────────────────────
|
|
169
|
+
async start() {
|
|
170
|
+
await this.phaseRegister();
|
|
171
|
+
await this.phaseBoot();
|
|
172
|
+
await this.phaseStart();
|
|
173
|
+
await this.phaseReady();
|
|
174
|
+
return this;
|
|
175
|
+
}
|
|
176
|
+
async phaseRegister() {
|
|
177
|
+
// Auto-load config/*.ts files into app.config
|
|
178
|
+
await this.autoloadConfig();
|
|
179
|
+
// Load providers from reamrc
|
|
180
|
+
if (this.reamrc?.providers) {
|
|
181
|
+
for (const providerEntry of this.reamrc.providers) {
|
|
182
|
+
const providerImport = typeof providerEntry === 'function' ? providerEntry : providerEntry.file;
|
|
183
|
+
const env = typeof providerEntry === 'function' ? undefined : providerEntry.environment;
|
|
184
|
+
// Skip providers not matching current environment
|
|
185
|
+
if (env && !env.includes(this.environment))
|
|
186
|
+
continue;
|
|
187
|
+
const mod = await providerImport();
|
|
188
|
+
const ProviderClass = mod.default;
|
|
189
|
+
const instance = new ProviderClass(this.app);
|
|
190
|
+
this.providers.push(instance);
|
|
191
|
+
this.app.register(instance);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Register inline providers
|
|
195
|
+
for (const factory of this.inlineProviderFactories) {
|
|
196
|
+
const instance = factory(this.app);
|
|
197
|
+
this.providers.push(instance);
|
|
198
|
+
this.app.register(instance);
|
|
199
|
+
}
|
|
200
|
+
this.phase = 'registered';
|
|
201
|
+
}
|
|
202
|
+
async phaseBoot() {
|
|
203
|
+
await this.app.boot();
|
|
204
|
+
this.phase = 'booted';
|
|
205
|
+
}
|
|
206
|
+
async phaseStart() {
|
|
207
|
+
// Import preload files (routes.ts, kernel.ts, etc.)
|
|
208
|
+
if (this.reamrc?.preloads) {
|
|
209
|
+
for (const preloadEntry of this.reamrc.preloads) {
|
|
210
|
+
const preloadImport = typeof preloadEntry === 'function' ? preloadEntry : preloadEntry.file;
|
|
211
|
+
const env = typeof preloadEntry === 'function'
|
|
212
|
+
? undefined
|
|
213
|
+
: preloadEntry.environment;
|
|
214
|
+
if (env && !env.includes(this.environment))
|
|
215
|
+
continue;
|
|
216
|
+
await preloadImport();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// Auto-load module files (routes.ts, etc.) from modules directory
|
|
220
|
+
await this.autoloadModules();
|
|
221
|
+
// Apply inline configuration
|
|
222
|
+
for (const mw of this.inlineMiddleware) {
|
|
223
|
+
this.middleware.use(mw);
|
|
224
|
+
}
|
|
225
|
+
for (const [name, mw] of this.inlineNamedMiddleware) {
|
|
226
|
+
this.middleware.register(name, mw);
|
|
227
|
+
}
|
|
228
|
+
if (this.inlineRoutes) {
|
|
229
|
+
this.inlineRoutes(this.router);
|
|
230
|
+
}
|
|
231
|
+
// Call start() on providers
|
|
232
|
+
for (const provider of this.providers) {
|
|
233
|
+
await callProviderPhase(provider, 'start');
|
|
234
|
+
}
|
|
235
|
+
this.phase = 'started';
|
|
236
|
+
}
|
|
237
|
+
async phaseReady() {
|
|
238
|
+
// Boot the Server (resolves lazy error handler etc.)
|
|
239
|
+
await this.server.boot();
|
|
240
|
+
// Start HTTP server if in web mode
|
|
241
|
+
if (this.environment === 'web' && this.config.serverFactory) {
|
|
242
|
+
// Build the HttpKernel with server middleware + router middleware.
|
|
243
|
+
// The streaming backend is resolved lazily — the HyperServer is
|
|
244
|
+
// created a few lines down, after the kernel — so the kernel
|
|
245
|
+
// closes over the `this._httpServer` slot and reads it on every
|
|
246
|
+
// request through the factory.
|
|
247
|
+
const kernel = createHttpKernel({
|
|
248
|
+
router: this.router,
|
|
249
|
+
middleware: this.middleware,
|
|
250
|
+
container: this.app.container,
|
|
251
|
+
exceptionHandler: this.server.getErrorHandler() ?? new ExceptionHandler(!this.app.inProduction),
|
|
252
|
+
serverMiddleware: this.server.getServerMiddleware(),
|
|
253
|
+
routerMiddleware: this.router.getRouterMiddleware(),
|
|
254
|
+
onError: (error, ctx) => {
|
|
255
|
+
this.errorBoundary.serviceError('HttpKernel', error, ctx.id);
|
|
256
|
+
},
|
|
257
|
+
streamBackend: () => {
|
|
258
|
+
const server = this._httpServer;
|
|
259
|
+
if (server &&
|
|
260
|
+
typeof server.registerStream === 'function' &&
|
|
261
|
+
typeof server.writeStream === 'function' &&
|
|
262
|
+
typeof server.closeStream === 'function' &&
|
|
263
|
+
typeof server.onStreamDisconnect === 'function') {
|
|
264
|
+
// Narrow to a backend-shaped record. All four methods are
|
|
265
|
+
// present at this point — the check above guards mocked
|
|
266
|
+
// servers without forcing a structural cast.
|
|
267
|
+
return {
|
|
268
|
+
registerStream: server.registerStream.bind(server),
|
|
269
|
+
writeStream: server.writeStream.bind(server),
|
|
270
|
+
closeStream: server.closeStream.bind(server),
|
|
271
|
+
onStreamDisconnect: server.onStreamDisconnect.bind(server),
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
return undefined;
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
const desiredPort = this.config.port ?? 3000;
|
|
278
|
+
const availablePort = await findAvailablePort(desiredPort);
|
|
279
|
+
this._httpServer = this.config.serverFactory(availablePort);
|
|
280
|
+
this._httpServer.onRequest(kernel);
|
|
281
|
+
// Pre-resolve client IPs in Rust from the trusted-proxy CIDRs before
|
|
282
|
+
// listen. Security filtering itself lives in @c9up/blackhole.
|
|
283
|
+
const trustedProxies = this.server.getTrustedProxies();
|
|
284
|
+
if (trustedProxies.length > 0 &&
|
|
285
|
+
typeof this._httpServer.configureTrustedProxies === 'function') {
|
|
286
|
+
this._httpServer.configureTrustedProxies([...trustedProxies]);
|
|
287
|
+
}
|
|
288
|
+
await this._httpServer.listen();
|
|
289
|
+
}
|
|
290
|
+
else if (this.environment === 'web' && !this.config.serverFactory) {
|
|
291
|
+
throw new ReamError('IGNITOR_NO_SERVER_FACTORY', 'httpServer() requires a serverFactory in config', {
|
|
292
|
+
hint: 'Example: new Ignitor({ serverFactory: (port) => new HyperServer(port) })',
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
// Install error boundary
|
|
296
|
+
this.errorBoundary.install();
|
|
297
|
+
// Call ready() on providers
|
|
298
|
+
for (const provider of this.providers) {
|
|
299
|
+
await callProviderPhase(provider, 'ready');
|
|
300
|
+
}
|
|
301
|
+
// Core domain event: the app finished booting (all providers ready).
|
|
302
|
+
// Emitted once through the bus when events are wired — zero hot-path cost.
|
|
303
|
+
if (this.app.container.has('events')) {
|
|
304
|
+
this.app.container
|
|
305
|
+
.resolve('events')
|
|
306
|
+
.emit('app:ready', { environment: this.environment });
|
|
307
|
+
}
|
|
308
|
+
// Hot-reload in dev mode
|
|
309
|
+
if (this.isDevMode()) {
|
|
310
|
+
const watchDirs = this.config.watchDirs ?? ['app', 'start'];
|
|
311
|
+
this.hotReloadCleanup = startHotReload({
|
|
312
|
+
watchDirs,
|
|
313
|
+
onReload: async () => {
|
|
314
|
+
const { clearServiceRegistry } = await import('./decorators/Service.js');
|
|
315
|
+
clearServiceRegistry();
|
|
316
|
+
this.router.clear();
|
|
317
|
+
if (this.inlineRoutes)
|
|
318
|
+
this.inlineRoutes(this.router);
|
|
319
|
+
if (this.reamrc?.preloads) {
|
|
320
|
+
for (const preloadEntry of this.reamrc.preloads) {
|
|
321
|
+
const preloadImport = typeof preloadEntry === 'function' ? preloadEntry : preloadEntry.file;
|
|
322
|
+
await preloadImport();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
logger: {
|
|
327
|
+
info: (msg) => this.handleError({
|
|
328
|
+
type: 'system.info',
|
|
329
|
+
source: 'HotReload',
|
|
330
|
+
message: msg,
|
|
331
|
+
severity: 'info',
|
|
332
|
+
timestamp: new Date().toISOString(),
|
|
333
|
+
}),
|
|
334
|
+
},
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
this.phase = 'ready';
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Auto-load config/*.ts files into app.config store.
|
|
341
|
+
* Each file's default export is stored under its filename (without extension).
|
|
342
|
+
* e.g. config/database.ts → app.config.get('database')
|
|
343
|
+
*/
|
|
344
|
+
async autoloadConfig() {
|
|
345
|
+
const { readdirSync, existsSync } = await import('node:fs');
|
|
346
|
+
const { join, basename } = await import('node:path');
|
|
347
|
+
const { fileURLToPath, pathToFileURL } = await import('node:url');
|
|
348
|
+
const configDir = this.appRoot
|
|
349
|
+
? join(fileURLToPath(this.appRoot), 'config')
|
|
350
|
+
: join(process.cwd(), 'config');
|
|
351
|
+
if (!existsSync(configDir))
|
|
352
|
+
return;
|
|
353
|
+
const files = readdirSync(configDir)
|
|
354
|
+
.filter((f) => (f.endsWith('.ts') || f.endsWith('.js')) && !f.startsWith('.'))
|
|
355
|
+
.sort();
|
|
356
|
+
for (const file of files) {
|
|
357
|
+
const key = basename(file).replace(/\.(ts|js)$/, '');
|
|
358
|
+
const mod = await import(pathToFileURL(join(configDir, file)).href);
|
|
359
|
+
this.app.config.set(key, mod.default ?? mod);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Auto-load module files (routes.ts, etc.) from the modules directory.
|
|
364
|
+
* Scans modules.path for subdirectories and imports matching files.
|
|
365
|
+
*/
|
|
366
|
+
async autoloadModules() {
|
|
367
|
+
const modulesConfig = this.reamrc?.modules;
|
|
368
|
+
if (!modulesConfig?.path)
|
|
369
|
+
return;
|
|
370
|
+
const { readdirSync, existsSync } = await import('node:fs');
|
|
371
|
+
const { join, resolve } = await import('node:path');
|
|
372
|
+
const { fileURLToPath } = await import('node:url');
|
|
373
|
+
const { pathToFileURL } = await import('node:url');
|
|
374
|
+
// Resolve modules path relative to app root or cwd
|
|
375
|
+
const basePath = this.appRoot
|
|
376
|
+
? join(fileURLToPath(this.appRoot), modulesConfig.path)
|
|
377
|
+
: resolve(modulesConfig.path);
|
|
378
|
+
if (!existsSync(basePath))
|
|
379
|
+
return;
|
|
380
|
+
const autoloadFiles = modulesConfig.autoload ?? ['routes', 'events'];
|
|
381
|
+
const moduleDirs = readdirSync(basePath, { withFileTypes: true })
|
|
382
|
+
.filter((d) => d.isDirectory())
|
|
383
|
+
.map((d) => d.name)
|
|
384
|
+
.sort();
|
|
385
|
+
for (const moduleDir of moduleDirs) {
|
|
386
|
+
for (const fileName of autoloadFiles) {
|
|
387
|
+
const tsPath = join(basePath, moduleDir, `${fileName}.ts`);
|
|
388
|
+
const jsPath = join(basePath, moduleDir, `${fileName}.js`);
|
|
389
|
+
const filePath = existsSync(tsPath) ? tsPath : existsSync(jsPath) ? jsPath : null;
|
|
390
|
+
if (filePath) {
|
|
391
|
+
await import(pathToFileURL(filePath).href);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
/** Graceful shutdown. */
|
|
397
|
+
async stop() {
|
|
398
|
+
if (this.hotReloadCleanup)
|
|
399
|
+
this.hotReloadCleanup();
|
|
400
|
+
if (this._httpServer)
|
|
401
|
+
await this._httpServer.close();
|
|
402
|
+
this.errorBoundary.uninstall();
|
|
403
|
+
await this.app.shutdown();
|
|
404
|
+
this.phase = 'shutdown';
|
|
405
|
+
}
|
|
406
|
+
// ─── Accessors ────────────────────────────────────────────
|
|
407
|
+
async port() {
|
|
408
|
+
return this._httpServer ? this._httpServer.port() : 0;
|
|
409
|
+
}
|
|
410
|
+
getApp() {
|
|
411
|
+
return this.app;
|
|
412
|
+
}
|
|
413
|
+
getRouter() {
|
|
414
|
+
return this.router;
|
|
415
|
+
}
|
|
416
|
+
getServer() {
|
|
417
|
+
return this.server;
|
|
418
|
+
}
|
|
419
|
+
/** Get the kernel callback (for serverless / testing). */
|
|
420
|
+
getKernel() {
|
|
421
|
+
return createHttpKernel({
|
|
422
|
+
router: this.router,
|
|
423
|
+
middleware: this.middleware,
|
|
424
|
+
container: this.app.container,
|
|
425
|
+
exceptionHandler: this.server.getErrorHandler() ?? new ExceptionHandler(!this.app.inProduction),
|
|
426
|
+
serverMiddleware: this.server.getServerMiddleware(),
|
|
427
|
+
routerMiddleware: this.router.getRouterMiddleware(),
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
isDevMode() {
|
|
431
|
+
return this.app.inDev;
|
|
432
|
+
}
|
|
433
|
+
getPhase() {
|
|
434
|
+
return this.phase;
|
|
435
|
+
}
|
|
436
|
+
handleError(event) {
|
|
437
|
+
for (const listener of this.errorListeners) {
|
|
438
|
+
try {
|
|
439
|
+
listener(event);
|
|
440
|
+
}
|
|
441
|
+
catch {
|
|
442
|
+
/* Don't let listeners crash */
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Pretty-print an error (like AdonisJS prettyPrintError).
|
|
449
|
+
*/
|
|
450
|
+
export function prettyPrintError(error) {
|
|
451
|
+
if (error instanceof ReamError) {
|
|
452
|
+
console.error(error.toDevString());
|
|
453
|
+
}
|
|
454
|
+
else if (error instanceof Error) {
|
|
455
|
+
console.error(`\n ${error.message}\n`);
|
|
456
|
+
if (error.stack)
|
|
457
|
+
console.error(error.stack);
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
console.error(error);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* ConsoleKernel — handles CLI command dispatching.
|
|
465
|
+
* Like AdonisJS: new Ignitor(...).console().handle(process.argv.splice(2))
|
|
466
|
+
*/
|
|
467
|
+
export class ConsoleKernel {
|
|
468
|
+
ignitor;
|
|
469
|
+
constructor(ignitor) {
|
|
470
|
+
this.ignitor = ignitor;
|
|
471
|
+
}
|
|
472
|
+
async handle(argv) {
|
|
473
|
+
await this.ignitor.start();
|
|
474
|
+
const { CommandRunner } = await import('./console/CommandRunner.js');
|
|
475
|
+
const runner = new CommandRunner();
|
|
476
|
+
// Auto-register commands from reamrc
|
|
477
|
+
const reamrc = this.ignitor.reamrc;
|
|
478
|
+
if (reamrc?.commands) {
|
|
479
|
+
for (const commandImport of reamrc.commands) {
|
|
480
|
+
const mod = await commandImport();
|
|
481
|
+
const cmd = mod.default;
|
|
482
|
+
if (cmd?.name && typeof cmd?.run === 'function') {
|
|
483
|
+
runner.register(cmd);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
this.ignitor.getApp().container.singleton('console', () => runner);
|
|
488
|
+
await runner.handle(argv);
|
|
489
|
+
await this.ignitor.stop();
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
async function findAvailablePort(desired) {
|
|
493
|
+
const net = await import('node:net');
|
|
494
|
+
for (let port = desired; port < desired + 20; port++) {
|
|
495
|
+
const available = await new Promise((resolve) => {
|
|
496
|
+
const server = net.createServer();
|
|
497
|
+
server.listen(port, () => server.close(() => resolve(true)));
|
|
498
|
+
server.on('error', () => resolve(false));
|
|
499
|
+
});
|
|
500
|
+
if (available)
|
|
501
|
+
return port;
|
|
502
|
+
}
|
|
503
|
+
return desired;
|
|
504
|
+
}
|
|
505
|
+
//# sourceMappingURL=Ignitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ignitor.js","sourceRoot":"","sources":["../src/Ignitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAoChD,0DAA0D;AAC1D,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,MAAM,CAAA;AACf,CAAC;AAiCD;;;;GAIG;AACH,MAAM,OAAO,OAAO;IACV,GAAG,CAAa;IAChB,MAAM,CAAQ;IACd,MAAM,CAAQ;IACd,UAAU,CAAoB;IAC9B,aAAa,CAAe;IAC5B,WAAW,CAAkB;IAC7B,MAAM,CAAe;IACrB,OAAO,CAAM;IACb,WAAW,GAAmB,SAAS,CAAA;IACvC,MAAM,CAAe;IACrB,SAAS,GAAuB,EAAE,CAAA;IAClC,cAAc,GAAuC,EAAE,CAAA;IACvD,KAAK,GAA2E,SAAS,CAAA;IACzF,gBAAgB,CAAa;IAErC,mDAAmD;IAC3C,YAAY,CAA2B;IACvC,gBAAgB,GAAyB,EAAE,CAAA;IAC3C,qBAAqB,GAAwC,EAAE,CAAA;IAC/D,uBAAuB,GAAkD,EAAE,CAAA;IAEnF;;;;;;;;OAQG;IACH,YAAY,eAAqC,EAAE,MAAsB;QACvE,IAAI,eAAe,YAAY,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAA;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,eAAe,IAAI,EAAE,CAAA;QACrC,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,EAAE,CAAA;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAE5F,2CAA2C;QAC3C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACjE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnD,iFAAiF;QACjF,mEAAmE;QACnE,0EAA0E;QAC1E,kEAAkE;QAClE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;YACzB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QACrD,CAAC;QAED,+DAA+D;QAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;IAED,6DAA6D;IAE7D;;;OAGG;IACH,GAAG,CAAC,QAAoC;QACtC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,uCAAuC;IACvC,cAAc,CAAC,GAAmB;QAChC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAoB;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,uDAAuD;IAEvD,0CAA0C;IAC1C,MAAM,CAAC,QAAkC;QACvC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,oCAAoC;IACpC,GAAG,CAAC,EAAsB;QACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,IAAY,EAAE,EAAsB;QACxC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,+DAA+D;IAC/D,QAAQ,CAAC,OAA+C;QACtD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,+BAA+B;IAC/B,OAAO,CAAC,QAAqC;QAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,0BAA0B;IAC1B,SAAS,CAAC,GAAW,EAAE,KAAc;QACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6DAA6D;IAE7D,sCAAsC;IACtC,UAAU;QACR,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,wFAAwF;IACxF,OAAO;QACL,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC5B,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,+BAA+B;IAC/B,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6DAA6D;IAE7D,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAC1B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,8CAA8C;QAC9C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QAE3B,6BAA6B;QAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;YAC3B,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAClD,MAAM,cAAc,GAClB,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAA;gBAC1E,MAAM,GAAG,GAAG,OAAO,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAA;gBAEvF,kDAAkD;gBAClD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;oBAAE,SAAQ;gBAEpD,MAAM,GAAG,GAAG,MAAM,cAAc,EAAE,CAAA;gBAClC,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAA;gBACjC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC7B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC7B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC7B,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,YAAY,CAAA;IAC3B,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACrB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAA;IACvB,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,oDAAoD;QACpD,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC1B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,aAAa,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAA;gBAC3F,MAAM,GAAG,GACP,OAAO,YAAY,KAAK,UAAU;oBAChC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAE,YAA2C,CAAC,WAAW,CAAA;gBAE9D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;oBAAE,SAAQ;gBACpD,MAAM,aAAa,EAAE,CAAA;YACvB,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QAE5B,6BAA6B;QAC7B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACzB,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;IACxB,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,qDAAqD;QACrD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAExB,mCAAmC;QACnC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC5D,mEAAmE;YACnE,gEAAgE;YAChE,6DAA6D;YAC7D,gEAAgE;YAChE,+BAA+B;YAC/B,MAAM,MAAM,GAAG,gBAAgB,CAAC;gBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;gBAC7B,gBAAgB,EACd,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,IAAI,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;gBAC/E,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;gBACnD,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;gBACnD,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBACtB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC9D,CAAC;gBACD,aAAa,EAAE,GAAG,EAAE;oBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;oBAC/B,IACE,MAAM;wBACN,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU;wBAC3C,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU;wBACxC,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU;wBACxC,OAAO,MAAM,CAAC,kBAAkB,KAAK,UAAU,EAC/C,CAAC;wBACD,0DAA0D;wBAC1D,wDAAwD;wBACxD,6CAA6C;wBAC7C,OAAO;4BACL,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;4BAClD,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;4BAC5C,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;4BAC5C,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;yBAC3D,CAAA;oBACH,CAAC;oBACD,OAAO,SAAS,CAAA;gBAClB,CAAC;aACF,CAAC,CAAA;YAEF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAA;YAC5C,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAA;YAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;YAC3D,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAClC,qEAAqE;YACrE,8DAA8D;YAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAA;YACtD,IACE,cAAc,CAAC,MAAM,GAAG,CAAC;gBACzB,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAuB,KAAK,UAAU,EAC9D,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAA;YAC/D,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACpE,MAAM,IAAI,SAAS,CACjB,2BAA2B,EAC3B,iDAAiD,EACjD;gBACE,IAAI,EAAE,0EAA0E;aACjF,CACF,CAAA;QACH,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;QAE5B,4BAA4B;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;QAED,qEAAqE;QACrE,2EAA2E;QAC3E,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,SAAS;iBACf,OAAO,CAAU,QAAQ,CAAC;iBAC1B,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QACzD,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC3D,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;gBACrC,SAAS;gBACT,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACnB,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;oBACxE,oBAAoB,EAAE,CAAA;oBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;oBACnB,IAAI,IAAI,CAAC,YAAY;wBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBACrD,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;wBAC1B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;4BAChD,MAAM,aAAa,GACjB,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAA;4BACvE,MAAM,aAAa,EAAE,CAAA;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CACZ,IAAI,CAAC,WAAW,CAAC;wBACf,IAAI,EAAE,aAAa;wBACnB,MAAM,EAAE,WAAW;wBACnB,OAAO,EAAE,GAAG;wBACZ,QAAQ,EAAE,MAAM;wBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACtB,CAAC;iBACnB;aACF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,OAAO,CAAA;IACtB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,cAAc;QAC1B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;QAC3D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;QACpD,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;QAEjE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO;YAC5B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;QAEjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAM;QAElC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;aACjC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACrF,IAAI,EAAE,CAAA;QAET,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;YACpD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACnE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAA;QAC1C,IAAI,CAAC,aAAa,EAAE,IAAI;YAAE,OAAM;QAEhC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;QAC3D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAA;QACnD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;QAClD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;QAElD,mDAAmD;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO;YAC3B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC;YACvD,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAE/B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAM;QAEjC,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACpE,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,EAAE,CAAA;QAET,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAA;gBAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAA;gBAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;gBACjF,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAClD,IAAI,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACpD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAA;QAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QACzB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAA;IACzB,CAAC;IAED,6DAA6D;IAE7D,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,0DAA0D;IAC1D,SAAS;QACP,OAAO,gBAAgB,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;YAC7B,gBAAgB,EACd,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,IAAI,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;YAC/E,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;YACnD,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;SACpD,CAAC,CAAA;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IACvB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAEO,WAAW,CAAC,KAAiB;QACnC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;IACpC,CAAC;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,OAAO,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,OAAO,CAAS;IAExB,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAc;QACzB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAA;QAElC,qCAAqC;QACrC,MAAM,MAAM,GAAI,IAAI,CAAC,OAAgD,CAAC,MAAM,CAAA;QAC5E,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YACrB,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC5C,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAA;gBACjC,MAAM,GAAG,GACP,GAOD,CAAC,OAAO,CAAA;gBACT,IAAI,GAAG,EAAE,IAAI,IAAI,OAAO,GAAG,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC;oBAChD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;QAClE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAC3B,CAAC;CACF;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAe;IAC9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAA;IACpC,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;YACvD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAA;YACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC5D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QACF,IAAI,SAAS;YAAE,OAAO,IAAI,CAAA;IAC5B,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Provider class — modules register via providers.
|
|
3
|
+
*
|
|
4
|
+
* @implements FR20
|
|
5
|
+
*
|
|
6
|
+
* Lifecycle (AdonisJS-compatible):
|
|
7
|
+
* register() → boot() → start() → ready() → ... → shutdown()
|
|
8
|
+
*/
|
|
9
|
+
import type { ConfigStore } from './ConfigLoader.js';
|
|
10
|
+
import type { Container } from './container/Container.js';
|
|
11
|
+
export interface AppContext {
|
|
12
|
+
container: Container;
|
|
13
|
+
config: ConfigStore;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Structural contract for a provider — all phases optional. Independently-
|
|
17
|
+
* published packages (spectrum, warden, blackhole, relay, ...) implement
|
|
18
|
+
* only the phases they need without taking a hard dependency on
|
|
19
|
+
* `@c9up/ream`. The lifecycle runner guards each call with a `typeof`
|
|
20
|
+
* check, so a missing method is opt-out, not a contract break.
|
|
21
|
+
*
|
|
22
|
+
* The abstract `Provider` class below is the convenience implementation
|
|
23
|
+
* for code that *does* live inside this package — it ships empty
|
|
24
|
+
* defaults for every phase. Both shapes satisfy `ProviderContract`.
|
|
25
|
+
*/
|
|
26
|
+
export interface ProviderContract {
|
|
27
|
+
register?(): void;
|
|
28
|
+
boot?(): Promise<void> | void;
|
|
29
|
+
start?(): Promise<void> | void;
|
|
30
|
+
ready?(): Promise<void> | void;
|
|
31
|
+
shutdown?(): Promise<void> | void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Invoke an async lifecycle phase on a provider, ignoring it when the
|
|
35
|
+
* method is absent. Centralises the duck-type guard that the lifecycle
|
|
36
|
+
* runner has to do at every phase since `ProviderContract` makes them
|
|
37
|
+
* all optional.
|
|
38
|
+
*/
|
|
39
|
+
export declare function callProviderPhase(provider: ProviderContract, phase: 'boot' | 'start' | 'ready' | 'shutdown'): Promise<void>;
|
|
40
|
+
export declare abstract class Provider implements ProviderContract {
|
|
41
|
+
protected app: AppContext;
|
|
42
|
+
constructor(app: AppContext);
|
|
43
|
+
/** Phase 1: Register bindings in the container (synchronous). */
|
|
44
|
+
register(): void;
|
|
45
|
+
/** Phase 2: Boot — framework setup, verify connections. */
|
|
46
|
+
boot(): Promise<void>;
|
|
47
|
+
/** Phase 3: Start — before HTTP server starts. Import routes, warm caches. */
|
|
48
|
+
start(): Promise<void>;
|
|
49
|
+
/** Phase 4: Ready — app fully operational, HTTP server listening. */
|
|
50
|
+
ready(): Promise<void>;
|
|
51
|
+
/** Cleanup on shutdown (reverse order). */
|
|
52
|
+
shutdown(): Promise<void>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=Provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../src/Provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,WAAW,CAAA;CACpB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,IAAI,CAAA;IACjB,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7B,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC9B,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAClC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAC7C,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,8BAAsB,QAAS,YAAW,gBAAgB;IACxD,SAAS,CAAC,GAAG,EAAE,UAAU,CAAA;gBAEb,GAAG,EAAE,UAAU;IAI3B,iEAAiE;IACjE,QAAQ,IAAI,IAAI;IAEhB,2DAA2D;IACrD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAE3B,8EAA8E;IACxE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE5B,qEAAqE;IAC/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE5B,2CAA2C;IACrC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC"}
|
package/dist/Provider.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Provider class — modules register via providers.
|
|
3
|
+
*
|
|
4
|
+
* @implements FR20
|
|
5
|
+
*
|
|
6
|
+
* Lifecycle (AdonisJS-compatible):
|
|
7
|
+
* register() → boot() → start() → ready() → ... → shutdown()
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Invoke an async lifecycle phase on a provider, ignoring it when the
|
|
11
|
+
* method is absent. Centralises the duck-type guard that the lifecycle
|
|
12
|
+
* runner has to do at every phase since `ProviderContract` makes them
|
|
13
|
+
* all optional.
|
|
14
|
+
*/
|
|
15
|
+
export async function callProviderPhase(provider, phase) {
|
|
16
|
+
const fn = provider[phase];
|
|
17
|
+
if (typeof fn === 'function') {
|
|
18
|
+
await fn.call(provider);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class Provider {
|
|
22
|
+
app;
|
|
23
|
+
constructor(app) {
|
|
24
|
+
this.app = app;
|
|
25
|
+
}
|
|
26
|
+
/** Phase 1: Register bindings in the container (synchronous). */
|
|
27
|
+
register() { }
|
|
28
|
+
/** Phase 2: Boot — framework setup, verify connections. */
|
|
29
|
+
async boot() { }
|
|
30
|
+
/** Phase 3: Start — before HTTP server starts. Import routes, warm caches. */
|
|
31
|
+
async start() { }
|
|
32
|
+
/** Phase 4: Ready — app fully operational, HTTP server listening. */
|
|
33
|
+
async ready() { }
|
|
34
|
+
/** Cleanup on shutdown (reverse order). */
|
|
35
|
+
async shutdown() { }
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=Provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../src/Provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6BH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAA0B,EAC1B,KAA8C;IAE9C,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC1B,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzB,CAAC;AACH,CAAC;AAED,MAAM,OAAgB,QAAQ;IAClB,GAAG,CAAY;IAEzB,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,iEAAiE;IACjE,QAAQ,KAAU,CAAC;IAEnB,2DAA2D;IAC3D,KAAK,CAAC,IAAI,KAAmB,CAAC;IAE9B,8EAA8E;IAC9E,KAAK,CAAC,KAAK,KAAmB,CAAC;IAE/B,qEAAqE;IACrE,KAAK,CAAC,KAAK,KAAmB,CAAC;IAE/B,2CAA2C;IAC3C,KAAK,CAAC,QAAQ,KAAmB,CAAC;CACnC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BodyParser middleware — parses request bodies by content-type.
|
|
3
|
+
*
|
|
4
|
+
* Supports JSON, form-urlencoded, and raw text.
|
|
5
|
+
* Multipart (file uploads) handled separately.
|
|
6
|
+
* Configured via config/bodyparser.ts.
|
|
7
|
+
*/
|
|
8
|
+
import type { HttpContext } from '../http/HttpContext.js';
|
|
9
|
+
export interface BodyParserConfig {
|
|
10
|
+
json?: {
|
|
11
|
+
enabled?: boolean;
|
|
12
|
+
limit?: string;
|
|
13
|
+
types?: string[];
|
|
14
|
+
};
|
|
15
|
+
form?: {
|
|
16
|
+
enabled?: boolean;
|
|
17
|
+
limit?: string;
|
|
18
|
+
types?: string[];
|
|
19
|
+
};
|
|
20
|
+
raw?: {
|
|
21
|
+
enabled?: boolean;
|
|
22
|
+
limit?: string;
|
|
23
|
+
types?: string[];
|
|
24
|
+
};
|
|
25
|
+
multipart?: {
|
|
26
|
+
enabled?: boolean;
|
|
27
|
+
limit?: string;
|
|
28
|
+
maxFields?: number;
|
|
29
|
+
tmpDir?: string;
|
|
30
|
+
types?: string[];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export default class BodyParserMiddleware {
|
|
34
|
+
#private;
|
|
35
|
+
constructor(config?: BodyParserConfig);
|
|
36
|
+
handle(ctx: HttpContext, next: () => Promise<void>): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=BodyParserMiddleware.d.ts.map
|