@zintrust/core 0.1.40 → 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 -290
- package/src/boot/Server.d.ts +1 -1
- package/src/boot/Server.d.ts.map +1 -1
- package/src/boot/bootstrap.js +23 -5
- 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 +132 -17
- 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.js +16 -15
- package/src/cli/workers/QueueWorkRunner.js +1 -1
- 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 +87 -2
- package/src/config/env.d.ts.map +1 -1
- package/src/config/env.js +156 -17
- package/src/config/index.d.ts +1 -0
- package/src/config/index.d.ts.map +1 -1
- 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 +18 -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 +30 -16
- 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.map +1 -1
- package/src/security/CsrfTokenManager.js +12 -0
- 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/src/zintrust.plugins.wg.ts.tpl +8 -0
- 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/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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorPages.d.ts","sourceRoot":"","sources":["../../../src/routes/errorPages.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"errorPages.d.ts","sourceRoot":"","sources":["../../../src/routes/errorPages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAInD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA8JhD,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,UAAU,SAAS,KAAG,OAkD1E,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,UAAU,SAAS,KAClB,OAAO,CAAC,OAAO,CA4CjB,CAAC;AAmBF,eAAO,MAAM,oBAAoB,GAAI,UAAU,SAAS,KAAG,OAE1D,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAU,UAAU,SAAS,KAAG,OAAO,CAAC,OAAO,CAKpF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,OAAO,KAAG,IAO1D,CAAC;;uCAP+C,OAAO,KAAG,IAAI;mCAjIlB,MAAM,YAAY,SAAS,KAAG,OAAO;;AA0IlF,wBAAiE"}
|
package/src/routes/errorPages.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Error Pages Static Assets
|
|
3
3
|
* Serves /error-pages/* assets (CSS/JS/SVG/etc) used by HTML error templates.
|
|
4
4
|
*/
|
|
5
|
+
import { Cloudflare } from '../config/cloudflare.js';
|
|
5
6
|
import { HTTP_HEADERS, MIME_TYPES } from '../config/constants.js';
|
|
6
7
|
import { MIME_TYPES_MAP, resolveSafePath, tryDecodeURIComponent } from './common.js';
|
|
7
8
|
import { getFrameworkPublicRoots } from './publicRoot.js';
|
|
@@ -14,6 +15,74 @@ const getCandidatePublicRoots = () => {
|
|
|
14
15
|
const unique = new Set(roots.map((root) => root.trim()).filter((root) => root !== ''));
|
|
15
16
|
return [...unique];
|
|
16
17
|
};
|
|
18
|
+
const pathExistsAsync = async (candidate) => {
|
|
19
|
+
try {
|
|
20
|
+
await fs.fsPromises.access(candidate);
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const isFileAsync = async (candidate) => {
|
|
28
|
+
try {
|
|
29
|
+
const stats = await fs.fsPromises.stat(candidate);
|
|
30
|
+
return stats.isFile();
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const findFirstExistingFileAsync = async (candidates) => {
|
|
37
|
+
const results = await Promise.all(candidates.map(async (candidate) => ({
|
|
38
|
+
candidate,
|
|
39
|
+
isFile: await isFileAsync(candidate),
|
|
40
|
+
})));
|
|
41
|
+
return results.find((result) => result.isFile)?.candidate;
|
|
42
|
+
};
|
|
43
|
+
const resolveErrorPageFilePathAsync = async (candidateRoots, normalizedRelative) => {
|
|
44
|
+
const checks = await Promise.all(candidateRoots.map(async (root) => {
|
|
45
|
+
const baseDir = path.join(root, 'error-pages');
|
|
46
|
+
const filePath = resolveSafePath(baseDir, normalizedRelative);
|
|
47
|
+
if (filePath === undefined)
|
|
48
|
+
return undefined;
|
|
49
|
+
try {
|
|
50
|
+
const stats = await fs.fsPromises.stat(filePath);
|
|
51
|
+
if (stats.isDirectory())
|
|
52
|
+
return undefined;
|
|
53
|
+
return filePath;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
}));
|
|
59
|
+
return checks.find((filePath) => typeof filePath === 'string');
|
|
60
|
+
};
|
|
61
|
+
const servePublicRootFileAsync = async (relativePath, response, contentType) => {
|
|
62
|
+
const candidateRoots = getCandidatePublicRoots();
|
|
63
|
+
const candidates = candidateRoots.map((root) => path.join(root, relativePath));
|
|
64
|
+
const filePath = await findFirstExistingFileAsync(candidates);
|
|
65
|
+
try {
|
|
66
|
+
if (filePath === undefined || filePath === null) {
|
|
67
|
+
response.setStatus(404);
|
|
68
|
+
response.setHeader(HTTP_HEADERS.CONTENT_TYPE, MIME_TYPES.TEXT);
|
|
69
|
+
response.send('Not Found');
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
const content = await fs.fsPromises.readFile(filePath);
|
|
73
|
+
response.setStatus(200);
|
|
74
|
+
response.setHeader(HTTP_HEADERS.CONTENT_TYPE, contentType);
|
|
75
|
+
response.send(content);
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
ErrorFactory.createTryCatchError(`Error serving public file ${filePath}`, error);
|
|
80
|
+
response.setStatus(500);
|
|
81
|
+
response.setHeader(HTTP_HEADERS.CONTENT_TYPE, MIME_TYPES.TEXT);
|
|
82
|
+
response.send('Internal Server Error');
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
17
86
|
const findFirstExistingFile = (candidates) => {
|
|
18
87
|
for (const candidate of candidates) {
|
|
19
88
|
try {
|
|
@@ -51,6 +120,28 @@ const servePublicRootFile = (relativePath, response, contentType) => {
|
|
|
51
120
|
return false;
|
|
52
121
|
}
|
|
53
122
|
};
|
|
123
|
+
const serveAssetsFileAsync = async (urlPath, response) => {
|
|
124
|
+
const assets = Cloudflare.getAssetsBinding();
|
|
125
|
+
if (!assets)
|
|
126
|
+
return false;
|
|
127
|
+
try {
|
|
128
|
+
const url = new URL(urlPath, 'https://assets.local');
|
|
129
|
+
const res = await assets.fetch(url.toString());
|
|
130
|
+
const contentType = res.headers.get(HTTP_HEADERS.CONTENT_TYPE) ?? MIME_TYPES.TEXT;
|
|
131
|
+
const body = Buffer.from(await res.arrayBuffer());
|
|
132
|
+
response.setStatus(res.status);
|
|
133
|
+
response.setHeader(HTTP_HEADERS.CONTENT_TYPE, contentType);
|
|
134
|
+
response.send(body);
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
ErrorFactory.createTryCatchError(`Error serving asset ${urlPath}`, error);
|
|
139
|
+
response.setStatus(500);
|
|
140
|
+
response.setHeader(HTTP_HEADERS.CONTENT_TYPE, MIME_TYPES.TEXT);
|
|
141
|
+
response.send('Internal Server Error');
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
};
|
|
54
145
|
export const serveErrorPagesFile = (urlPath, response) => {
|
|
55
146
|
if (urlPath === '/error-pages' || urlPath === '/error-pages/') {
|
|
56
147
|
response.setStatus(404);
|
|
@@ -96,20 +187,69 @@ export const serveErrorPagesFile = (urlPath, response) => {
|
|
|
96
187
|
response.send('Not Found');
|
|
97
188
|
return true;
|
|
98
189
|
};
|
|
99
|
-
const
|
|
190
|
+
export const serveErrorPagesFileAsync = async (urlPath, response) => {
|
|
191
|
+
if (urlPath === '/error-pages' || urlPath === '/error-pages/') {
|
|
192
|
+
response.setStatus(404);
|
|
193
|
+
response.setHeader(HTTP_HEADERS.CONTENT_TYPE, MIME_TYPES.TEXT);
|
|
194
|
+
response.send('Not Found');
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
if (!urlPath.startsWith('/error-pages/'))
|
|
198
|
+
return false;
|
|
199
|
+
if (Cloudflare.getWorkersEnv() !== null) {
|
|
200
|
+
return serveAssetsFileAsync(urlPath, response);
|
|
201
|
+
}
|
|
202
|
+
const candidateRoots = getCandidatePublicRoots();
|
|
203
|
+
const rawRelative = urlPath.slice('/error-pages/'.length);
|
|
204
|
+
const normalizedRelative = tryDecodeURIComponent(rawRelative).replaceAll('\\', '/');
|
|
205
|
+
const filePath = await resolveErrorPageFilePathAsync(candidateRoots, normalizedRelative);
|
|
206
|
+
try {
|
|
207
|
+
if (filePath !== undefined && (await pathExistsAsync(filePath))) {
|
|
208
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
209
|
+
const contentType = MIME_TYPES_MAP[ext] || 'application/octet-stream';
|
|
210
|
+
const content = await fs.fsPromises.readFile(filePath);
|
|
211
|
+
response.setStatus(200);
|
|
212
|
+
response.setHeader(HTTP_HEADERS.CONTENT_TYPE, contentType);
|
|
213
|
+
response.send(content);
|
|
214
|
+
return true;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
ErrorFactory.createTryCatchError(`Error serving error-pages file ${filePath}`, error);
|
|
219
|
+
response.setStatus(500);
|
|
220
|
+
response.setHeader(HTTP_HEADERS.CONTENT_TYPE, MIME_TYPES.TEXT);
|
|
221
|
+
response.send('Internal Server Error');
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
response.setStatus(404);
|
|
225
|
+
response.setHeader(HTTP_HEADERS.CONTENT_TYPE, MIME_TYPES.TEXT);
|
|
226
|
+
response.send('Not Found');
|
|
227
|
+
return true;
|
|
228
|
+
};
|
|
229
|
+
const handleErrorPagesRequest = async (req, res) => {
|
|
100
230
|
const urlPath = req.getPath();
|
|
101
|
-
if (
|
|
231
|
+
if (await serveErrorPagesFileAsync(urlPath, res))
|
|
102
232
|
return;
|
|
103
233
|
res.setStatus(404);
|
|
104
234
|
res.setHeader(HTTP_HEADERS.CONTENT_TYPE, MIME_TYPES.TEXT);
|
|
105
235
|
res.send('Not Found');
|
|
106
236
|
};
|
|
107
|
-
const handleZintrustSvgRequest = (_req, res) => {
|
|
108
|
-
|
|
237
|
+
const handleZintrustSvgRequest = async (_req, res) => {
|
|
238
|
+
if (Cloudflare.getWorkersEnv() !== null) {
|
|
239
|
+
await serveAssetsFileAsync('/zintrust.svg', res);
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
await servePublicRootFileAsync('zintrust.svg', res, MIME_TYPES.SVG);
|
|
109
243
|
};
|
|
110
244
|
export const serveZintrustSvgFile = (response) => {
|
|
111
245
|
return servePublicRootFile('zintrust.svg', response, MIME_TYPES.SVG);
|
|
112
246
|
};
|
|
247
|
+
export const serveZintrustSvgFileAsync = async (response) => {
|
|
248
|
+
if (Cloudflare.getWorkersEnv() !== null) {
|
|
249
|
+
return serveAssetsFileAsync('/zintrust.svg', response);
|
|
250
|
+
}
|
|
251
|
+
return servePublicRootFileAsync('zintrust.svg', response, MIME_TYPES.SVG);
|
|
252
|
+
};
|
|
113
253
|
export const registerErrorPagesRoutes = (router) => {
|
|
114
254
|
Router.get(router, '/error-pages', handleErrorPagesRequest);
|
|
115
255
|
Router.get(router, '/error-pages/', handleErrorPagesRequest);
|
|
@@ -16,6 +16,7 @@ export declare const PluginAutoImports: Readonly<{
|
|
|
16
16
|
* adapters/drivers into core registries.
|
|
17
17
|
*/
|
|
18
18
|
tryImportProjectAutoImports(): Promise<ImportResult>;
|
|
19
|
+
tryImportFromFileContents(files: string[]): Promise<ImportResult>;
|
|
19
20
|
}>;
|
|
20
21
|
export {};
|
|
21
22
|
//# sourceMappingURL=PluginAutoImports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginAutoImports.d.ts","sourceRoot":"","sources":["../../../src/runtime/PluginAutoImports.ts"],"names":[],"mappings":"AAMA,KAAK,YAAY,GACb;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAChC;IACE,EAAE,EAAE,KAAK,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,GAAG,eAAe,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"PluginAutoImports.d.ts","sourceRoot":"","sources":["../../../src/runtime/PluginAutoImports.ts"],"names":[],"mappings":"AAMA,KAAK,YAAY,GACb;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAChC;IACE,EAAE,EAAE,KAAK,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,GAAG,eAAe,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AA0GN,eAAO,MAAM,iBAAiB;IAC5B;;;;;;OAMG;mCACkC,OAAO,CAAC,YAAY,CAAC;qCAmEnB,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;EAavE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { pathToFileURL } from '../node-singletons/url.js';
|
|
2
2
|
import { readEnvString } from '../common/ExternalServiceUtils.js';
|
|
3
3
|
import { Logger } from '../config/logger.js';
|
|
4
|
-
import { existsSync } from '../node-singletons/fs.js';
|
|
4
|
+
import { existsSync, readFile } from '../node-singletons/fs.js';
|
|
5
5
|
import * as path from '../node-singletons/path.js';
|
|
6
6
|
const getProjectCwd = () => process.cwd();
|
|
7
7
|
const getProjectRootEnv = () => readEnvString('ZINTRUST_PROJECT_ROOT');
|
|
@@ -22,6 +22,77 @@ const getCandidates = (projectRoot) => {
|
|
|
22
22
|
path.join(projectRoot, 'src', 'zintrust.plugins.js'),
|
|
23
23
|
];
|
|
24
24
|
};
|
|
25
|
+
const extractImportSpecifiers = (raw) => {
|
|
26
|
+
const specifiers = [];
|
|
27
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
28
|
+
const match = /^\s*import\s+['"]([^'"]+)['"];?\s*$/.exec(line);
|
|
29
|
+
if (match?.[1] !== null && match?.[1] !== undefined) {
|
|
30
|
+
specifiers.push(match[1]);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return specifiers;
|
|
34
|
+
};
|
|
35
|
+
const readImportSpecifiersFromFiles = async (files) => {
|
|
36
|
+
const importSpecifiers = [];
|
|
37
|
+
// Read all files in parallel
|
|
38
|
+
const fileReadPromises = files.map(async (filePath) => {
|
|
39
|
+
try {
|
|
40
|
+
const raw = await readFile(filePath, 'utf-8');
|
|
41
|
+
return { filePath, specifiers: extractImportSpecifiers(raw), success: true };
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
Logger.debug('[plugins] Failed to read auto-import file for fallback', {
|
|
45
|
+
filePath,
|
|
46
|
+
error: error instanceof Error ? error.message : String(error),
|
|
47
|
+
});
|
|
48
|
+
return { filePath, specifiers: [], success: false };
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const results = await Promise.all(fileReadPromises);
|
|
52
|
+
// Collect all successful specifiers
|
|
53
|
+
for (const { filePath, specifiers } of results) {
|
|
54
|
+
for (const specifier of specifiers) {
|
|
55
|
+
importSpecifiers.push({ specifier, filePath });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return importSpecifiers;
|
|
59
|
+
};
|
|
60
|
+
const resolveRelativeSpecifier = (entry) => {
|
|
61
|
+
const baseDir = path.dirname(entry.filePath);
|
|
62
|
+
const basePath = path.resolve(baseDir, entry.specifier);
|
|
63
|
+
const candidates = [
|
|
64
|
+
basePath,
|
|
65
|
+
`${basePath}.js`,
|
|
66
|
+
`${basePath}.ts`,
|
|
67
|
+
path.join(basePath, 'index.js'),
|
|
68
|
+
path.join(basePath, 'index.ts'),
|
|
69
|
+
];
|
|
70
|
+
const resolved = candidates.find((candidate) => existsSync(candidate)) ?? basePath;
|
|
71
|
+
return pathToFileURL(resolved).href;
|
|
72
|
+
};
|
|
73
|
+
const importSpecifiers = async (specifiers) => {
|
|
74
|
+
// Import all specifiers in parallel
|
|
75
|
+
const importPromises = Array.from(specifiers).map(async (entry) => {
|
|
76
|
+
const target = entry.specifier.startsWith('.')
|
|
77
|
+
? resolveRelativeSpecifier(entry)
|
|
78
|
+
: entry.specifier;
|
|
79
|
+
try {
|
|
80
|
+
await import(target);
|
|
81
|
+
Logger.debug('[plugins] Loaded auto-import specifier', { specifier: entry.specifier });
|
|
82
|
+
return { specifier: entry.specifier, success: true };
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
Logger.debug('[plugins] Failed auto-import specifier', {
|
|
86
|
+
specifier: entry.specifier,
|
|
87
|
+
error: error instanceof Error ? error.message : String(error),
|
|
88
|
+
});
|
|
89
|
+
return { specifier: entry.specifier, success: false };
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
const results = await Promise.allSettled(importPromises);
|
|
93
|
+
// Count successful imports
|
|
94
|
+
return results.filter((result) => result.status === 'fulfilled' && result.value.success).length;
|
|
95
|
+
};
|
|
25
96
|
export const PluginAutoImports = Object.freeze({
|
|
26
97
|
/**
|
|
27
98
|
* Best-effort import of a project's `src/zintrust.plugins.ts` file.
|
|
@@ -39,8 +110,7 @@ export const PluginAutoImports = Object.freeze({
|
|
|
39
110
|
Logger.debug('[plugins] No plugin auto-imports file found', { projectRoot, candidates });
|
|
40
111
|
return { ok: false, reason: 'not-found' };
|
|
41
112
|
}
|
|
42
|
-
|
|
43
|
-
const importPromises = existingCandidates.map(async (candidate) => {
|
|
113
|
+
const tryImportCandidate = async (candidate) => {
|
|
44
114
|
try {
|
|
45
115
|
const url = pathToFileURL(candidate).href;
|
|
46
116
|
await import(url);
|
|
@@ -55,7 +125,9 @@ export const PluginAutoImports = Object.freeze({
|
|
|
55
125
|
errorMessage,
|
|
56
126
|
};
|
|
57
127
|
}
|
|
58
|
-
}
|
|
128
|
+
};
|
|
129
|
+
// Try all existing candidates in parallel
|
|
130
|
+
const importPromises = existingCandidates.map(async (candidate) => tryImportCandidate(candidate));
|
|
59
131
|
// Return the first successful import, or the first failure if none succeed
|
|
60
132
|
try {
|
|
61
133
|
const results = await Promise.allSettled(importPromises);
|
|
@@ -65,15 +137,28 @@ export const PluginAutoImports = Object.freeze({
|
|
|
65
137
|
}
|
|
66
138
|
// Return the first failed result if no success
|
|
67
139
|
const firstFailedResult = results.find((result) => result.status === 'fulfilled' && !result.value.ok);
|
|
68
|
-
|
|
69
|
-
ok: false,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
140
|
+
const failed = firstFailedResult?.value ??
|
|
141
|
+
{ ok: false, reason: 'import-failed', errorMessage: 'All candidates failed' };
|
|
142
|
+
Logger.debug('[plugins] Auto-import file failed, attempting per-import fallback', failed);
|
|
143
|
+
const fallbackResult = await this.tryImportFromFileContents(existingCandidates);
|
|
144
|
+
if (fallbackResult.ok)
|
|
145
|
+
return fallbackResult;
|
|
146
|
+
return failed;
|
|
73
147
|
}
|
|
74
148
|
catch (error) {
|
|
75
149
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
76
150
|
return { ok: false, reason: 'import-failed', errorMessage };
|
|
77
151
|
}
|
|
78
152
|
},
|
|
153
|
+
async tryImportFromFileContents(files) {
|
|
154
|
+
const specifiers = await readImportSpecifiersFromFiles(files);
|
|
155
|
+
if (specifiers.length === 0) {
|
|
156
|
+
return { ok: false, reason: 'import-failed', errorMessage: 'No import specifiers found' };
|
|
157
|
+
}
|
|
158
|
+
const loaded = await importSpecifiers(specifiers);
|
|
159
|
+
if (loaded > 0) {
|
|
160
|
+
return { ok: true, loadedPath: 'manual-imports' };
|
|
161
|
+
}
|
|
162
|
+
return { ok: false, reason: 'import-failed', errorMessage: 'All specifier imports failed' };
|
|
163
|
+
},
|
|
79
164
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from '../node-singletons/http';
|
|
2
|
-
type Tbody = string | Buffer | null;
|
|
2
|
+
type Tbody = string | Buffer | ReadableStream<Uint8Array> | null;
|
|
3
3
|
/**
|
|
4
4
|
* Request body type for handlers
|
|
5
5
|
*/
|
|
@@ -14,6 +14,7 @@ export interface PlatformRequest {
|
|
|
14
14
|
body?: Tbody;
|
|
15
15
|
query?: Record<string, string | string[]>;
|
|
16
16
|
remoteAddr?: string;
|
|
17
|
+
signal?: AbortSignal;
|
|
17
18
|
}
|
|
18
19
|
export interface PlatformResponse {
|
|
19
20
|
statusCode: number;
|
|
@@ -110,17 +111,15 @@ export declare const HttpResponse: Readonly<{
|
|
|
110
111
|
export declare const ErrorResponse: Readonly<{
|
|
111
112
|
create(statusCode: number, message: string, details?: unknown): IHttpResponse;
|
|
112
113
|
}>;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
type ResData = {
|
|
115
|
+
statusCode: number;
|
|
116
|
+
headers: Record<string, string | string[]>;
|
|
117
|
+
body: Tbody;
|
|
118
|
+
};
|
|
116
119
|
export declare function createMockHttpObjects(request: PlatformRequest): {
|
|
117
120
|
req: Record<string, unknown>;
|
|
118
121
|
res: Record<string, unknown>;
|
|
119
|
-
responseData:
|
|
120
|
-
statusCode: number;
|
|
121
|
-
headers: Record<string, string | string[]>;
|
|
122
|
-
body: Tbody;
|
|
123
|
-
};
|
|
122
|
+
responseData: ResData;
|
|
124
123
|
};
|
|
125
124
|
export {};
|
|
126
125
|
//# sourceMappingURL=RuntimeAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeAdapter.d.ts","sourceRoot":"","sources":["../../../src/runtime/RuntimeAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"RuntimeAdapter.d.ts","sourceRoot":"","sources":["../../../src/runtime/RuntimeAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,45 +85,79 @@ export const ErrorResponse = Object.freeze({
|
|
|
85
85
|
/**
|
|
86
86
|
* Create mock Node.js request/response objects for platform compatibility
|
|
87
87
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
88
|
+
const coerceFirstForwardedFor = (value) => {
|
|
89
|
+
if (Array.isArray(value)) {
|
|
90
|
+
const first = value[0];
|
|
91
|
+
return typeof first === 'string' && first.trim() !== '' ? first.trim() : undefined;
|
|
92
|
+
}
|
|
93
|
+
if (typeof value === 'string' && value.trim() !== '')
|
|
94
|
+
return value.trim();
|
|
95
|
+
return undefined;
|
|
96
|
+
};
|
|
97
|
+
const resolveRemoteAddress = (request) => {
|
|
98
98
|
const forwardedFor = coerceFirstForwardedFor(request.headers?.['x-forwarded-for']);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
99
|
+
if (typeof request.remoteAddr === 'string' && request.remoteAddr.trim() !== '') {
|
|
100
|
+
return request.remoteAddr.trim();
|
|
101
|
+
}
|
|
102
|
+
return (forwardedFor?.split(',')[0]?.trim() ?? '') || '0.0.0.0';
|
|
103
|
+
};
|
|
104
|
+
const createResponseData = () => ({
|
|
105
|
+
statusCode: 200,
|
|
106
|
+
headers: { 'content-type': 'application/json' },
|
|
107
|
+
body: null,
|
|
108
|
+
});
|
|
109
|
+
const createMockRequest = (request, remoteAddress) => ({
|
|
110
|
+
method: request.method,
|
|
111
|
+
url: request.path,
|
|
112
|
+
headers: request.headers,
|
|
113
|
+
body: request.body ?? undefined,
|
|
114
|
+
remoteAddress,
|
|
115
|
+
socket: {
|
|
112
116
|
remoteAddress,
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
},
|
|
118
|
+
connection: {
|
|
119
|
+
remoteAddress,
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
const applyWriteHead = (responseData, statusCode, headers) => {
|
|
123
|
+
responseData.statusCode = statusCode;
|
|
124
|
+
if (headers) {
|
|
125
|
+
const normalizedHeaders = {};
|
|
126
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
127
|
+
normalizedHeaders[key.toLowerCase()] = value;
|
|
128
|
+
}
|
|
129
|
+
responseData.headers = { ...responseData.headers, ...normalizedHeaders };
|
|
130
|
+
}
|
|
131
|
+
if (responseData.headers['content-type'] === 'text/event-stream') {
|
|
132
|
+
// @ts-ignore - ReadableStream/TransformStream might not be in all TS envs type definitions
|
|
133
|
+
if (typeof TransformStream !== 'undefined') {
|
|
134
|
+
// @ts-ignore
|
|
135
|
+
const stream = new TransformStream();
|
|
136
|
+
responseData.body = stream.readable;
|
|
137
|
+
return stream.writable.getWriter();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return null;
|
|
141
|
+
};
|
|
142
|
+
const resData = (responseData, request) => {
|
|
143
|
+
return {
|
|
121
144
|
statusCode: 200,
|
|
122
145
|
headers: responseData.headers,
|
|
123
146
|
writeHead: function (statusCode, headers) {
|
|
124
|
-
|
|
125
|
-
if
|
|
126
|
-
|
|
147
|
+
this._writer = applyWriteHead(responseData, statusCode, headers);
|
|
148
|
+
// Handle abortion if signal is present
|
|
149
|
+
if (request.signal && this._writer) {
|
|
150
|
+
request.signal.addEventListener('abort', () => {
|
|
151
|
+
if (this._writer) {
|
|
152
|
+
try {
|
|
153
|
+
this._writer.close();
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// Ignore close errors
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
this.emit('close');
|
|
160
|
+
});
|
|
127
161
|
}
|
|
128
162
|
return this;
|
|
129
163
|
},
|
|
@@ -132,15 +166,67 @@ export function createMockHttpObjects(request) {
|
|
|
132
166
|
return this;
|
|
133
167
|
},
|
|
134
168
|
end: function (chunk) {
|
|
169
|
+
if (this._writer) {
|
|
170
|
+
if (chunk !== undefined && chunk !== null) {
|
|
171
|
+
this._writer.write(new TextEncoder().encode(String(chunk)));
|
|
172
|
+
}
|
|
173
|
+
this._writer.close();
|
|
174
|
+
return this;
|
|
175
|
+
}
|
|
135
176
|
if (chunk !== undefined) {
|
|
136
177
|
responseData.body = chunk;
|
|
137
178
|
}
|
|
179
|
+
this.emit('finish');
|
|
138
180
|
return this;
|
|
139
181
|
},
|
|
140
182
|
write: function (chunk) {
|
|
183
|
+
if (this._writer) {
|
|
184
|
+
try {
|
|
185
|
+
this._writer.write(new TextEncoder().encode(String(chunk)));
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
141
192
|
responseData.body = chunk;
|
|
142
193
|
return true;
|
|
143
194
|
},
|
|
195
|
+
on: function (event, listener) {
|
|
196
|
+
this._listeners ??= {};
|
|
197
|
+
this._listeners[event] ??= [];
|
|
198
|
+
this._listeners[event].push(listener);
|
|
199
|
+
return this;
|
|
200
|
+
},
|
|
201
|
+
once: function (event, listener) {
|
|
202
|
+
const wrapper = (...args) => {
|
|
203
|
+
this.removeListener(event, wrapper);
|
|
204
|
+
listener(...args);
|
|
205
|
+
};
|
|
206
|
+
return this.on(event, wrapper);
|
|
207
|
+
},
|
|
208
|
+
removeListener: function (event, listener) {
|
|
209
|
+
if (this._listeners?.[event] !== undefined) {
|
|
210
|
+
this._listeners[event] = this._listeners[event].filter((l) => l !== listener);
|
|
211
|
+
}
|
|
212
|
+
return this;
|
|
213
|
+
},
|
|
214
|
+
emit: function (event, ...args) {
|
|
215
|
+
if (this._listeners?.[event] !== undefined) {
|
|
216
|
+
// Create a copy to avoid issues if listeners remove themselves
|
|
217
|
+
[...this._listeners[event]].forEach((fn) => {
|
|
218
|
+
fn(...args);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
_writer: null,
|
|
223
|
+
_listeners: {},
|
|
144
224
|
};
|
|
225
|
+
};
|
|
226
|
+
export function createMockHttpObjects(request) {
|
|
227
|
+
const remoteAddress = resolveRemoteAddress(request);
|
|
228
|
+
const responseData = createResponseData();
|
|
229
|
+
const req = createMockRequest(request, remoteAddress);
|
|
230
|
+
const res = resData(responseData, request);
|
|
145
231
|
return { req, res, responseData };
|
|
146
232
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Services
|
|
3
|
+
* Adapter layer for env/crypto/timers/fs/fetch across Node and Workers
|
|
4
|
+
* Sealed namespace for immutability
|
|
5
|
+
*/
|
|
6
|
+
export type RuntimePlatform = 'nodejs' | 'lambda' | 'fargate' | 'cloudflare' | 'deno';
|
|
7
|
+
export type RuntimeEnvReader = {
|
|
8
|
+
get: (key: string, defaultValue?: string) => string;
|
|
9
|
+
getInt: (key: string, defaultValue?: number) => number;
|
|
10
|
+
getFloat: (key: string, defaultValue?: number) => number;
|
|
11
|
+
getBool: (key: string, defaultValue?: boolean) => boolean;
|
|
12
|
+
};
|
|
13
|
+
export type RandomValuesArray = Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | BigInt64Array | BigUint64Array;
|
|
14
|
+
export type RuntimeCrypto = {
|
|
15
|
+
subtle: SubtleCrypto;
|
|
16
|
+
getRandomValues: <T extends RandomValuesArray>(array: T) => T;
|
|
17
|
+
randomUUID: () => string;
|
|
18
|
+
randomBytes?: (size: number) => Uint8Array;
|
|
19
|
+
};
|
|
20
|
+
export type RuntimeTimers = {
|
|
21
|
+
setTimeout: typeof setTimeout;
|
|
22
|
+
clearTimeout: typeof clearTimeout;
|
|
23
|
+
setInterval: typeof setInterval;
|
|
24
|
+
clearInterval: typeof clearInterval;
|
|
25
|
+
};
|
|
26
|
+
export type RuntimeFs = {
|
|
27
|
+
supported: boolean;
|
|
28
|
+
readFileSync: (path: string, encoding?: BufferEncoding) => string | Buffer;
|
|
29
|
+
readdirSync: (path: string) => string[];
|
|
30
|
+
existsSync: (path: string) => boolean;
|
|
31
|
+
};
|
|
32
|
+
export type RuntimeServices = {
|
|
33
|
+
platform: RuntimePlatform;
|
|
34
|
+
env: RuntimeEnvReader;
|
|
35
|
+
crypto: RuntimeCrypto;
|
|
36
|
+
timers: RuntimeTimers;
|
|
37
|
+
fs: RuntimeFs;
|
|
38
|
+
fetch: typeof fetch;
|
|
39
|
+
};
|
|
40
|
+
export declare const detectCloudflareWorkers: () => boolean;
|
|
41
|
+
export declare const detectRuntimePlatform: () => RuntimePlatform;
|
|
42
|
+
export declare const RUNTIME_PLATFORM: RuntimePlatform;
|
|
43
|
+
export declare const RuntimeServices: Readonly<{
|
|
44
|
+
create(platform: RuntimePlatform): RuntimeServices;
|
|
45
|
+
}>;
|
|
46
|
+
export default RuntimeServices;
|
|
47
|
+
//# sourceMappingURL=RuntimeServices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeServices.d.ts","sourceRoot":"","sources":["../../../src/runtime/RuntimeServices.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC;AAEtF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpD,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,iBAAiB,GACjB,WAAW,GACX,WAAW,GACX,SAAS,GACT,UAAU,GACV,UAAU,GACV,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,eAAe,EAAE,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9D,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,aAAa,EAAE,OAAO,aAAa,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,KAAK,MAAM,GAAG,MAAM,CAAC;IAC3E,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,EAAE,gBAAgB,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,OAAO,KAAK,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAO,OAE1C,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,eAGxC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,eAAyC,CAAC;AAwIzE,eAAO,MAAM,eAAe;qBACT,eAAe,GAAG,eAAe;EAqBlD,CAAC;AAEH,eAAe,eAAe,CAAC"}
|