@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
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
export default `<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
7
|
+
<title>New Comment Notification</title>
|
|
8
|
+
<style>
|
|
9
|
+
body {
|
|
10
|
+
margin: 0;
|
|
11
|
+
padding: 0;
|
|
12
|
+
background-color: #0b1220;
|
|
13
|
+
font-family:
|
|
14
|
+
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.email-container {
|
|
18
|
+
max-width: 600px;
|
|
19
|
+
margin: 40px auto;
|
|
20
|
+
background-color: #0f172a;
|
|
21
|
+
border: 1px solid #334155;
|
|
22
|
+
border-radius: 12px;
|
|
23
|
+
overflow: hidden;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.header {
|
|
27
|
+
padding: 40px 40px 30px;
|
|
28
|
+
text-align: center;
|
|
29
|
+
background: linear-gradient(180deg, rgba(168, 85, 247, 0.15), rgba(147, 51, 234, 0.08));
|
|
30
|
+
border-bottom: 1px solid #334155;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.icon {
|
|
34
|
+
width: 48px;
|
|
35
|
+
height: 48px;
|
|
36
|
+
margin: 0 auto 20px;
|
|
37
|
+
border-radius: 12px;
|
|
38
|
+
border: 1px solid rgba(168, 85, 247, 0.35);
|
|
39
|
+
background: linear-gradient(180deg, rgba(168, 85, 247, 0.2), rgba(147, 51, 234, 0.1));
|
|
40
|
+
display: inline-flex;
|
|
41
|
+
align-items: center;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.title {
|
|
46
|
+
margin: 0 0 8px;
|
|
47
|
+
font-size: 28px;
|
|
48
|
+
font-weight: 700;
|
|
49
|
+
color: #e2e8f0;
|
|
50
|
+
line-height: 1.2;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.subtitle {
|
|
54
|
+
margin: 0;
|
|
55
|
+
font-size: 16px;
|
|
56
|
+
color: #e2e8f0;
|
|
57
|
+
line-height: 1.5;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.content {
|
|
61
|
+
padding: 40px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.greeting {
|
|
65
|
+
margin: 0 0 24px;
|
|
66
|
+
font-size: 15px;
|
|
67
|
+
color: #e2e8f0;
|
|
68
|
+
line-height: 1.6;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.comment-card {
|
|
72
|
+
margin-bottom: 30px;
|
|
73
|
+
border-radius: 8px;
|
|
74
|
+
overflow: hidden;
|
|
75
|
+
background: rgba(15, 23, 42, 0.65);
|
|
76
|
+
border: 1px solid #334155;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.comment-header {
|
|
80
|
+
display: flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
padding: 20px;
|
|
83
|
+
background: rgba(168, 85, 247, 0.12);
|
|
84
|
+
border-bottom: 1px solid #334155;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.commenter-avatar {
|
|
88
|
+
width: 40px;
|
|
89
|
+
height: 40px;
|
|
90
|
+
border-radius: 50%;
|
|
91
|
+
background: linear-gradient(135deg, #a855f7, #9333ea);
|
|
92
|
+
display: inline-flex;
|
|
93
|
+
align-items: center;
|
|
94
|
+
justify-content: center;
|
|
95
|
+
color: #ffffff;
|
|
96
|
+
font-weight: 600;
|
|
97
|
+
font-size: 16px;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.commenter-info {
|
|
101
|
+
flex: 1;
|
|
102
|
+
margin-left: 12px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.commenter-name {
|
|
106
|
+
font-weight: 600;
|
|
107
|
+
color: #e2e8f0;
|
|
108
|
+
font-size: 14px;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.comment-time {
|
|
112
|
+
font-size: 12px;
|
|
113
|
+
color: #64748b;
|
|
114
|
+
margin-top: 4px;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.comment-content {
|
|
118
|
+
flex: 1;
|
|
119
|
+
margin-left: 12px;
|
|
120
|
+
font-size: 14px;
|
|
121
|
+
color: #e2e8f0;
|
|
122
|
+
line-height: 1.6;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.comment-text {
|
|
126
|
+
margin: 0 0 12px;
|
|
127
|
+
font-size: 14px;
|
|
128
|
+
color: #cbd5e1;
|
|
129
|
+
line-height: 1.6;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.button-container {
|
|
133
|
+
margin-bottom: 30px;
|
|
134
|
+
text-align: center;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.view-comment-button {
|
|
138
|
+
display: inline-block;
|
|
139
|
+
padding: 14px 32px;
|
|
140
|
+
background: linear-gradient(135deg, #a855f7, #9333ea);
|
|
141
|
+
color: #ffffff;
|
|
142
|
+
text-decoration: none;
|
|
143
|
+
border-radius: 8px;
|
|
144
|
+
font-weight: 600;
|
|
145
|
+
font-size: 15px;
|
|
146
|
+
border: 1px solid rgba(168, 85, 247, 0.5);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.divider {
|
|
150
|
+
margin: 30px 0;
|
|
151
|
+
border-top: 1px solid #334155;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.footer {
|
|
155
|
+
padding: 30px 40px;
|
|
156
|
+
background: rgba(15, 23, 42, 0.65);
|
|
157
|
+
border-top: 1px solid #334155;
|
|
158
|
+
text-align: center;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.footer p {
|
|
162
|
+
margin: 0;
|
|
163
|
+
font-size: 12px;
|
|
164
|
+
color: #64748b;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.footer a {
|
|
168
|
+
color: #bae6fd;
|
|
169
|
+
text-decoration: none;
|
|
170
|
+
}
|
|
171
|
+
</style>
|
|
172
|
+
</head>
|
|
173
|
+
<body>
|
|
174
|
+
<div class="email-container">
|
|
175
|
+
<!-- Header -->
|
|
176
|
+
<div class="header">
|
|
177
|
+
<div class="icon">
|
|
178
|
+
<span style="font-size: 24px">💬</span>
|
|
179
|
+
</div>
|
|
180
|
+
<h1 class="title">New Comment</h1>
|
|
181
|
+
<p class="subtitle">Someone commented on your post</p>
|
|
182
|
+
</div>
|
|
183
|
+
|
|
184
|
+
<!-- Main Content -->
|
|
185
|
+
<div class="content">
|
|
186
|
+
<p class="greeting">Hi <strong style="color: #e2e8f0">{{name}}</strong>,</p>
|
|
187
|
+
|
|
188
|
+
<div class="comment-card">
|
|
189
|
+
<div class="comment-header">
|
|
190
|
+
<div class="commenter-avatar">{{commenterInitial}}</div>
|
|
191
|
+
<div class="commenter-info">
|
|
192
|
+
<div class="commenter-name">{{commenterName}}</div>
|
|
193
|
+
<div class="comment-time">{{commentTime}}</div>
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
|
|
197
|
+
<div class="comment-content">
|
|
198
|
+
<p class="comment-text">{{commentText}}</p>
|
|
199
|
+
<p style="margin: 0 0 12px; font-size: 14px; color: #cbd5e1; line-height: 1.6">
|
|
200
|
+
<strong style="color: #e2e8f0">{{commenterName}}</strong> left a comment on your post
|
|
201
|
+
"<strong style="color: #e2e8f0">{{postTitle}}</strong>".
|
|
202
|
+
</p>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
|
|
206
|
+
<!-- CTA Button -->
|
|
207
|
+
<div class="button-container">
|
|
208
|
+
<a href="{{commentLink}}" class="view-comment-button">View Comment</a>
|
|
209
|
+
</div>
|
|
210
|
+
|
|
211
|
+
<!-- Divider -->
|
|
212
|
+
<div class="divider"></div>
|
|
213
|
+
|
|
214
|
+
<p style="margin: 0; font-size: 14px; color: #e2e8f0; line-height: 1.6">
|
|
215
|
+
You're receiving this email because you enabled comment notifications.<br />
|
|
216
|
+
<a href="{{unsubscribeLink}}" style="color: #bae6fd; text-decoration: none"
|
|
217
|
+
>Manage notification settings</a
|
|
218
|
+
>
|
|
219
|
+
</p>
|
|
220
|
+
</div>
|
|
221
|
+
|
|
222
|
+
<!-- Footer -->
|
|
223
|
+
<div class="footer">
|
|
224
|
+
<p>© {{year}} {{APP_NAME}}. All rights reserved.</p>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
</body>
|
|
228
|
+
</html>`;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>Password Reset</title>\n <style>\n body {\n margin: 0;\n padding: 0;\n background-color: #0b1220;\n font-family:\n -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n }\n\n .email-container {\n max-width: 600px;\n margin: 40px auto;\n background-color: #0f172a;\n border: 1px solid #334155;\n border-radius: 12px;\n overflow: hidden;\n }\n\n .header {\n padding: 40px 40px 30px;\n text-align: center;\n background: linear-gradient(180deg, rgba(239, 68, 68, 0.15), rgba(220, 38, 38, 0.08));\n border-bottom: 1px solid #334155;\n }\n\n .icon {\n width: 48px;\n height: 48px;\n margin: 0 auto 20px;\n border-radius: 12px;\n border: 1px solid rgba(239, 68, 68, 0.35);\n background: linear-gradient(180deg, rgba(239, 68, 68, 0.2), rgba(220, 38, 38, 0.1));\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .title {\n margin: 0 0 8px;\n font-size: 28px;\n font-weight: 700;\n color: #e2e8f0;\n line-height: 1.2;\n }\n\n .subtitle {\n margin: 0;\n font-size: 16px;\n color: #e2e8f0;\n line-height: 1.5;\n }\n\n .content {\n padding: 40px;\n }\n\n .greeting {\n margin: 0 0 24px;\n font-size: 15px;\n color: #e2e8f0;\n line-height: 1.6;\n }\n\n .message {\n margin: 0 0 24px;\n font-size: 15px;\n color: #e2e8f0;\n line-height: 1.6;\n }\n\n .alert-box {\n margin-bottom: 30px;\n padding: 16px;\n background: rgba(239, 68, 68, 0.1);\n border-left: 3px solid #fbbf24;\n border-radius: 6px;\n }\n\n .alert-box p {\n margin: 0 0 12px;\n font-size: 14px;\n color: #ffffff;\n line-height: 1.6;\n }\n\n .alert-box strong {\n color: #fbbf24;\n }\n\n .button-container {\n margin-bottom: 30px;\n text-align: center;\n }\n\n .reset-button {\n display: inline-block;\n padding: 14px 32px;\n background: linear-gradient(135deg, #ef4444, #dc2626);\n color: #ffffff;\n text-decoration: none;\n border-radius: 8px;\n font-weight: 600;\n font-size: 15px;\n border: 1px solid rgba(239, 68, 68, 0.5);\n }\n\n .alternative-link {\n margin: 0;\n font-size: 13px;\n color: #f1f5f9;\n line-height: 1.6;\n }\n\n .alternative-link a {\n color: #bae6fd;\n text-decoration: none;\n word-break: break-all;\n }\n\n .divider {\n margin: 30px 0;\n border-top: 1px solid #334155;\n }\n\n .support {\n margin: 0;\n font-size: 14px;\n color: #e2e8f0;\n line-height: 1.6;\n }\n\n .support a {\n color: #bae6fd;\n text-decoration: none;\n }\n\n .footer {\n padding: 30px 40px;\n background: rgba(15, 23, 42, 0.65);\n border-top: 1px solid #334155;\n text-align: center;\n }\n\n .footer p {\n margin: 0;\n font-size: 12px;\n color: #64748b;\n }\n </style>\n </head>\n <body>\n <div class=\"email-container\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"icon\">\n <span style=\"font-size: 24px\">\uD83D\uDD12</span>\n </div>\n <h1 class=\"title\">Password Reset</h1>\n <p class=\"subtitle\">Reset your {{APP_NAME}} account password</p>\n </div>\n\n <!-- Main Content -->\n <div class=\"content\">\n <p class=\"greeting\">Hi <strong style=\"color: #e2e8f0\">{{name}}</strong>,</p>\n\n <p class=\"message\">\n Someone requested a password reset for your {{APP_NAME}} account (<strong\n style=\"color: #e2e8f0\"\n >{{email}}</strong\n >). If this was you, click the button below to reset your password:\n </p>\n\n <div class=\"alert-box\">\n <p>\n <strong>\u26A0\uFE0F Important:</strong> This password reset link will expire in\n <strong>{{expiryTime}}</strong>.\n </p>\n </div>\n\n <!-- CTA Button -->\n <div class=\"button-container\">\n <a href=\"{{reset_url}}\" class=\"reset-button\">Reset Password</a>\n </div>\n\n <div class=\"alternative-link\">\n If the button above doesn't work, copy and paste this link into your browser:<br />\n <a href=\"{{reset_url}}\">{{reset_url}}</a>\n </div>\n\n <!-- Security Notice -->\n <div class=\"alert-box\">\n <p>\n <strong>Security Notice:</strong> If you didn't request this password reset, please\n ignore this email. Your password will remain unchanged.\n </p>\n </div>\n\n <p class=\"message\">For security reasons, please never share this link with anyone.</p>\n\n <!-- Divider -->\n <div class=\"divider\"></div>\n\n <p class=\"support\">\n If you continue to have problems, please contact our\n <a href=\"{{support_url}}\">support team</a>.\n </p>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <p>© {{year}} {{APP_NAME}}. All rights reserved.</p>\n </div>\n </div>\n </body>\n</html>";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=password-reset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password-reset.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/templates/password-reset.ts"],"names":[],"mappings":";AAAA,wBA4NS"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
export default `<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Password Reset</title>
|
|
7
|
+
<style>
|
|
8
|
+
body {
|
|
9
|
+
margin: 0;
|
|
10
|
+
padding: 0;
|
|
11
|
+
background-color: #0b1220;
|
|
12
|
+
font-family:
|
|
13
|
+
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.email-container {
|
|
17
|
+
max-width: 600px;
|
|
18
|
+
margin: 40px auto;
|
|
19
|
+
background-color: #0f172a;
|
|
20
|
+
border: 1px solid #334155;
|
|
21
|
+
border-radius: 12px;
|
|
22
|
+
overflow: hidden;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.header {
|
|
26
|
+
padding: 40px 40px 30px;
|
|
27
|
+
text-align: center;
|
|
28
|
+
background: linear-gradient(180deg, rgba(239, 68, 68, 0.15), rgba(220, 38, 38, 0.08));
|
|
29
|
+
border-bottom: 1px solid #334155;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.icon {
|
|
33
|
+
width: 48px;
|
|
34
|
+
height: 48px;
|
|
35
|
+
margin: 0 auto 20px;
|
|
36
|
+
border-radius: 12px;
|
|
37
|
+
border: 1px solid rgba(239, 68, 68, 0.35);
|
|
38
|
+
background: linear-gradient(180deg, rgba(239, 68, 68, 0.2), rgba(220, 38, 38, 0.1));
|
|
39
|
+
display: inline-flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
justify-content: center;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.title {
|
|
45
|
+
margin: 0 0 8px;
|
|
46
|
+
font-size: 28px;
|
|
47
|
+
font-weight: 700;
|
|
48
|
+
color: #e2e8f0;
|
|
49
|
+
line-height: 1.2;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.subtitle {
|
|
53
|
+
margin: 0;
|
|
54
|
+
font-size: 16px;
|
|
55
|
+
color: #e2e8f0;
|
|
56
|
+
line-height: 1.5;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.content {
|
|
60
|
+
padding: 40px;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.greeting {
|
|
64
|
+
margin: 0 0 24px;
|
|
65
|
+
font-size: 15px;
|
|
66
|
+
color: #e2e8f0;
|
|
67
|
+
line-height: 1.6;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.message {
|
|
71
|
+
margin: 0 0 24px;
|
|
72
|
+
font-size: 15px;
|
|
73
|
+
color: #e2e8f0;
|
|
74
|
+
line-height: 1.6;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.alert-box {
|
|
78
|
+
margin-bottom: 30px;
|
|
79
|
+
padding: 16px;
|
|
80
|
+
background: rgba(239, 68, 68, 0.1);
|
|
81
|
+
border-left: 3px solid #fbbf24;
|
|
82
|
+
border-radius: 6px;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.alert-box p {
|
|
86
|
+
margin: 0 0 12px;
|
|
87
|
+
font-size: 14px;
|
|
88
|
+
color: #ffffff;
|
|
89
|
+
line-height: 1.6;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.alert-box strong {
|
|
93
|
+
color: #fbbf24;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.button-container {
|
|
97
|
+
margin-bottom: 30px;
|
|
98
|
+
text-align: center;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.reset-button {
|
|
102
|
+
display: inline-block;
|
|
103
|
+
padding: 14px 32px;
|
|
104
|
+
background: linear-gradient(135deg, #ef4444, #dc2626);
|
|
105
|
+
color: #ffffff;
|
|
106
|
+
text-decoration: none;
|
|
107
|
+
border-radius: 8px;
|
|
108
|
+
font-weight: 600;
|
|
109
|
+
font-size: 15px;
|
|
110
|
+
border: 1px solid rgba(239, 68, 68, 0.5);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.alternative-link {
|
|
114
|
+
margin: 0;
|
|
115
|
+
font-size: 13px;
|
|
116
|
+
color: #f1f5f9;
|
|
117
|
+
line-height: 1.6;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.alternative-link a {
|
|
121
|
+
color: #bae6fd;
|
|
122
|
+
text-decoration: none;
|
|
123
|
+
word-break: break-all;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.divider {
|
|
127
|
+
margin: 30px 0;
|
|
128
|
+
border-top: 1px solid #334155;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.support {
|
|
132
|
+
margin: 0;
|
|
133
|
+
font-size: 14px;
|
|
134
|
+
color: #e2e8f0;
|
|
135
|
+
line-height: 1.6;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.support a {
|
|
139
|
+
color: #bae6fd;
|
|
140
|
+
text-decoration: none;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.footer {
|
|
144
|
+
padding: 30px 40px;
|
|
145
|
+
background: rgba(15, 23, 42, 0.65);
|
|
146
|
+
border-top: 1px solid #334155;
|
|
147
|
+
text-align: center;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.footer p {
|
|
151
|
+
margin: 0;
|
|
152
|
+
font-size: 12px;
|
|
153
|
+
color: #64748b;
|
|
154
|
+
}
|
|
155
|
+
</style>
|
|
156
|
+
</head>
|
|
157
|
+
<body>
|
|
158
|
+
<div class="email-container">
|
|
159
|
+
<!-- Header -->
|
|
160
|
+
<div class="header">
|
|
161
|
+
<div class="icon">
|
|
162
|
+
<span style="font-size: 24px">🔒</span>
|
|
163
|
+
</div>
|
|
164
|
+
<h1 class="title">Password Reset</h1>
|
|
165
|
+
<p class="subtitle">Reset your {{APP_NAME}} account password</p>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<!-- Main Content -->
|
|
169
|
+
<div class="content">
|
|
170
|
+
<p class="greeting">Hi <strong style="color: #e2e8f0">{{name}}</strong>,</p>
|
|
171
|
+
|
|
172
|
+
<p class="message">
|
|
173
|
+
Someone requested a password reset for your {{APP_NAME}} account (<strong
|
|
174
|
+
style="color: #e2e8f0"
|
|
175
|
+
>{{email}}</strong
|
|
176
|
+
>). If this was you, click the button below to reset your password:
|
|
177
|
+
</p>
|
|
178
|
+
|
|
179
|
+
<div class="alert-box">
|
|
180
|
+
<p>
|
|
181
|
+
<strong>⚠️ Important:</strong> This password reset link will expire in
|
|
182
|
+
<strong>{{expiryTime}}</strong>.
|
|
183
|
+
</p>
|
|
184
|
+
</div>
|
|
185
|
+
|
|
186
|
+
<!-- CTA Button -->
|
|
187
|
+
<div class="button-container">
|
|
188
|
+
<a href="{{reset_url}}" class="reset-button">Reset Password</a>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
<div class="alternative-link">
|
|
192
|
+
If the button above doesn't work, copy and paste this link into your browser:<br />
|
|
193
|
+
<a href="{{reset_url}}">{{reset_url}}</a>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<!-- Security Notice -->
|
|
197
|
+
<div class="alert-box">
|
|
198
|
+
<p>
|
|
199
|
+
<strong>Security Notice:</strong> If you didn't request this password reset, please
|
|
200
|
+
ignore this email. Your password will remain unchanged.
|
|
201
|
+
</p>
|
|
202
|
+
</div>
|
|
203
|
+
|
|
204
|
+
<p class="message">For security reasons, please never share this link with anyone.</p>
|
|
205
|
+
|
|
206
|
+
<!-- Divider -->
|
|
207
|
+
<div class="divider"></div>
|
|
208
|
+
|
|
209
|
+
<p class="support">
|
|
210
|
+
If you continue to have problems, please contact our
|
|
211
|
+
<a href="{{support_url}}">support team</a>.
|
|
212
|
+
</p>
|
|
213
|
+
</div>
|
|
214
|
+
|
|
215
|
+
<!-- Footer -->
|
|
216
|
+
<div class="footer">
|
|
217
|
+
<p>© {{year}} {{APP_NAME}}. All rights reserved.</p>
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
</body>
|
|
221
|
+
</html>`;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>Performance Report</title>\n <style>\n body {\n margin: 0;\n padding: 0;\n background-color: #0b1220;\n font-family:\n -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n }\n\n .email-container {\n max-width: 600px;\n margin: 40px auto;\n background-color: #0f172a;\n border: 1px solid #334155;\n border-radius: 12px;\n overflow: hidden;\n }\n\n .header {\n padding: 40px 40px 30px;\n text-align: center;\n background: linear-gradient(180deg, rgba(14, 165, 233, 0.15), rgba(2, 132, 199, 0.08));\n border-bottom: 1px solid #334155;\n }\n\n .icon {\n width: 48px;\n height: 48px;\n margin: 0 auto 20px;\n border-radius: 12px;\n border: 1px solid rgba(14, 165, 233, 0.35);\n background: linear-gradient(180deg, rgba(14, 165, 233, 0.2), rgba(2, 132, 199, 0.1));\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .title {\n margin: 0 0 8px;\n font-size: 28px;\n font-weight: 700;\n color: #e2e8f0;\n line-height: 1.2;\n }\n\n .subtitle {\n margin: 0;\n font-size: 16px;\n color: #e2e8f0;\n line-height: 1.5;\n }\n\n .content {\n padding: 40px;\n }\n\n .greeting {\n margin: 0 0 24px;\n font-size: 15px;\n color: #e2e8f0;\n line-height: 1.6;\n }\n\n .summary {\n margin: 0 0 30px;\n font-size: 15px;\n color: #e2e8f0;\n line-height: 1.6;\n }\n\n .metrics-grid {\n display: flex;\n gap: 4%;\n margin-bottom: 20px;\n }\n\n .metric-card {\n flex: 1;\n padding: 20px;\n background: rgba(15, 23, 42, 0.65);\n border: 1px solid #334155;\n border-radius: 8px;\n text-align: center;\n }\n\n .metric-label {\n margin: 0 0 8px;\n font-size: 13px;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n font-weight: 600;\n }\n\n .metric-value {\n margin: 0;\n font-size: 32px;\n font-weight: 700;\n }\n\n .metric-value.total {\n color: #bae6fd;\n }\n\n .metric-value.success {\n color: #22c55e;\n }\n\n .metric-value.failed {\n color: #fca5a5;\n }\n\n .metrics-table {\n margin-bottom: 30px;\n border-radius: 8px;\n overflow: hidden;\n background: rgba(15, 23, 42, 0.65);\n border: 1px solid #334155;\n }\n\n .metrics-table table {\n width: 100%;\n border-collapse: collapse;\n }\n\n .metrics-table th {\n padding: 10px 0;\n color: #94a3b8;\n font-size: 14px;\n border-bottom: 1px solid #334155;\n text-align: left;\n }\n\n .metrics-table td {\n padding: 12px 0;\n font-size: 14px;\n border-bottom: 1px solid rgba(51, 65, 85, 0.5);\n }\n\n .metrics-table .metric-name {\n color: #cbd5e1;\n }\n\n .metrics-table .metric-value-cell {\n color: #e2e8f0;\n font-weight: 500;\n text-align: right;\n }\n\n .metrics-table .metric-value-cell.failed {\n color: #fca5a5;\n }\n\n .button-container {\n margin-bottom: 30px;\n text-align: center;\n }\n\n .report-button {\n display: inline-block;\n padding: 14px 32px;\n background: linear-gradient(135deg, #0369a1, #075985);\n color: #ffffff;\n text-decoration: none;\n border-radius: 8px;\n font-weight: 600;\n font-size: 15px;\n border: 1px solid rgba(3, 105, 161, 0.5);\n }\n\n .footer {\n padding: 30px 40px;\n background: rgba(15, 23, 42, 0.65);\n border-top: 1px solid #334155;\n text-align: center;\n }\n\n .footer p {\n margin: 0;\n font-size: 12px;\n color: #64748b;\n }\n </style>\n </head>\n <body>\n <div class=\"email-container\">\n <!-- Header -->\n <div class=\"header\">\n <div class=\"icon\">\n <span style=\"font-size: 24px\">\uD83D\uDCCA</span>\n </div>\n <h1 class=\"title\">Performance Report</h1>\n <p class=\"subtitle\">{{report_period}}</p>\n </div>\n\n <!-- Main Content -->\n <div class=\"content\">\n <p class=\"greeting\">Hi <strong style=\"color: #e2e8f0\">{{name}}</strong>,</p>\n\n <p class=\"summary\">Here's your worker performance summary for {{report_period}}:</p>\n\n <!-- Key Metrics -->\n <div class=\"metrics-grid\">\n <div class=\"metric-card\">\n <p class=\"metric-label\">Total Jobs</p>\n <p class=\"metric-value total\">{{total_jobs}}</p>\n </div>\n <div class=\"metric-card\">\n <p class=\"metric-label\">Success Rate</p>\n <p class=\"metric-value success\">{{success_rate}}%</p>\n </div>\n </div>\n\n <!-- Detailed Metrics Table -->\n <div class=\"metrics-table\">\n <table>\n <tr>\n <th>Metric</th>\n <th>Value</th>\n </tr>\n <tr>\n <td class=\"metric-name\">Completed Jobs</td>\n <td class=\"metric-value-cell\">{{completed_jobs}}</td>\n </tr>\n <tr>\n <td class=\"metric-name\">Failed Jobs</td>\n <td class=\"metric-value-cell failed\">{{failed_jobs}}</td>\n </tr>\n <tr>\n <td class=\"metric-name\">Avg Processing Time</td>\n <td class=\"metric-value-cell\">{{avg_processing_time}}</td>\n </tr>\n <tr>\n <td class=\"metric-name\">Active Workers</td>\n <td class=\"metric-value-cell\">{{active_workers}}</td>\n </tr>\n </table>\n </div>\n\n <!-- CTA Button -->\n <div class=\"button-container\">\n <a href=\"{{dashboard_url}}\" class=\"report-button\">View Full Report</a>\n </div>\n </div>\n\n <!-- Footer -->\n <div class=\"footer\">\n <p>© {{year}} {{APP_NAME}}. All rights reserved.</p>\n </div>\n </div>\n </body>\n</html>";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=performance-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-report.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mail/templates/performance-report.ts"],"names":[],"mappings":";AAAA,wBAiQS"}
|