@zintrust/core 0.1.39 → 0.1.41
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/zintrust-main.d.ts.map +1 -1
- package/bin/zintrust-main.js +22 -1
- package/package.json +8 -4
- package/public/error-pages/404.html +2 -2
- package/src/auth/Auth.js +1 -1
- package/src/boot/Application.d.ts +1 -16
- package/src/boot/Application.d.ts.map +1 -1
- package/src/boot/Application.js +2 -262
- package/src/boot/Server.d.ts +1 -1
- package/src/boot/Server.d.ts.map +1 -1
- package/src/boot/bootstrap.js +23 -9
- package/src/boot/registry/registerRoute.d.ts +6 -0
- package/src/boot/registry/registerRoute.d.ts.map +1 -0
- package/src/boot/registry/registerRoute.js +96 -0
- package/src/boot/registry/runtime.d.ts +15 -0
- package/src/boot/registry/runtime.d.ts.map +1 -0
- package/src/boot/registry/runtime.js +353 -0
- package/src/boot/registry/type.d.ts +25 -0
- package/src/boot/registry/type.d.ts.map +1 -0
- package/src/boot/registry/type.js +1 -0
- package/src/boot/registry/worker.d.ts +6 -0
- package/src/boot/registry/worker.d.ts.map +1 -0
- package/src/boot/registry/worker.js +35 -0
- package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
- package/src/cache/drivers/KVRemoteDriver.js +14 -1
- package/src/cli/CLI.d.ts.map +1 -1
- package/src/cli/CLI.js +82 -34
- package/src/cli/ErrorHandler.js +1 -1
- package/src/cli/commands/ContainerProxiesCommand.d.ts +5 -0
- package/src/cli/commands/ContainerProxiesCommand.d.ts.map +1 -0
- package/src/cli/commands/ContainerProxiesCommand.js +77 -0
- package/src/cli/commands/ContainerWorkersCommand.d.ts +5 -0
- package/src/cli/commands/ContainerWorkersCommand.d.ts.map +1 -0
- package/src/cli/commands/ContainerWorkersCommand.js +57 -0
- package/src/cli/commands/DeployCommand.d.ts +16 -0
- package/src/cli/commands/DeployCommand.d.ts.map +1 -0
- package/src/cli/commands/DeployCommand.js +110 -0
- package/src/cli/commands/DeployContainerProxiesCommand.d.ts +5 -0
- package/src/cli/commands/DeployContainerProxiesCommand.d.ts.map +1 -0
- package/src/cli/commands/DeployContainerProxiesCommand.js +27 -0
- package/src/cli/commands/DeployContainerWorkersCommand.d.ts +5 -0
- package/src/cli/commands/DeployContainerWorkersCommand.d.ts.map +1 -0
- package/src/cli/commands/DeployContainerWorkersCommand.js +27 -0
- package/src/cli/commands/DockerComposeCommandUtils.d.ts +3 -0
- package/src/cli/commands/DockerComposeCommandUtils.d.ts.map +1 -0
- package/src/cli/commands/DockerComposeCommandUtils.js +34 -0
- package/src/cli/commands/DoctorArchitectureCommand.d.ts +5 -0
- package/src/cli/commands/DoctorArchitectureCommand.d.ts.map +1 -0
- package/src/cli/commands/DoctorArchitectureCommand.js +54 -0
- package/src/cli/commands/InitContainerCommand.d.ts +5 -0
- package/src/cli/commands/InitContainerCommand.d.ts.map +1 -0
- package/src/cli/commands/InitContainerCommand.js +216 -0
- package/src/cli/commands/InitProducerCommand.d.ts +5 -0
- package/src/cli/commands/InitProducerCommand.d.ts.map +1 -0
- package/src/cli/commands/InitProducerCommand.js +47 -0
- package/src/cli/commands/InitProxyCommand.d.ts +5 -0
- package/src/cli/commands/InitProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/InitProxyCommand.js +442 -0
- package/src/cli/commands/MongoDBProxyCommand.d.ts +5 -0
- package/src/cli/commands/MongoDBProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/MongoDBProxyCommand.js +98 -0
- package/src/cli/commands/MySqlProxyCommand.d.ts +6 -0
- package/src/cli/commands/MySqlProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/MySqlProxyCommand.js +32 -0
- package/src/cli/commands/PostgresProxyCommand.d.ts +6 -0
- package/src/cli/commands/PostgresProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/PostgresProxyCommand.js +32 -0
- package/src/cli/commands/ProxyCommand.d.ts +12 -0
- package/src/cli/commands/ProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/ProxyCommand.js +80 -0
- package/src/cli/commands/ProxyCommandUtils.d.ts +6 -0
- package/src/cli/commands/ProxyCommandUtils.d.ts.map +1 -0
- package/src/cli/commands/ProxyCommandUtils.js +38 -0
- package/src/cli/commands/QueueRecoveryCommand.d.ts +6 -0
- package/src/cli/commands/QueueRecoveryCommand.d.ts.map +1 -0
- package/src/cli/commands/QueueRecoveryCommand.js +513 -0
- package/src/cli/commands/RedisProxyCommand.d.ts +6 -0
- package/src/cli/commands/RedisProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/RedisProxyCommand.js +53 -0
- package/src/cli/commands/SmtpProxyCommand.d.ts +6 -0
- package/src/cli/commands/SmtpProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/SmtpProxyCommand.js +56 -0
- package/src/cli/commands/SqlProxyCommandUtils.d.ts +46 -0
- package/src/cli/commands/SqlProxyCommandUtils.d.ts.map +1 -0
- package/src/cli/commands/SqlProxyCommandUtils.js +48 -0
- package/src/cli/commands/SqlServerProxyCommand.d.ts +5 -0
- package/src/cli/commands/SqlServerProxyCommand.d.ts.map +1 -0
- package/src/cli/commands/SqlServerProxyCommand.js +85 -0
- package/src/cli/commands/StartCommand.d.ts.map +1 -1
- package/src/cli/commands/StartCommand.js +145 -18
- package/src/cli/commands/WorkerCommands.d.ts +1 -0
- package/src/cli/commands/WorkerCommands.d.ts.map +1 -1
- package/src/cli/commands/WorkerCommands.js +140 -6
- package/src/cli/commands/index.d.ts +2 -0
- package/src/cli/commands/index.d.ts.map +1 -1
- package/src/cli/commands/index.js +2 -0
- package/src/cli/commands/runner/index.d.ts +2 -2
- package/src/cli/commands/runner/index.d.ts.map +1 -1
- package/src/cli/commands/runner/index.js +15 -4
- package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
- package/src/cli/d1/D1SqlMigrations.js +3 -0
- package/src/cli/index.d.ts +4 -0
- package/src/cli/index.d.ts.map +1 -1
- package/src/cli/index.js +4 -0
- package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/ProjectScaffolder.js +2 -0
- package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/ServiceScaffolder.js +1 -0
- package/src/cli/utils/EnvFileLoader.d.ts +2 -1
- package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
- package/src/cli/utils/EnvFileLoader.js +22 -21
- package/src/cli/utils/spawn.d.ts.map +1 -1
- package/src/cli/utils/spawn.js +17 -10
- package/src/cli/workers/QueueWorkRunner.js +1 -1
- package/src/common/ExternalServiceUtils.d.ts.map +1 -1
- package/src/common/ExternalServiceUtils.js +7 -2
- package/src/common/HealthRoutes.d.ts.map +1 -1
- package/src/common/HealthRoutes.js +50 -2
- package/src/common/RemoteSignedJson.d.ts +1 -0
- package/src/common/RemoteSignedJson.d.ts.map +1 -1
- package/src/common/RemoteSignedJson.js +39 -13
- package/src/common/index.d.ts +1 -0
- package/src/common/index.d.ts.map +1 -1
- package/src/common/index.js +12 -1
- package/src/config/FileLogWriter.d.ts.map +1 -1
- package/src/config/FileLogWriter.js +21 -6
- package/src/config/app.d.ts +4 -0
- package/src/config/app.d.ts.map +1 -1
- package/src/config/app.js +4 -0
- package/src/config/cache.d.ts.map +1 -1
- package/src/config/cache.js +22 -2
- package/src/config/cloudflare.d.ts +5 -1
- package/src/config/cloudflare.d.ts.map +1 -1
- package/src/config/cloudflare.js +48 -0
- package/src/config/database.d.ts.map +1 -1
- package/src/config/database.js +48 -13
- package/src/config/env.d.ts +90 -2
- package/src/config/env.d.ts.map +1 -1
- package/src/config/env.js +160 -18
- package/src/config/index.d.ts +1 -0
- package/src/config/index.d.ts.map +1 -1
- package/src/config/logger.d.ts.map +1 -1
- package/src/config/logger.js +60 -16
- package/src/config/mail.d.ts.map +1 -1
- package/src/config/mail.js +16 -10
- package/src/config/middleware.d.ts +5 -0
- package/src/config/middleware.d.ts.map +1 -1
- package/src/config/middleware.js +19 -1
- package/src/config/queue.d.ts.map +1 -1
- package/src/config/queue.js +70 -9
- package/src/config/redis.d.ts.map +1 -1
- package/src/config/redis.js +48 -13
- package/src/config/storage.d.ts.map +1 -1
- package/src/config/storage.js +1 -0
- package/src/config/type.d.ts +19 -0
- package/src/config/type.d.ts.map +1 -1
- package/src/config/workers.d.ts.map +1 -1
- package/src/config/workers.js +122 -16
- package/src/functions/cloudflare.d.ts.map +1 -1
- package/src/functions/cloudflare.js +55 -1
- package/src/health/StartupHealthChecks.js +1 -1
- package/src/http/FileUpload.d.ts +3 -2
- package/src/http/FileUpload.d.ts.map +1 -1
- package/src/http/Kernel.d.ts.map +1 -1
- package/src/http/Kernel.js +2 -1
- package/src/http/error-pages/ErrorPageRenderer.d.ts +4 -0
- package/src/http/error-pages/ErrorPageRenderer.d.ts.map +1 -1
- package/src/http/error-pages/ErrorPageRenderer.js +141 -1
- package/src/http/middleware/BodyParsingMiddleware.d.ts.map +1 -1
- package/src/http/middleware/BodyParsingMiddleware.js +33 -6
- package/src/index.d.ts +25 -53
- package/src/index.d.ts.map +1 -1
- package/src/index.js +30 -14
- package/src/microservices/ServiceAuthMiddleware.d.ts.map +1 -1
- package/src/microservices/ServiceAuthMiddleware.js +12 -4
- package/src/middleware/CsrfMiddleware.d.ts.map +1 -1
- package/src/middleware/CsrfMiddleware.js +39 -10
- package/src/middleware/ErrorHandlerMiddleware.d.ts.map +1 -1
- package/src/middleware/ErrorHandlerMiddleware.js +2 -1
- package/src/migrations/MigrationLoader.js +1 -1
- package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -1
- package/src/migrations/schema/SchemaCompiler.js +6 -3
- package/src/node-singletons/crypto.d.ts +1 -1
- package/src/node-singletons/crypto.d.ts.map +1 -1
- package/src/node-singletons/crypto.js +1 -1
- package/src/node-singletons/fs.d.ts +1 -1
- package/src/node-singletons/fs.d.ts.map +1 -1
- package/src/node-singletons/path.d.ts +1 -1
- package/src/node-singletons/path.d.ts.map +1 -1
- package/src/node-singletons/path.js +1 -1
- package/src/node-singletons/stream.d.ts +11 -0
- package/src/node-singletons/stream.d.ts.map +1 -0
- package/src/node-singletons/stream.js +8 -0
- package/src/observability/OpenTelemetry.d.ts +7 -0
- package/src/observability/OpenTelemetry.d.ts.map +1 -1
- package/src/observability/OpenTelemetry.js +49 -2
- package/src/orm/Database.d.ts +4 -0
- package/src/orm/Database.d.ts.map +1 -1
- package/src/orm/Database.js +80 -9
- package/src/orm/DatabaseRuntimeRegistration.d.ts.map +1 -1
- package/src/orm/DatabaseRuntimeRegistration.js +2 -0
- package/src/orm/QueryBuilder.d.ts +1 -0
- package/src/orm/QueryBuilder.d.ts.map +1 -1
- package/src/orm/QueryBuilder.js +33 -3
- package/src/orm/SchemaCompiler.d.ts.map +1 -1
- package/src/orm/SchemaCompiler.js +6 -3
- package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
- package/src/orm/adapters/D1RemoteAdapter.js +14 -1
- package/src/orm/adapters/MongoDBProxyAdapter.d.ts +3 -0
- package/src/orm/adapters/MongoDBProxyAdapter.d.ts.map +1 -0
- package/src/orm/adapters/MongoDBProxyAdapter.js +128 -0
- package/src/orm/adapters/MySQLProxyAdapter.d.ts +11 -0
- package/src/orm/adapters/MySQLProxyAdapter.d.ts.map +1 -0
- package/src/orm/adapters/MySQLProxyAdapter.js +143 -0
- package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts +11 -0
- package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts.map +1 -0
- package/src/orm/adapters/PostgreSQLProxyAdapter.js +147 -0
- package/src/orm/adapters/ProxyCache.d.ts +9 -0
- package/src/orm/adapters/ProxyCache.d.ts.map +1 -0
- package/src/orm/adapters/ProxyCache.js +24 -0
- package/src/orm/adapters/ProxySignedRequest.d.ts +11 -0
- package/src/orm/adapters/ProxySignedRequest.d.ts.map +1 -0
- package/src/orm/adapters/ProxySignedRequest.js +30 -0
- package/src/orm/adapters/ProxySigningPath.d.ts +3 -0
- package/src/orm/adapters/ProxySigningPath.d.ts.map +1 -0
- package/src/orm/adapters/ProxySigningPath.js +25 -0
- package/src/orm/adapters/SqlProxyAdapterUtils.d.ts +19 -0
- package/src/orm/adapters/SqlProxyAdapterUtils.d.ts.map +1 -0
- package/src/orm/adapters/SqlProxyAdapterUtils.js +35 -0
- package/src/orm/adapters/SqlServerProxyAdapter.d.ts +3 -0
- package/src/orm/adapters/SqlServerProxyAdapter.d.ts.map +1 -0
- package/src/orm/adapters/SqlServerProxyAdapter.js +146 -0
- package/src/performance/Optimizer.d.ts +1 -0
- package/src/performance/Optimizer.d.ts.map +1 -1
- package/src/performance/Optimizer.js +21 -8
- package/src/proxy/ErrorHandler.d.ts +11 -0
- package/src/proxy/ErrorHandler.d.ts.map +1 -0
- package/src/proxy/ErrorHandler.js +7 -0
- package/src/proxy/PoolManager.d.ts +8 -0
- package/src/proxy/PoolManager.d.ts.map +1 -0
- package/src/proxy/PoolManager.js +18 -0
- package/src/proxy/ProxyBackend.d.ts +18 -0
- package/src/proxy/ProxyBackend.d.ts.map +1 -0
- package/src/proxy/ProxyBackend.js +1 -0
- package/src/proxy/ProxyConfig.d.ts +12 -0
- package/src/proxy/ProxyConfig.d.ts.map +1 -0
- package/src/proxy/ProxyConfig.js +1 -0
- package/src/proxy/ProxyRegistry.d.ts +10 -0
- package/src/proxy/ProxyRegistry.d.ts.map +1 -0
- package/src/proxy/ProxyRegistry.js +11 -0
- package/src/proxy/ProxyServer.d.ts +21 -0
- package/src/proxy/ProxyServer.d.ts.map +1 -0
- package/src/proxy/ProxyServer.js +84 -0
- package/src/proxy/ProxyServerUtils.d.ts +37 -0
- package/src/proxy/ProxyServerUtils.d.ts.map +1 -0
- package/src/proxy/ProxyServerUtils.js +42 -0
- package/src/proxy/ProxySigningConfigResolver.d.ts +22 -0
- package/src/proxy/ProxySigningConfigResolver.d.ts.map +1 -0
- package/src/proxy/ProxySigningConfigResolver.js +24 -0
- package/src/proxy/ProxySigningRequest.d.ts +12 -0
- package/src/proxy/ProxySigningRequest.d.ts.map +1 -0
- package/src/proxy/ProxySigningRequest.js +31 -0
- package/src/proxy/RequestValidator.d.ts +15 -0
- package/src/proxy/RequestValidator.d.ts.map +1 -0
- package/src/proxy/RequestValidator.js +25 -0
- package/src/proxy/SigningService.d.ts +39 -0
- package/src/proxy/SigningService.d.ts.map +1 -0
- package/src/proxy/SigningService.js +107 -0
- package/src/proxy/SqlPayloadValidator.d.ts +13 -0
- package/src/proxy/SqlPayloadValidator.d.ts.map +1 -0
- package/src/proxy/SqlPayloadValidator.js +14 -0
- package/src/proxy/d1/ZintrustD1Proxy.d.ts +2 -0
- package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -0
- package/src/proxy/d1/ZintrustD1Proxy.js +1 -0
- package/src/proxy/d1/register.d.ts +2 -0
- package/src/proxy/d1/register.d.ts.map +1 -0
- package/src/proxy/d1/register.js +5 -0
- package/src/proxy/kv/ZintrustKvProxy.d.ts +2 -0
- package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -0
- package/src/proxy/kv/ZintrustKvProxy.js +1 -0
- package/src/proxy/kv/register.d.ts +2 -0
- package/src/proxy/kv/register.d.ts.map +1 -0
- package/src/proxy/kv/register.js +5 -0
- package/src/proxy/mongodb/MongoDBProxyServer.d.ts +33 -0
- package/src/proxy/mongodb/MongoDBProxyServer.d.ts.map +1 -0
- package/src/proxy/mongodb/MongoDBProxyServer.js +202 -0
- package/src/proxy/mongodb/register.d.ts +2 -0
- package/src/proxy/mongodb/register.d.ts.map +1 -0
- package/src/proxy/mongodb/register.js +5 -0
- package/src/proxy/mysql/MySqlProxyServer.d.ts +14 -0
- package/src/proxy/mysql/MySqlProxyServer.d.ts.map +1 -0
- package/src/proxy/mysql/MySqlProxyServer.js +169 -0
- package/src/proxy/mysql/register.d.ts +2 -0
- package/src/proxy/mysql/register.d.ts.map +1 -0
- package/src/proxy/mysql/register.js +5 -0
- package/src/proxy/postgres/PostgresProxyServer.d.ts +14 -0
- package/src/proxy/postgres/PostgresProxyServer.d.ts.map +1 -0
- package/src/proxy/postgres/PostgresProxyServer.js +140 -0
- package/src/proxy/postgres/register.d.ts +2 -0
- package/src/proxy/postgres/register.d.ts.map +1 -0
- package/src/proxy/postgres/register.js +5 -0
- package/src/proxy/redis/RedisProxyServer.d.ts +12 -0
- package/src/proxy/redis/RedisProxyServer.d.ts.map +1 -0
- package/src/proxy/redis/RedisProxyServer.js +192 -0
- package/src/proxy/redis/register.d.ts +2 -0
- package/src/proxy/redis/register.d.ts.map +1 -0
- package/src/proxy/redis/register.js +5 -0
- package/src/proxy/smtp/SmtpProxyServer.d.ts +19 -0
- package/src/proxy/smtp/SmtpProxyServer.d.ts.map +1 -0
- package/src/proxy/smtp/SmtpProxyServer.js +289 -0
- package/src/proxy/smtp/register.d.ts +2 -0
- package/src/proxy/smtp/register.d.ts.map +1 -0
- package/src/proxy/smtp/register.js +5 -0
- package/src/proxy/sqlserver/SqlServerProxyServer.d.ts +14 -0
- package/src/proxy/sqlserver/SqlServerProxyServer.d.ts.map +1 -0
- package/src/proxy/sqlserver/SqlServerProxyServer.js +168 -0
- package/src/proxy/sqlserver/register.d.ts +2 -0
- package/src/proxy/sqlserver/register.d.ts.map +1 -0
- package/src/proxy/sqlserver/register.js +5 -0
- package/src/routes/doc.d.ts.map +1 -1
- package/src/routes/doc.js +16 -2
- package/src/routes/error.d.ts +5 -4
- package/src/routes/error.d.ts.map +1 -1
- package/src/routes/error.js +15 -13
- package/src/routes/errorPages.d.ts +2 -0
- package/src/routes/errorPages.d.ts.map +1 -1
- package/src/routes/errorPages.js +144 -4
- package/src/runtime/PluginAutoImports.d.ts +1 -0
- package/src/runtime/PluginAutoImports.d.ts.map +1 -1
- package/src/runtime/PluginAutoImports.js +94 -9
- package/src/runtime/RuntimeAdapter.d.ts +8 -9
- package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
- package/src/runtime/RuntimeAdapter.js +120 -34
- package/src/runtime/RuntimeServices.d.ts +47 -0
- package/src/runtime/RuntimeServices.d.ts.map +1 -0
- package/src/runtime/RuntimeServices.js +164 -0
- package/src/runtime/StartupConfigFileRegistry.d.ts +4 -4
- package/src/runtime/StartupConfigFileRegistry.d.ts.map +1 -1
- package/src/runtime/StartupConfigFileRegistry.js +12 -0
- package/src/runtime/WorkerAdapterImports.d.ts +5 -0
- package/src/runtime/WorkerAdapterImports.d.ts.map +1 -0
- package/src/runtime/WorkerAdapterImports.js +17 -0
- package/src/runtime/WorkersModule.d.ts +6 -0
- package/src/runtime/WorkersModule.d.ts.map +1 -0
- package/src/runtime/WorkersModule.js +278 -0
- package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
- package/src/runtime/adapters/CloudflareAdapter.js +19 -2
- package/src/runtime/adapters/DenoAdapter.js +1 -0
- package/src/runtime/adapters/FargateAdapter.js +1 -1
- package/src/runtime/adapters/LambdaAdapter.js +1 -1
- package/src/runtime/adapters/NodeServerAdapter.js +1 -1
- package/src/runtime/detectRuntime.d.ts +10 -0
- package/src/runtime/detectRuntime.d.ts.map +1 -0
- package/src/runtime/detectRuntime.js +57 -0
- package/src/runtime/useFileLoader.d.ts.map +1 -1
- package/src/runtime/useFileLoader.js +16 -0
- package/src/scripts/TemplateImportsCheck.js +2 -2
- package/src/scripts/TemplateSync.js +3 -4
- package/src/security/CsrfTokenManager.d.ts +18 -9
- package/src/security/CsrfTokenManager.d.ts.map +1 -1
- package/src/security/CsrfTokenManager.js +204 -11
- package/src/security/Hash.d.ts +1 -1
- package/src/security/Hash.d.ts.map +1 -1
- package/src/security/Hash.js +31 -36
- package/src/seeders/SeederLoader.js +1 -1
- package/src/session/SessionManager.d.ts +3 -0
- package/src/session/SessionManager.d.ts.map +1 -1
- package/src/session/SessionManager.js +49 -10
- package/src/sockets/CloudflareSocket.d.ts +24 -0
- package/src/sockets/CloudflareSocket.d.ts.map +1 -0
- package/src/sockets/CloudflareSocket.js +259 -0
- package/src/start.d.ts.map +1 -1
- package/src/start.js +1 -8
- package/src/templates/project/basic/app/Middleware/index.ts.tpl +1 -1
- package/src/templates/project/basic/src/zintrust.plugins.wg.ts.tpl +8 -0
- package/src/toolkit/Secrets/providers/AwsSecretsManager.d.ts.map +1 -1
- package/src/toolkit/Secrets/providers/AwsSecretsManager.js +4 -2
- package/src/tools/mail/drivers/Smtp.d.ts.map +1 -1
- package/src/tools/mail/drivers/Smtp.js +223 -18
- package/src/tools/mail/index.d.ts.map +1 -1
- package/src/tools/mail/index.js +5 -4
- package/src/tools/mail/template-loader.d.ts.map +1 -1
- package/src/tools/mail/template-loader.js +197 -29
- package/src/tools/mail/templates/auth-password-reset.d.ts +3 -0
- package/src/tools/mail/templates/auth-password-reset.d.ts.map +1 -0
- package/src/tools/mail/templates/auth-password-reset.js +231 -0
- package/src/tools/mail/templates/auth-welcome.d.ts +3 -0
- package/src/tools/mail/templates/auth-welcome.d.ts.map +1 -0
- package/src/tools/mail/templates/auth-welcome.js +236 -0
- package/src/tools/mail/templates/general.d.ts +3 -0
- package/src/tools/mail/templates/general.d.ts.map +1 -0
- package/src/tools/mail/templates/general.js +109 -0
- package/src/tools/mail/templates/index.js +2 -2
- package/src/tools/mail/templates/job-completed.d.ts +3 -0
- package/src/tools/mail/templates/job-completed.d.ts.map +1 -0
- package/src/tools/mail/templates/job-completed.js +188 -0
- package/src/tools/mail/templates/notifications-new-comment.d.ts +3 -0
- package/src/tools/mail/templates/notifications-new-comment.d.ts.map +1 -0
- package/src/tools/mail/templates/notifications-new-comment.js +228 -0
- package/src/tools/mail/templates/password-reset.d.ts +3 -0
- package/src/tools/mail/templates/password-reset.d.ts.map +1 -0
- package/src/tools/mail/templates/password-reset.js +221 -0
- package/src/tools/mail/templates/performance-report.d.ts +3 -0
- package/src/tools/mail/templates/performance-report.d.ts.map +1 -0
- package/src/tools/mail/templates/performance-report.js +258 -0
- package/src/tools/mail/templates/welcome.d.ts +3 -0
- package/src/tools/mail/templates/welcome.d.ts.map +1 -0
- package/src/tools/mail/templates/welcome.js +187 -0
- package/src/tools/mail/templates/worker-alert.d.ts +3 -0
- package/src/tools/mail/templates/worker-alert.d.ts.map +1 -0
- package/src/tools/mail/templates/worker-alert.js +229 -0
- package/src/tools/notification/Notification.js +1 -1
- package/src/tools/notification/testingHelpers.js +6 -5
- package/src/tools/queue/AdvancedQueue.js +2 -6
- package/src/tools/queue/IdempotencyManager.d.ts +6 -0
- package/src/tools/queue/IdempotencyManager.d.ts.map +1 -0
- package/src/tools/queue/IdempotencyManager.js +36 -0
- package/src/tools/queue/JobHeartbeatStore.d.ts +16 -0
- package/src/tools/queue/JobHeartbeatStore.d.ts.map +1 -0
- package/src/tools/queue/JobHeartbeatStore.js +67 -0
- package/src/tools/queue/JobReconciliationRunner.d.ts +16 -0
- package/src/tools/queue/JobReconciliationRunner.d.ts.map +1 -0
- package/src/tools/queue/JobReconciliationRunner.js +88 -0
- package/src/tools/queue/JobRecoveryDaemon.d.ts +27 -0
- package/src/tools/queue/JobRecoveryDaemon.d.ts.map +1 -0
- package/src/tools/queue/JobRecoveryDaemon.js +205 -0
- package/src/tools/queue/JobStateTracker.d.ts +131 -0
- package/src/tools/queue/JobStateTracker.d.ts.map +1 -0
- package/src/tools/queue/JobStateTracker.js +387 -0
- package/src/tools/queue/JobStateTrackerDbPersistence.d.ts +12 -0
- package/src/tools/queue/JobStateTrackerDbPersistence.d.ts.map +1 -0
- package/src/tools/queue/JobStateTrackerDbPersistence.js +148 -0
- package/src/tools/queue/Queue.d.ts.map +1 -1
- package/src/tools/queue/Queue.js +160 -16
- package/src/tools/queue/QueueDataRedactor.d.ts +6 -0
- package/src/tools/queue/QueueDataRedactor.d.ts.map +1 -0
- package/src/tools/queue/QueueDataRedactor.js +45 -0
- package/src/tools/queue/QueueExtensions.d.ts.map +1 -1
- package/src/tools/queue/QueueExtensions.js +2 -1
- package/src/tools/queue/QueueReliabilityMetrics.d.ts +38 -0
- package/src/tools/queue/QueueReliabilityMetrics.d.ts.map +1 -0
- package/src/tools/queue/QueueReliabilityMetrics.js +131 -0
- package/src/tools/queue/QueueReliabilityOrchestrator.d.ts +7 -0
- package/src/tools/queue/QueueReliabilityOrchestrator.d.ts.map +1 -0
- package/src/tools/queue/QueueReliabilityOrchestrator.js +59 -0
- package/src/tools/queue/QueueRuntimeRegistration.d.ts +1 -9
- package/src/tools/queue/QueueRuntimeRegistration.d.ts.map +1 -1
- package/src/tools/queue/QueueRuntimeRegistration.js +75 -4
- package/src/tools/queue/QueueTracing.d.ts +32 -0
- package/src/tools/queue/QueueTracing.d.ts.map +1 -0
- package/src/tools/queue/QueueTracing.js +151 -0
- package/src/tools/queue/StalledJobMonitor.d.ts +5 -0
- package/src/tools/queue/StalledJobMonitor.d.ts.map +1 -0
- package/src/tools/queue/StalledJobMonitor.js +21 -0
- package/src/tools/queue/TimeoutManager.d.ts +14 -0
- package/src/tools/queue/TimeoutManager.d.ts.map +1 -0
- package/src/tools/queue/TimeoutManager.js +77 -0
- package/src/tools/queue/drivers/Redis.d.ts +1 -0
- package/src/tools/queue/drivers/Redis.d.ts.map +1 -1
- package/src/tools/queue/drivers/Redis.js +1 -0
- package/src/tools/queue/index.d.ts +10 -0
- package/src/tools/queue/index.d.ts.map +1 -1
- package/src/tools/queue/index.js +10 -0
- package/src/tools/redis/RedisKeyManager.d.ts +3 -0
- package/src/tools/redis/RedisKeyManager.d.ts.map +1 -1
- package/src/tools/redis/RedisKeyManager.js +15 -0
- package/src/tools/storage/drivers/R2.d.ts +13 -0
- package/src/tools/storage/drivers/R2.d.ts.map +1 -1
- package/src/tools/storage/drivers/R2.js +29 -0
- package/src/zintrust.plugins.d.ts +9 -0
- package/src/zintrust.plugins.d.ts.map +1 -0
- package/src/zintrust.plugins.js +7 -0
- package/src/zintrust.plugins.wg.d.ts +9 -0
- package/src/zintrust.plugins.wg.d.ts.map +1 -0
- package/src/zintrust.plugins.wg.js +7 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { BaseCommand } from '../BaseCommand.js';
|
|
2
|
+
import { maybeRunProxyWatchMode, parseIntOption, trimOption, } from '../commands/ProxyCommandUtils.js';
|
|
3
|
+
import { Env } from '../../config/env.js';
|
|
4
|
+
import { RedisProxyServer } from '../../proxy/redis/RedisProxyServer.js';
|
|
5
|
+
const addOptions = (command) => {
|
|
6
|
+
command.option('--host <host>', 'Host to bind', Env.get('REDIS_PROXY_HOST', '127.0.0.1'));
|
|
7
|
+
command.option('--port <port>', 'Port to bind', String(Env.getInt('REDIS_PROXY_PORT', 8791)));
|
|
8
|
+
command.option('--max-body-bytes <bytes>', 'Max request size in bytes', String(Env.getInt('REDIS_PROXY_MAX_BODY_BYTES', 131072)));
|
|
9
|
+
command.option('--watch', 'Auto-restart proxy on file changes');
|
|
10
|
+
command.option('--redis-host <host>', 'Redis host');
|
|
11
|
+
command.option('--redis-port <port>', 'Redis port');
|
|
12
|
+
command.option('--redis-password <password>', 'Redis password');
|
|
13
|
+
command.option('--redis-db <db>', 'Redis database');
|
|
14
|
+
command.option('--require-signing', 'Require signed requests', Env.REDIS_PROXY_REQUIRE_SIGNING);
|
|
15
|
+
command.option('--key-id <id>', 'Signing key id', Env.get('REDIS_PROXY_KEY_ID', ''));
|
|
16
|
+
command.option('--secret <secret>', 'Signing secret', Env.get('REDIS_PROXY_SECRET', ''));
|
|
17
|
+
command.option('--signing-window-ms <ms>', 'Signing time window in ms', String(Env.getInt('REDIS_PROXY_SIGNING_WINDOW_MS', 60000)));
|
|
18
|
+
};
|
|
19
|
+
export const RedisProxyCommand = Object.freeze({
|
|
20
|
+
create() {
|
|
21
|
+
return BaseCommand.create({
|
|
22
|
+
name: 'proxy:redis',
|
|
23
|
+
aliases: ['redis:proxy', 'redis-proxy', 'proxy:red'],
|
|
24
|
+
description: 'Start the Redis HTTP proxy for Cloudflare Workers',
|
|
25
|
+
addOptions,
|
|
26
|
+
execute: async (options) => {
|
|
27
|
+
await maybeRunProxyWatchMode(options.watch);
|
|
28
|
+
const host = trimOption(options.host);
|
|
29
|
+
const port = parseIntOption(options.port, 'port');
|
|
30
|
+
const maxBodyBytes = parseIntOption(options.maxBodyBytes, 'max-body-bytes');
|
|
31
|
+
const redisHost = trimOption(options.redisHost);
|
|
32
|
+
const redisPort = parseIntOption(options.redisPort, 'redis-port', 'non-negative');
|
|
33
|
+
const redisPassword = options.redisPassword;
|
|
34
|
+
const redisDb = parseIntOption(options.redisDb, 'redis-db', 'non-negative');
|
|
35
|
+
const signingWindowMs = parseIntOption(options.signingWindowMs, 'signing-window-ms');
|
|
36
|
+
await RedisProxyServer.start({
|
|
37
|
+
host,
|
|
38
|
+
port,
|
|
39
|
+
maxBodyBytes,
|
|
40
|
+
redisHost,
|
|
41
|
+
redisPort,
|
|
42
|
+
redisPassword,
|
|
43
|
+
redisDb,
|
|
44
|
+
requireSigning: options.requireSigning === true,
|
|
45
|
+
keyId: options.keyId,
|
|
46
|
+
secret: options.secret,
|
|
47
|
+
signingWindowMs,
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
export default RedisProxyCommand;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmtpProxyCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/SmtpProxyCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAyDrE,eAAO,MAAM,gBAAgB;cACjB,YAAY;EAsCtB,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { BaseCommand } from '../BaseCommand.js';
|
|
2
|
+
import { maybeRunProxyWatchMode, parseIntOption, trimOption, } from '../commands/ProxyCommandUtils.js';
|
|
3
|
+
import { Env } from '../../config/env.js';
|
|
4
|
+
import { SmtpProxyServer } from '../../proxy/smtp/SmtpProxyServer.js';
|
|
5
|
+
const addOptions = (command) => {
|
|
6
|
+
command.option('--host <host>', 'Host to bind', Env.get('SMTP_PROXY_HOST', '127.0.0.1'));
|
|
7
|
+
command.option('--port <port>', 'Port to bind', String(Env.getInt('SMTP_PROXY_PORT', 8794)));
|
|
8
|
+
command.option('--max-body-bytes <bytes>', 'Max request size in bytes', String(Env.getInt('SMTP_PROXY_MAX_BODY_BYTES', 131072)));
|
|
9
|
+
command.option('--watch', 'Auto-restart proxy on file changes');
|
|
10
|
+
command.option('--smtp-host <host>', 'SMTP host');
|
|
11
|
+
command.option('--smtp-port <port>', 'SMTP port');
|
|
12
|
+
command.option('--smtp-username <user>', 'SMTP username');
|
|
13
|
+
command.option('--smtp-password <password>', 'SMTP password');
|
|
14
|
+
command.option('--smtp-secure <mode>', "SMTP secure: true, false, or 'starttls'");
|
|
15
|
+
command.option('--require-signing', 'Require signed requests', Env.getBool('SMTP_PROXY_REQUIRE_SIGNING', true));
|
|
16
|
+
command.option('--key-id <id>', 'Signing key id', Env.get('SMTP_PROXY_KEY_ID', ''));
|
|
17
|
+
command.option('--secret <secret>', 'Signing secret', Env.get('SMTP_PROXY_SECRET', ''));
|
|
18
|
+
command.option('--signing-window-ms <ms>', 'Signing time window in ms', String(Env.getInt('SMTP_PROXY_SIGNING_WINDOW_MS', 60000)));
|
|
19
|
+
};
|
|
20
|
+
export const SmtpProxyCommand = Object.freeze({
|
|
21
|
+
create() {
|
|
22
|
+
return BaseCommand.create({
|
|
23
|
+
name: 'proxy:smtp',
|
|
24
|
+
aliases: ['smtp:proxy', 'smtp-proxy', 'proxy:mail'],
|
|
25
|
+
description: 'Start the SMTP HTTP proxy for Cloudflare Workers',
|
|
26
|
+
addOptions,
|
|
27
|
+
execute: async (options) => {
|
|
28
|
+
await maybeRunProxyWatchMode(options.watch);
|
|
29
|
+
const host = trimOption(options.host);
|
|
30
|
+
const port = parseIntOption(options.port, 'port');
|
|
31
|
+
const maxBodyBytes = parseIntOption(options.maxBodyBytes, 'max-body-bytes');
|
|
32
|
+
const smtpHost = trimOption(options.smtpHost);
|
|
33
|
+
const smtpPort = parseIntOption(options.smtpPort, 'smtp-port');
|
|
34
|
+
const smtpUsername = trimOption(options.smtpUsername);
|
|
35
|
+
const smtpPassword = options.smtpPassword;
|
|
36
|
+
const smtpSecure = options.smtpSecure;
|
|
37
|
+
const signingWindowMs = parseIntOption(options.signingWindowMs, 'signing-window-ms');
|
|
38
|
+
await SmtpProxyServer.start({
|
|
39
|
+
host,
|
|
40
|
+
port,
|
|
41
|
+
maxBodyBytes,
|
|
42
|
+
smtpHost,
|
|
43
|
+
smtpPort,
|
|
44
|
+
smtpUsername,
|
|
45
|
+
smtpPassword,
|
|
46
|
+
smtpSecure,
|
|
47
|
+
requireSigning: options.requireSigning === true,
|
|
48
|
+
keyId: options.keyId,
|
|
49
|
+
secret: options.secret,
|
|
50
|
+
signingWindowMs,
|
|
51
|
+
});
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
export default SmtpProxyCommand;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { CommandOptions } from '../BaseCommand';
|
|
2
|
+
import type { Command } from 'commander';
|
|
3
|
+
export type SqlProxyCommandOptions = CommandOptions & {
|
|
4
|
+
host?: string;
|
|
5
|
+
port?: string;
|
|
6
|
+
maxBodyBytes?: string;
|
|
7
|
+
dbHost?: string;
|
|
8
|
+
dbPort?: string;
|
|
9
|
+
dbName?: string;
|
|
10
|
+
dbUser?: string;
|
|
11
|
+
dbPass?: string;
|
|
12
|
+
connectionLimit?: string;
|
|
13
|
+
requireSigning?: boolean;
|
|
14
|
+
keyId?: string;
|
|
15
|
+
secret?: string;
|
|
16
|
+
signingWindowMs?: string;
|
|
17
|
+
watch?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export type ParsedSqlProxyStartOptions = {
|
|
20
|
+
host: string | undefined;
|
|
21
|
+
port: number | undefined;
|
|
22
|
+
maxBodyBytes: number | undefined;
|
|
23
|
+
dbHost: string | undefined;
|
|
24
|
+
dbPort: number | undefined;
|
|
25
|
+
dbName: string | undefined;
|
|
26
|
+
dbUser: string | undefined;
|
|
27
|
+
dbPass: string | undefined;
|
|
28
|
+
connectionLimit: number | undefined;
|
|
29
|
+
requireSigning: boolean;
|
|
30
|
+
keyId: string | undefined;
|
|
31
|
+
secret: string | undefined;
|
|
32
|
+
signingWindowMs: number | undefined;
|
|
33
|
+
};
|
|
34
|
+
export declare const addSqlProxyOptions: (command: Command, input: {
|
|
35
|
+
hostDefault: string;
|
|
36
|
+
portDefault: number;
|
|
37
|
+
maxBodyBytesDefault: number;
|
|
38
|
+
dbVendorLabel: string;
|
|
39
|
+
requireSigningDefault: boolean;
|
|
40
|
+
keyIdDefault: string;
|
|
41
|
+
secretDefault: string;
|
|
42
|
+
signingWindowMsDefault: number;
|
|
43
|
+
}) => void;
|
|
44
|
+
export declare const parseSqlProxyStartOptions: (options: SqlProxyCommandOptions) => ParsedSqlProxyStartOptions;
|
|
45
|
+
export declare const runSqlProxyCommand: (options: SqlProxyCommandOptions, start: (input: ReturnType<typeof parseSqlProxyStartOptions>) => Promise<void>) => Promise<void>;
|
|
46
|
+
//# sourceMappingURL=SqlProxyCommandUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqlProxyCommandUtils.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/SqlProxyCommandUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,EAChB,OAAO;IACL,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;CAChC,KACA,IAyBF,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,sBAAsB,KAC9B,0BA6BF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,sBAAsB,EAC/B,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KAC5E,OAAO,CAAC,IAAI,CAGd,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { maybeRunProxyWatchMode, parseIntOption, trimOption, } from '../commands/ProxyCommandUtils.js';
|
|
2
|
+
export const addSqlProxyOptions = (command, input) => {
|
|
3
|
+
command.option('--host <host>', 'Host to bind', input.hostDefault);
|
|
4
|
+
command.option('--port <port>', 'Port to bind', String(input.portDefault));
|
|
5
|
+
command.option('--max-body-bytes <bytes>', 'Max request size in bytes', String(input.maxBodyBytesDefault));
|
|
6
|
+
command.option('--watch', 'Auto-restart proxy on file changes');
|
|
7
|
+
command.option('--db-host <host>', `${input.dbVendorLabel} host`);
|
|
8
|
+
command.option('--db-port <port>', `${input.dbVendorLabel} port`);
|
|
9
|
+
command.option('--db-name <name>', `${input.dbVendorLabel} database`);
|
|
10
|
+
command.option('--db-user <user>', `${input.dbVendorLabel} username`);
|
|
11
|
+
command.option('--db-pass <pass>', `${input.dbVendorLabel} password`);
|
|
12
|
+
command.option('--connection-limit <max>', `${input.dbVendorLabel} connection pool limit`);
|
|
13
|
+
command.option('--require-signing', 'Require signed requests', input.requireSigningDefault);
|
|
14
|
+
command.option('--key-id <id>', 'Signing key id', input.keyIdDefault);
|
|
15
|
+
command.option('--secret <secret>', 'Signing secret', input.secretDefault);
|
|
16
|
+
command.option('--signing-window-ms <ms>', 'Signing time window in ms', String(input.signingWindowMsDefault));
|
|
17
|
+
};
|
|
18
|
+
export const parseSqlProxyStartOptions = (options) => {
|
|
19
|
+
const host = trimOption(options.host);
|
|
20
|
+
const port = parseIntOption(options.port, 'port');
|
|
21
|
+
const maxBodyBytes = parseIntOption(options.maxBodyBytes, 'max-body-bytes');
|
|
22
|
+
const dbHost = trimOption(options.dbHost);
|
|
23
|
+
const dbPort = parseIntOption(options.dbPort, 'db-port');
|
|
24
|
+
const dbName = trimOption(options.dbName);
|
|
25
|
+
const dbUser = trimOption(options.dbUser);
|
|
26
|
+
const dbPass = options.dbPass;
|
|
27
|
+
const connectionLimit = parseIntOption(options.connectionLimit, 'connection-limit');
|
|
28
|
+
const signingWindowMs = parseIntOption(options.signingWindowMs, 'signing-window-ms');
|
|
29
|
+
return {
|
|
30
|
+
host,
|
|
31
|
+
port,
|
|
32
|
+
maxBodyBytes,
|
|
33
|
+
dbHost,
|
|
34
|
+
dbPort,
|
|
35
|
+
dbName,
|
|
36
|
+
dbUser,
|
|
37
|
+
dbPass,
|
|
38
|
+
connectionLimit,
|
|
39
|
+
requireSigning: options.requireSigning === true,
|
|
40
|
+
keyId: options.keyId,
|
|
41
|
+
secret: options.secret,
|
|
42
|
+
signingWindowMs,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export const runSqlProxyCommand = async (options, start) => {
|
|
46
|
+
await maybeRunProxyWatchMode(options.watch);
|
|
47
|
+
await start(parseSqlProxyStartOptions(options));
|
|
48
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqlServerProxyCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/SqlServerProxyCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DpC,eAAO,MAAM,qBAAqB;cACtB,OAAO;EAsEjB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Env } from '../../config/env.js';
|
|
2
|
+
import { Logger } from '../../config/logger.js';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
const startWatchMode = async (options) => {
|
|
5
|
+
Logger.info('Starting SQL Server proxy in watch mode...');
|
|
6
|
+
const { watch } = await import('node:fs');
|
|
7
|
+
const { spawn } = await import('node:child_process');
|
|
8
|
+
let child = null;
|
|
9
|
+
const startProxy = () => {
|
|
10
|
+
if (child) {
|
|
11
|
+
child.kill();
|
|
12
|
+
}
|
|
13
|
+
const args = ['run', 'cli', 'proxy:sqlserver'];
|
|
14
|
+
Object.entries(options).forEach(([key, value]) => {
|
|
15
|
+
if (key !== 'watch' && value !== undefined) {
|
|
16
|
+
args.push(`--${key}`, String(value));
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
child = spawn('npm', args, { stdio: 'inherit' });
|
|
20
|
+
};
|
|
21
|
+
const watcher = watch('./src', { recursive: true }, (_eventType, filename) => {
|
|
22
|
+
if (filename !== null &&
|
|
23
|
+
filename.length > 0 &&
|
|
24
|
+
(filename.endsWith('.ts') || filename.endsWith('.js'))) {
|
|
25
|
+
Logger.info(`File changed: ${String(filename)}, restarting proxy...`);
|
|
26
|
+
startProxy();
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
startProxy();
|
|
30
|
+
process.on('SIGINT', () => {
|
|
31
|
+
watcher.close();
|
|
32
|
+
if (child)
|
|
33
|
+
child.kill();
|
|
34
|
+
process.exit(0);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
export const SqlServerProxyCommand = Object.freeze({
|
|
38
|
+
create() {
|
|
39
|
+
const cmd = new Command('proxy:sqlserver');
|
|
40
|
+
cmd.description('Start SQL Server HTTP proxy server');
|
|
41
|
+
const configureOptions = () => {
|
|
42
|
+
cmd.option('--host <host>', 'Proxy host', Env.get('SQLSERVER_PROXY_HOST', '127.0.0.1'));
|
|
43
|
+
cmd.option('--port <port>', 'Proxy port', String(Env.getInt('SQLSERVER_PROXY_PORT', 8793)));
|
|
44
|
+
cmd.option('--db-host <host>', 'SQL Server host', Env.get('DB_HOST_MSSQL', '127.0.0.1'));
|
|
45
|
+
cmd.option('--db-port <port>', 'SQL Server port', String(Env.getInt('DB_PORT_MSSQL', 1433)));
|
|
46
|
+
cmd.option('--db-name <name>', 'Database name', Env.get('DB_DATABASE_MSSQL', 'zintrust'));
|
|
47
|
+
cmd.option('--db-user <user>', 'Database user', Env.get('DB_USERNAME_MSSQL', 'sa'));
|
|
48
|
+
cmd.option('--db-pass <pass>', 'Database password', Env.get('DB_PASSWORD_MSSQL', ''));
|
|
49
|
+
cmd.option('--connection-limit <limit>', 'Connection pool limit', String(Env.getInt('SQLSERVER_PROXY_POOL_LIMIT', 10)));
|
|
50
|
+
cmd.option('--key-id <keyId>', 'Signing key ID', Env.get('SQLSERVER_PROXY_KEY_ID', 'default'));
|
|
51
|
+
cmd.option('--secret <secret>', 'Signing secret', Env.get('SQLSERVER_PROXY_SECRET', ''));
|
|
52
|
+
cmd.option('--require-signing', 'Require request signing', Env.SQLSERVER_PROXY_REQUIRE_SIGNING);
|
|
53
|
+
cmd.option('--signing-window-ms <ms>', 'Signing window in milliseconds', String(Env.getInt('SQLSERVER_PROXY_SIGNING_WINDOW_MS', 60000)));
|
|
54
|
+
cmd.option('--watch', 'Watch mode: restart on file changes');
|
|
55
|
+
};
|
|
56
|
+
const buildServerConfig = (options) => ({
|
|
57
|
+
host: String(options['host']),
|
|
58
|
+
port: Number(options['port']),
|
|
59
|
+
dbHost: String(options['dbHost']),
|
|
60
|
+
dbPort: Number(options['dbPort']),
|
|
61
|
+
dbName: String(options['dbName']),
|
|
62
|
+
dbUser: String(options['dbUser']),
|
|
63
|
+
dbPass: String(options['dbPass']),
|
|
64
|
+
connectionLimit: Number(options['connectionLimit']),
|
|
65
|
+
keyId: String(options['keyId']),
|
|
66
|
+
secret: String(options['secret']),
|
|
67
|
+
requireSigning: Boolean(options['requireSigning']),
|
|
68
|
+
signingWindowMs: Number(options['signingWindowMs']),
|
|
69
|
+
});
|
|
70
|
+
const startNormalMode = async (options) => {
|
|
71
|
+
const { SqlServerProxyServer } = await import('../../proxy/sqlserver/SqlServerProxyServer.js');
|
|
72
|
+
await SqlServerProxyServer.start(buildServerConfig(options));
|
|
73
|
+
};
|
|
74
|
+
const execute = async (options) => {
|
|
75
|
+
if (options['watch'] === true) {
|
|
76
|
+
await startWatchMode(options);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
await startNormalMode(options);
|
|
80
|
+
};
|
|
81
|
+
configureOptions();
|
|
82
|
+
cmd.action(execute);
|
|
83
|
+
return cmd;
|
|
84
|
+
},
|
|
85
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/StartCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"StartCommand.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/StartCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqkBvF,eAAO,MAAM,YAAY;cACb,YAAY;EA0BtB,CAAC"}
|
|
@@ -1,32 +1,51 @@
|
|
|
1
1
|
import { BaseCommand } from '../BaseCommand.js';
|
|
2
|
-
import {
|
|
2
|
+
import { createDenoRunnerSource, createLambdaRunnerSource } from '../commands/runner/index.js';
|
|
3
3
|
import { EnvFileLoader } from '../utils/EnvFileLoader.js';
|
|
4
4
|
import { SpawnUtil } from '../utils/spawn.js';
|
|
5
5
|
import { readEnvString } from '../../common/ExternalServiceUtils.js';
|
|
6
|
-
import
|
|
6
|
+
import * as Common from '../../common/index.js';
|
|
7
7
|
import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
8
8
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from '../../node-singletons/fs.js';
|
|
9
9
|
import * as path from '../../node-singletons/path.js';
|
|
10
|
+
const resolveNpmPath = () => {
|
|
11
|
+
try {
|
|
12
|
+
return typeof Common.resolveNpmPath === 'function' ? Common.resolveNpmPath() : 'npm';
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return 'npm';
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const runFromSource = () => {
|
|
19
|
+
try {
|
|
20
|
+
return typeof Common.runFromSource === 'function' ? Common.runFromSource() : false;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
10
26
|
const isValidModeInput = (value) => value === 'development' ||
|
|
11
27
|
value === 'dev' ||
|
|
12
28
|
value === 'production' ||
|
|
13
29
|
value === 'pro' ||
|
|
14
30
|
value === 'prod' ||
|
|
15
|
-
value === 'testing'
|
|
31
|
+
value === 'testing' ||
|
|
32
|
+
value === 'split';
|
|
16
33
|
const normalizeMode = (value) => {
|
|
17
34
|
if (value === 'production' || value === 'pro' || value === 'prod')
|
|
18
35
|
return 'production';
|
|
19
36
|
if (value === 'testing')
|
|
20
37
|
return 'testing';
|
|
38
|
+
if (value === 'split')
|
|
39
|
+
return 'split';
|
|
21
40
|
return 'development';
|
|
22
41
|
};
|
|
23
42
|
const resolveModeFromAppMode = () => {
|
|
24
|
-
const raw = readEnvString('
|
|
43
|
+
const raw = readEnvString('NODE_ENV').trim();
|
|
25
44
|
const normalized = raw.toLowerCase();
|
|
26
45
|
if (normalized === 'production' || normalized === 'pro' || normalized === 'prod') {
|
|
27
46
|
return 'production';
|
|
28
47
|
}
|
|
29
|
-
// Per spec: any other
|
|
48
|
+
// Per spec: any other NODE_ENV is treated as development.
|
|
30
49
|
return 'development';
|
|
31
50
|
};
|
|
32
51
|
const resolveMode = (options) => {
|
|
@@ -76,6 +95,28 @@ const resolveStartVariant = (options) => {
|
|
|
76
95
|
return 'lambda';
|
|
77
96
|
return 'node';
|
|
78
97
|
};
|
|
98
|
+
const getMySqlProxyHint = () => {
|
|
99
|
+
const connection = readEnvString('DB_CONNECTION', '').toLowerCase();
|
|
100
|
+
if (connection !== 'mysql')
|
|
101
|
+
return null;
|
|
102
|
+
const proxyUrl = readEnvString('MYSQL_PROXY_URL', '').trim();
|
|
103
|
+
if (proxyUrl !== '')
|
|
104
|
+
return null;
|
|
105
|
+
const host = readEnvString('MYSQL_PROXY_HOST', '127.0.0.1').trim() || '127.0.0.1';
|
|
106
|
+
const port = readEnvString('MYSQL_PROXY_PORT', '8789').trim() || '8789';
|
|
107
|
+
return {
|
|
108
|
+
command: `zin proxy:mysql --host ${host} --port ${port}`,
|
|
109
|
+
url: `http://${host}:${port}`,
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
const logMySqlProxyHint = (cmd) => {
|
|
113
|
+
const hint = getMySqlProxyHint();
|
|
114
|
+
if (!hint)
|
|
115
|
+
return;
|
|
116
|
+
cmd.warn('MySQL proxy not configured for Cloudflare Workers. Start it in another terminal:');
|
|
117
|
+
cmd.warn(hint.command);
|
|
118
|
+
cmd.warn(`Then set MYSQL_PROXY_URL=${hint.url}`);
|
|
119
|
+
};
|
|
79
120
|
const hasFlag = (flag) => process.argv.includes(flag);
|
|
80
121
|
const resolveWatchPreference = (options, mode) => {
|
|
81
122
|
const hasWatch = hasFlag('--watch');
|
|
@@ -134,6 +175,14 @@ const resolveBootstrapEntryTs = (cwd) => {
|
|
|
134
175
|
return 'src/boot/bootstrap.ts';
|
|
135
176
|
return undefined;
|
|
136
177
|
};
|
|
178
|
+
const resolveRuntimeStartModuleSpecifier = (cwd) => {
|
|
179
|
+
const localStart = path.join(cwd, 'src/start.ts');
|
|
180
|
+
if (existsSync(localStart)) {
|
|
181
|
+
// Runner files are created under `<cwd>/tmp`, so `../src/start.ts` is stable.
|
|
182
|
+
return '../src/start.ts';
|
|
183
|
+
}
|
|
184
|
+
return '@zintrust/core/start';
|
|
185
|
+
};
|
|
137
186
|
const resolveNodeDevCommand = (cwd, packageJson) => {
|
|
138
187
|
if (isFrameworkRepo(packageJson)) {
|
|
139
188
|
const bootstrap = resolveBootstrapEntryTs(cwd);
|
|
@@ -160,15 +209,25 @@ const resolveNodeDevCommand = (cwd, packageJson) => {
|
|
|
160
209
|
const resolveNodeProdCommand = (cwd) => {
|
|
161
210
|
const compiledBoot = path.join(cwd, 'dist/src/boot/bootstrap.js');
|
|
162
211
|
let compiled;
|
|
163
|
-
if (existsSync(compiledBoot)) {
|
|
212
|
+
if (existsSync(compiledBoot) && !runFromSource()) {
|
|
164
213
|
compiled = 'dist/src/boot/bootstrap.js';
|
|
165
214
|
}
|
|
215
|
+
// If compiled app isn't available (or the env forces running from source),
|
|
216
|
+
// fall back to running the source entry with `tsx` so developers can test
|
|
217
|
+
// core files with production semantics without building.
|
|
166
218
|
if (compiled === undefined) {
|
|
167
|
-
|
|
219
|
+
const bootstrap = resolveBootstrapEntryTs(cwd);
|
|
220
|
+
if (bootstrap !== undefined) {
|
|
221
|
+
return { command: 'tsx', args: [bootstrap] };
|
|
222
|
+
}
|
|
223
|
+
if (existsSync(path.join(cwd, 'src/index.ts'))) {
|
|
224
|
+
return { command: 'tsx', args: ['src/index.ts'] };
|
|
225
|
+
}
|
|
226
|
+
throw ErrorFactory.createCliError("Error: Compiled app not found at dist/src/boot/bootstrap.js. Run 'npm run build' first or set ZINTRUST_RUN_FROM_SOURCE=1 to run source in production.");
|
|
168
227
|
}
|
|
169
228
|
return { command: 'node', args: [compiled] };
|
|
170
229
|
};
|
|
171
|
-
const executeWranglerStart = async (cmd, cwd, port, runtime) => {
|
|
230
|
+
const executeWranglerStart = async (cmd, cwd, port, runtime, envName) => {
|
|
172
231
|
if (runtime !== undefined) {
|
|
173
232
|
throw ErrorFactory.createCliError('Error: --runtime is not supported with --wrangler (Wrangler controls Workers runtime).');
|
|
174
233
|
}
|
|
@@ -184,8 +243,16 @@ const executeWranglerStart = async (cmd, cwd, port, runtime) => {
|
|
|
184
243
|
if (typeof port === 'number') {
|
|
185
244
|
wranglerArgs.push('--port', String(port));
|
|
186
245
|
}
|
|
246
|
+
if (envName !== undefined && envName.trim() !== '') {
|
|
247
|
+
wranglerArgs.push('--env', envName.trim());
|
|
248
|
+
}
|
|
249
|
+
logMySqlProxyHint(cmd);
|
|
187
250
|
cmd.info('Starting in Wrangler dev mode...');
|
|
188
|
-
const exitCode = await SpawnUtil.spawnAndWait({
|
|
251
|
+
const exitCode = await SpawnUtil.spawnAndWait({
|
|
252
|
+
command: 'wrangler',
|
|
253
|
+
args: wranglerArgs,
|
|
254
|
+
env: process.env,
|
|
255
|
+
});
|
|
189
256
|
process.exit(exitCode);
|
|
190
257
|
};
|
|
191
258
|
const ensureTmpRunnerFile = (cwd, filename, content) => {
|
|
@@ -212,13 +279,14 @@ const executeDenoStart = async (cmd, cwd, mode, watchEnabled, _port, runtime) =>
|
|
|
212
279
|
if (mode === 'testing') {
|
|
213
280
|
throw ErrorFactory.createCliError('Error: Cannot start server in testing mode. Use development or production.');
|
|
214
281
|
}
|
|
215
|
-
const
|
|
282
|
+
const startModuleSpecifier = resolveRuntimeStartModuleSpecifier(cwd);
|
|
283
|
+
const denoRunner = ensureTmpRunnerFile(cwd, 'zin-start-deno.ts', createDenoRunnerSource(startModuleSpecifier));
|
|
216
284
|
const args = [];
|
|
217
285
|
if (mode === 'development' && watchEnabled)
|
|
218
286
|
args.push('watch');
|
|
219
287
|
args.push(denoRunner);
|
|
220
288
|
cmd.info('Starting in Deno adapter mode...');
|
|
221
|
-
const exitCode = await SpawnUtil.spawnAndWait({ command: 'tsx', args });
|
|
289
|
+
const exitCode = await SpawnUtil.spawnAndWait({ command: 'tsx', args, env: process.env });
|
|
222
290
|
process.exit(exitCode);
|
|
223
291
|
};
|
|
224
292
|
const executeLambdaStart = async (cmd, cwd, mode, watchEnabled, _port, runtime) => {
|
|
@@ -228,16 +296,17 @@ const executeLambdaStart = async (cmd, cwd, mode, watchEnabled, _port, runtime)
|
|
|
228
296
|
if (mode === 'testing') {
|
|
229
297
|
throw ErrorFactory.createCliError('Error: Cannot start server in testing mode. Use development or production.');
|
|
230
298
|
}
|
|
231
|
-
const
|
|
299
|
+
const startModuleSpecifier = resolveRuntimeStartModuleSpecifier(cwd);
|
|
300
|
+
const lambdaRunner = ensureTmpRunnerFile(cwd, 'zin-start-lambda.ts', createLambdaRunnerSource(startModuleSpecifier));
|
|
232
301
|
const args = [];
|
|
233
302
|
if (mode === 'development' && watchEnabled)
|
|
234
303
|
args.push('watch');
|
|
235
304
|
args.push(lambdaRunner);
|
|
236
305
|
cmd.info('Starting in Lambda adapter mode...');
|
|
237
|
-
const exitCode = await SpawnUtil.spawnAndWait({ command: 'tsx', args });
|
|
306
|
+
const exitCode = await SpawnUtil.spawnAndWait({ command: 'tsx', args, env: process.env });
|
|
238
307
|
process.exit(exitCode);
|
|
239
308
|
};
|
|
240
|
-
const executeNodeStart = async (cmd, cwd, mode, watchEnabled) => {
|
|
309
|
+
const executeNodeStart = async (cmd, cwd, mode, watchEnabled, _port) => {
|
|
241
310
|
if (mode === 'testing') {
|
|
242
311
|
throw ErrorFactory.createCliError('Error: Cannot start server in testing mode. Use --force to override (not supported).');
|
|
243
312
|
}
|
|
@@ -250,6 +319,7 @@ const executeNodeStart = async (cmd, cwd, mode, watchEnabled) => {
|
|
|
250
319
|
command: 'tsx',
|
|
251
320
|
args,
|
|
252
321
|
forwardSignals: false,
|
|
322
|
+
env: process.env,
|
|
253
323
|
});
|
|
254
324
|
process.exit(exitCode);
|
|
255
325
|
}
|
|
@@ -260,6 +330,7 @@ const executeNodeStart = async (cmd, cwd, mode, watchEnabled) => {
|
|
|
260
330
|
command: dev.command,
|
|
261
331
|
args: dev.args,
|
|
262
332
|
forwardSignals: false,
|
|
333
|
+
env: process.env,
|
|
263
334
|
});
|
|
264
335
|
process.exit(exitCode);
|
|
265
336
|
}
|
|
@@ -269,9 +340,56 @@ const executeNodeStart = async (cmd, cwd, mode, watchEnabled) => {
|
|
|
269
340
|
command: prod.command,
|
|
270
341
|
args: prod.args,
|
|
271
342
|
forwardSignals: false,
|
|
343
|
+
env: process.env,
|
|
272
344
|
});
|
|
273
345
|
process.exit(exitCode);
|
|
274
346
|
};
|
|
347
|
+
const executeSplitStart = async (cmd, cwd, _options) => {
|
|
348
|
+
cmd.info('🚀 Starting in split mode (Producer + Consumer)...');
|
|
349
|
+
const packageJson = readPackageJson(cwd);
|
|
350
|
+
const webDev = resolveNodeDevCommand(cwd, packageJson);
|
|
351
|
+
// Producer Environment
|
|
352
|
+
const producerEnv = {
|
|
353
|
+
...process.env,
|
|
354
|
+
WORKER_ENABLED: 'false',
|
|
355
|
+
QUEUE_ENABLED: 'true',
|
|
356
|
+
RUNTIME_MODE: 'node-server',
|
|
357
|
+
};
|
|
358
|
+
// Consumer Environment
|
|
359
|
+
const consumerEnv = {
|
|
360
|
+
...process.env,
|
|
361
|
+
WORKER_ENABLED: 'true',
|
|
362
|
+
QUEUE_ENABLED: 'true',
|
|
363
|
+
RUNTIME_MODE: 'containers',
|
|
364
|
+
WORKER_AUTO_START: 'true',
|
|
365
|
+
// Prevent consumer from binding to the web port
|
|
366
|
+
APP_PORT: '0',
|
|
367
|
+
PORT: '0',
|
|
368
|
+
};
|
|
369
|
+
// Resolve Consumer Command (zintrust worker:start-all)
|
|
370
|
+
// We try to use tsx against the source bin if possible
|
|
371
|
+
const workerArgs = existsSync(path.join(cwd, 'bin/zin.ts'))
|
|
372
|
+
? ['bin/zin.ts', 'worker:start-all']
|
|
373
|
+
: ['dist/bin/zin.js', 'worker:start-all'];
|
|
374
|
+
const workerCommand = existsSync(path.join(cwd, 'bin/zin.ts')) ? 'tsx' : 'node';
|
|
375
|
+
cmd.info('-------------------------------------------');
|
|
376
|
+
cmd.info('🔹 [Producer] Web Server starting...');
|
|
377
|
+
cmd.info('🔸 [Consumer] Worker Process starting...');
|
|
378
|
+
cmd.info('-------------------------------------------');
|
|
379
|
+
const pProducer = SpawnUtil.spawnAndWait({
|
|
380
|
+
command: webDev.command,
|
|
381
|
+
args: webDev.args,
|
|
382
|
+
env: producerEnv,
|
|
383
|
+
forwardSignals: true,
|
|
384
|
+
});
|
|
385
|
+
const pConsumer = SpawnUtil.spawnAndWait({
|
|
386
|
+
command: workerCommand,
|
|
387
|
+
args: workerArgs,
|
|
388
|
+
env: consumerEnv,
|
|
389
|
+
forwardSignals: true,
|
|
390
|
+
});
|
|
391
|
+
await Promise.all([pProducer, pConsumer]);
|
|
392
|
+
};
|
|
275
393
|
const executeStart = async (options, cmd) => {
|
|
276
394
|
const cwd = process.cwd();
|
|
277
395
|
EnvFileLoader.ensureLoaded();
|
|
@@ -279,16 +397,24 @@ const executeStart = async (options, cmd) => {
|
|
|
279
397
|
const port = resolvePort(options);
|
|
280
398
|
const runtime = resolveRuntime(options);
|
|
281
399
|
const variant = resolveStartVariant(options);
|
|
400
|
+
const envName = typeof options.env === 'string' ? options.env.trim() : '';
|
|
282
401
|
let effectiveRuntime = runtime;
|
|
283
402
|
if (variant === 'deno')
|
|
284
403
|
effectiveRuntime = 'deno';
|
|
285
404
|
if (variant === 'lambda')
|
|
286
405
|
effectiveRuntime = 'lambda';
|
|
406
|
+
if (mode === 'split') {
|
|
407
|
+
await executeSplitStart(cmd, cwd, options);
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
287
410
|
EnvFileLoader.applyCliOverrides({ nodeEnv: mode, port, runtime: effectiveRuntime });
|
|
288
411
|
if (variant === 'wrangler') {
|
|
289
|
-
await executeWranglerStart(cmd, cwd, port, runtime);
|
|
412
|
+
await executeWranglerStart(cmd, cwd, port, runtime, envName === '' ? undefined : envName);
|
|
290
413
|
return;
|
|
291
414
|
}
|
|
415
|
+
if (envName !== '') {
|
|
416
|
+
throw ErrorFactory.createCliError('Error: --env is only supported with --wrangler/--wg.');
|
|
417
|
+
}
|
|
292
418
|
const watchEnabled = resolveWatchPreference(options, mode);
|
|
293
419
|
if (variant === 'deno') {
|
|
294
420
|
await executeDenoStart(cmd, cwd, mode, watchEnabled, port, runtime);
|
|
@@ -298,22 +424,23 @@ const executeStart = async (options, cmd) => {
|
|
|
298
424
|
await executeLambdaStart(cmd, cwd, mode, watchEnabled, port, runtime);
|
|
299
425
|
return;
|
|
300
426
|
}
|
|
301
|
-
await executeNodeStart(cmd, cwd, mode, watchEnabled);
|
|
427
|
+
await executeNodeStart(cmd, cwd, mode, watchEnabled, port);
|
|
302
428
|
};
|
|
303
429
|
export const StartCommand = Object.freeze({
|
|
304
430
|
create() {
|
|
305
431
|
const addOptions = (command) => {
|
|
306
432
|
command.alias('s');
|
|
307
433
|
command
|
|
308
|
-
.option('
|
|
434
|
+
.option('--wrangler', 'Start with Wrangler dev mode (Cloudflare Workers)')
|
|
309
435
|
.option('--wg', 'Alias for --wrangler')
|
|
310
436
|
.option('--deno', 'Start a local server using the Deno runtime adapter')
|
|
311
437
|
.option('--lambda', 'Start a local server using the AWS Lambda runtime adapter')
|
|
312
438
|
.option('--watch', 'Force watch mode (Node only)')
|
|
313
439
|
.option('--no-watch', 'Disable watch mode (Node only)')
|
|
314
440
|
.option('--mode <development|production|testing>', 'Override app mode')
|
|
441
|
+
.option('--env <name>', 'Wrangler environment name (Wrangler mode only)')
|
|
315
442
|
.option('--runtime <nodejs|cloudflare|lambda|deno|auto>', 'Set RUNTIME for spawned Node')
|
|
316
|
-
.option('--port <number>', 'Override server port');
|
|
443
|
+
.option('-p, --port <number>', 'Override server port');
|
|
317
444
|
};
|
|
318
445
|
const cmd = BaseCommand.create({
|
|
319
446
|
name: 'start',
|
|
@@ -10,6 +10,7 @@ export declare const WorkerCommands: {
|
|
|
10
10
|
createWorkerListCommand: () => IBaseCommand;
|
|
11
11
|
createWorkerStatusCommand: () => IBaseCommand;
|
|
12
12
|
createWorkerStartCommand: () => IBaseCommand;
|
|
13
|
+
createWorkerStartAllCommand: () => IBaseCommand;
|
|
13
14
|
createWorkerStopCommand: () => IBaseCommand;
|
|
14
15
|
createWorkerRestartCommand: () => IBaseCommand;
|
|
15
16
|
createWorkerSummaryCommand: () => IBaseCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerCommands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/WorkerCommands.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkerCommands.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/WorkerCommands.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA2hBrD;;GAEG;AACH,eAAO,MAAM,cAAc;mCA/XS,YAAY;qCA4CV,YAAY;oCAiDb,YAAY;uCAkFT,YAAY;mCA0FhB,YAAY;sCAgCT,YAAY;sCAgCZ,YAAY;CA8DlD,CAAC"}
|