@zintrust/core 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/bin/z.d.ts +7 -0
- package/bin/z.d.ts.map +1 -0
- package/bin/z.js +6 -0
- package/bin/zin.d.ts +7 -0
- package/bin/zin.d.ts.map +1 -0
- package/bin/zin.js +6 -0
- package/bin/zintrust-microservices.d.ts +7 -0
- package/bin/zintrust-microservices.d.ts.map +1 -0
- package/bin/zintrust-microservices.js +165 -0
- package/bin/zintrust.d.ts +9 -0
- package/bin/zintrust.d.ts.map +1 -0
- package/bin/zintrust.js +51 -0
- package/bin/zt.d.ts +7 -0
- package/bin/zt.d.ts.map +1 -0
- package/bin/zt.js +6 -0
- package/package.json +80 -0
- package/src/boot/Application.d.ts +31 -0
- package/src/boot/Application.d.ts.map +1 -0
- package/src/boot/Application.js +159 -0
- package/src/boot/Server.d.ts +23 -0
- package/src/boot/Server.d.ts.map +1 -0
- package/src/boot/Server.js +236 -0
- package/src/boot/bootstrap.d.ts +7 -0
- package/src/boot/bootstrap.d.ts.map +1 -0
- package/src/boot/bootstrap.js +64 -0
- package/src/builder/BundleOptimizer.d.ts +42 -0
- package/src/builder/BundleOptimizer.d.ts.map +1 -0
- package/src/builder/BundleOptimizer.js +356 -0
- package/src/cache/Cache.d.ts +26 -0
- package/src/cache/Cache.d.ts.map +1 -0
- package/src/cache/Cache.js +89 -0
- package/src/cache/CacheDriver.d.ts +28 -0
- package/src/cache/CacheDriver.d.ts.map +1 -0
- package/src/cache/CacheDriver.js +6 -0
- package/src/cache/drivers/KVDriver.d.ts +12 -0
- package/src/cache/drivers/KVDriver.d.ts.map +1 -0
- package/src/cache/drivers/KVDriver.js +54 -0
- package/src/cache/drivers/MemoryDriver.d.ts +12 -0
- package/src/cache/drivers/MemoryDriver.d.ts.map +1 -0
- package/src/cache/drivers/MemoryDriver.js +50 -0
- package/src/cache/drivers/MongoDriver.d.ts +17 -0
- package/src/cache/drivers/MongoDriver.d.ts.map +1 -0
- package/src/cache/drivers/MongoDriver.js +80 -0
- package/src/cache/drivers/RedisDriver.d.ts +12 -0
- package/src/cache/drivers/RedisDriver.d.ts.map +1 -0
- package/src/cache/drivers/RedisDriver.js +79 -0
- package/src/cli/BaseCommand.d.ts +39 -0
- package/src/cli/BaseCommand.d.ts.map +1 -0
- package/src/cli/BaseCommand.js +58 -0
- package/src/cli/CLI.d.ts +21 -0
- package/src/cli/CLI.d.ts.map +1 -0
- package/src/cli/CLI.js +203 -0
- package/src/cli/ErrorHandler.d.ts +23 -0
- package/src/cli/ErrorHandler.d.ts.map +1 -0
- package/src/cli/ErrorHandler.js +95 -0
- package/src/cli/PromptHelper.d.ts +47 -0
- package/src/cli/PromptHelper.d.ts.map +1 -0
- package/src/cli/PromptHelper.js +155 -0
- package/src/cli/commands/AddCommand.d.ts +15 -0
- package/src/cli/commands/AddCommand.d.ts.map +1 -0
- package/src/cli/commands/AddCommand.js +817 -0
- package/src/cli/commands/ConfigCommand.d.ts +15 -0
- package/src/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/src/cli/commands/ConfigCommand.js +273 -0
- package/src/cli/commands/D1MigrateCommand.d.ts +15 -0
- package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -0
- package/src/cli/commands/D1MigrateCommand.js +73 -0
- package/src/cli/commands/DebugCommand.d.ts +15 -0
- package/src/cli/commands/DebugCommand.d.ts.map +1 -0
- package/src/cli/commands/DebugCommand.js +52 -0
- package/src/cli/commands/FixCommand.d.ts +15 -0
- package/src/cli/commands/FixCommand.d.ts.map +1 -0
- package/src/cli/commands/FixCommand.js +80 -0
- package/src/cli/commands/KeyGenerateCommand.d.ts +9 -0
- package/src/cli/commands/KeyGenerateCommand.d.ts.map +1 -0
- package/src/cli/commands/KeyGenerateCommand.js +76 -0
- package/src/cli/commands/LogsCommand.d.ts +19 -0
- package/src/cli/commands/LogsCommand.d.ts.map +1 -0
- package/src/cli/commands/LogsCommand.js +185 -0
- package/src/cli/commands/MigrateCommand.d.ts +15 -0
- package/src/cli/commands/MigrateCommand.d.ts.map +1 -0
- package/src/cli/commands/MigrateCommand.js +56 -0
- package/src/cli/commands/NewCommand.d.ts +32 -0
- package/src/cli/commands/NewCommand.d.ts.map +1 -0
- package/src/cli/commands/NewCommand.js +280 -0
- package/src/cli/commands/PluginCommand.d.ts +9 -0
- package/src/cli/commands/PluginCommand.d.ts.map +1 -0
- package/src/cli/commands/PluginCommand.js +94 -0
- package/src/cli/commands/PrepareCommand.d.ts +8 -0
- package/src/cli/commands/PrepareCommand.d.ts.map +1 -0
- package/src/cli/commands/PrepareCommand.js +51 -0
- package/src/cli/commands/QACommand.d.ts +33 -0
- package/src/cli/commands/QACommand.d.ts.map +1 -0
- package/src/cli/commands/QACommand.js +490 -0
- package/src/cli/commands/SimulateCommand.d.ts +12 -0
- package/src/cli/commands/SimulateCommand.d.ts.map +1 -0
- package/src/cli/commands/SimulateCommand.js +79 -0
- package/src/cli/commands/StartCommand.d.ts +5 -0
- package/src/cli/commands/StartCommand.d.ts.map +1 -0
- package/src/cli/commands/StartCommand.js +227 -0
- package/src/cli/commands/index.d.ts +11 -0
- package/src/cli/commands/index.d.ts.map +1 -0
- package/src/cli/commands/index.js +10 -0
- package/src/cli/config/ConfigManager.d.ts +42 -0
- package/src/cli/config/ConfigManager.d.ts.map +1 -0
- package/src/cli/config/ConfigManager.js +175 -0
- package/src/cli/config/ConfigSchema.d.ts +195 -0
- package/src/cli/config/ConfigSchema.d.ts.map +1 -0
- package/src/cli/config/ConfigSchema.js +171 -0
- package/src/cli/config/ConfigValidator.d.ts +41 -0
- package/src/cli/config/ConfigValidator.d.ts.map +1 -0
- package/src/cli/config/ConfigValidator.js +200 -0
- package/src/cli/config/index.d.ts +8 -0
- package/src/cli/config/index.d.ts.map +1 -0
- package/src/cli/config/index.js +7 -0
- package/src/cli/debug/Dashboard.d.ts +34 -0
- package/src/cli/debug/Dashboard.d.ts.map +1 -0
- package/src/cli/debug/Dashboard.js +152 -0
- package/src/cli/index.d.ts +14 -0
- package/src/cli/index.d.ts.map +1 -0
- package/src/cli/index.js +14 -0
- package/src/cli/logger/Logger.d.ts +43 -0
- package/src/cli/logger/Logger.d.ts.map +1 -0
- package/src/cli/logger/Logger.js +137 -0
- package/src/cli/scaffolding/ControllerGenerator.d.ts +44 -0
- package/src/cli/scaffolding/ControllerGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ControllerGenerator.js +540 -0
- package/src/cli/scaffolding/FactoryGenerator.d.ts +47 -0
- package/src/cli/scaffolding/FactoryGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/FactoryGenerator.js +356 -0
- package/src/cli/scaffolding/FeatureScaffolder.d.ts +40 -0
- package/src/cli/scaffolding/FeatureScaffolder.d.ts.map +1 -0
- package/src/cli/scaffolding/FeatureScaffolder.js +747 -0
- package/src/cli/scaffolding/FileGenerator.d.ts +31 -0
- package/src/cli/scaffolding/FileGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/FileGenerator.js +222 -0
- package/src/cli/scaffolding/MigrationGenerator.d.ts +35 -0
- package/src/cli/scaffolding/MigrationGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/MigrationGenerator.js +257 -0
- package/src/cli/scaffolding/ModelGenerator.d.ts +81 -0
- package/src/cli/scaffolding/ModelGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ModelGenerator.js +249 -0
- package/src/cli/scaffolding/ProjectScaffolder.d.ts +66 -0
- package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -0
- package/src/cli/scaffolding/ProjectScaffolder.js +439 -0
- package/src/cli/scaffolding/RequestFactoryGenerator.d.ts +50 -0
- package/src/cli/scaffolding/RequestFactoryGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/RequestFactoryGenerator.js +465 -0
- package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts +43 -0
- package/src/cli/scaffolding/ResponseFactoryGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ResponseFactoryGenerator.js +321 -0
- package/src/cli/scaffolding/RouteGenerator.d.ts +66 -0
- package/src/cli/scaffolding/RouteGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/RouteGenerator.js +306 -0
- package/src/cli/scaffolding/SeederGenerator.d.ts +47 -0
- package/src/cli/scaffolding/SeederGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/SeederGenerator.js +286 -0
- package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts +40 -0
- package/src/cli/scaffolding/ServiceIntegrationTestGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ServiceIntegrationTestGenerator.js +267 -0
- package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts +45 -0
- package/src/cli/scaffolding/ServiceRequestFactoryGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/ServiceRequestFactoryGenerator.js +397 -0
- package/src/cli/scaffolding/ServiceScaffolder.d.ts +45 -0
- package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -0
- package/src/cli/scaffolding/ServiceScaffolder.js +367 -0
- package/src/cli/scaffolding/TemplateEngine.d.ts +35 -0
- package/src/cli/scaffolding/TemplateEngine.d.ts.map +1 -0
- package/src/cli/scaffolding/TemplateEngine.js +379 -0
- package/src/cli/scaffolding/WorkflowGenerator.d.ts +31 -0
- package/src/cli/scaffolding/WorkflowGenerator.d.ts.map +1 -0
- package/src/cli/scaffolding/WorkflowGenerator.js +193 -0
- package/src/cli/scaffolding/index.d.ts +34 -0
- package/src/cli/scaffolding/index.d.ts.map +1 -0
- package/src/cli/scaffolding/index.js +18 -0
- package/src/cli/utils/DistPackager.d.ts +8 -0
- package/src/cli/utils/DistPackager.d.ts.map +1 -0
- package/src/cli/utils/DistPackager.js +94 -0
- package/src/cli/utils/EnvFileLoader.d.ts +21 -0
- package/src/cli/utils/EnvFileLoader.d.ts.map +1 -0
- package/src/cli/utils/EnvFileLoader.js +166 -0
- package/src/cli/utils/spawn.d.ts +11 -0
- package/src/cli/utils/spawn.d.ts.map +1 -0
- package/src/cli/utils/spawn.js +81 -0
- package/src/common/index.d.ts +87 -0
- package/src/common/index.d.ts.map +1 -0
- package/src/common/index.js +207 -0
- package/src/config/SecretsManager.d.ts +122 -0
- package/src/config/SecretsManager.d.ts.map +1 -0
- package/src/config/SecretsManager.js +328 -0
- package/src/config/app.d.ts +56 -0
- package/src/config/app.d.ts.map +1 -0
- package/src/config/app.js +77 -0
- package/src/config/cache.d.ts +76 -0
- package/src/config/cache.d.ts.map +1 -0
- package/src/config/cache.js +62 -0
- package/src/config/constants.d.ts +108 -0
- package/src/config/constants.d.ts.map +1 -0
- package/src/config/constants.js +64 -0
- package/src/config/database.d.ts +122 -0
- package/src/config/database.d.ts.map +1 -0
- package/src/config/database.js +89 -0
- package/src/config/env.d.ts +56 -0
- package/src/config/env.d.ts.map +1 -0
- package/src/config/env.js +133 -0
- package/src/config/features.d.ts +27 -0
- package/src/config/features.d.ts.map +1 -0
- package/src/config/features.js +49 -0
- package/src/config/index.d.ts +554 -0
- package/src/config/index.d.ts.map +1 -0
- package/src/config/index.js +31 -0
- package/src/config/logger.d.ts +17 -0
- package/src/config/logger.d.ts.map +1 -0
- package/src/config/logger.js +77 -0
- package/src/config/microservices.d.ts +88 -0
- package/src/config/microservices.d.ts.map +1 -0
- package/src/config/microservices.js +90 -0
- package/src/config/queue.d.ts +107 -0
- package/src/config/queue.d.ts.map +1 -0
- package/src/config/queue.js +74 -0
- package/src/config/security.d.ts +108 -0
- package/src/config/security.d.ts.map +1 -0
- package/src/config/security.js +134 -0
- package/src/config/storage.d.ts +105 -0
- package/src/config/storage.d.ts.map +1 -0
- package/src/config/storage.js +79 -0
- package/src/container/ServiceContainer.d.ts +25 -0
- package/src/container/ServiceContainer.d.ts.map +1 -0
- package/src/container/ServiceContainer.js +75 -0
- package/src/database/migrations/index.d.ts +2 -0
- package/src/database/migrations/index.d.ts.map +1 -0
- package/src/database/migrations/index.js +1 -0
- package/src/exceptions/ZintrustError.d.ts +88 -0
- package/src/exceptions/ZintrustError.d.ts.map +1 -0
- package/src/exceptions/ZintrustError.js +110 -0
- package/src/features/Auth.d.ts +20 -0
- package/src/features/Auth.d.ts.map +1 -0
- package/src/features/Auth.js +32 -0
- package/src/features/Queue.d.ts +21 -0
- package/src/features/Queue.d.ts.map +1 -0
- package/src/features/Queue.js +59 -0
- package/src/functions/cloudflare.d.ts +5 -0
- package/src/functions/cloudflare.d.ts.map +1 -0
- package/src/functions/cloudflare.js +34 -0
- package/src/functions/deno.d.ts +3 -0
- package/src/functions/deno.d.ts.map +1 -0
- package/src/functions/deno.js +31 -0
- package/src/functions/lambda.d.ts +2 -0
- package/src/functions/lambda.d.ts.map +1 -0
- package/src/functions/lambda.js +32 -0
- package/src/http/Controller.d.ts +20 -0
- package/src/http/Controller.d.ts.map +1 -0
- package/src/http/Controller.js +46 -0
- package/src/http/Kernel.d.ts +24 -0
- package/src/http/Kernel.d.ts.map +1 -0
- package/src/http/Kernel.js +72 -0
- package/src/http/Request.d.ts +36 -0
- package/src/http/Request.d.ts.map +1 -0
- package/src/http/Request.js +142 -0
- package/src/http/Response.d.ts +32 -0
- package/src/http/Response.d.ts.map +1 -0
- package/src/http/Response.js +70 -0
- package/src/index.d.ts +43 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +37 -0
- package/src/microservices/MicroserviceBootstrap.d.ts +75 -0
- package/src/microservices/MicroserviceBootstrap.d.ts.map +1 -0
- package/src/microservices/MicroserviceBootstrap.js +285 -0
- package/src/microservices/MicroserviceGenerator.d.ts +27 -0
- package/src/microservices/MicroserviceGenerator.d.ts.map +1 -0
- package/src/microservices/MicroserviceGenerator.js +436 -0
- package/src/microservices/MicroserviceManager.d.ts +68 -0
- package/src/microservices/MicroserviceManager.d.ts.map +1 -0
- package/src/microservices/MicroserviceManager.js +266 -0
- package/src/microservices/PostgresAdapter.d.ts +90 -0
- package/src/microservices/PostgresAdapter.d.ts.map +1 -0
- package/src/microservices/PostgresAdapter.js +286 -0
- package/src/microservices/RequestTracingMiddleware.d.ts +41 -0
- package/src/microservices/RequestTracingMiddleware.d.ts.map +1 -0
- package/src/microservices/RequestTracingMiddleware.js +122 -0
- package/src/microservices/ServiceAuthMiddleware.d.ts +58 -0
- package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -0
- package/src/microservices/ServiceAuthMiddleware.js +240 -0
- package/src/microservices/ServiceBundler.d.ts +45 -0
- package/src/microservices/ServiceBundler.d.ts.map +1 -0
- package/src/microservices/ServiceBundler.js +297 -0
- package/src/microservices/ServiceHealthMonitor.d.ts +96 -0
- package/src/microservices/ServiceHealthMonitor.d.ts.map +1 -0
- package/src/microservices/ServiceHealthMonitor.js +379 -0
- package/src/middleware/CsrfMiddleware.d.ts +19 -0
- package/src/middleware/CsrfMiddleware.d.ts.map +1 -0
- package/src/middleware/CsrfMiddleware.js +121 -0
- package/src/middleware/MiddlewareStack.d.ts +27 -0
- package/src/middleware/MiddlewareStack.d.ts.map +1 -0
- package/src/middleware/MiddlewareStack.js +43 -0
- package/src/middleware/RateLimiter.d.ts +22 -0
- package/src/middleware/RateLimiter.d.ts.map +1 -0
- package/src/middleware/RateLimiter.js +72 -0
- package/src/middleware/SecurityMiddleware.d.ts +33 -0
- package/src/middleware/SecurityMiddleware.d.ts.map +1 -0
- package/src/middleware/SecurityMiddleware.js +106 -0
- package/src/middleware/index.d.ts +9 -0
- package/src/middleware/index.d.ts.map +1 -0
- package/src/middleware/index.js +8 -0
- package/src/node-singletons/child-process.d.ts +7 -0
- package/src/node-singletons/child-process.d.ts.map +1 -0
- package/src/node-singletons/child-process.js +6 -0
- package/src/node-singletons/crypto.d.ts +7 -0
- package/src/node-singletons/crypto.d.ts.map +1 -0
- package/src/node-singletons/crypto.js +6 -0
- package/src/node-singletons/events.d.ts +7 -0
- package/src/node-singletons/events.d.ts.map +1 -0
- package/src/node-singletons/events.js +6 -0
- package/src/node-singletons/fs.d.ts +12 -0
- package/src/node-singletons/fs.d.ts.map +1 -0
- package/src/node-singletons/fs.js +14 -0
- package/src/node-singletons/http.d.ts +8 -0
- package/src/node-singletons/http.d.ts.map +1 -0
- package/src/node-singletons/http.js +6 -0
- package/src/node-singletons/index.d.ts +30 -0
- package/src/node-singletons/index.d.ts.map +1 -0
- package/src/node-singletons/index.js +31 -0
- package/src/node-singletons/os.d.ts +9 -0
- package/src/node-singletons/os.d.ts.map +1 -0
- package/src/node-singletons/os.js +9 -0
- package/src/node-singletons/path.d.ts +7 -0
- package/src/node-singletons/path.d.ts.map +1 -0
- package/src/node-singletons/path.js +6 -0
- package/src/node-singletons/perf-hooks.d.ts +7 -0
- package/src/node-singletons/perf-hooks.d.ts.map +1 -0
- package/src/node-singletons/perf-hooks.js +6 -0
- package/src/node-singletons/readline.d.ts +10 -0
- package/src/node-singletons/readline.d.ts.map +1 -0
- package/src/node-singletons/readline.js +9 -0
- package/src/node-singletons/url.d.ts +7 -0
- package/src/node-singletons/url.d.ts.map +1 -0
- package/src/node-singletons/url.js +6 -0
- package/src/orm/ConnectionManager.d.ts +118 -0
- package/src/orm/ConnectionManager.d.ts.map +1 -0
- package/src/orm/ConnectionManager.js +401 -0
- package/src/orm/Database.d.ts +31 -0
- package/src/orm/Database.d.ts.map +1 -0
- package/src/orm/Database.js +163 -0
- package/src/orm/DatabaseAdapter.d.ts +96 -0
- package/src/orm/DatabaseAdapter.d.ts.map +1 -0
- package/src/orm/DatabaseAdapter.js +40 -0
- package/src/orm/Model.d.ts +91 -0
- package/src/orm/Model.d.ts.map +1 -0
- package/src/orm/Model.js +206 -0
- package/src/orm/QueryBuilder.d.ts +52 -0
- package/src/orm/QueryBuilder.d.ts.map +1 -0
- package/src/orm/QueryBuilder.js +134 -0
- package/src/orm/Relationships.d.ts +53 -0
- package/src/orm/Relationships.d.ts.map +1 -0
- package/src/orm/Relationships.js +98 -0
- package/src/orm/Schema.d.ts +123 -0
- package/src/orm/Schema.d.ts.map +1 -0
- package/src/orm/Schema.js +169 -0
- package/src/orm/adapters/D1Adapter.d.ts +15 -0
- package/src/orm/adapters/D1Adapter.d.ts.map +1 -0
- package/src/orm/adapters/D1Adapter.js +125 -0
- package/src/orm/adapters/MySQLAdapter.d.ts +16 -0
- package/src/orm/adapters/MySQLAdapter.d.ts.map +1 -0
- package/src/orm/adapters/MySQLAdapter.js +87 -0
- package/src/orm/adapters/PostgreSQLAdapter.d.ts +16 -0
- package/src/orm/adapters/PostgreSQLAdapter.d.ts.map +1 -0
- package/src/orm/adapters/PostgreSQLAdapter.js +87 -0
- package/src/orm/adapters/SQLServerAdapter.d.ts +16 -0
- package/src/orm/adapters/SQLServerAdapter.d.ts.map +1 -0
- package/src/orm/adapters/SQLServerAdapter.js +81 -0
- package/src/orm/adapters/SQLiteAdapter.d.ts +11 -0
- package/src/orm/adapters/SQLiteAdapter.d.ts.map +1 -0
- package/src/orm/adapters/SQLiteAdapter.js +131 -0
- package/src/performance/Benchmark.d.ts +87 -0
- package/src/performance/Benchmark.d.ts.map +1 -0
- package/src/performance/Benchmark.js +304 -0
- package/src/performance/CodeGenerationBenchmark.d.ts +23 -0
- package/src/performance/CodeGenerationBenchmark.d.ts.map +1 -0
- package/src/performance/CodeGenerationBenchmark.js +249 -0
- package/src/performance/Optimizer.d.ts +99 -0
- package/src/performance/Optimizer.d.ts.map +1 -0
- package/src/performance/Optimizer.js +396 -0
- package/src/performance/establish-baseline.d.ts +9 -0
- package/src/performance/establish-baseline.d.ts.map +1 -0
- package/src/performance/establish-baseline.js +55 -0
- package/src/profiling/MemoryProfiler.d.ts +32 -0
- package/src/profiling/MemoryProfiler.d.ts.map +1 -0
- package/src/profiling/MemoryProfiler.js +84 -0
- package/src/profiling/N1Detector.d.ts +16 -0
- package/src/profiling/N1Detector.d.ts.map +1 -0
- package/src/profiling/N1Detector.js +120 -0
- package/src/profiling/QueryLogger.d.ts +107 -0
- package/src/profiling/QueryLogger.d.ts.map +1 -0
- package/src/profiling/QueryLogger.js +148 -0
- package/src/profiling/RequestProfiler.d.ts +30 -0
- package/src/profiling/RequestProfiler.d.ts.map +1 -0
- package/src/profiling/RequestProfiler.js +94 -0
- package/src/profiling/types.d.ts +77 -0
- package/src/profiling/types.d.ts.map +1 -0
- package/src/profiling/types.js +5 -0
- package/src/routing/Router.d.ts +52 -0
- package/src/routing/Router.d.ts.map +1 -0
- package/src/routing/Router.js +191 -0
- package/src/runtime/PluginManager.d.ts +30 -0
- package/src/runtime/PluginManager.d.ts.map +1 -0
- package/src/runtime/PluginManager.js +197 -0
- package/src/runtime/PluginRegistry.d.ts +22 -0
- package/src/runtime/PluginRegistry.d.ts.map +1 -0
- package/src/runtime/PluginRegistry.js +93 -0
- package/src/runtime/RuntimeAdapter.d.ts +126 -0
- package/src/runtime/RuntimeAdapter.d.ts.map +1 -0
- package/src/runtime/RuntimeAdapter.js +127 -0
- package/src/runtime/RuntimeDetector.d.ts +15 -0
- package/src/runtime/RuntimeDetector.d.ts.map +1 -0
- package/src/runtime/RuntimeDetector.js +219 -0
- package/src/runtime/adapters/CloudflareAdapter.d.ts +43 -0
- package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/CloudflareAdapter.js +175 -0
- package/src/runtime/adapters/DenoAdapter.d.ts +30 -0
- package/src/runtime/adapters/DenoAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/DenoAdapter.js +191 -0
- package/src/runtime/adapters/FargateAdapter.d.ts +40 -0
- package/src/runtime/adapters/FargateAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/FargateAdapter.js +156 -0
- package/src/runtime/adapters/LambdaAdapter.d.ts +13 -0
- package/src/runtime/adapters/LambdaAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/LambdaAdapter.js +302 -0
- package/src/runtime/adapters/NodeServerAdapter.d.ts +16 -0
- package/src/runtime/adapters/NodeServerAdapter.d.ts.map +1 -0
- package/src/runtime/adapters/NodeServerAdapter.js +199 -0
- package/src/scripts/TemplateSync.d.ts +7 -0
- package/src/scripts/TemplateSync.d.ts.map +1 -0
- package/src/scripts/TemplateSync.js +234 -0
- package/src/security/CsrfTokenManager.d.ts +28 -0
- package/src/security/CsrfTokenManager.d.ts.map +1 -0
- package/src/security/CsrfTokenManager.js +78 -0
- package/src/security/Encryptor.d.ts +15 -0
- package/src/security/Encryptor.d.ts.map +1 -0
- package/src/security/Encryptor.js +142 -0
- package/src/security/JwtManager.d.ts +41 -0
- package/src/security/JwtManager.d.ts.map +1 -0
- package/src/security/JwtManager.js +229 -0
- package/src/security/UrlValidator.d.ts +21 -0
- package/src/security/UrlValidator.d.ts.map +1 -0
- package/src/security/UrlValidator.js +42 -0
- package/src/security/XssProtection.d.ts +24 -0
- package/src/security/XssProtection.d.ts.map +1 -0
- package/src/security/XssProtection.js +133 -0
- package/src/templates/TemplateRegistry.d.ts +40 -0
- package/src/templates/TemplateRegistry.d.ts.map +1 -0
- package/src/templates/TemplateRegistry.js +78 -0
- package/src/templates/TemplateRegistry.ts +91 -0
- package/src/templates/adapters/MySQLAdapter.ts.tpl +97 -0
- package/src/templates/adapters/PostgreSQLAdapter.ts.tpl +101 -0
- package/src/templates/adapters/SQLServerAdapter.ts.tpl +95 -0
- package/src/templates/adapters/SQLiteAdapter.ts.tpl +189 -0
- package/src/templates/features/Auth.ts.tpl +40 -0
- package/src/templates/features/Queue.ts.tpl +75 -0
- package/src/templates/project/basic/.env.example.tpl +26 -0
- package/src/templates/project/basic/.env.tpl +164 -0
- package/src/templates/project/basic/README.md.tpl +13 -0
- package/src/templates/project/basic/app/Controllers/UserController.ts.tpl +155 -0
- package/src/templates/project/basic/app/Middleware/ProfilerMiddleware.ts.tpl +55 -0
- package/src/templates/project/basic/app/Middleware/index.ts.tpl +304 -0
- package/src/templates/project/basic/app/Models/Post.ts.tpl +30 -0
- package/src/templates/project/basic/app/Models/User.ts.tpl +53 -0
- package/src/templates/project/basic/config/SecretsManager.ts.tpl +453 -0
- package/src/templates/project/basic/config/app.ts.tpl +97 -0
- package/src/templates/project/basic/config/cache.ts.tpl +117 -0
- package/src/templates/project/basic/config/constants.ts.tpl +70 -0
- package/src/templates/project/basic/config/database.ts.tpl +152 -0
- package/src/templates/project/basic/config/env.ts.tpl +148 -0
- package/src/templates/project/basic/config/features.ts.tpl +57 -0
- package/src/templates/project/basic/config/index.ts.tpl +36 -0
- package/src/templates/project/basic/config/logger.ts.tpl +95 -0
- package/src/templates/project/basic/config/microservices.ts.tpl +104 -0
- package/src/templates/project/basic/config/queue.ts.tpl +134 -0
- package/src/templates/project/basic/config/security.ts.tpl +149 -0
- package/src/templates/project/basic/config/storage.ts.tpl +136 -0
- package/src/templates/project/basic/database/factories/.gitkeep.tpl +0 -0
- package/src/templates/project/basic/database/migrations/.gitkeep.tpl +0 -0
- package/src/templates/project/basic/database/migrations/index.ts.tpl +2 -0
- package/src/templates/project/basic/database/seeders/.gitkeep.tpl +0 -0
- package/src/templates/project/basic/package.json.tpl +22 -0
- package/src/templates/project/basic/routes/api.ts.tpl +135 -0
- package/src/templates/project/basic/src/index.ts.tpl +49 -0
- package/src/templates/project/basic/template.json +17 -0
- package/src/templates/project/basic/tsconfig.json.tpl +20 -0
- package/src/validation/ValidationError.d.ts +42 -0
- package/src/validation/ValidationError.d.ts.map +1 -0
- package/src/validation/ValidationError.js +53 -0
- package/src/validation/Validator.d.ts +60 -0
- package/src/validation/Validator.d.ts.map +1 -0
- package/src/validation/Validator.js +190 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime adapter for Deno
|
|
3
|
+
*/
|
|
4
|
+
import Logger from '../../config/logger';
|
|
5
|
+
import { createMockHttpObjects, ErrorResponse, } from '../RuntimeAdapter';
|
|
6
|
+
/**
|
|
7
|
+
* Deno runtime adapter for Deno Deploy and edge compute environments
|
|
8
|
+
* Sealed namespace for immutability
|
|
9
|
+
*/
|
|
10
|
+
export const DenoAdapter = Object.freeze({
|
|
11
|
+
/**
|
|
12
|
+
* Create a new Deno adapter instance
|
|
13
|
+
*/
|
|
14
|
+
create(config) {
|
|
15
|
+
const logger = config.logger || createDefaultLogger();
|
|
16
|
+
return {
|
|
17
|
+
platform: 'deno',
|
|
18
|
+
async handle(event, context) {
|
|
19
|
+
return handleDenoRequest(this, config, logger, event, context);
|
|
20
|
+
},
|
|
21
|
+
parseRequest(event) {
|
|
22
|
+
return parseDenoRequest(event);
|
|
23
|
+
},
|
|
24
|
+
formatResponse(response) {
|
|
25
|
+
return formatDenoResponse(response);
|
|
26
|
+
},
|
|
27
|
+
getLogger() {
|
|
28
|
+
return (logger || {
|
|
29
|
+
debug: (msg) => Logger.debug(`[Deno] ${msg}`),
|
|
30
|
+
info: (msg) => Logger.info(`[Deno] ${msg}`),
|
|
31
|
+
warn: (msg) => Logger.warn(`[Deno] ${msg}`),
|
|
32
|
+
error: (msg, err) => Logger.error(`[Deno] ${msg}`, err?.message),
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
supportsPersistentConnections() {
|
|
36
|
+
// Deno Deploy isolates are request-scoped
|
|
37
|
+
return false;
|
|
38
|
+
},
|
|
39
|
+
getEnvironment() {
|
|
40
|
+
return getDenoEnvironment();
|
|
41
|
+
},
|
|
42
|
+
async startServer(port = 3000, host = '0.0.0.0') {
|
|
43
|
+
return DenoAdapter.startServer(this, port, host);
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
},
|
|
47
|
+
/**
|
|
48
|
+
* Start Deno server for continuous operation
|
|
49
|
+
*/
|
|
50
|
+
async startServer(adapter, port = 3000, host = '0.0.0.0') {
|
|
51
|
+
// @ts-ignore - Deno.serve is available in Deno runtime
|
|
52
|
+
await Deno.serve({ port, hostname: host }, async (req) => {
|
|
53
|
+
const platformResponse = await adapter.handle(req);
|
|
54
|
+
return adapter.formatResponse(platformResponse);
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* Get Deno KV store for caching/secrets
|
|
59
|
+
*/
|
|
60
|
+
async getKV() {
|
|
61
|
+
// @ts-ignore - Deno.openKv is available in Deno runtime
|
|
62
|
+
return await Deno.openKv?.();
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* Get environment variable safely
|
|
66
|
+
*/
|
|
67
|
+
getEnvVar(key, defaultValue) {
|
|
68
|
+
// @ts-ignore - Deno.env is available in Deno runtime
|
|
69
|
+
return Deno.env.get?.(key) ?? defaultValue ?? '';
|
|
70
|
+
},
|
|
71
|
+
/**
|
|
72
|
+
* Check if running in Deno Deploy (edge)
|
|
73
|
+
*/
|
|
74
|
+
isDeployEnvironment() {
|
|
75
|
+
// @ts-ignore
|
|
76
|
+
return typeof Deno !== 'undefined' && Deno.mainModule?.includes('denoDeploy');
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* Handle Deno request
|
|
81
|
+
*/
|
|
82
|
+
async function handleDenoRequest(adapter, config, logger, event, _context) {
|
|
83
|
+
try {
|
|
84
|
+
const denoRequest = event;
|
|
85
|
+
const request = adapter.parseRequest(denoRequest);
|
|
86
|
+
// Read request body
|
|
87
|
+
const body = denoRequest.method !== 'GET' && denoRequest.method !== 'HEAD'
|
|
88
|
+
? await denoRequest.arrayBuffer()
|
|
89
|
+
: null;
|
|
90
|
+
// Create mock Node.js request/response for compatibility
|
|
91
|
+
const { res, responseData } = createMockHttpObjects(request);
|
|
92
|
+
// Set request timeout
|
|
93
|
+
const timeout = config.timeout ?? 30000;
|
|
94
|
+
const timeoutHandle = setTimeout(() => {
|
|
95
|
+
responseData.statusCode = 504;
|
|
96
|
+
responseData.body = JSON.stringify({
|
|
97
|
+
error: 'Gateway Timeout',
|
|
98
|
+
statusCode: 504,
|
|
99
|
+
});
|
|
100
|
+
}, timeout);
|
|
101
|
+
try {
|
|
102
|
+
// Process through handler with mock Node.js objects
|
|
103
|
+
// Note: In a real implementation, we'd use the handler from the adapter config
|
|
104
|
+
// For compatibility with the existing code structure
|
|
105
|
+
await config.handler(null, res, body === null ? null : Buffer.from(body));
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
clearTimeout(timeoutHandle);
|
|
109
|
+
}
|
|
110
|
+
logger?.debug('Deno request processed', {
|
|
111
|
+
statusCode: responseData.statusCode,
|
|
112
|
+
path: request.path,
|
|
113
|
+
});
|
|
114
|
+
return responseData;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
Logger.error('Deno handler error', error);
|
|
118
|
+
const errorResponse = ErrorResponse.create(500, 'Internal Server Error',
|
|
119
|
+
// @ts-ignore - Deno is available in Deno runtime
|
|
120
|
+
typeof Deno !== 'undefined' && Deno.env.get('DENO_ENV') === 'development'
|
|
121
|
+
? { message: error.message }
|
|
122
|
+
: undefined);
|
|
123
|
+
return errorResponse.toResponse();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Parse Deno request
|
|
128
|
+
*/
|
|
129
|
+
function parseDenoRequest(event) {
|
|
130
|
+
const url = new URL(event.url);
|
|
131
|
+
const headers = {};
|
|
132
|
+
// Convert Headers to Record
|
|
133
|
+
event.headers.forEach((value, key) => {
|
|
134
|
+
headers[key.toLowerCase()] = value;
|
|
135
|
+
});
|
|
136
|
+
return {
|
|
137
|
+
method: event.method.toUpperCase(),
|
|
138
|
+
path: url.pathname,
|
|
139
|
+
headers,
|
|
140
|
+
query: Object.fromEntries(url.searchParams.entries()),
|
|
141
|
+
remoteAddr: headers['x-forwarded-for']?.toString().split(',')[0] ?? '0.0.0.0',
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Format Deno response
|
|
146
|
+
*/
|
|
147
|
+
function formatDenoResponse(response) {
|
|
148
|
+
// Convert to Deno Response format
|
|
149
|
+
const headers = new Headers();
|
|
150
|
+
for (const [key, value] of Object.entries(response.headers)) {
|
|
151
|
+
if (Array.isArray(value)) {
|
|
152
|
+
value.forEach((v) => headers.append(key, v));
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
headers.set(key, value);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
let body = '';
|
|
159
|
+
if (typeof response.body === 'string') {
|
|
160
|
+
body = response.body;
|
|
161
|
+
}
|
|
162
|
+
else if (response.body !== null && response.body !== undefined) {
|
|
163
|
+
body = response.body.toString('utf-8');
|
|
164
|
+
}
|
|
165
|
+
return new Response(body, {
|
|
166
|
+
status: response.statusCode,
|
|
167
|
+
headers,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get Deno environment
|
|
172
|
+
*/
|
|
173
|
+
function getDenoEnvironment() {
|
|
174
|
+
// @ts-ignore - Deno.env is available in Deno runtime
|
|
175
|
+
const env = (typeof Deno === 'undefined' ? {} : (Deno.env.toObject?.() ?? {}));
|
|
176
|
+
return {
|
|
177
|
+
nodeEnv: env['DENO_ENV'] ?? 'production',
|
|
178
|
+
runtime: 'deno',
|
|
179
|
+
dbConnection: env['DB_CONNECTION'] ?? 'postgresql',
|
|
180
|
+
dbHost: env['DB_HOST'],
|
|
181
|
+
dbPort: env['DB_PORT'] ? Number.parseInt(env['DB_PORT'], 10) : undefined,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function createDefaultLogger() {
|
|
185
|
+
return {
|
|
186
|
+
debug: (msg, data) => Logger.debug(`[Deno] ${msg}`, data === undefined ? '' : JSON.stringify(data)),
|
|
187
|
+
info: (msg, data) => Logger.info(`[Deno] ${msg}`, data === undefined ? '' : JSON.stringify(data)),
|
|
188
|
+
warn: (msg, data) => Logger.warn(`[Deno] ${msg}`, data === undefined ? '' : JSON.stringify(data)),
|
|
189
|
+
error: (msg, err) => Logger.error(`[Deno] ${msg}`, err?.message),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type IncomingMessage, type Server, type ServerResponse } from '../../node-singletons/http';
|
|
2
|
+
import type { AdapterConfig, RuntimeAdapter } from '../RuntimeAdapter';
|
|
3
|
+
export interface FargateEnvironment {
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
nodeEnv: string;
|
|
6
|
+
runtime: string;
|
|
7
|
+
dbConnection: string;
|
|
8
|
+
dbHost: string | undefined;
|
|
9
|
+
dbPort: number | undefined;
|
|
10
|
+
}
|
|
11
|
+
export interface FargateAdapterState {
|
|
12
|
+
server?: Server;
|
|
13
|
+
}
|
|
14
|
+
export type NodeServerFactory = (requestListener: (req: IncomingMessage, res: ServerResponse) => void) => Server;
|
|
15
|
+
export declare function createFargateAdapter(config: AdapterConfig): RuntimeAdapter & {
|
|
16
|
+
startServer(port?: number, host?: string): Promise<void>;
|
|
17
|
+
stop(): Promise<void>;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Fargate/Container adapter for running Zintrust in AWS Fargate, Cloud Run, or Docker
|
|
21
|
+
* Wraps existing Node.js HTTP server for container orchestration
|
|
22
|
+
* Sealed namespace for immutability
|
|
23
|
+
*/
|
|
24
|
+
export declare const FargateAdapter: Readonly<{
|
|
25
|
+
create: typeof createFargateAdapter;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function startFargateServer(state: FargateAdapterState, config: AdapterConfig, logger: AdapterConfig['logger'], port: number, host: string, serverFactory?: NodeServerFactory): Promise<void>;
|
|
28
|
+
export declare function stopFargateServer(state: FargateAdapterState, logger: AdapterConfig['logger']): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Read the full request body (Buffer) for IncomingMessage.
|
|
31
|
+
* Exported for unit testing.
|
|
32
|
+
*/
|
|
33
|
+
export declare function readIncomingMessageBody(req: IncomingMessage): Promise<Buffer | null>;
|
|
34
|
+
export declare function handleFargateRequest(config: AdapterConfig, logger: AdapterConfig['logger'], req: IncomingMessage, res: ServerResponse): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Exported helper for tests (and safer than casting unknown to Error).
|
|
37
|
+
*/
|
|
38
|
+
export declare function normalizeError(error: unknown): Error;
|
|
39
|
+
export declare function createDefaultFargateLogger(): AdapterConfig['logger'];
|
|
40
|
+
//# sourceMappingURL=FargateAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FargateAdapter.d.ts","sourceRoot":"","sources":["../../../../src/runtime/adapters/FargateAdapter.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,aAAa,EAGb,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,eAAe,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,KACjE,MAAM,CAAC;AAEZ,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,GAAG;IAC5E,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAyDA;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc;;EAEzB,CAAC;AAEH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,iBAAgC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgB1F;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAIpD;AAED,wBAAgB,0BAA0B,IAAI,aAAa,CAAC,QAAQ,CAAC,CAUpE"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime adapter for AWS Fargate
|
|
3
|
+
*
|
|
4
|
+
* Refactor note:
|
|
5
|
+
* - Extracted all internal logic into exported, named functions so they can be unit tested directly.
|
|
6
|
+
* - Removed nested event-handler nesting where possible by introducing readIncomingMessageBody().
|
|
7
|
+
*/
|
|
8
|
+
import { Env } from '../../config/env';
|
|
9
|
+
import { Logger } from '../../config/logger';
|
|
10
|
+
import { ErrorFactory } from '../../exceptions/ZintrustError';
|
|
11
|
+
import { createServer, } from '../../node-singletons/http';
|
|
12
|
+
export function createFargateAdapter(config) {
|
|
13
|
+
const logger = config.logger ?? createDefaultFargateLogger();
|
|
14
|
+
const state = {};
|
|
15
|
+
return {
|
|
16
|
+
platform: 'fargate',
|
|
17
|
+
async handle() {
|
|
18
|
+
// Fargate adapter doesn't handle individual requests
|
|
19
|
+
// Instead, use startServer() to run continuous HTTP server
|
|
20
|
+
throw ErrorFactory.createConfigError('Fargate adapter requires startServer() method. Use RuntimeDetector for automatic initialization.');
|
|
21
|
+
},
|
|
22
|
+
parseRequest() {
|
|
23
|
+
throw ErrorFactory.createConfigError('Fargate adapter uses native Node.js HTTP server');
|
|
24
|
+
},
|
|
25
|
+
formatResponse() {
|
|
26
|
+
throw ErrorFactory.createConfigError('Fargate adapter uses native Node.js HTTP server');
|
|
27
|
+
},
|
|
28
|
+
async startServer(port = 3000, host = '0.0.0.0') {
|
|
29
|
+
return startFargateServer(state, config, logger, port, host);
|
|
30
|
+
},
|
|
31
|
+
async stop() {
|
|
32
|
+
return stopFargateServer(state, logger);
|
|
33
|
+
},
|
|
34
|
+
getLogger() {
|
|
35
|
+
return (logger ?? {
|
|
36
|
+
debug: (msg) => Logger.debug(`[Fargate] ${msg}`),
|
|
37
|
+
info: (msg) => Logger.info(`[Fargate] ${msg}`),
|
|
38
|
+
warn: (msg) => Logger.warn(`[Fargate] ${msg}`),
|
|
39
|
+
error: (msg, err) => Logger.error(`[Fargate] ${msg}`, err?.message),
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
supportsPersistentConnections() {
|
|
43
|
+
// Container environments support persistent connections
|
|
44
|
+
return true;
|
|
45
|
+
},
|
|
46
|
+
getEnvironment() {
|
|
47
|
+
return {
|
|
48
|
+
nodeEnv: Env.NODE_ENV,
|
|
49
|
+
runtime: 'fargate',
|
|
50
|
+
dbConnection: Env.DB_CONNECTION,
|
|
51
|
+
dbHost: Env.DB_HOST,
|
|
52
|
+
dbPort: Env.DB_PORT,
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Fargate/Container adapter for running Zintrust in AWS Fargate, Cloud Run, or Docker
|
|
59
|
+
* Wraps existing Node.js HTTP server for container orchestration
|
|
60
|
+
* Sealed namespace for immutability
|
|
61
|
+
*/
|
|
62
|
+
export const FargateAdapter = Object.freeze({
|
|
63
|
+
create: createFargateAdapter,
|
|
64
|
+
});
|
|
65
|
+
export async function startFargateServer(state, config, logger, port, host, serverFactory = createServer) {
|
|
66
|
+
return new Promise((resolve, reject) => {
|
|
67
|
+
state.server = serverFactory((req, res) => {
|
|
68
|
+
void handleFargateRequest(config, logger, req, res);
|
|
69
|
+
});
|
|
70
|
+
state.server.listen(port, host, () => {
|
|
71
|
+
logger?.info(`Fargate server listening on http://${host}:${port}`);
|
|
72
|
+
resolve();
|
|
73
|
+
});
|
|
74
|
+
state.server.on('error', (error) => {
|
|
75
|
+
logger?.error('Server error', error);
|
|
76
|
+
reject(error);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
export async function stopFargateServer(state, logger) {
|
|
81
|
+
const server = state.server;
|
|
82
|
+
if (server === undefined)
|
|
83
|
+
return;
|
|
84
|
+
await new Promise((resolve, reject) => {
|
|
85
|
+
server.close((error) => {
|
|
86
|
+
if (error) {
|
|
87
|
+
logger?.error('Error closing server', error);
|
|
88
|
+
reject(error);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
resolve();
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
state.server = undefined;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Read the full request body (Buffer) for IncomingMessage.
|
|
98
|
+
* Exported for unit testing.
|
|
99
|
+
*/
|
|
100
|
+
export async function readIncomingMessageBody(req) {
|
|
101
|
+
return new Promise((resolve, reject) => {
|
|
102
|
+
const chunks = [];
|
|
103
|
+
req.on('data', (chunk) => {
|
|
104
|
+
chunks.push(chunk);
|
|
105
|
+
});
|
|
106
|
+
req.on('end', () => {
|
|
107
|
+
resolve(chunks.length === 0 ? null : Buffer.concat(chunks));
|
|
108
|
+
});
|
|
109
|
+
req.on('error', (error) => {
|
|
110
|
+
reject(error);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
export async function handleFargateRequest(config, logger, req, res) {
|
|
115
|
+
try {
|
|
116
|
+
const body = await readIncomingMessageBody(req);
|
|
117
|
+
try {
|
|
118
|
+
await config.handler(req, res, body);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
const err = normalizeError(error);
|
|
122
|
+
Logger.error('Request handler error', err);
|
|
123
|
+
if (res.headersSent === false) {
|
|
124
|
+
res.statusCode = 500;
|
|
125
|
+
res.end('Internal Server Error');
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
Logger.error('Error reading request body', error);
|
|
131
|
+
const err = normalizeError(error);
|
|
132
|
+
logger?.error('Request error', err);
|
|
133
|
+
if (res.headersSent === false) {
|
|
134
|
+
res.statusCode = 500;
|
|
135
|
+
res.end('Internal Server Error');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Exported helper for tests (and safer than casting unknown to Error).
|
|
141
|
+
*/
|
|
142
|
+
export function normalizeError(error) {
|
|
143
|
+
if (error instanceof Error)
|
|
144
|
+
return error;
|
|
145
|
+
if (typeof error === 'string')
|
|
146
|
+
return ErrorFactory.createGeneralError(error);
|
|
147
|
+
return ErrorFactory.createGeneralError('Unknown error', error);
|
|
148
|
+
}
|
|
149
|
+
export function createDefaultFargateLogger() {
|
|
150
|
+
return {
|
|
151
|
+
debug: (msg, data) => Logger.debug(`[Fargate] ${msg}`, data === undefined ? '' : JSON.stringify(data)),
|
|
152
|
+
info: (msg, data) => Logger.info(`[Fargate] ${msg}`, data === undefined ? '' : JSON.stringify(data)),
|
|
153
|
+
warn: (msg, data) => Logger.warn(`[Fargate] ${msg}`, data === undefined ? '' : JSON.stringify(data)),
|
|
154
|
+
error: (msg, err) => Logger.error(`[Fargate] ${msg}`, err?.message),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AdapterConfig, RuntimeAdapter } from '../RuntimeAdapter';
|
|
2
|
+
/**
|
|
3
|
+
* AWS Lambda adapter for API Gateway and ALB events
|
|
4
|
+
* Converts Lambda events to standard HTTP format for Zintrust framework
|
|
5
|
+
* Sealed namespace for immutability
|
|
6
|
+
*/
|
|
7
|
+
export declare const LambdaAdapter: Readonly<{
|
|
8
|
+
/**
|
|
9
|
+
* Create a new Lambda adapter instance
|
|
10
|
+
*/
|
|
11
|
+
create(config: AdapterConfig): RuntimeAdapter;
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=LambdaAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LambdaAdapter.d.ts","sourceRoot":"","sources":["../../../../src/runtime/adapters/LambdaAdapter.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,aAAa,EAKb,cAAc,EACf,MAAM,yBAAyB,CAAC;AASjC;;;;GAIG;AACH,eAAO,MAAM,aAAa;IACxB;;OAEG;mBACY,aAAa,GAAG,cAAc;EA8D7C,CAAC"}
|