imposters 0.1.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 +21 -0
- package/Program/package.json +6 -0
- package/README.md +365 -0
- package/api/AdminApi/package.json +6 -0
- package/api/ApiErrors/package.json +6 -0
- package/api/ApiSchemas/package.json +6 -0
- package/api/Conversions/package.json +6 -0
- package/api/ImpostersGroup/package.json +6 -0
- package/api/ImpostersHandlers/package.json +6 -0
- package/api/SystemGroup/package.json +6 -0
- package/api/SystemHandlers/package.json +6 -0
- package/bin/imposters +47 -0
- package/cli/Commands/package.json +6 -0
- package/cli/ConfigLoader/package.json +6 -0
- package/client/HandlerHttpClient/package.json +6 -0
- package/client/ImpostersClient/package.json +6 -0
- package/client/testing/package.json +6 -0
- package/dist/cjs/Program.js +4 -0
- package/dist/cjs/Program.js.map +1 -0
- package/dist/cjs/api/AdminApi.js +11 -0
- package/dist/cjs/api/AdminApi.js.map +1 -0
- package/dist/cjs/api/ApiErrors.js +30 -0
- package/dist/cjs/api/ApiErrors.js.map +1 -0
- package/dist/cjs/api/ApiSchemas.js +36 -0
- package/dist/cjs/api/ApiSchemas.js.map +1 -0
- package/dist/cjs/api/Conversions.js +41 -0
- package/dist/cjs/api/Conversions.js.map +1 -0
- package/dist/cjs/api/ImpostersGroup.js +37 -0
- package/dist/cjs/api/ImpostersGroup.js.map +1 -0
- package/dist/cjs/api/ImpostersHandlers.js +361 -0
- package/dist/cjs/api/ImpostersHandlers.js.map +1 -0
- package/dist/cjs/api/SystemGroup.js +12 -0
- package/dist/cjs/api/SystemGroup.js.map +1 -0
- package/dist/cjs/api/SystemHandlers.js +74 -0
- package/dist/cjs/api/SystemHandlers.js.map +1 -0
- package/dist/cjs/cli/Commands.js +104 -0
- package/dist/cjs/cli/Commands.js.map +1 -0
- package/dist/cjs/cli/ConfigLoader.js +34 -0
- package/dist/cjs/cli/ConfigLoader.js.map +1 -0
- package/dist/cjs/client/HandlerHttpClient.js +50 -0
- package/dist/cjs/client/HandlerHttpClient.js.map +1 -0
- package/dist/cjs/client/ImpostersClient.js +20 -0
- package/dist/cjs/client/ImpostersClient.js.map +1 -0
- package/dist/cjs/client/index.js +57 -0
- package/dist/cjs/client/index.js.map +1 -0
- package/dist/cjs/client/testing.js +94 -0
- package/dist/cjs/client/testing.js.map +1 -0
- package/dist/cjs/domain/imposter.js +125 -0
- package/dist/cjs/domain/imposter.js.map +1 -0
- package/dist/cjs/domain/route.js +185 -0
- package/dist/cjs/domain/route.js.map +1 -0
- package/dist/cjs/index.js +106 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/layers/ApiLayer.js +18 -0
- package/dist/cjs/layers/ApiLayer.js.map +1 -0
- package/dist/cjs/layers/MainLayer.js +27 -0
- package/dist/cjs/layers/MainLayer.js.map +1 -0
- package/dist/cjs/matching/ExpressionEvaluator.js +103 -0
- package/dist/cjs/matching/ExpressionEvaluator.js.map +1 -0
- package/dist/cjs/matching/RequestMatcher.js +145 -0
- package/dist/cjs/matching/RequestMatcher.js.map +1 -0
- package/dist/cjs/matching/ResponseGenerator.js +80 -0
- package/dist/cjs/matching/ResponseGenerator.js.map +1 -0
- package/dist/cjs/matching/TemplateEngine.js +55 -0
- package/dist/cjs/matching/TemplateEngine.js.map +1 -0
- package/dist/cjs/repositories/ImposterRepository.js +118 -0
- package/dist/cjs/repositories/ImposterRepository.js.map +1 -0
- package/dist/cjs/schemas/ConfigFileSchema.js +44 -0
- package/dist/cjs/schemas/ConfigFileSchema.js.map +1 -0
- package/dist/cjs/schemas/ImposterSchema.js +202 -0
- package/dist/cjs/schemas/ImposterSchema.js.map +1 -0
- package/dist/cjs/schemas/RequestLogSchema.js +51 -0
- package/dist/cjs/schemas/RequestLogSchema.js.map +1 -0
- package/dist/cjs/schemas/StubSchema.js +84 -0
- package/dist/cjs/schemas/StubSchema.js.map +1 -0
- package/dist/cjs/schemas/common.js +67 -0
- package/dist/cjs/schemas/common.js.map +1 -0
- package/dist/cjs/server/AdminServer.js +36 -0
- package/dist/cjs/server/AdminServer.js.map +1 -0
- package/dist/cjs/server/BunServer.js +13 -0
- package/dist/cjs/server/BunServer.js.map +1 -0
- package/dist/cjs/server/FiberManager.js +21 -0
- package/dist/cjs/server/FiberManager.js.map +1 -0
- package/dist/cjs/server/ImposterServer.js +234 -0
- package/dist/cjs/server/ImposterServer.js.map +1 -0
- package/dist/cjs/services/AppConfig.js +18 -0
- package/dist/cjs/services/AppConfig.js.map +1 -0
- package/dist/cjs/services/MetricsService.js +113 -0
- package/dist/cjs/services/MetricsService.js.map +1 -0
- package/dist/cjs/services/PortAllocator.js +50 -0
- package/dist/cjs/services/PortAllocator.js.map +1 -0
- package/dist/cjs/services/ProxyService.js +109 -0
- package/dist/cjs/services/ProxyService.js.map +1 -0
- package/dist/cjs/services/RequestLogger.js +60 -0
- package/dist/cjs/services/RequestLogger.js.map +1 -0
- package/dist/cjs/services/Uuid.js +10 -0
- package/dist/cjs/services/Uuid.js.map +1 -0
- package/dist/cjs/services/UuidLive.js +16 -0
- package/dist/cjs/services/UuidLive.js.map +1 -0
- package/dist/cjs/ui/UiRouter.js +242 -0
- package/dist/cjs/ui/UiRouter.js.map +1 -0
- package/dist/cjs/ui/admin/AdminLayout.js +36 -0
- package/dist/cjs/ui/admin/AdminLayout.js.map +1 -0
- package/dist/cjs/ui/admin/AdminUiRouter.js +155 -0
- package/dist/cjs/ui/admin/AdminUiRouter.js.map +1 -0
- package/dist/cjs/ui/admin/pages/AdminDashboard.js +55 -0
- package/dist/cjs/ui/admin/pages/AdminDashboard.js.map +1 -0
- package/dist/cjs/ui/admin/partials.js +64 -0
- package/dist/cjs/ui/admin/partials.js.map +1 -0
- package/dist/cjs/ui/html.js +42 -0
- package/dist/cjs/ui/html.js.map +1 -0
- package/dist/cjs/ui/layout.js +39 -0
- package/dist/cjs/ui/layout.js.map +1 -0
- package/dist/cjs/ui/pages/dashboard.js +51 -0
- package/dist/cjs/ui/pages/dashboard.js.map +1 -0
- package/dist/cjs/ui/pages/request-detail.js +119 -0
- package/dist/cjs/ui/pages/request-detail.js.map +1 -0
- package/dist/cjs/ui/pages/requests.js +120 -0
- package/dist/cjs/ui/pages/requests.js.map +1 -0
- package/dist/cjs/ui/pages/stubs.js +46 -0
- package/dist/cjs/ui/pages/stubs.js.map +1 -0
- package/dist/cjs/ui/partials.js +104 -0
- package/dist/cjs/ui/partials.js.map +1 -0
- package/dist/dts/Program.d.ts +2 -0
- package/dist/dts/Program.d.ts.map +1 -0
- package/dist/dts/api/AdminApi.d.ts +490 -0
- package/dist/dts/api/AdminApi.d.ts.map +1 -0
- package/dist/dts/api/ApiErrors.d.ts +26 -0
- package/dist/dts/api/ApiErrors.d.ts.map +1 -0
- package/dist/dts/api/ApiSchemas.d.ts +36 -0
- package/dist/dts/api/ApiSchemas.d.ts.map +1 -0
- package/dist/dts/api/Conversions.d.ts +7 -0
- package/dist/dts/api/Conversions.d.ts.map +1 -0
- package/dist/dts/api/ImpostersGroup.d.ts +448 -0
- package/dist/dts/api/ImpostersGroup.d.ts.map +1 -0
- package/dist/dts/api/ImpostersHandlers.d.ts +9 -0
- package/dist/dts/api/ImpostersHandlers.d.ts.map +1 -0
- package/dist/dts/api/SystemGroup.d.ts +46 -0
- package/dist/dts/api/SystemGroup.d.ts.map +1 -0
- package/dist/dts/api/SystemHandlers.d.ts +4 -0
- package/dist/dts/api/SystemHandlers.d.ts.map +1 -0
- package/dist/dts/cli/Commands.d.ts +4 -0
- package/dist/dts/cli/Commands.d.ts.map +1 -0
- package/dist/dts/cli/ConfigLoader.d.ts +13 -0
- package/dist/dts/cli/ConfigLoader.d.ts.map +1 -0
- package/dist/dts/client/HandlerHttpClient.d.ts +5 -0
- package/dist/dts/client/HandlerHttpClient.d.ts.map +1 -0
- package/dist/dts/client/ImpostersClient.d.ts +1868 -0
- package/dist/dts/client/ImpostersClient.d.ts.map +1 -0
- package/dist/dts/client/index.d.ts +6 -0
- package/dist/dts/client/index.d.ts.map +1 -0
- package/dist/dts/client/testing.d.ts +35 -0
- package/dist/dts/client/testing.d.ts.map +1 -0
- package/dist/dts/domain/imposter.d.ts +123 -0
- package/dist/dts/domain/imposter.d.ts.map +1 -0
- package/dist/dts/domain/route.d.ts +128 -0
- package/dist/dts/domain/route.d.ts.map +1 -0
- package/dist/dts/index.d.ts +60 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/layers/ApiLayer.d.ts +3 -0
- package/dist/dts/layers/ApiLayer.d.ts.map +1 -0
- package/dist/dts/layers/MainLayer.d.ts +3 -0
- package/dist/dts/layers/MainLayer.d.ts.map +1 -0
- package/dist/dts/matching/ExpressionEvaluator.d.ts +11 -0
- package/dist/dts/matching/ExpressionEvaluator.d.ts.map +1 -0
- package/dist/dts/matching/RequestMatcher.d.ts +13 -0
- package/dist/dts/matching/RequestMatcher.d.ts.map +1 -0
- package/dist/dts/matching/ResponseGenerator.d.ts +9 -0
- package/dist/dts/matching/ResponseGenerator.d.ts.map +1 -0
- package/dist/dts/matching/TemplateEngine.d.ts +4 -0
- package/dist/dts/matching/TemplateEngine.d.ts.map +1 -0
- package/dist/dts/repositories/ImposterRepository.d.ts +33 -0
- package/dist/dts/repositories/ImposterRepository.d.ts.map +1 -0
- package/dist/dts/schemas/ConfigFileSchema.d.ts +142 -0
- package/dist/dts/schemas/ConfigFileSchema.d.ts.map +1 -0
- package/dist/dts/schemas/ImposterSchema.d.ts +368 -0
- package/dist/dts/schemas/ImposterSchema.d.ts.map +1 -0
- package/dist/dts/schemas/RequestLogSchema.d.ts +36 -0
- package/dist/dts/schemas/RequestLogSchema.d.ts.map +1 -0
- package/dist/dts/schemas/StubSchema.d.ts +112 -0
- package/dist/dts/schemas/StubSchema.d.ts.map +1 -0
- package/dist/dts/schemas/common.d.ts +56 -0
- package/dist/dts/schemas/common.d.ts.map +1 -0
- package/dist/dts/server/AdminServer.d.ts +11 -0
- package/dist/dts/server/AdminServer.d.ts.map +1 -0
- package/dist/dts/server/BunServer.d.ts +17 -0
- package/dist/dts/server/BunServer.d.ts.map +1 -0
- package/dist/dts/server/FiberManager.d.ts +12 -0
- package/dist/dts/server/FiberManager.d.ts.map +1 -0
- package/dist/dts/server/ImposterServer.d.ts +29 -0
- package/dist/dts/server/ImposterServer.d.ts.map +1 -0
- package/dist/dts/services/AppConfig.d.ts +14 -0
- package/dist/dts/services/AppConfig.d.ts.map +1 -0
- package/dist/dts/services/MetricsService.d.ts +26 -0
- package/dist/dts/services/MetricsService.d.ts.map +1 -0
- package/dist/dts/services/PortAllocator.d.ts +29 -0
- package/dist/dts/services/PortAllocator.d.ts.map +1 -0
- package/dist/dts/services/ProxyService.d.ts +24 -0
- package/dist/dts/services/ProxyService.d.ts.map +1 -0
- package/dist/dts/services/RequestLogger.d.ts +23 -0
- package/dist/dts/services/RequestLogger.d.ts.map +1 -0
- package/dist/dts/services/Uuid.d.ts +9 -0
- package/dist/dts/services/Uuid.d.ts.map +1 -0
- package/dist/dts/services/UuidLive.d.ts +4 -0
- package/dist/dts/services/UuidLive.d.ts.map +1 -0
- package/dist/dts/ui/UiRouter.d.ts +15 -0
- package/dist/dts/ui/UiRouter.d.ts.map +1 -0
- package/dist/dts/ui/admin/AdminLayout.d.ts +7 -0
- package/dist/dts/ui/admin/AdminLayout.d.ts.map +1 -0
- package/dist/dts/ui/admin/AdminUiRouter.d.ts +6 -0
- package/dist/dts/ui/admin/AdminUiRouter.d.ts.map +1 -0
- package/dist/dts/ui/admin/pages/AdminDashboard.d.ts +7 -0
- package/dist/dts/ui/admin/pages/AdminDashboard.d.ts.map +1 -0
- package/dist/dts/ui/admin/partials.d.ts +14 -0
- package/dist/dts/ui/admin/partials.d.ts.map +1 -0
- package/dist/dts/ui/html.d.ts +12 -0
- package/dist/dts/ui/html.d.ts.map +1 -0
- package/dist/dts/ui/layout.d.ts +9 -0
- package/dist/dts/ui/layout.d.ts.map +1 -0
- package/dist/dts/ui/pages/dashboard.d.ts +10 -0
- package/dist/dts/ui/pages/dashboard.d.ts.map +1 -0
- package/dist/dts/ui/pages/request-detail.d.ts +11 -0
- package/dist/dts/ui/pages/request-detail.d.ts.map +1 -0
- package/dist/dts/ui/pages/requests.d.ts +15 -0
- package/dist/dts/ui/pages/requests.d.ts.map +1 -0
- package/dist/dts/ui/pages/stubs.d.ts +8 -0
- package/dist/dts/ui/pages/stubs.d.ts.map +1 -0
- package/dist/dts/ui/partials.d.ts +13 -0
- package/dist/dts/ui/partials.d.ts.map +1 -0
- package/dist/esm/Program.js +2 -0
- package/dist/esm/Program.js.map +1 -0
- package/dist/esm/api/AdminApi.js +5 -0
- package/dist/esm/api/AdminApi.js.map +1 -0
- package/dist/esm/api/ApiErrors.js +20 -0
- package/dist/esm/api/ApiErrors.js.map +1 -0
- package/dist/esm/api/ApiSchemas.js +29 -0
- package/dist/esm/api/ApiSchemas.js.map +1 -0
- package/dist/esm/api/Conversions.js +32 -0
- package/dist/esm/api/Conversions.js.map +1 -0
- package/dist/esm/api/ImpostersGroup.js +30 -0
- package/dist/esm/api/ImpostersGroup.js.map +1 -0
- package/dist/esm/api/ImpostersHandlers.js +354 -0
- package/dist/esm/api/ImpostersHandlers.js.map +1 -0
- package/dist/esm/api/SystemGroup.js +6 -0
- package/dist/esm/api/SystemGroup.js.map +1 -0
- package/dist/esm/api/SystemHandlers.js +67 -0
- package/dist/esm/api/SystemHandlers.js.map +1 -0
- package/dist/esm/cli/Commands.js +98 -0
- package/dist/esm/cli/Commands.js.map +1 -0
- package/dist/esm/cli/ConfigLoader.js +25 -0
- package/dist/esm/cli/ConfigLoader.js.map +1 -0
- package/dist/esm/client/HandlerHttpClient.js +42 -0
- package/dist/esm/client/HandlerHttpClient.js.map +1 -0
- package/dist/esm/client/ImpostersClient.js +10 -0
- package/dist/esm/client/ImpostersClient.js.map +1 -0
- package/dist/esm/client/index.js +4 -0
- package/dist/esm/client/index.js.map +1 -0
- package/dist/esm/client/testing.js +86 -0
- package/dist/esm/client/testing.js.map +1 -0
- package/dist/esm/domain/imposter.js +103 -0
- package/dist/esm/domain/imposter.js.map +1 -0
- package/dist/esm/domain/route.js +164 -0
- package/dist/esm/domain/route.js.map +1 -0
- package/dist/esm/index.js +60 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/layers/ApiLayer.js +11 -0
- package/dist/esm/layers/ApiLayer.js.map +1 -0
- package/dist/esm/layers/MainLayer.js +20 -0
- package/dist/esm/layers/MainLayer.js.map +1 -0
- package/dist/esm/matching/ExpressionEvaluator.js +94 -0
- package/dist/esm/matching/ExpressionEvaluator.js.map +1 -0
- package/dist/esm/matching/RequestMatcher.js +135 -0
- package/dist/esm/matching/RequestMatcher.js.map +1 -0
- package/dist/esm/matching/ResponseGenerator.js +71 -0
- package/dist/esm/matching/ResponseGenerator.js.map +1 -0
- package/dist/esm/matching/TemplateEngine.js +47 -0
- package/dist/esm/matching/TemplateEngine.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/repositories/ImposterRepository.js +110 -0
- package/dist/esm/repositories/ImposterRepository.js.map +1 -0
- package/dist/esm/schemas/ConfigFileSchema.js +37 -0
- package/dist/esm/schemas/ConfigFileSchema.js.map +1 -0
- package/dist/esm/schemas/ImposterSchema.js +195 -0
- package/dist/esm/schemas/ImposterSchema.js.map +1 -0
- package/dist/esm/schemas/RequestLogSchema.js +44 -0
- package/dist/esm/schemas/RequestLogSchema.js.map +1 -0
- package/dist/esm/schemas/StubSchema.js +77 -0
- package/dist/esm/schemas/StubSchema.js.map +1 -0
- package/dist/esm/schemas/common.js +59 -0
- package/dist/esm/schemas/common.js.map +1 -0
- package/dist/esm/server/AdminServer.js +27 -0
- package/dist/esm/server/AdminServer.js.map +1 -0
- package/dist/esm/server/BunServer.js +6 -0
- package/dist/esm/server/BunServer.js.map +1 -0
- package/dist/esm/server/FiberManager.js +14 -0
- package/dist/esm/server/FiberManager.js.map +1 -0
- package/dist/esm/server/ImposterServer.js +225 -0
- package/dist/esm/server/ImposterServer.js.map +1 -0
- package/dist/esm/services/AppConfig.js +11 -0
- package/dist/esm/services/AppConfig.js.map +1 -0
- package/dist/esm/services/MetricsService.js +105 -0
- package/dist/esm/services/MetricsService.js.map +1 -0
- package/dist/esm/services/PortAllocator.js +41 -0
- package/dist/esm/services/PortAllocator.js.map +1 -0
- package/dist/esm/services/ProxyService.js +101 -0
- package/dist/esm/services/ProxyService.js.map +1 -0
- package/dist/esm/services/RequestLogger.js +53 -0
- package/dist/esm/services/RequestLogger.js.map +1 -0
- package/dist/esm/services/Uuid.js +3 -0
- package/dist/esm/services/Uuid.js.map +1 -0
- package/dist/esm/services/UuidLive.js +9 -0
- package/dist/esm/services/UuidLive.js.map +1 -0
- package/dist/esm/ui/UiRouter.js +235 -0
- package/dist/esm/ui/UiRouter.js.map +1 -0
- package/dist/esm/ui/admin/AdminLayout.js +29 -0
- package/dist/esm/ui/admin/AdminLayout.js.map +1 -0
- package/dist/esm/ui/admin/AdminUiRouter.js +148 -0
- package/dist/esm/ui/admin/AdminUiRouter.js.map +1 -0
- package/dist/esm/ui/admin/pages/AdminDashboard.js +48 -0
- package/dist/esm/ui/admin/pages/AdminDashboard.js.map +1 -0
- package/dist/esm/ui/admin/partials.js +54 -0
- package/dist/esm/ui/admin/partials.js.map +1 -0
- package/dist/esm/ui/html.js +32 -0
- package/dist/esm/ui/html.js.map +1 -0
- package/dist/esm/ui/layout.js +32 -0
- package/dist/esm/ui/layout.js.map +1 -0
- package/dist/esm/ui/pages/dashboard.js +44 -0
- package/dist/esm/ui/pages/dashboard.js.map +1 -0
- package/dist/esm/ui/pages/request-detail.js +112 -0
- package/dist/esm/ui/pages/request-detail.js.map +1 -0
- package/dist/esm/ui/pages/requests.js +112 -0
- package/dist/esm/ui/pages/requests.js.map +1 -0
- package/dist/esm/ui/pages/stubs.js +39 -0
- package/dist/esm/ui/pages/stubs.js.map +1 -0
- package/dist/esm/ui/partials.js +91 -0
- package/dist/esm/ui/partials.js.map +1 -0
- package/domain/imposter/package.json +6 -0
- package/domain/route/package.json +6 -0
- package/layers/ApiLayer/package.json +6 -0
- package/layers/MainLayer/package.json +6 -0
- package/matching/ExpressionEvaluator/package.json +6 -0
- package/matching/RequestMatcher/package.json +6 -0
- package/matching/ResponseGenerator/package.json +6 -0
- package/matching/TemplateEngine/package.json +6 -0
- package/package.json +435 -0
- package/repositories/ImposterRepository/package.json +6 -0
- package/schemas/ConfigFileSchema/package.json +6 -0
- package/schemas/ImposterSchema/package.json +6 -0
- package/schemas/RequestLogSchema/package.json +6 -0
- package/schemas/StubSchema/package.json +6 -0
- package/schemas/common/package.json +6 -0
- package/server/AdminServer/package.json +6 -0
- package/server/BunServer/package.json +6 -0
- package/server/FiberManager/package.json +6 -0
- package/server/ImposterServer/package.json +6 -0
- package/services/AppConfig/package.json +6 -0
- package/services/MetricsService/package.json +6 -0
- package/services/PortAllocator/package.json +6 -0
- package/services/ProxyService/package.json +6 -0
- package/services/RequestLogger/package.json +6 -0
- package/services/Uuid/package.json +6 -0
- package/services/UuidLive/package.json +6 -0
- package/src/Program.ts +1 -0
- package/src/api/AdminApi.ts +7 -0
- package/src/api/ApiErrors.ts +20 -0
- package/src/api/ApiSchemas.ts +36 -0
- package/src/api/Conversions.ts +34 -0
- package/src/api/ImpostersGroup.ts +103 -0
- package/src/api/ImpostersHandlers.ts +387 -0
- package/src/api/SystemGroup.ts +12 -0
- package/src/api/SystemHandlers.ts +76 -0
- package/src/cli/Commands.ts +119 -0
- package/src/cli/ConfigLoader.ts +41 -0
- package/src/client/HandlerHttpClient.ts +50 -0
- package/src/client/ImpostersClient.ts +21 -0
- package/src/client/index.ts +9 -0
- package/src/client/testing.ts +105 -0
- package/src/domain/imposter.ts +186 -0
- package/src/domain/route.ts +255 -0
- package/src/index.ts +153 -0
- package/src/layers/ApiLayer.ts +21 -0
- package/src/layers/MainLayer.ts +43 -0
- package/src/matching/ExpressionEvaluator.ts +102 -0
- package/src/matching/RequestMatcher.ts +162 -0
- package/src/matching/ResponseGenerator.ts +86 -0
- package/src/matching/TemplateEngine.ts +54 -0
- package/src/repositories/ImposterRepository.ts +145 -0
- package/src/schemas/ConfigFileSchema.ts +32 -0
- package/src/schemas/ImposterSchema.ts +232 -0
- package/src/schemas/RequestLogSchema.ts +38 -0
- package/src/schemas/StubSchema.ts +90 -0
- package/src/schemas/common.ts +95 -0
- package/src/server/AdminServer.ts +22 -0
- package/src/server/BunServer.ts +19 -0
- package/src/server/FiberManager.ts +25 -0
- package/src/server/ImposterServer.ts +244 -0
- package/src/services/AppConfig.ts +22 -0
- package/src/services/MetricsService.ts +157 -0
- package/src/services/PortAllocator.ts +68 -0
- package/src/services/ProxyService.ts +139 -0
- package/src/services/RequestLogger.ts +87 -0
- package/src/services/Uuid.ts +9 -0
- package/src/services/UuidLive.ts +9 -0
- package/src/types/bun.d.ts +6 -0
- package/src/ui/UiRouter.ts +278 -0
- package/src/ui/admin/AdminLayout.ts +36 -0
- package/src/ui/admin/AdminUiRouter.ts +170 -0
- package/src/ui/admin/pages/AdminDashboard.ts +54 -0
- package/src/ui/admin/partials.ts +83 -0
- package/src/ui/html.ts +37 -0
- package/src/ui/layout.ts +44 -0
- package/src/ui/pages/dashboard.ts +64 -0
- package/src/ui/pages/request-detail.ts +142 -0
- package/src/ui/pages/requests.ts +141 -0
- package/src/ui/pages/stubs.ts +52 -0
- package/src/ui/partials.ts +133 -0
- package/ui/UiRouter/package.json +6 -0
- package/ui/admin/AdminLayout/package.json +6 -0
- package/ui/admin/AdminUiRouter/package.json +6 -0
- package/ui/admin/pages/AdminDashboard/package.json +6 -0
- package/ui/admin/partials/package.json +6 -0
- package/ui/html/package.json +6 -0
- package/ui/layout/package.json +6 -0
- package/ui/pages/dashboard/package.json +6 -0
- package/ui/pages/requests/package.json +6 -0
- package/ui/pages/stubs/package.json +6 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RequestLogEntry = exports.ListRequestsUrlParams = void 0;
|
|
7
|
+
var Schema = _interopRequireWildcard(require("effect/Schema"));
|
|
8
|
+
var _common = require("./common");
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
+
const RequestLogEntry = exports.RequestLogEntry = /*#__PURE__*/Schema.Struct({
|
|
11
|
+
id: _common.NonEmptyString,
|
|
12
|
+
imposterId: _common.NonEmptyString,
|
|
13
|
+
timestamp: Schema.DateTimeUtc,
|
|
14
|
+
request: /*#__PURE__*/Schema.Struct({
|
|
15
|
+
method: Schema.String,
|
|
16
|
+
path: Schema.String,
|
|
17
|
+
headers: /*#__PURE__*/Schema.Record({
|
|
18
|
+
key: Schema.String,
|
|
19
|
+
value: Schema.String
|
|
20
|
+
}),
|
|
21
|
+
query: /*#__PURE__*/Schema.Record({
|
|
22
|
+
key: Schema.String,
|
|
23
|
+
value: Schema.String
|
|
24
|
+
}),
|
|
25
|
+
body: /*#__PURE__*/Schema.optional(Schema.Unknown)
|
|
26
|
+
}),
|
|
27
|
+
response: /*#__PURE__*/Schema.Struct({
|
|
28
|
+
status: Schema.Number,
|
|
29
|
+
headers: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Record({
|
|
30
|
+
key: Schema.String,
|
|
31
|
+
value: Schema.String
|
|
32
|
+
}), {
|
|
33
|
+
default: () => ({})
|
|
34
|
+
}),
|
|
35
|
+
body: /*#__PURE__*/Schema.optional(Schema.String),
|
|
36
|
+
matchedStubId: /*#__PURE__*/Schema.optional(_common.NonEmptyString),
|
|
37
|
+
proxied: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
|
|
38
|
+
default: () => false
|
|
39
|
+
})
|
|
40
|
+
}),
|
|
41
|
+
duration: Schema.Number
|
|
42
|
+
});
|
|
43
|
+
const ListRequestsUrlParams = exports.ListRequestsUrlParams = /*#__PURE__*/Schema.Struct({
|
|
44
|
+
limit: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.NumberFromString.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.positive()), {
|
|
45
|
+
default: () => 50
|
|
46
|
+
}),
|
|
47
|
+
method: /*#__PURE__*/Schema.optional(Schema.String),
|
|
48
|
+
path: /*#__PURE__*/Schema.optional(Schema.String),
|
|
49
|
+
status: /*#__PURE__*/Schema.optional(Schema.NumberFromString)
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=RequestLogSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestLogSchema.js","names":["Schema","_interopRequireWildcard","require","_common","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RequestLogEntry","exports","Struct","id","NonEmptyString","imposterId","timestamp","DateTimeUtc","request","method","String","path","headers","Record","key","value","query","body","optional","Unknown","response","status","Number","optionalWith","matchedStubId","proxied","Boolean","duration","ListRequestsUrlParams","limit","NumberFromString","pipe","int","positive"],"sources":["../../../src/schemas/RequestLogSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UpdateStubRequest = exports.Stub = exports.ResponseMode = exports.ResponseConfig = exports.ProxyMode = exports.ProxyConfig = exports.PredicateOperator = exports.PredicateField = exports.Predicate = exports.CreateStubRequest = void 0;
|
|
7
|
+
var Schema = _interopRequireWildcard(require("effect/Schema"));
|
|
8
|
+
var _common = require("./common");
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
+
// Proxy Mode
|
|
11
|
+
const ProxyMode = exports.ProxyMode = /*#__PURE__*/Schema.Literal("passthrough", "record");
|
|
12
|
+
// Proxy Configuration
|
|
13
|
+
const ProxyConfig = exports.ProxyConfig = /*#__PURE__*/Schema.Struct({
|
|
14
|
+
targetUrl: /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.pattern(/^https?:\/\//)),
|
|
15
|
+
mode: /*#__PURE__*/Schema.optionalWith(ProxyMode, {
|
|
16
|
+
default: () => "passthrough"
|
|
17
|
+
}),
|
|
18
|
+
addHeaders: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Record({
|
|
19
|
+
key: Schema.String,
|
|
20
|
+
value: Schema.String
|
|
21
|
+
})),
|
|
22
|
+
removeHeaders: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Array(Schema.String), {
|
|
23
|
+
default: () => []
|
|
24
|
+
}),
|
|
25
|
+
followRedirects: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
|
|
26
|
+
default: () => true
|
|
27
|
+
}),
|
|
28
|
+
timeout: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 60000)), {
|
|
29
|
+
default: () => 10000
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
// Predicate operators for matching incoming requests
|
|
33
|
+
const PredicateOperator = exports.PredicateOperator = /*#__PURE__*/Schema.Literal("equals", "contains", "startsWith", "matches", "exists");
|
|
34
|
+
// Which part of the request to match against
|
|
35
|
+
const PredicateField = exports.PredicateField = /*#__PURE__*/Schema.Literal("method", "path", "headers", "query", "body");
|
|
36
|
+
// A single predicate matcher
|
|
37
|
+
const Predicate = exports.Predicate = /*#__PURE__*/Schema.Struct({
|
|
38
|
+
field: PredicateField,
|
|
39
|
+
operator: PredicateOperator,
|
|
40
|
+
value: Schema.Unknown,
|
|
41
|
+
caseSensitive: /*#__PURE__*/Schema.optionalWith(Schema.Boolean, {
|
|
42
|
+
default: () => true
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
// How to cycle through responses
|
|
46
|
+
const ResponseMode = exports.ResponseMode = /*#__PURE__*/Schema.Literal("sequential", "random", "repeat");
|
|
47
|
+
// A single response configuration
|
|
48
|
+
const ResponseConfig = exports.ResponseConfig = /*#__PURE__*/Schema.Struct({
|
|
49
|
+
status: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(100, 599)), {
|
|
50
|
+
default: () => 200
|
|
51
|
+
}),
|
|
52
|
+
headers: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Record({
|
|
53
|
+
key: Schema.String,
|
|
54
|
+
value: Schema.String
|
|
55
|
+
})),
|
|
56
|
+
body: /*#__PURE__*/Schema.optional(Schema.Unknown),
|
|
57
|
+
delay: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(0, 60000)))
|
|
58
|
+
});
|
|
59
|
+
// A stub: predicates (AND-combined) + responses (cycled)
|
|
60
|
+
const Stub = exports.Stub = /*#__PURE__*/Schema.Struct({
|
|
61
|
+
id: _common.NonEmptyString,
|
|
62
|
+
predicates: /*#__PURE__*/Schema.Array(Predicate),
|
|
63
|
+
responses: /*#__PURE__*/Schema.NonEmptyArray(ResponseConfig),
|
|
64
|
+
responseMode: /*#__PURE__*/Schema.optionalWith(ResponseMode, {
|
|
65
|
+
default: () => "sequential"
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
// API request to create a stub (id is auto-generated)
|
|
69
|
+
const CreateStubRequest = exports.CreateStubRequest = /*#__PURE__*/Schema.Struct({
|
|
70
|
+
predicates: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Array(Predicate), {
|
|
71
|
+
default: () => []
|
|
72
|
+
}),
|
|
73
|
+
responses: /*#__PURE__*/Schema.NonEmptyArray(ResponseConfig),
|
|
74
|
+
responseMode: /*#__PURE__*/Schema.optionalWith(ResponseMode, {
|
|
75
|
+
default: () => "sequential"
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
// API request to update a stub
|
|
79
|
+
const UpdateStubRequest = exports.UpdateStubRequest = /*#__PURE__*/Schema.Struct({
|
|
80
|
+
predicates: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Array(Predicate)),
|
|
81
|
+
responses: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.NonEmptyArray(ResponseConfig)),
|
|
82
|
+
responseMode: /*#__PURE__*/Schema.optional(ResponseMode)
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=StubSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StubSchema.js","names":["Schema","_interopRequireWildcard","require","_common","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ProxyMode","exports","Literal","ProxyConfig","Struct","targetUrl","String","pipe","pattern","mode","optionalWith","addHeaders","optional","Record","key","value","removeHeaders","Array","followRedirects","Boolean","timeout","Number","int","between","PredicateOperator","PredicateField","Predicate","field","operator","Unknown","caseSensitive","ResponseMode","ResponseConfig","status","headers","body","delay","Stub","id","NonEmptyString","predicates","responses","NonEmptyArray","responseMode","CreateStubRequest","UpdateStubRequest"],"sources":["../../../src/schemas/StubSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.formatDurationAsUptime = exports.currentDateTime = exports.StatusFilter = exports.ProtocolFilter = exports.Protocol = exports.PositiveInteger = exports.PortNumber = exports.PaginationQuery = exports.PaginationMeta = exports.NonEmptyString = exports.ImposterStatus = exports.ErrorResponse = exports.ErrorDetails = exports.ErrorCode = exports.DateTimeSchema = void 0;
|
|
7
|
+
var _effect = require("effect");
|
|
8
|
+
var Duration = _interopRequireWildcard(require("effect/Duration"));
|
|
9
|
+
var Schema = _interopRequireWildcard(require("effect/Schema"));
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
+
// Common enums
|
|
12
|
+
const ImposterStatus = exports.ImposterStatus = /*#__PURE__*/Schema.Literal("running", "stopped", "starting", "stopping");
|
|
13
|
+
const Protocol = exports.Protocol = /*#__PURE__*/Schema.Literal("HTTP");
|
|
14
|
+
// Utility schemas for validation
|
|
15
|
+
const PositiveInteger = exports.PositiveInteger = /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.positive(), /*#__PURE__*/Schema.brand("PositiveInteger"));
|
|
16
|
+
const NonEmptyString = exports.NonEmptyString = /*#__PURE__*/Schema.String.pipe(/*#__PURE__*/Schema.minLength(1), /*#__PURE__*/Schema.brand("NonEmptyString"));
|
|
17
|
+
const PortNumber = exports.PortNumber = /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.between(1024, 65535), /*#__PURE__*/Schema.brand("PortNumber"));
|
|
18
|
+
const PaginationQuery = exports.PaginationQuery = /*#__PURE__*/Schema.Struct({
|
|
19
|
+
// PositiveInteger.make() is safe here — 50 is a compile-time constant that always passes validation
|
|
20
|
+
limit: /*#__PURE__*/Schema.optionalWith(PositiveInteger, {
|
|
21
|
+
default: () => PositiveInteger.make(50)
|
|
22
|
+
}),
|
|
23
|
+
offset: /*#__PURE__*/Schema.optionalWith(/*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()), {
|
|
24
|
+
default: () => 0
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
const PaginationMeta = exports.PaginationMeta = /*#__PURE__*/Schema.Struct({
|
|
28
|
+
total: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
|
|
29
|
+
limit: PositiveInteger,
|
|
30
|
+
offset: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.int(), /*#__PURE__*/Schema.nonNegative()),
|
|
31
|
+
hasMore: Schema.Boolean
|
|
32
|
+
});
|
|
33
|
+
const ErrorCode = exports.ErrorCode = /*#__PURE__*/Schema.Union(/*#__PURE__*/
|
|
34
|
+
// Validation errors
|
|
35
|
+
Schema.Literal("VALIDATION_ERROR"), /*#__PURE__*/Schema.Literal("INVALID_ENDPOINT"), /*#__PURE__*/
|
|
36
|
+
// Resource errors
|
|
37
|
+
Schema.Literal("IMPOSTER_NOT_FOUND"), /*#__PURE__*/Schema.Literal("PORT_IN_USE"), /*#__PURE__*/Schema.Literal("IMPOSTER_BUSY"), /*#__PURE__*/
|
|
38
|
+
// System errors
|
|
39
|
+
Schema.Literal("SYSTEM_ERROR"), /*#__PURE__*/Schema.Literal("CONFIRMATION_REQUIRED"), /*#__PURE__*/
|
|
40
|
+
// Conflict errors
|
|
41
|
+
Schema.Literal("ENDPOINT_CONFLICT"));
|
|
42
|
+
const ErrorDetails = exports.ErrorDetails = /*#__PURE__*/Schema.Struct({
|
|
43
|
+
code: ErrorCode,
|
|
44
|
+
message: NonEmptyString,
|
|
45
|
+
field: /*#__PURE__*/Schema.optional(Schema.String),
|
|
46
|
+
value: /*#__PURE__*/Schema.optional(Schema.Unknown),
|
|
47
|
+
details: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Record({
|
|
48
|
+
key: Schema.String,
|
|
49
|
+
value: Schema.Unknown
|
|
50
|
+
}))
|
|
51
|
+
});
|
|
52
|
+
const ErrorResponse = exports.ErrorResponse = /*#__PURE__*/Schema.Struct({
|
|
53
|
+
error: ErrorDetails
|
|
54
|
+
});
|
|
55
|
+
// Common query filters
|
|
56
|
+
const StatusFilter = exports.StatusFilter = /*#__PURE__*/Schema.optional(ImposterStatus);
|
|
57
|
+
const ProtocolFilter = exports.ProtocolFilter = /*#__PURE__*/Schema.optional(Protocol);
|
|
58
|
+
// DateTime schemas using Effect's DateTime
|
|
59
|
+
const DateTimeSchema = exports.DateTimeSchema = Schema.DateTimeUtc;
|
|
60
|
+
// Helper to create current DateTime
|
|
61
|
+
const currentDateTime = exports.currentDateTime = /*#__PURE__*/_effect.Effect.map(_effect.Clock.currentTimeMillis, ms => _effect.DateTime.unsafeMake(ms));
|
|
62
|
+
// Helper to format duration as uptime string (HH:MM:SS)
|
|
63
|
+
const formatDurationAsUptime = duration => {
|
|
64
|
+
return Duration.format(duration);
|
|
65
|
+
};
|
|
66
|
+
exports.formatDurationAsUptime = formatDurationAsUptime;
|
|
67
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","names":["_effect","require","Duration","_interopRequireWildcard","Schema","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ImposterStatus","exports","Literal","Protocol","PositiveInteger","Number","pipe","int","positive","brand","NonEmptyString","String","minLength","PortNumber","between","PaginationQuery","Struct","limit","optionalWith","make","offset","nonNegative","PaginationMeta","total","hasMore","Boolean","ErrorCode","Union","ErrorDetails","code","message","field","optional","value","Unknown","details","Record","key","ErrorResponse","error","StatusFilter","ProtocolFilter","DateTimeSchema","DateTimeUtc","currentDateTime","Effect","map","Clock","currentTimeMillis","ms","DateTime","unsafeMake","formatDurationAsUptime","duration","format"],"sources":["../../../src/schemas/common.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,uBAAA,CAAAF,OAAA;AAAuC,SAAAE,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEvC;AACO,MAAMkB,cAAc,GAAAC,OAAA,CAAAD,cAAA,gBAAGpB,MAAM,CAACsB,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC;AAGnF,MAAMC,QAAQ,GAAAF,OAAA,CAAAE,QAAA,gBAAGvB,MAAM,CAACsB,OAAO,CAAC,MAAM,CAAC;AAG9C;AACO,MAAME,eAAe,GAAAH,OAAA,CAAAG,eAAA,gBAAGxB,MAAM,CAACyB,MAAM,CAACC,IAAI,cAC/C1B,MAAM,CAAC2B,GAAG,EAAE,eACZ3B,MAAM,CAAC4B,QAAQ,EAAE,eACjB5B,MAAM,CAAC6B,KAAK,CAAC,iBAAiB,CAAC,CAChC;AAGM,MAAMC,cAAc,GAAAT,OAAA,CAAAS,cAAA,gBAAG9B,MAAM,CAAC+B,MAAM,CAACL,IAAI,cAC9C1B,MAAM,CAACgC,SAAS,CAAC,CAAC,CAAC,eACnBhC,MAAM,CAAC6B,KAAK,CAAC,gBAAgB,CAAC,CAC/B;AAGM,MAAMI,UAAU,GAAAZ,OAAA,CAAAY,UAAA,gBAAGjC,MAAM,CAACyB,MAAM,CAACC,IAAI,cAC1C1B,MAAM,CAAC2B,GAAG,EAAE,eACZ3B,MAAM,CAACkC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,eAC3BlC,MAAM,CAAC6B,KAAK,CAAC,YAAY,CAAC,CAC3B;AAGM,MAAMM,eAAe,GAAAd,OAAA,CAAAc,eAAA,gBAAGnC,MAAM,CAACoC,MAAM,CAAC;EAC3C;EACAC,KAAK,eAAErC,MAAM,CAACsC,YAAY,CAACd,eAAe,EAAE;IAAEb,OAAO,EAAEA,CAAA,KAAMa,eAAe,CAACe,IAAI,CAAC,EAAE;EAAC,CAAE,CAAC;EACxFC,MAAM,eAAExC,MAAM,CAACsC,YAAY,cACzBtC,MAAM,CAACyB,MAAM,CAACC,IAAI,cAAC1B,MAAM,CAAC2B,GAAG,EAAE,eAAE3B,MAAM,CAACyC,WAAW,EAAE,CAAC,EACtD;IAAE9B,OAAO,EAAEA,CAAA,KAAM;EAAC,CAAE;CAEvB,CAAC;AAGK,MAAM+B,cAAc,GAAArB,OAAA,CAAAqB,cAAA,gBAAG1C,MAAM,CAACoC,MAAM,CAAC;EAC1CO,KAAK,eAAE3C,MAAM,CAACyB,MAAM,CAACC,IAAI,cAAC1B,MAAM,CAAC2B,GAAG,EAAE,eAAE3B,MAAM,CAACyC,WAAW,EAAE,CAAC;EAC7DJ,KAAK,EAAEb,eAAe;EACtBgB,MAAM,eAAExC,MAAM,CAACyB,MAAM,CAACC,IAAI,cAAC1B,MAAM,CAAC2B,GAAG,EAAE,eAAE3B,MAAM,CAACyC,WAAW,EAAE,CAAC;EAC9DG,OAAO,EAAE5C,MAAM,CAAC6C;CACjB,CAAC;AAGK,MAAMC,SAAS,GAAAzB,OAAA,CAAAyB,SAAA,gBAAG9C,MAAM,CAAC+C,KAAK;AACnC;AACA/C,MAAM,CAACsB,OAAO,CAAC,kBAAkB,CAAC,eAClCtB,MAAM,CAACsB,OAAO,CAAC,kBAAkB,CAAC;AAClC;AACAtB,MAAM,CAACsB,OAAO,CAAC,oBAAoB,CAAC,eACpCtB,MAAM,CAACsB,OAAO,CAAC,aAAa,CAAC,eAC7BtB,MAAM,CAACsB,OAAO,CAAC,eAAe,CAAC;AAC/B;AACAtB,MAAM,CAACsB,OAAO,CAAC,cAAc,CAAC,eAC9BtB,MAAM,CAACsB,OAAO,CAAC,uBAAuB,CAAC;AACvC;AACAtB,MAAM,CAACsB,OAAO,CAAC,mBAAmB,CAAC,CACpC;AAGM,MAAM0B,YAAY,GAAA3B,OAAA,CAAA2B,YAAA,gBAAGhD,MAAM,CAACoC,MAAM,CAAC;EACxCa,IAAI,EAAEH,SAAS;EACfI,OAAO,EAAEpB,cAAc;EACvBqB,KAAK,eAAEnD,MAAM,CAACoD,QAAQ,CAACpD,MAAM,CAAC+B,MAAM,CAAC;EACrCsB,KAAK,eAAErD,MAAM,CAACoD,QAAQ,CAACpD,MAAM,CAACsD,OAAO,CAAC;EACtCC,OAAO,eAAEvD,MAAM,CAACoD,QAAQ,cAACpD,MAAM,CAACwD,MAAM,CAAC;IAAEC,GAAG,EAAEzD,MAAM,CAAC+B,MAAM;IAAEsB,KAAK,EAAErD,MAAM,CAACsD;EAAO,CAAE,CAAC;CACtF,CAAC;AAGK,MAAMI,aAAa,GAAArC,OAAA,CAAAqC,aAAA,gBAAG1D,MAAM,CAACoC,MAAM,CAAC;EACzCuB,KAAK,EAAEX;CACR,CAAC;AAGF;AACO,MAAMY,YAAY,GAAAvC,OAAA,CAAAuC,YAAA,gBAAG5D,MAAM,CAACoD,QAAQ,CAAChC,cAAc,CAAC;AACpD,MAAMyC,cAAc,GAAAxC,OAAA,CAAAwC,cAAA,gBAAG7D,MAAM,CAACoD,QAAQ,CAAC7B,QAAQ,CAAC;AAEvD;AACO,MAAMuC,cAAc,GAAAzC,OAAA,CAAAyC,cAAA,GAAG9D,MAAM,CAAC+D,WAAW;AAGhD;AACO,MAAMC,eAAe,GAAA3C,OAAA,CAAA2C,eAAA,gBAAGC,cAAM,CAACC,GAAG,CAACC,aAAK,CAACC,iBAAiB,EAAGC,EAAE,IAAKC,gBAAQ,CAACC,UAAU,CAACF,EAAE,CAAC,CAAC;AAEnG;AACO,MAAMG,sBAAsB,GAAIC,QAA2B,IAAY;EAC5E,OAAO3E,QAAQ,CAAC4E,MAAM,CAACD,QAAQ,CAAC;AAClC,CAAC;AAAApD,OAAA,CAAAmD,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.makeWebHandler = exports.makeCompositeHandler = exports.FullLayer = void 0;
|
|
7
|
+
var _platform = require("@effect/platform");
|
|
8
|
+
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
9
|
+
var _ApiLayer = require("../layers/ApiLayer");
|
|
10
|
+
var _MainLayer = require("../layers/MainLayer");
|
|
11
|
+
var _AdminUiRouter = require("../ui/admin/AdminUiRouter");
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
+
const FullLayer = exports.FullLayer = /*#__PURE__*/_ApiLayer.ApiLayer.pipe(/*#__PURE__*/Layer.provide(_MainLayer.MainLayer));
|
|
14
|
+
const makeWebHandler = () => _platform.HttpApiBuilder.toWebHandler(FullLayer);
|
|
15
|
+
exports.makeWebHandler = makeWebHandler;
|
|
16
|
+
const makeCompositeHandler = adminPort => {
|
|
17
|
+
const {
|
|
18
|
+
dispose,
|
|
19
|
+
handler: apiHandler
|
|
20
|
+
} = _platform.HttpApiBuilder.toWebHandler(FullLayer);
|
|
21
|
+
const adminUiRouter = (0, _AdminUiRouter.makeAdminUiRouter)({
|
|
22
|
+
apiHandler,
|
|
23
|
+
adminPort
|
|
24
|
+
});
|
|
25
|
+
const handler = async request => {
|
|
26
|
+
const uiResponse = await adminUiRouter(request);
|
|
27
|
+
if (uiResponse !== null) return uiResponse;
|
|
28
|
+
return apiHandler(request);
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
handler,
|
|
32
|
+
dispose
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
exports.makeCompositeHandler = makeCompositeHandler;
|
|
36
|
+
//# sourceMappingURL=AdminServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminServer.js","names":["_platform","require","Layer","_interopRequireWildcard","_ApiLayer","_MainLayer","_AdminUiRouter","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FullLayer","exports","ApiLayer","pipe","provide","MainLayer","makeWebHandler","HttpApiBuilder","toWebHandler","makeCompositeHandler","adminPort","dispose","handler","apiHandler","adminUiRouter","makeAdminUiRouter","request","uiResponse"],"sources":["../../../src/server/AdminServer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AAA6D,SAAAE,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEtD,MAAMkB,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAGE,kBAAQ,CAACC,IAAI,cAAC3B,KAAK,CAAC4B,OAAO,CAACC,oBAAS,CAAC,CAAC;AAEzD,MAAMC,cAAc,GAAGA,CAAA,KAAMC,wBAAc,CAACC,YAAY,CAACR,SAAS,CAAC;AAAAC,OAAA,CAAAK,cAAA,GAAAA,cAAA;AAEnE,MAAMG,oBAAoB,GAAIC,SAAiB,IAAI;EACxD,MAAM;IAAEC,OAAO;IAAEC,OAAO,EAAEC;EAAU,CAAE,GAAGN,wBAAc,CAACC,YAAY,CAACR,SAAS,CAAC;EAC/E,MAAMc,aAAa,GAAG,IAAAC,gCAAiB,EAAC;IAAEF,UAAU;IAAEH;EAAS,CAAE,CAAC;EAElE,MAAME,OAAO,GAAG,MAAOI,OAAgB,IAAuB;IAC5D,MAAMC,UAAU,GAAG,MAAMH,aAAa,CAACE,OAAO,CAAC;IAC/C,IAAIC,UAAU,KAAK,IAAI,EAAE,OAAOA,UAAU;IAC1C,OAAOJ,UAAU,CAACG,OAAO,CAAC;EAC5B,CAAC;EAED,OAAO;IAAEJ,OAAO;IAAED;EAAO,CAAE;AAC7B,CAAC;AAAAV,OAAA,CAAAQ,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ServerFactory = exports.BunServerFactoryLive = void 0;
|
|
7
|
+
var _effect = require("effect");
|
|
8
|
+
class ServerFactory extends _effect.Context.Tag("ServerFactory")() {}
|
|
9
|
+
exports.ServerFactory = ServerFactory;
|
|
10
|
+
const BunServerFactoryLive = exports.BunServerFactoryLive = /*#__PURE__*/_effect.Layer.succeed(ServerFactory, {
|
|
11
|
+
create: options => Bun.serve(options)
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=BunServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BunServer.js","names":["_effect","require","ServerFactory","Context","Tag","exports","BunServerFactoryLive","Layer","succeed","create","options","Bun","serve"],"sources":["../../../src/server/BunServer.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAcM,MAAOC,aAAc,SAAQC,eAAO,CAACC,GAAG,CAAC,eAAe,CAAC,EAAqC;AAAAC,OAAA,CAAAH,aAAA,GAAAA,aAAA;AAE7F,MAAMI,oBAAoB,GAAAD,OAAA,CAAAC,oBAAA,gBAAGC,aAAK,CAACC,OAAO,CAACN,aAAa,EAAE;EAC/DO,MAAM,EAAGC,OAAO,IAAKC,GAAG,CAACC,KAAK,CAACF,OAAO;CACvC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FiberManagerLive = exports.FiberManager = void 0;
|
|
7
|
+
var _effect = require("effect");
|
|
8
|
+
class FiberManager extends _effect.Context.Tag("FiberManager")() {}
|
|
9
|
+
exports.FiberManager = FiberManager;
|
|
10
|
+
const FiberManagerLive = exports.FiberManagerLive = /*#__PURE__*/_effect.Layer.scoped(FiberManager, /*#__PURE__*/_effect.Effect.gen(function* () {
|
|
11
|
+
const fiberMap = yield* _effect.FiberMap.make();
|
|
12
|
+
const start = (id, effect) => _effect.FiberMap.run(fiberMap, id, effect);
|
|
13
|
+
const stop = id => _effect.FiberMap.remove(fiberMap, id);
|
|
14
|
+
const isRunning = id => _effect.FiberMap.has(fiberMap, id);
|
|
15
|
+
return {
|
|
16
|
+
start,
|
|
17
|
+
stop,
|
|
18
|
+
isRunning
|
|
19
|
+
};
|
|
20
|
+
}));
|
|
21
|
+
//# sourceMappingURL=FiberManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FiberManager.js","names":["_effect","require","FiberManager","Context","Tag","exports","FiberManagerLive","Layer","scoped","Effect","gen","fiberMap","FiberMap","make","start","id","effect","run","stop","remove","isRunning","has"],"sources":["../../../src/server/FiberManager.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAQM,MAAOC,YAAa,SAAQC,eAAO,CAACC,GAAG,CAAC,cAAc,CAAC,EAAmC;AAAAC,OAAA,CAAAH,YAAA,GAAAA,YAAA;AAEzF,MAAMI,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,gBAAGC,aAAK,CAACC,MAAM,CAC1CN,YAAY,eACZO,cAAM,CAACC,GAAG,CAAC,aAAS;EAClB,MAAMC,QAAQ,GAAG,OAAOC,gBAAQ,CAACC,IAAI,EAAU;EAE/C,MAAMC,KAAK,GAAGA,CAACC,EAAU,EAAEC,MAAqC,KAC9DJ,gBAAQ,CAACK,GAAG,CAACN,QAAQ,EAAEI,EAAE,EAAEC,MAAM,CAAC;EAEpC,MAAME,IAAI,GAAIH,EAAU,IAA0BH,gBAAQ,CAACO,MAAM,CAACR,QAAQ,EAAEI,EAAE,CAAC;EAE/E,MAAMK,SAAS,GAAIL,EAAU,IAA6BH,gBAAQ,CAACS,GAAG,CAACV,QAAQ,EAAEI,EAAE,CAAC;EAEpF,OAAO;IAAED,KAAK;IAAEI,IAAI;IAAEE;EAAS,CAAE;AACnC,CAAC,CAAC,CACH","ignoreList":[]}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ImposterServerLive = exports.ImposterServerError = exports.ImposterServer = void 0;
|
|
7
|
+
var _effect = require("effect");
|
|
8
|
+
var DateTime = _interopRequireWildcard(require("effect/DateTime"));
|
|
9
|
+
var _imposter = require("../domain/imposter");
|
|
10
|
+
var _RequestMatcher = require("../matching/RequestMatcher");
|
|
11
|
+
var _ResponseGenerator = require("../matching/ResponseGenerator");
|
|
12
|
+
var _ImposterRepository = require("../repositories/ImposterRepository");
|
|
13
|
+
var _common = require("../schemas/common");
|
|
14
|
+
var _MetricsService = require("../services/MetricsService");
|
|
15
|
+
var _ProxyService = require("../services/ProxyService");
|
|
16
|
+
var _RequestLogger = require("../services/RequestLogger");
|
|
17
|
+
var _UiRouter = require("../ui/UiRouter");
|
|
18
|
+
var _BunServer = require("./BunServer");
|
|
19
|
+
var _FiberManager = require("./FiberManager");
|
|
20
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
21
|
+
class ImposterServerError extends _effect.Data.TaggedError("ImposterServerError") {}
|
|
22
|
+
exports.ImposterServerError = ImposterServerError;
|
|
23
|
+
class ImposterServer extends _effect.Context.Tag("ImposterServer")() {}
|
|
24
|
+
exports.ImposterServer = ImposterServer;
|
|
25
|
+
const ImposterServerLive = exports.ImposterServerLive = /*#__PURE__*/_effect.Layer.effect(ImposterServer, /*#__PURE__*/_effect.Effect.gen(function* () {
|
|
26
|
+
const repo = yield* _ImposterRepository.ImposterRepository;
|
|
27
|
+
const fiberManager = yield* _FiberManager.FiberManager;
|
|
28
|
+
const serverFactory = yield* _BunServer.ServerFactory;
|
|
29
|
+
const requestLogger = yield* _RequestLogger.RequestLogger;
|
|
30
|
+
const metricsService = yield* _MetricsService.MetricsService;
|
|
31
|
+
const proxyService = yield* _ProxyService.ProxyService;
|
|
32
|
+
const stateMapRef = yield* _effect.Ref.make(_effect.HashMap.empty());
|
|
33
|
+
const start = id => _effect.Effect.gen(function* () {
|
|
34
|
+
const record = yield* repo.get(id);
|
|
35
|
+
const config = record.config;
|
|
36
|
+
// Create per-imposter state
|
|
37
|
+
const stubsRef = yield* _effect.Ref.make(record.stubs);
|
|
38
|
+
const proxyConfigRef = yield* _effect.Ref.make(config.proxy);
|
|
39
|
+
const responseState = yield* (0, _ResponseGenerator.makeResponseState)();
|
|
40
|
+
// Store state for hot-reload
|
|
41
|
+
yield* _effect.Ref.update(stateMapRef, _effect.HashMap.set(id, {
|
|
42
|
+
stubsRef,
|
|
43
|
+
proxyConfigRef
|
|
44
|
+
}));
|
|
45
|
+
// Capture runtime for running effects inside fetch handler
|
|
46
|
+
const rt = yield* _effect.Effect.runtime();
|
|
47
|
+
const runPromise = _effect.Runtime.runPromise(rt);
|
|
48
|
+
// UI router for /_admin pages
|
|
49
|
+
const uiRouter = (0, _UiRouter.makeUiRouter)({
|
|
50
|
+
id,
|
|
51
|
+
config,
|
|
52
|
+
stubsRef,
|
|
53
|
+
repo,
|
|
54
|
+
requestLogger,
|
|
55
|
+
runPromise
|
|
56
|
+
});
|
|
57
|
+
const handler = async request => {
|
|
58
|
+
// Try UI router first (returns null if not a /_admin path)
|
|
59
|
+
const uiResponse = await uiRouter(request);
|
|
60
|
+
if (uiResponse !== null) return uiResponse;
|
|
61
|
+
return runPromise(_effect.Effect.gen(function* () {
|
|
62
|
+
const startTime = Date.now();
|
|
63
|
+
const stubs = yield* _effect.Ref.get(stubsRef);
|
|
64
|
+
const ctx = yield* _effect.Effect.promise(() => (0, _RequestMatcher.extractRequestContext)(request));
|
|
65
|
+
const stub = (0, _RequestMatcher.findMatchingStub)(ctx, stubs);
|
|
66
|
+
let response;
|
|
67
|
+
let proxied = false;
|
|
68
|
+
if (!stub) {
|
|
69
|
+
const proxyConfig = yield* _effect.Ref.get(proxyConfigRef);
|
|
70
|
+
if (proxyConfig) {
|
|
71
|
+
const url = new URL(request.url);
|
|
72
|
+
response = yield* proxyService.forward(ctx, proxyConfig, url).pipe(_effect.Effect.catchTag("ProxyError", err => _effect.Effect.succeed(new Response(JSON.stringify({
|
|
73
|
+
error: "Proxy failed",
|
|
74
|
+
target: err.targetUrl,
|
|
75
|
+
reason: err.reason
|
|
76
|
+
}), {
|
|
77
|
+
status: 502,
|
|
78
|
+
headers: {
|
|
79
|
+
"content-type": "application/json"
|
|
80
|
+
}
|
|
81
|
+
}))));
|
|
82
|
+
proxied = true;
|
|
83
|
+
// Record mode: save as stub + update stubsRef
|
|
84
|
+
if (proxyConfig.mode === "record" && response.status < 500) {
|
|
85
|
+
const responseClone = response.clone();
|
|
86
|
+
const newStub = yield* proxyService.recordAsStub(ctx, responseClone);
|
|
87
|
+
yield* repo.addStub(id, newStub).pipe(_effect.Effect.catchAll(() => _effect.Effect.void));
|
|
88
|
+
const freshStubs = yield* repo.getStubs(id).pipe(_effect.Effect.catchAll(() => _effect.Effect.succeed([])));
|
|
89
|
+
yield* _effect.Ref.set(stubsRef, freshStubs);
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
response = new Response(JSON.stringify({
|
|
93
|
+
error: "No matching stub found",
|
|
94
|
+
method: ctx.method,
|
|
95
|
+
path: ctx.path
|
|
96
|
+
}), {
|
|
97
|
+
status: 404,
|
|
98
|
+
headers: {
|
|
99
|
+
"content-type": "application/json"
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
const responses = stub.responses;
|
|
105
|
+
const index = yield* responseState.getNextIndex(id, stub.id, responses.length, stub.responseMode);
|
|
106
|
+
const responseConfig = responses[index];
|
|
107
|
+
const delay = responseConfig.delay;
|
|
108
|
+
if (delay !== undefined && delay > 0) {
|
|
109
|
+
yield* _effect.Effect.sleep(`${delay} millis`);
|
|
110
|
+
}
|
|
111
|
+
response = yield* _effect.Effect.promise(() => (0, _ResponseGenerator.buildResponse)(responseConfig, ctx));
|
|
112
|
+
}
|
|
113
|
+
// Capture response for logging
|
|
114
|
+
const respText = yield* _effect.Effect.promise(() => response.text());
|
|
115
|
+
const respHeaders = {};
|
|
116
|
+
response.headers.forEach((val, key) => {
|
|
117
|
+
respHeaders[key] = val;
|
|
118
|
+
});
|
|
119
|
+
// Reconstruct since .text() consumed body
|
|
120
|
+
response = new Response(respText, {
|
|
121
|
+
status: response.status,
|
|
122
|
+
headers: response.headers
|
|
123
|
+
});
|
|
124
|
+
const logBody = respText.length > 10240 ? respText.slice(0, 10240) : respText || undefined;
|
|
125
|
+
const duration = Date.now() - startTime;
|
|
126
|
+
const logEntry = {
|
|
127
|
+
id: _common.NonEmptyString.make(crypto.randomUUID()),
|
|
128
|
+
imposterId: _common.NonEmptyString.make(id),
|
|
129
|
+
timestamp: DateTime.unsafeMake(startTime),
|
|
130
|
+
request: {
|
|
131
|
+
method: ctx.method,
|
|
132
|
+
path: ctx.path,
|
|
133
|
+
headers: ctx.headers,
|
|
134
|
+
query: ctx.query,
|
|
135
|
+
body: ctx.body
|
|
136
|
+
},
|
|
137
|
+
response: {
|
|
138
|
+
status: response.status,
|
|
139
|
+
headers: respHeaders,
|
|
140
|
+
...(logBody !== undefined ? {
|
|
141
|
+
body: logBody
|
|
142
|
+
} : {}),
|
|
143
|
+
...(stub ? {
|
|
144
|
+
matchedStubId: _common.NonEmptyString.make(stub.id)
|
|
145
|
+
} : {}),
|
|
146
|
+
proxied
|
|
147
|
+
},
|
|
148
|
+
duration
|
|
149
|
+
};
|
|
150
|
+
yield* requestLogger.log(logEntry).pipe(_effect.Effect.catchAll(() => _effect.Effect.void));
|
|
151
|
+
yield* metricsService.recordRequest(logEntry).pipe(_effect.Effect.catchAll(() => _effect.Effect.void));
|
|
152
|
+
return response;
|
|
153
|
+
}).pipe(_effect.Effect.catchAllCause(cause => _effect.Effect.succeed(new Response(JSON.stringify({
|
|
154
|
+
error: "Internal server error",
|
|
155
|
+
details: String(cause)
|
|
156
|
+
}), {
|
|
157
|
+
status: 500,
|
|
158
|
+
headers: {
|
|
159
|
+
"content-type": "application/json"
|
|
160
|
+
}
|
|
161
|
+
})))));
|
|
162
|
+
};
|
|
163
|
+
// Build the long-running fiber effect with acquireRelease
|
|
164
|
+
const fiberEffect = _effect.Effect.acquireRelease(_effect.Effect.try({
|
|
165
|
+
try: () => serverFactory.create({
|
|
166
|
+
port: config.port,
|
|
167
|
+
fetch: handler
|
|
168
|
+
}),
|
|
169
|
+
catch: err => new ImposterServerError({
|
|
170
|
+
imposterId: id,
|
|
171
|
+
reason: `Failed to bind port ${config.port}: ${err}`
|
|
172
|
+
})
|
|
173
|
+
}), server => _effect.Effect.sync(() => server.stop(true))).pipe(_effect.Effect.andThen(_effect.Effect.never), _effect.Effect.scoped);
|
|
174
|
+
// Wrap fiber in onError for crash supervision
|
|
175
|
+
const supervisedEffect = fiberEffect.pipe(_effect.Effect.onError(() => _effect.Effect.gen(function* () {
|
|
176
|
+
yield* _effect.Ref.update(stateMapRef, _effect.HashMap.remove(id));
|
|
177
|
+
yield* repo.update(id, r => ({
|
|
178
|
+
...r,
|
|
179
|
+
config: (0, _imposter.ImposterConfig)({
|
|
180
|
+
...r.config,
|
|
181
|
+
status: "stopped"
|
|
182
|
+
})
|
|
183
|
+
})).pipe(_effect.Effect.catchAll(() => _effect.Effect.void));
|
|
184
|
+
yield* responseState.reset(id);
|
|
185
|
+
})));
|
|
186
|
+
yield* fiberManager.start(id, supervisedEffect);
|
|
187
|
+
// Update status to running
|
|
188
|
+
yield* repo.update(id, r => ({
|
|
189
|
+
...r,
|
|
190
|
+
config: (0, _imposter.ImposterConfig)({
|
|
191
|
+
...r.config,
|
|
192
|
+
status: "running"
|
|
193
|
+
})
|
|
194
|
+
})).pipe(_effect.Effect.catchTag("ImposterNotFoundError", () => _effect.Effect.void));
|
|
195
|
+
});
|
|
196
|
+
const stop = id => _effect.Effect.gen(function* () {
|
|
197
|
+
yield* fiberManager.stop(id);
|
|
198
|
+
yield* _effect.Ref.update(stateMapRef, _effect.HashMap.remove(id));
|
|
199
|
+
yield* repo.update(id, r => ({
|
|
200
|
+
...r,
|
|
201
|
+
config: (0, _imposter.ImposterConfig)({
|
|
202
|
+
...r.config,
|
|
203
|
+
status: "stopped"
|
|
204
|
+
})
|
|
205
|
+
})).pipe(_effect.Effect.catchAll(() => _effect.Effect.void));
|
|
206
|
+
yield* requestLogger.removeImposter(id);
|
|
207
|
+
});
|
|
208
|
+
const updateStubs = id => _effect.Effect.gen(function* () {
|
|
209
|
+
const stubs = yield* repo.getStubs(id).pipe(_effect.Effect.catchAll(() => _effect.Effect.succeed([])));
|
|
210
|
+
const stateMap = yield* _effect.Ref.get(stateMapRef);
|
|
211
|
+
const state = _effect.HashMap.get(stateMap, id);
|
|
212
|
+
if (state._tag === "Some") {
|
|
213
|
+
yield* _effect.Ref.set(state.value.stubsRef, stubs);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
const updateProxyConfig = id => _effect.Effect.gen(function* () {
|
|
217
|
+
const record = yield* repo.get(id).pipe(_effect.Effect.catchAll(() => _effect.Effect.succeed(null)));
|
|
218
|
+
if (record === null) return;
|
|
219
|
+
const stateMap = yield* _effect.Ref.get(stateMapRef);
|
|
220
|
+
const state = _effect.HashMap.get(stateMap, id);
|
|
221
|
+
if (state._tag === "Some") {
|
|
222
|
+
yield* _effect.Ref.set(state.value.proxyConfigRef, record.config.proxy);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
const isRunning = id => fiberManager.isRunning(id);
|
|
226
|
+
return {
|
|
227
|
+
start,
|
|
228
|
+
stop,
|
|
229
|
+
updateStubs,
|
|
230
|
+
updateProxyConfig,
|
|
231
|
+
isRunning
|
|
232
|
+
};
|
|
233
|
+
}));
|
|
234
|
+
//# sourceMappingURL=ImposterServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImposterServer.js","names":["_effect","require","DateTime","_interopRequireWildcard","_imposter","_RequestMatcher","_ResponseGenerator","_ImposterRepository","_common","_MetricsService","_ProxyService","_RequestLogger","_UiRouter","_BunServer","_FiberManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ImposterServerError","Data","TaggedError","exports","ImposterServer","Context","Tag","ImposterServerLive","Layer","effect","Effect","gen","repo","ImposterRepository","fiberManager","FiberManager","serverFactory","ServerFactory","requestLogger","RequestLogger","metricsService","MetricsService","proxyService","ProxyService","stateMapRef","Ref","make","HashMap","empty","start","id","record","config","stubsRef","stubs","proxyConfigRef","proxy","responseState","makeResponseState","update","rt","runtime","runPromise","Runtime","uiRouter","makeUiRouter","handler","request","uiResponse","startTime","Date","now","ctx","promise","extractRequestContext","stub","findMatchingStub","response","proxied","proxyConfig","url","URL","forward","pipe","catchTag","err","succeed","Response","JSON","stringify","error","target","targetUrl","reason","status","headers","mode","responseClone","clone","newStub","recordAsStub","addStub","catchAll","void","freshStubs","getStubs","method","path","responses","index","getNextIndex","length","responseMode","responseConfig","delay","undefined","sleep","buildResponse","respText","text","respHeaders","forEach","val","key","logBody","slice","duration","logEntry","NonEmptyString","crypto","randomUUID","imposterId","timestamp","unsafeMake","query","body","matchedStubId","log","recordRequest","catchAllCause","cause","details","String","fiberEffect","acquireRelease","try","create","port","fetch","catch","server","sync","stop","andThen","never","scoped","supervisedEffect","onError","remove","ImposterConfig","reset","removeImposter","updateStubs","stateMap","state","_tag","value","updateProxyConfig","isRunning"],"sources":["../../../src/server/ImposterServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AppConfigLive = exports.AppConfig = void 0;
|
|
7
|
+
var _effect = require("effect");
|
|
8
|
+
class AppConfig extends _effect.Context.Tag("AppConfig")() {}
|
|
9
|
+
exports.AppConfig = AppConfig;
|
|
10
|
+
const config = /*#__PURE__*/_effect.Config.all({
|
|
11
|
+
adminPort: /*#__PURE__*/_effect.Config.number("ADMIN_PORT").pipe(/*#__PURE__*/_effect.Config.withDefault(2525)),
|
|
12
|
+
portRangeMin: /*#__PURE__*/_effect.Config.number("PORT_RANGE_MIN").pipe(/*#__PURE__*/_effect.Config.withDefault(3000)),
|
|
13
|
+
portRangeMax: /*#__PURE__*/_effect.Config.number("PORT_RANGE_MAX").pipe(/*#__PURE__*/_effect.Config.withDefault(4000)),
|
|
14
|
+
maxImposters: /*#__PURE__*/_effect.Config.number("MAX_IMPOSTERS").pipe(/*#__PURE__*/_effect.Config.withDefault(100)),
|
|
15
|
+
logLevel: /*#__PURE__*/_effect.Config.literal("debug", "info", "warn", "error")("LOG_LEVEL").pipe(/*#__PURE__*/_effect.Config.withDefault("info"))
|
|
16
|
+
});
|
|
17
|
+
const AppConfigLive = exports.AppConfigLive = /*#__PURE__*/_effect.Layer.effect(AppConfig, config);
|
|
18
|
+
//# sourceMappingURL=AppConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppConfig.js","names":["_effect","require","AppConfig","Context","Tag","exports","config","Config","all","adminPort","number","pipe","withDefault","portRangeMin","portRangeMax","maxImposters","logLevel","literal","AppConfigLive","Layer","effect"],"sources":["../../../src/services/AppConfig.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAUM,MAAOC,SAAU,SAAQC,eAAO,CAACC,GAAG,CAAC,WAAW,CAAC,EAA6B;AAAAC,OAAA,CAAAH,SAAA,GAAAA,SAAA;AAEpF,MAAMI,MAAM,gBAAGC,cAAM,CAACC,GAAG,CAAC;EACxBC,SAAS,eAAEF,cAAM,CAACG,MAAM,CAAC,YAAY,CAAC,CAACC,IAAI,cAACJ,cAAM,CAACK,WAAW,CAAC,IAAI,CAAC,CAAC;EACrEC,YAAY,eAAEN,cAAM,CAACG,MAAM,CAAC,gBAAgB,CAAC,CAACC,IAAI,cAACJ,cAAM,CAACK,WAAW,CAAC,IAAI,CAAC,CAAC;EAC5EE,YAAY,eAAEP,cAAM,CAACG,MAAM,CAAC,gBAAgB,CAAC,CAACC,IAAI,cAACJ,cAAM,CAACK,WAAW,CAAC,IAAI,CAAC,CAAC;EAC5EG,YAAY,eAAER,cAAM,CAACG,MAAM,CAAC,eAAe,CAAC,CAACC,IAAI,cAACJ,cAAM,CAACK,WAAW,CAAC,GAAG,CAAC,CAAC;EAC1EI,QAAQ,eAAET,cAAM,CAACU,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC,CACpEN,IAAI,cAACJ,cAAM,CAACK,WAAW,CAAC,MAAe,CAAC;CAC5C,CAAC;AAEK,MAAMM,aAAa,GAAAb,OAAA,CAAAa,aAAA,gBAAGC,aAAK,CAACC,MAAM,CAAClB,SAAS,EAAEI,MAAM,CAAC","ignoreList":[]}
|