@zintrust/core 0.1.41 → 0.1.43
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/app/Controllers/AuthController.d.ts +10 -0
- package/app/Controllers/AuthController.d.ts.map +1 -0
- package/app/Controllers/AuthController.js +201 -0
- package/app/Controllers/UserController.d.ts +9 -0
- package/app/Controllers/UserController.d.ts.map +1 -0
- package/app/Controllers/UserController.js +8 -0
- package/app/Controllers/UserQueryBuilderController.d.ts +16 -0
- package/app/Controllers/UserQueryBuilderController.d.ts.map +1 -0
- package/app/Controllers/UserQueryBuilderController.js +404 -0
- package/app/Middleware/ProfilerMiddleware.d.ts +12 -0
- package/app/Middleware/ProfilerMiddleware.d.ts.map +1 -0
- package/app/Middleware/ProfilerMiddleware.js +47 -0
- package/app/Middleware/index.d.ts +59 -0
- package/app/Middleware/index.d.ts.map +1 -0
- package/app/Middleware/index.js +215 -0
- package/app/Models/Post.d.ts +14 -0
- package/app/Models/Post.d.ts.map +1 -0
- package/app/Models/Post.js +27 -0
- package/app/Models/User.d.ts +14 -0
- package/app/Models/User.d.ts.map +1 -0
- package/app/Models/User.js +44 -0
- package/app/Schedules/JobTracking.d.ts +3 -0
- package/app/Schedules/JobTracking.d.ts.map +1 -0
- package/app/Schedules/JobTracking.js +13 -0
- package/app/Schedules/index.d.ts +2 -0
- package/app/Schedules/index.d.ts.map +1 -0
- package/app/Schedules/index.js +1 -0
- package/app/Toolkit/Broadcast/sendBroadcast.d.ts +6 -0
- package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +1 -0
- package/app/Toolkit/Broadcast/sendBroadcast.js +5 -0
- package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +6 -0
- package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +1 -0
- package/app/Toolkit/Mail/sendWelcomeEmail.js +20 -0
- package/app/Toolkit/Notification/sendSlackNotification.d.ts +8 -0
- package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +1 -0
- package/app/Toolkit/Notification/sendSlackNotification.js +5 -0
- package/app/Toolkit/Notification/sendSms.d.ts +6 -0
- package/app/Toolkit/Notification/sendSms.d.ts.map +1 -0
- package/app/Toolkit/Notification/sendSms.js +5 -0
- package/app/Types/controller.d.ts +42 -0
- package/app/Types/controller.d.ts.map +1 -0
- package/app/Types/controller.js +1 -0
- package/config/broadcast.d.ts +38 -0
- package/config/broadcast.d.ts.map +1 -0
- package/config/broadcast.js +37 -0
- package/config/cache.d.ts +40 -0
- package/config/cache.d.ts.map +1 -0
- package/config/cache.js +39 -0
- package/config/database.d.ts +58 -0
- package/config/database.d.ts.map +1 -0
- package/config/database.js +65 -0
- package/config/mail.d.ts +51 -0
- package/config/mail.d.ts.map +1 -0
- package/config/mail.js +69 -0
- package/config/middleware.d.ts +11 -0
- package/config/middleware.d.ts.map +1 -0
- package/config/middleware.js +30 -0
- package/config/notification.d.ts +33 -0
- package/config/notification.d.ts.map +1 -0
- package/config/notification.js +33 -0
- package/config/queue.d.ts +55 -0
- package/config/queue.d.ts.map +1 -0
- package/config/queue.js +87 -0
- package/config/storage.d.ts +59 -0
- package/config/storage.d.ts.map +1 -0
- package/config/storage.js +59 -0
- package/config/workers.d.ts +54 -0
- package/config/workers.d.ts.map +1 -0
- package/config/workers.js +83 -0
- package/package.json +27 -5
- package/packages/cloudflare-d1-proxy/src/index.d.ts +48 -0
- package/packages/cloudflare-d1-proxy/src/index.d.ts.map +1 -0
- package/packages/cloudflare-d1-proxy/src/index.js +387 -0
- package/packages/cloudflare-kv-proxy/src/index.d.ts +44 -0
- package/packages/cloudflare-kv-proxy/src/index.d.ts.map +1 -0
- package/packages/cloudflare-kv-proxy/src/index.js +325 -0
- package/packages/queue-monitor/src/QueueMonitoringService.d.ts +35 -0
- package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +1 -0
- package/packages/queue-monitor/src/QueueMonitoringService.js +194 -0
- package/packages/queue-monitor/src/connection.d.ts +3 -0
- package/packages/queue-monitor/src/connection.d.ts.map +1 -0
- package/packages/queue-monitor/src/connection.js +1 -0
- package/packages/queue-monitor/src/dashboard-ui.d.ts +7 -0
- package/packages/queue-monitor/src/dashboard-ui.d.ts.map +1 -0
- package/packages/queue-monitor/src/dashboard-ui.js +997 -0
- package/packages/queue-monitor/src/driver.d.ts +15 -0
- package/packages/queue-monitor/src/driver.d.ts.map +1 -0
- package/packages/queue-monitor/src/driver.js +115 -0
- package/packages/queue-monitor/src/index.d.ts +71 -0
- package/packages/queue-monitor/src/index.d.ts.map +1 -0
- package/packages/queue-monitor/src/index.js +296 -0
- package/packages/queue-monitor/src/metrics.d.ts +27 -0
- package/packages/queue-monitor/src/metrics.d.ts.map +1 -0
- package/packages/queue-monitor/src/metrics.js +92 -0
- package/packages/queue-monitor/src/worker.d.ts +8 -0
- package/packages/queue-monitor/src/worker.d.ts.map +1 -0
- package/packages/queue-monitor/src/worker.js +35 -0
- package/packages/queue-redis/src/BullMQRedisQueue.d.ts +26 -0
- package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +1 -0
- package/packages/queue-redis/src/BullMQRedisQueue.js +463 -0
- package/packages/queue-redis/src/HttpQueueDriver.d.ts +18 -0
- package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +1 -0
- package/packages/queue-redis/src/HttpQueueDriver.js +249 -0
- package/packages/queue-redis/src/QueueHttpGateway.d.ts +16 -0
- package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +1 -0
- package/packages/queue-redis/src/QueueHttpGateway.js +217 -0
- package/packages/queue-redis/src/RedisPublishClient.d.ts +14 -0
- package/packages/queue-redis/src/RedisPublishClient.d.ts.map +1 -0
- package/packages/queue-redis/src/RedisPublishClient.js +251 -0
- package/packages/queue-redis/src/index.d.ts +12 -0
- package/packages/queue-redis/src/index.d.ts.map +1 -0
- package/packages/queue-redis/src/index.js +10 -0
- package/packages/queue-redis/src/register.d.ts +6 -0
- package/packages/queue-redis/src/register.d.ts.map +1 -0
- package/packages/queue-redis/src/register.js +21 -0
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +11 -0
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +1 -0
- package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +32 -0
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +11 -0
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +1 -0
- package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +46 -0
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +7 -0
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +1 -0
- package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +44 -0
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +7 -0
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +1 -0
- package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +104 -0
- package/packages/workers/src/AnomalyDetection.d.ts +107 -0
- package/packages/workers/src/AnomalyDetection.d.ts.map +1 -0
- package/packages/workers/src/AnomalyDetection.js +329 -0
- package/packages/workers/src/AutoScaler.d.ts +128 -0
- package/packages/workers/src/AutoScaler.d.ts.map +1 -0
- package/packages/workers/src/AutoScaler.js +425 -0
- package/packages/workers/src/BroadcastWorker.d.ts +24 -0
- package/packages/workers/src/BroadcastWorker.d.ts.map +1 -0
- package/packages/workers/src/BroadcastWorker.js +24 -0
- package/packages/workers/src/CanaryController.d.ts +104 -0
- package/packages/workers/src/CanaryController.d.ts.map +1 -0
- package/packages/workers/src/CanaryController.js +424 -0
- package/packages/workers/src/ChaosEngineering.d.ts +80 -0
- package/packages/workers/src/ChaosEngineering.d.ts.map +1 -0
- package/packages/workers/src/ChaosEngineering.js +229 -0
- package/packages/workers/src/CircuitBreaker.d.ts +107 -0
- package/packages/workers/src/CircuitBreaker.d.ts.map +1 -0
- package/packages/workers/src/CircuitBreaker.js +374 -0
- package/packages/workers/src/ClusterLock.d.ts +91 -0
- package/packages/workers/src/ClusterLock.d.ts.map +1 -0
- package/packages/workers/src/ClusterLock.js +397 -0
- package/packages/workers/src/ComplianceManager.d.ts +178 -0
- package/packages/workers/src/ComplianceManager.d.ts.map +1 -0
- package/packages/workers/src/ComplianceManager.js +556 -0
- package/packages/workers/src/DatacenterOrchestrator.d.ts +134 -0
- package/packages/workers/src/DatacenterOrchestrator.d.ts.map +1 -0
- package/packages/workers/src/DatacenterOrchestrator.js +404 -0
- package/packages/workers/src/DeadLetterQueue.d.ts +123 -0
- package/packages/workers/src/DeadLetterQueue.d.ts.map +1 -0
- package/packages/workers/src/DeadLetterQueue.js +544 -0
- package/packages/workers/src/HealthMonitor.d.ts +43 -0
- package/packages/workers/src/HealthMonitor.d.ts.map +1 -0
- package/packages/workers/src/HealthMonitor.js +312 -0
- package/packages/workers/src/MultiQueueWorker.d.ts +90 -0
- package/packages/workers/src/MultiQueueWorker.d.ts.map +1 -0
- package/packages/workers/src/MultiQueueWorker.js +282 -0
- package/packages/workers/src/NotificationWorker.d.ts +24 -0
- package/packages/workers/src/NotificationWorker.d.ts.map +1 -0
- package/packages/workers/src/NotificationWorker.js +23 -0
- package/packages/workers/src/Observability.d.ts +154 -0
- package/packages/workers/src/Observability.d.ts.map +1 -0
- package/packages/workers/src/Observability.js +538 -0
- package/packages/workers/src/PluginManager.d.ts +124 -0
- package/packages/workers/src/PluginManager.d.ts.map +1 -0
- package/packages/workers/src/PluginManager.js +392 -0
- package/packages/workers/src/PriorityQueue.d.ts +118 -0
- package/packages/workers/src/PriorityQueue.d.ts.map +1 -0
- package/packages/workers/src/PriorityQueue.js +276 -0
- package/packages/workers/src/ResourceMonitor.d.ts +165 -0
- package/packages/workers/src/ResourceMonitor.d.ts.map +1 -0
- package/packages/workers/src/ResourceMonitor.js +632 -0
- package/packages/workers/src/SLAMonitor.d.ts +111 -0
- package/packages/workers/src/SLAMonitor.d.ts.map +1 -0
- package/packages/workers/src/SLAMonitor.js +274 -0
- package/packages/workers/src/WorkerFactory.d.ts +218 -0
- package/packages/workers/src/WorkerFactory.d.ts.map +1 -0
- package/packages/workers/src/WorkerFactory.js +2253 -0
- package/packages/workers/src/WorkerInit.d.ts +86 -0
- package/packages/workers/src/WorkerInit.d.ts.map +1 -0
- package/packages/workers/src/WorkerInit.js +307 -0
- package/packages/workers/src/WorkerMetrics.d.ts +116 -0
- package/packages/workers/src/WorkerMetrics.d.ts.map +1 -0
- package/packages/workers/src/WorkerMetrics.js +570 -0
- package/packages/workers/src/WorkerRegistry.d.ts +152 -0
- package/packages/workers/src/WorkerRegistry.d.ts.map +1 -0
- package/packages/workers/src/WorkerRegistry.js +396 -0
- package/packages/workers/src/WorkerShutdown.d.ts +70 -0
- package/packages/workers/src/WorkerShutdown.d.ts.map +1 -0
- package/packages/workers/src/WorkerShutdown.js +185 -0
- package/packages/workers/src/WorkerVersioning.d.ts +108 -0
- package/packages/workers/src/WorkerVersioning.d.ts.map +1 -0
- package/packages/workers/src/WorkerVersioning.js +300 -0
- package/packages/workers/src/config/workerConfig.d.ts +5 -0
- package/packages/workers/src/config/workerConfig.d.ts.map +1 -0
- package/packages/workers/src/config/workerConfig.js +25 -0
- package/packages/workers/src/createQueueWorker.d.ts +26 -0
- package/packages/workers/src/createQueueWorker.d.ts.map +1 -0
- package/packages/workers/src/createQueueWorker.js +367 -0
- package/packages/workers/src/dashboard/index.d.ts +2 -0
- package/packages/workers/src/dashboard/index.d.ts.map +1 -0
- package/packages/workers/src/dashboard/index.js +1 -0
- package/packages/workers/src/dashboard/types.d.ts +123 -0
- package/packages/workers/src/dashboard/types.d.ts.map +1 -0
- package/packages/workers/src/dashboard/types.js +1 -0
- package/packages/workers/src/dashboard/workers-api.d.ts +5 -0
- package/packages/workers/src/dashboard/workers-api.d.ts.map +1 -0
- package/packages/workers/src/dashboard/workers-api.js +738 -0
- package/packages/workers/src/helper/index.d.ts +6 -0
- package/packages/workers/src/helper/index.d.ts.map +1 -0
- package/packages/workers/src/helper/index.js +10 -0
- package/packages/workers/src/http/WorkerApiController.d.ts +39 -0
- package/packages/workers/src/http/WorkerApiController.d.ts.map +1 -0
- package/packages/workers/src/http/WorkerApiController.js +313 -0
- package/packages/workers/src/http/WorkerController.d.ts +375 -0
- package/packages/workers/src/http/WorkerController.d.ts.map +1 -0
- package/packages/workers/src/http/WorkerController.js +1454 -0
- package/packages/workers/src/http/WorkerMonitoringService.d.ts +12 -0
- package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +1 -0
- package/packages/workers/src/http/WorkerMonitoringService.js +89 -0
- package/packages/workers/src/http/middleware/CustomValidation.d.ts +93 -0
- package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/CustomValidation.js +270 -0
- package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +4 -0
- package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/DatacenterValidator.js +94 -0
- package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +8 -0
- package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/EditWorkerValidation.js +56 -0
- package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +4 -0
- package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/FeaturesValidator.js +60 -0
- package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +32 -0
- package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/InfrastructureValidator.js +226 -0
- package/packages/workers/src/http/middleware/OptionsValidator.d.ts +4 -0
- package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/OptionsValidator.js +112 -0
- package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +8 -0
- package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/PayloadSanitizer.js +42 -0
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +140 -0
- package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/QueueNameSanitizer.js +45 -0
- package/packages/workers/src/http/middleware/ValidateDriver.d.ts +8 -0
- package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/ValidateDriver.js +20 -0
- package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/VersionSanitizer.js +25 -0
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +4 -0
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +46 -0
- package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +28 -0
- package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +1 -0
- package/packages/workers/src/http/middleware/WorkerValidationChain.js +186 -0
- package/packages/workers/src/index.d.ts +47 -0
- package/packages/workers/src/index.d.ts.map +1 -0
- package/packages/workers/src/index.js +48 -0
- package/packages/workers/src/routes/workers.d.ts +13 -0
- package/packages/workers/src/routes/workers.d.ts.map +1 -0
- package/packages/workers/src/routes/workers.js +126 -0
- package/packages/workers/src/storage/WorkerStore.d.ts +52 -0
- package/packages/workers/src/storage/WorkerStore.d.ts.map +1 -0
- package/packages/workers/src/storage/WorkerStore.js +259 -0
- package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +47 -0
- package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +1 -0
- package/packages/workers/src/telemetry/api/TelemetryAPI.js +219 -0
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +18 -0
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +1 -0
- package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +140 -0
- package/packages/workers/src/telemetry/components/AlertPanel.d.ts +2 -0
- package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/AlertPanel.js +13 -0
- package/packages/workers/src/telemetry/components/CostTracking.d.ts +2 -0
- package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/CostTracking.js +14 -0
- package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +2 -0
- package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/ResourceUsageChart.js +11 -0
- package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +2 -0
- package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +1 -0
- package/packages/workers/src/telemetry/components/WorkerHealthChart.js +11 -0
- package/packages/workers/src/telemetry/index.d.ts +16 -0
- package/packages/workers/src/telemetry/index.d.ts.map +1 -0
- package/packages/workers/src/telemetry/index.js +60 -0
- package/packages/workers/src/telemetry/routes/dashboard.d.ts +7 -0
- package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +1 -0
- package/packages/workers/src/telemetry/routes/dashboard.js +608 -0
- package/packages/workers/src/type.d.ts +77 -0
- package/packages/workers/src/type.d.ts.map +1 -0
- package/packages/workers/src/type.js +1 -0
- package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +5 -0
- package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +1 -0
- package/packages/workers/src/ui/router/EmbeddedAssets.js +13 -0
- package/packages/workers/src/ui/router/ui.d.ts +4 -0
- package/packages/workers/src/ui/router/ui.d.ts.map +1 -0
- package/packages/workers/src/ui/router/ui.js +208 -0
- package/packages/workers/src/ui/types/worker-ui.d.ts +230 -0
- package/packages/workers/src/ui/types/worker-ui.d.ts.map +1 -0
- package/packages/workers/src/ui/types/worker-ui.js +5 -0
- package/routes/api.d.ts +7 -0
- package/routes/api.d.ts.map +1 -0
- package/routes/api.js +129 -0
- package/routes/broadcast.d.ts +9 -0
- package/routes/broadcast.d.ts.map +1 -0
- package/routes/broadcast.js +27 -0
- package/routes/storage.d.ts +4 -0
- package/routes/storage.d.ts.map +1 -0
- package/routes/storage.js +35 -0
- package/src/boot/bootstrap.js +27 -11
- package/src/boot/registry/runtime.d.ts.map +1 -1
- package/src/boot/registry/runtime.js +11 -0
- package/src/cache/Cache.d.ts.map +1 -1
- package/src/cache/Cache.js +40 -8
- package/src/cache/drivers/KVRemoteDriver.d.ts +1 -1
- package/src/cache/drivers/KVRemoteDriver.d.ts.map +1 -1
- package/src/cache/drivers/KVRemoteDriver.js +259 -44
- package/src/cache/drivers/MemoryDriver.d.ts.map +1 -1
- package/src/cache/drivers/MemoryDriver.js +10 -2
- package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
- package/src/cache/drivers/RedisDriver.js +256 -33
- package/src/cli/CLI.d.ts.map +1 -1
- package/src/cli/CLI.js +12 -0
- package/src/cli/commands/ConfigCommand.d.ts.map +1 -1
- package/src/cli/commands/ConfigCommand.js +3 -5
- package/src/cli/commands/D1LearnCommand.d.ts +9 -0
- package/src/cli/commands/D1LearnCommand.d.ts.map +1 -0
- package/src/cli/commands/D1LearnCommand.js +143 -0
- package/src/cli/commands/D1MigrateCommand.d.ts.map +1 -1
- package/src/cli/commands/D1MigrateCommand.js +55 -16
- package/src/cli/commands/InitContainerCommand.d.ts.map +1 -1
- package/src/cli/commands/InitContainerCommand.js +30 -15
- package/src/cli/commands/InitEcosystemCommand.d.ts +6 -0
- package/src/cli/commands/InitEcosystemCommand.d.ts.map +1 -0
- package/src/cli/commands/InitEcosystemCommand.js +51 -0
- package/src/cli/commands/MigrateCommand.d.ts.map +1 -1
- package/src/cli/commands/MigrateCommand.js +78 -36
- package/src/cli/commands/MigrateWorkerCommand.d.ts.map +1 -1
- package/src/cli/commands/MigrateWorkerCommand.js +36 -2
- package/src/cli/commands/NewCommand.d.ts.map +1 -1
- package/src/cli/commands/NewCommand.js +33 -0
- package/src/cli/commands/PutCommand.d.ts +6 -0
- package/src/cli/commands/PutCommand.d.ts.map +1 -0
- package/src/cli/commands/PutCommand.js +173 -0
- package/src/cli/commands/QueueRecoveryCommand.d.ts.map +1 -1
- package/src/cli/commands/QueueRecoveryCommand.js +113 -14
- package/src/cli/commands/ScheduleListCommand.d.ts +6 -0
- package/src/cli/commands/ScheduleListCommand.d.ts.map +1 -0
- package/src/cli/commands/ScheduleListCommand.js +62 -0
- package/src/cli/commands/ScheduleRunCommand.d.ts +6 -0
- package/src/cli/commands/ScheduleRunCommand.d.ts.map +1 -0
- package/src/cli/commands/ScheduleRunCommand.js +32 -0
- package/src/cli/commands/ScheduleStartCommand.d.ts +6 -0
- package/src/cli/commands/ScheduleStartCommand.d.ts.map +1 -0
- package/src/cli/commands/ScheduleStartCommand.js +40 -0
- package/src/cli/commands/SecretsCommand.d.ts.map +1 -1
- package/src/cli/commands/SecretsCommand.js +2 -2
- package/src/cli/commands/StartCommand.d.ts.map +1 -1
- package/src/cli/commands/StartCommand.js +23 -1
- package/src/cli/commands/schedule/ScheduleCliSupport.d.ts +6 -0
- package/src/cli/commands/schedule/ScheduleCliSupport.d.ts.map +1 -0
- package/src/cli/commands/schedule/ScheduleCliSupport.js +55 -0
- package/src/cli/config/ConfigManager.d.ts.map +1 -1
- package/src/cli/config/ConfigManager.js +8 -1
- package/src/cli/d1/D1SqlMigrations.d.ts.map +1 -1
- package/src/cli/d1/D1SqlMigrations.js +11 -1
- package/src/cli/d1/WranglerConfig.d.ts.map +1 -1
- package/src/cli/d1/WranglerConfig.js +34 -2
- package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/ProjectScaffolder.js +65 -73
- package/src/cli/services/VersionChecker.d.ts.map +1 -1
- package/src/cli/services/VersionChecker.js +5 -1
- package/src/cli/utils/DatabaseCliUtils.d.ts.map +1 -1
- package/src/cli/utils/DatabaseCliUtils.js +6 -1
- package/src/cli/utils/DistPackager.d.ts.map +1 -1
- package/src/cli/utils/DistPackager.js +25 -0
- package/src/cli/utils/EnvFileLoader.d.ts +1 -0
- package/src/cli/utils/EnvFileLoader.d.ts.map +1 -1
- package/src/cli/utils/EnvFileLoader.js +47 -14
- package/src/cli.d.ts +5 -0
- package/src/cli.d.ts.map +1 -0
- package/src/cli.js +4 -0
- package/src/collections/index.d.ts +2 -2
- package/src/collections/index.d.ts.map +1 -1
- package/src/collections/index.js +1 -1
- package/src/common/RemoteSignedJson.d.ts.map +1 -1
- package/src/common/RemoteSignedJson.js +58 -25
- package/src/common/utility.d.ts.map +1 -1
- package/src/common/utility.js +2 -6
- package/src/config/cache.js +1 -1
- package/src/config/cloudflare.d.ts.map +1 -1
- package/src/config/cloudflare.js +19 -8
- package/src/config/env.d.ts +7 -0
- package/src/config/env.d.ts.map +1 -1
- package/src/config/env.js +10 -2
- package/src/config/queue.js +1 -1
- package/src/functions/cloudflare.d.ts.map +1 -1
- package/src/functions/cloudflare.js +4 -2
- package/src/helper/index.d.ts +225 -0
- package/src/helper/index.d.ts.map +1 -0
- package/src/helper/index.js +347 -0
- package/src/index.d.ts +3 -6
- package/src/index.d.ts.map +1 -1
- package/src/index.js +7 -9
- package/src/middleware/JwtAuthMiddleware.d.ts.map +1 -1
- package/src/middleware/JwtAuthMiddleware.js +11 -5
- package/src/migrations/MigrationDiscovery.d.ts.map +1 -1
- package/src/migrations/MigrationDiscovery.js +2 -1
- package/src/orm/DatabaseAdapter.d.ts +1 -0
- package/src/orm/DatabaseAdapter.d.ts.map +1 -1
- package/src/orm/SchemaStatemenWriter.d.ts +15 -0
- package/src/orm/SchemaStatemenWriter.d.ts.map +1 -0
- package/src/orm/SchemaStatemenWriter.js +78 -0
- package/src/orm/adapters/D1Adapter.d.ts.map +1 -1
- package/src/orm/adapters/D1Adapter.js +52 -2
- package/src/orm/adapters/D1RemoteAdapter.d.ts.map +1 -1
- package/src/orm/adapters/D1RemoteAdapter.js +137 -89
- package/src/orm/adapters/MySQLProxyAdapter.d.ts.map +1 -1
- package/src/orm/adapters/MySQLProxyAdapter.js +100 -81
- package/src/orm/adapters/PostgreSQLProxyAdapter.d.ts.map +1 -1
- package/src/orm/adapters/PostgreSQLProxyAdapter.js +26 -10
- package/src/orm/adapters/SqlProxyAdapterUtils.d.ts.map +1 -1
- package/src/orm/adapters/SqlProxyAdapterUtils.js +2 -1
- package/src/orm/adapters/SqlProxyRegistryMode.d.ts +12 -0
- package/src/orm/adapters/SqlProxyRegistryMode.d.ts.map +1 -0
- package/src/orm/adapters/SqlProxyRegistryMode.js +24 -0
- package/src/orm/adapters/SqlServerProxyAdapter.d.ts +3 -0
- package/src/orm/adapters/SqlServerProxyAdapter.d.ts.map +1 -1
- package/src/orm/adapters/SqlServerProxyAdapter.js +125 -117
- package/src/orm/migrations/MigrationStore.js +1 -1
- package/src/proxy/ProxyRequestParsing.d.ts +9 -0
- package/src/proxy/ProxyRequestParsing.d.ts.map +1 -0
- package/src/proxy/ProxyRequestParsing.js +16 -0
- package/src/proxy/RequestValidator.d.ts.map +1 -1
- package/src/proxy/RequestValidator.js +2 -1
- package/src/proxy/SigningService.js +2 -2
- package/src/proxy/SqlProxyDbOverrides.d.ts +17 -0
- package/src/proxy/SqlProxyDbOverrides.d.ts.map +1 -0
- package/src/proxy/SqlProxyDbOverrides.js +1 -0
- package/src/proxy/SqlProxyServerDeps.d.ts +12 -0
- package/src/proxy/SqlProxyServerDeps.d.ts.map +1 -0
- package/src/proxy/SqlProxyServerDeps.js +9 -0
- package/src/proxy/StatementPayloadValidator.d.ts +13 -0
- package/src/proxy/StatementPayloadValidator.d.ts.map +1 -0
- package/src/proxy/StatementPayloadValidator.js +18 -0
- package/src/proxy/StatementRegistryLoader.d.ts +2 -0
- package/src/proxy/StatementRegistryLoader.d.ts.map +1 -0
- package/src/proxy/StatementRegistryLoader.js +36 -0
- package/src/proxy/StatementRegistryResolver.d.ts +15 -0
- package/src/proxy/StatementRegistryResolver.d.ts.map +1 -0
- package/src/proxy/StatementRegistryResolver.js +34 -0
- package/src/proxy/d1/ZintrustD1Proxy.d.ts +2 -1
- package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -1
- package/src/proxy/d1/ZintrustD1Proxy.js +2 -1
- package/src/proxy/isMutatingSql.d.ts +2 -0
- package/src/proxy/isMutatingSql.d.ts.map +1 -0
- package/src/proxy/isMutatingSql.js +12 -0
- package/src/proxy/kv/ZintrustKvProxy.d.ts +2 -1
- package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -1
- package/src/proxy/kv/ZintrustKvProxy.js +2 -1
- package/src/proxy/mysql/MySqlProxyServer.d.ts +2 -8
- package/src/proxy/mysql/MySqlProxyServer.d.ts.map +1 -1
- package/src/proxy/mysql/MySqlProxyServer.js +84 -51
- package/src/proxy/postgres/PostgresProxyServer.d.ts +2 -8
- package/src/proxy/postgres/PostgresProxyServer.d.ts.map +1 -1
- package/src/proxy/postgres/PostgresProxyServer.js +86 -48
- package/src/proxy/smtp/SmtpProxyServer.d.ts.map +1 -1
- package/src/proxy/smtp/SmtpProxyServer.js +6 -5
- package/src/proxy/sqlserver/SqlServerProxyServer.d.ts +2 -8
- package/src/proxy/sqlserver/SqlServerProxyServer.d.ts.map +1 -1
- package/src/proxy/sqlserver/SqlServerProxyServer.js +84 -49
- package/src/proxy.d.ts +4 -0
- package/src/proxy.d.ts.map +1 -0
- package/src/proxy.js +3 -0
- package/src/runtime/RuntimeAdapter.d.ts.map +1 -1
- package/src/runtime/RuntimeAdapter.js +30 -12
- package/src/runtime/adapters/CloudflareAdapter.d.ts.map +1 -1
- package/src/runtime/adapters/CloudflareAdapter.js +15 -4
- package/src/scheduler/Schedule.d.ts +36 -0
- package/src/scheduler/Schedule.d.ts.map +1 -0
- package/src/scheduler/Schedule.js +197 -0
- package/src/scheduler/ScheduleHttpGateway.d.ts +8 -0
- package/src/scheduler/ScheduleHttpGateway.d.ts.map +1 -0
- package/src/scheduler/ScheduleHttpGateway.js +196 -0
- package/src/scheduler/ScheduleRunner.d.ts +6 -0
- package/src/scheduler/ScheduleRunner.d.ts.map +1 -1
- package/src/scheduler/ScheduleRunner.js +166 -29
- package/src/scheduler/SchedulerRuntime.d.ts +15 -0
- package/src/scheduler/SchedulerRuntime.d.ts.map +1 -0
- package/src/scheduler/SchedulerRuntime.js +79 -0
- package/src/scheduler/cron/Cron.d.ts +19 -0
- package/src/scheduler/cron/Cron.d.ts.map +1 -0
- package/src/scheduler/cron/Cron.js +200 -0
- package/src/scheduler/leader/SchedulerLeader.d.ts +14 -0
- package/src/scheduler/leader/SchedulerLeader.d.ts.map +1 -0
- package/src/scheduler/leader/SchedulerLeader.js +187 -0
- package/src/scheduler/state/ScheduleStateStore.d.ts +27 -0
- package/src/scheduler/state/ScheduleStateStore.d.ts.map +1 -0
- package/src/scheduler/state/ScheduleStateStore.js +27 -0
- package/src/scheduler/types.d.ts +10 -0
- package/src/scheduler/types.d.ts.map +1 -1
- package/src/schedules/index.d.ts +1 -0
- package/src/schedules/index.d.ts.map +1 -1
- package/src/schedules/index.js +1 -0
- package/src/schedules/job-tracking-cleanup.d.ts +4 -0
- package/src/schedules/job-tracking-cleanup.d.ts.map +1 -0
- package/src/schedules/job-tracking-cleanup.js +116 -0
- package/src/schedules/log-cleanup.d.ts +1 -2
- package/src/schedules/log-cleanup.d.ts.map +1 -1
- package/src/schedules/log-cleanup.js +12 -15
- package/src/security/Sanitizer.d.ts.map +1 -1
- package/src/security/Sanitizer.js +1 -9
- package/src/security/SignedRequest.d.ts.map +1 -1
- package/src/security/SignedRequest.js +2 -2
- package/src/security/TokenRevocation.d.ts +19 -2
- package/src/security/TokenRevocation.d.ts.map +1 -1
- package/src/security/TokenRevocation.js +558 -30
- package/src/templates/docker/docker-compose.ecosystem.yml.tpl +301 -0
- package/src/templates/docker/docker-compose.schedules.yml.tpl +84 -0
- package/src/templates/project/basic/app/Controllers/AuthController.ts.tpl +11 -3
- package/src/templates/project/basic/app/Schedules/index.ts.tpl +0 -0
- package/src/templates/project/basic/config/database.ts.tpl +1 -1
- package/src/templates/project/basic/config/middleware.ts.tpl +23 -22
- package/src/templates/project/basic/wrangler.jsonc.tpl +28 -0
- package/src/toolkit/Secrets/Manifest.d.ts.map +1 -1
- package/src/toolkit/Secrets/Manifest.js +5 -7
- package/src/tools/mail/drivers/Smtp.d.ts.map +1 -1
- package/src/tools/mail/drivers/Smtp.js +7 -1
- package/src/tools/queue/JobReconciliationRunner.d.ts.map +1 -1
- package/src/tools/queue/JobReconciliationRunner.js +7 -39
- package/src/tools/queue/JobRecoveryDaemon.d.ts.map +1 -1
- package/src/tools/queue/JobRecoveryDaemon.js +116 -18
- package/src/tools/queue/JobStateTracker.d.ts +10 -1
- package/src/tools/queue/JobStateTracker.d.ts.map +1 -1
- package/src/tools/queue/JobStateTracker.js +24 -2
- package/src/tools/queue/JobStateTrackerDbPersistence.d.ts.map +1 -1
- package/src/tools/queue/JobStateTrackerDbPersistence.js +93 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ErrorFactory } from '../exceptions/ZintrustError.js';
|
|
2
|
+
import { isObject } from '../helper/index.js';
|
|
2
3
|
import { normalizeSigningCredentials } from '../proxy/SigningService.js';
|
|
3
4
|
import { SignedRequest } from '../security/SignedRequest.js';
|
|
4
5
|
const joinUrl = (baseUrl, path) => {
|
|
@@ -20,6 +21,22 @@ const asJson = async (resp) => {
|
|
|
20
21
|
return { message: text };
|
|
21
22
|
}
|
|
22
23
|
};
|
|
24
|
+
const isRecord = (value) => isObject(value);
|
|
25
|
+
const describeProxyError = (details) => {
|
|
26
|
+
// Expected Worker proxy error shape: { status: number, body: { code: string, message: string } }
|
|
27
|
+
if (!isRecord(details))
|
|
28
|
+
return '';
|
|
29
|
+
const body = details['body'];
|
|
30
|
+
if (!isRecord(body))
|
|
31
|
+
return '';
|
|
32
|
+
const code = typeof body['code'] === 'string' ? body['code'] : '';
|
|
33
|
+
const message = typeof body['message'] === 'string' ? body['message'] : '';
|
|
34
|
+
if (code === '' && message === '')
|
|
35
|
+
return '';
|
|
36
|
+
if (code !== '' && message !== '')
|
|
37
|
+
return `${code}: ${message}`;
|
|
38
|
+
return code === '' ? message : code;
|
|
39
|
+
};
|
|
23
40
|
const normalizeSettings = (settings) => {
|
|
24
41
|
const creds = normalizeSigningCredentials({
|
|
25
42
|
keyId: settings.keyId,
|
|
@@ -35,7 +52,7 @@ const requireConfigured = (settings) => {
|
|
|
35
52
|
throw ErrorFactory.createConfigError(settings.missingCredentialsMessage);
|
|
36
53
|
}
|
|
37
54
|
};
|
|
38
|
-
const
|
|
55
|
+
const getNativeTimeoutSignal = (timeoutMs) => {
|
|
39
56
|
if (timeoutMs <= 0)
|
|
40
57
|
return undefined;
|
|
41
58
|
const timeout = AbortSignal.timeout;
|
|
@@ -57,6 +74,36 @@ const buildSigningUrl = (url, settings) => {
|
|
|
57
74
|
}
|
|
58
75
|
return signingUrl;
|
|
59
76
|
};
|
|
77
|
+
const throwForNonOkResponse = async (resp, settings) => {
|
|
78
|
+
const details = await asJson(resp);
|
|
79
|
+
switch (resp.status) {
|
|
80
|
+
case 401:
|
|
81
|
+
throw ErrorFactory.createUnauthorizedError(settings.messages.unauthorized, details);
|
|
82
|
+
case 403:
|
|
83
|
+
throw ErrorFactory.createForbiddenError(settings.messages.forbidden, details);
|
|
84
|
+
case 429:
|
|
85
|
+
throw ErrorFactory.createSecurityError(settings.messages.rateLimited, details);
|
|
86
|
+
default: {
|
|
87
|
+
if (resp.status >= 400 && resp.status < 500) {
|
|
88
|
+
throw ErrorFactory.createValidationError(settings.messages.rejected, details);
|
|
89
|
+
}
|
|
90
|
+
const extra = describeProxyError(details);
|
|
91
|
+
const msg = extra === '' ? settings.messages.error : `${settings.messages.error} (${extra})`;
|
|
92
|
+
throw ErrorFactory.createConnectionError(msg, {
|
|
93
|
+
status: resp.status,
|
|
94
|
+
details,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const rethrowRequestError = (error, settings) => {
|
|
100
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
101
|
+
throw ErrorFactory.createConnectionError(settings.messages.timedOut, {
|
|
102
|
+
timeoutMs: settings.timeoutMs,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
throw error;
|
|
106
|
+
};
|
|
60
107
|
export const RemoteSignedJson = Object.freeze({
|
|
61
108
|
async request(settings, path, payload) {
|
|
62
109
|
const normalized = normalizeSettings(settings);
|
|
@@ -71,41 +118,27 @@ export const RemoteSignedJson = Object.freeze({
|
|
|
71
118
|
keyId: normalized.keyId,
|
|
72
119
|
secret: normalized.secret,
|
|
73
120
|
});
|
|
121
|
+
const nativeSignal = getNativeTimeoutSignal(normalized.timeoutMs);
|
|
122
|
+
if (nativeSignal === undefined && normalized.timeoutMs > 0) {
|
|
123
|
+
throw ErrorFactory.createConfigError('RemoteSignedJson timeout requires AbortSignal.timeout() support in this runtime', { timeoutMs: normalized.timeoutMs });
|
|
124
|
+
}
|
|
74
125
|
try {
|
|
75
126
|
const resp = await fetch(url, {
|
|
76
127
|
method: 'POST',
|
|
77
128
|
headers: { 'Content-Type': 'application/json', ...signed },
|
|
78
129
|
body,
|
|
79
|
-
signal:
|
|
130
|
+
signal: nativeSignal,
|
|
80
131
|
});
|
|
81
132
|
if (!resp.ok) {
|
|
82
|
-
|
|
83
|
-
if (resp.status === 401) {
|
|
84
|
-
throw ErrorFactory.createUnauthorizedError(normalized.messages.unauthorized, details);
|
|
85
|
-
}
|
|
86
|
-
if (resp.status === 403) {
|
|
87
|
-
throw ErrorFactory.createForbiddenError(normalized.messages.forbidden, details);
|
|
88
|
-
}
|
|
89
|
-
if (resp.status === 429) {
|
|
90
|
-
throw ErrorFactory.createSecurityError(normalized.messages.rateLimited, details);
|
|
91
|
-
}
|
|
92
|
-
if (resp.status >= 400 && resp.status < 500) {
|
|
93
|
-
throw ErrorFactory.createValidationError(normalized.messages.rejected, details);
|
|
94
|
-
}
|
|
95
|
-
throw ErrorFactory.createConnectionError(normalized.messages.error, {
|
|
96
|
-
status: resp.status,
|
|
97
|
-
details,
|
|
98
|
-
});
|
|
133
|
+
await throwForNonOkResponse(resp, normalized);
|
|
99
134
|
}
|
|
100
135
|
return (await asJson(resp));
|
|
101
136
|
}
|
|
102
137
|
catch (error) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
throw error;
|
|
138
|
+
return rethrowRequestError(error, normalized);
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
// No timer cleanup needed: uses AbortSignal.timeout() when available.
|
|
109
142
|
}
|
|
110
143
|
},
|
|
111
144
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../../src/common/utility.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../../src/common/utility.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,QAAO,MAG/B,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,MAAM,GAAE,MAAgE,GACvE,MAAM,CAoBR;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,MAAkD,CAAC;AAQ9F,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE/C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAElD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAGpF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKtD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,MAAM,CAqB3D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,MAAM,CAe5D;AAED,eAAO,MAAM,MAAM,QAAO,MAAkC,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACtC,mBAAmB,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5E,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,cAAc,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvD,MAAM,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,SAAS;wBArHU,MAAM;uBA6BL,OAAO,KAAG,MAAM;;;;;;;;;kBAwEvB,MAAM;EA4B9B,CAAC"}
|
package/src/common/utility.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ErrorFactory } from '../exceptions/ZintrustError.js';
|
|
2
|
+
import { isEmpty as isEmptyHelper } from '../helper/index.js';
|
|
2
3
|
import { randomBytes } from '../node-singletons/crypto.js';
|
|
3
4
|
export const generateUuid = () => {
|
|
4
5
|
if (typeof globalThis?.crypto?.randomUUID === 'function')
|
|
@@ -30,12 +31,7 @@ function bytesToHex(bytes) {
|
|
|
30
31
|
return out;
|
|
31
32
|
}
|
|
32
33
|
export function isEmpty(value) {
|
|
33
|
-
return (value
|
|
34
|
-
value === undefined ||
|
|
35
|
-
value === false ||
|
|
36
|
-
value === 0 ||
|
|
37
|
-
value === '' ||
|
|
38
|
-
value === '0');
|
|
34
|
+
return isEmptyHelper(value);
|
|
39
35
|
}
|
|
40
36
|
export function toStr(value) {
|
|
41
37
|
return String(value ?? '');
|
package/src/config/cache.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Caching drivers and settings
|
|
4
4
|
* Sealed namespace for immutability
|
|
5
5
|
*/
|
|
6
|
-
import { Env } from './env.js';
|
|
7
6
|
import { Cloudflare } from './cloudflare.js';
|
|
7
|
+
import { Env } from './env.js';
|
|
8
8
|
import { ErrorFactory } from '../exceptions/ZintrustError.js';
|
|
9
9
|
import { StartupConfigFile, StartupConfigFileRegistry } from '../runtime/StartupConfigFileRegistry.js';
|
|
10
10
|
const getCacheDriver = (config, name) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/config/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/config/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAwFxE,eAAO,MAAM,UAAU;yBAtFG,UAAU,GAAG,IAAI;2BAOb,cAAc,KAAG,WAAW,GAAG,IAAI;iCAwB7B,MAAM,KAAG,WAAW,GAAG,IAAI;iCAa3B,MAAM,KAAG,OAAO;4BA0BvB,aAAa,GAAG,IAAI;yBATrB,MAAM,KAAG,MAAM,GAAG,IAAI;sCAiBX,OAAO;EAgB5C,CAAC"}
|
package/src/config/cloudflare.js
CHANGED
|
@@ -16,19 +16,30 @@ const getD1Binding = (config) => {
|
|
|
16
16
|
if (config.d1 !== undefined && config.d1 !== null)
|
|
17
17
|
return config.d1;
|
|
18
18
|
const env = getWorkersEnv();
|
|
19
|
-
const
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
const candidateNames = ['DB', 'zintrust_db', getWorkersVar('D1_BINDING') ?? ''].filter((name, idx, arr) => name.trim() !== '' && arr.indexOf(name) === idx);
|
|
20
|
+
if (env !== null) {
|
|
21
|
+
for (const name of candidateNames) {
|
|
22
|
+
const binding = env[name];
|
|
23
|
+
if (binding !== undefined && binding !== null)
|
|
24
|
+
return binding;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const globalRef = globalThis;
|
|
28
|
+
for (const name of candidateNames) {
|
|
29
|
+
const binding = globalRef[name];
|
|
30
|
+
if (binding !== undefined && binding !== null)
|
|
31
|
+
return binding;
|
|
32
|
+
}
|
|
25
33
|
return null;
|
|
26
34
|
};
|
|
27
|
-
const getKVBinding = (bindingName
|
|
35
|
+
const getKVBinding = (bindingName) => {
|
|
28
36
|
const env = getWorkersEnv();
|
|
29
37
|
if (env === null)
|
|
30
38
|
return null;
|
|
31
|
-
const
|
|
39
|
+
const resolvedName = typeof bindingName === 'string' && bindingName.trim() !== ''
|
|
40
|
+
? bindingName
|
|
41
|
+
: (getWorkersVar('KV_NAMESPACE') ?? 'CACHE');
|
|
42
|
+
const kv = env[resolvedName];
|
|
32
43
|
return kv ?? null;
|
|
33
44
|
};
|
|
34
45
|
const getR2Binding = (bindingName) => {
|
package/src/config/env.d.ts
CHANGED
|
@@ -171,6 +171,13 @@ export declare const Env: Readonly<{
|
|
|
171
171
|
CSRF_STORE: string;
|
|
172
172
|
CSRF_DRIVER: string;
|
|
173
173
|
CSRF_REDIS_DB: number;
|
|
174
|
+
JWT_REVOCATION_DRIVER: string;
|
|
175
|
+
JWT_REVOCATION_DB_CONNECTION: string;
|
|
176
|
+
JWT_REVOCATION_DB_TABLE: string;
|
|
177
|
+
JWT_REVOCATION_REDIS_DB: number;
|
|
178
|
+
JWT_REVOCATION_REDIS_PREFIX: string;
|
|
179
|
+
JWT_REVOCATION_KV_BINDING: string;
|
|
180
|
+
JWT_REVOCATION_KV_PREFIX: string;
|
|
174
181
|
ENCRYPTION_CIPHER: string;
|
|
175
182
|
ENVIRONMENT: string;
|
|
176
183
|
REQUEST_TIMEOUT: number;
|
package/src/config/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAuBlF,eAAO,MAAM,cAAc,QAAO,WAAW,GAAG,SAAwB,CAAC;AAEzE,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,MAKzE,CAAC;AAGF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAIxD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,cAAc,MAAM,KAAG,MAI1D,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAI7D,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,eAAe,OAAO,KAAG,OAI7D,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,IAGhD,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,IAInC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,QAAQ,SAAS,GAAG,IAAI,KAAG,IAEpD,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAOhD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAKjE,CAAC;AACF,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAKxE,eAAO,MAAM,GAAG;eA3DS,MAAM,iBAAiB,MAAM,KAAG,MAAM;kBAMnC,MAAM,gBAAgB,MAAM,KAAG,MAAM;mBAYpC,MAAM,iBAAiB,OAAO,KAAG,OAAO;oBANvC,MAAM,iBAAiB,MAAM,KAAG,MAAM;eAY3C,MAAM,SAAS,MAAM,KAAG,IAAI;iBAK1B,MAAM,KAAG,IAAI;wBAMN,SAAS,GAAG,IAAI,KAAG,IAAI;oBAI7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;cAgCJ,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAuBlF,eAAO,MAAM,cAAc,QAAO,WAAW,GAAG,SAAwB,CAAC;AAEzE,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,MAKzE,CAAC;AAGF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAIxD,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,cAAc,MAAM,KAAG,MAI1D,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAI7D,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,eAAe,OAAO,KAAG,OAI7D,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,IAGhD,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,IAInC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,QAAQ,SAAS,GAAG,IAAI,KAAG,IAEpD,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAOhD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAKjE,CAAC;AACF,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAKxE,eAAO,MAAM,GAAG;eA3DS,MAAM,iBAAiB,MAAM,KAAG,MAAM;kBAMnC,MAAM,gBAAgB,MAAM,KAAG,MAAM;mBAYpC,MAAM,iBAAiB,OAAO,KAAG,OAAO;oBANvC,MAAM,iBAAiB,MAAM,KAAG,MAAM;eAY3C,MAAM,SAAS,MAAM,KAAG,IAAI;iBAK1B,MAAM,KAAG,IAAI;wBAMN,SAAS,GAAG,IAAI,KAAG,IAAI;oBAI7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;cAgCJ,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAgOpB,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFxF,CAAC;AAEH,eAAO,MAAM,aAAa,QAAO,MAchC,CAAC"}
|
package/src/config/env.js
CHANGED
|
@@ -138,8 +138,8 @@ export const Env = Object.freeze({
|
|
|
138
138
|
KV_NAMESPACE_ID: get('KV_NAMESPACE_ID'),
|
|
139
139
|
// Cloudflare proxy services (D1/KV outside Cloudflare)
|
|
140
140
|
D1_REMOTE_URL: get('D1_REMOTE_URL', ''),
|
|
141
|
-
D1_REMOTE_KEY_ID: get('D1_REMOTE_KEY_ID',
|
|
142
|
-
D1_REMOTE_SECRET: get('D1_REMOTE_SECRET',
|
|
141
|
+
D1_REMOTE_KEY_ID: get('D1_REMOTE_KEY_ID', PROXY_KEY_ID_FALLBACK),
|
|
142
|
+
D1_REMOTE_SECRET: get('D1_REMOTE_SECRET', PROXY_SECRET_FALLBACK),
|
|
143
143
|
D1_REMOTE_MODE: get('D1_REMOTE_MODE', 'registry'),
|
|
144
144
|
MYSQL_PROXY_URL: get('MYSQL_PROXY_URL', ''),
|
|
145
145
|
MYSQL_PROXY_HOST: get('MYSQL_PROXY_HOST', '127.0.0.1'),
|
|
@@ -261,6 +261,14 @@ export const Env = Object.freeze({
|
|
|
261
261
|
CSRF_STORE: get('CSRF_STORE', ''),
|
|
262
262
|
CSRF_DRIVER: get('CSRF_DRIVER', ''),
|
|
263
263
|
CSRF_REDIS_DB: getInt('CSRF_REDIS_DB', 1),
|
|
264
|
+
// JWT revocation (token invalidation)
|
|
265
|
+
JWT_REVOCATION_DRIVER: get('JWT_REVOCATION_DRIVER', 'database'),
|
|
266
|
+
JWT_REVOCATION_DB_CONNECTION: get('JWT_REVOCATION_DB_CONNECTION', 'default'),
|
|
267
|
+
JWT_REVOCATION_DB_TABLE: get('JWT_REVOCATION_DB_TABLE', 'zintrust_jwt_revocations'),
|
|
268
|
+
JWT_REVOCATION_REDIS_DB: getInt('JWT_REVOCATION_REDIS_DB', 0),
|
|
269
|
+
JWT_REVOCATION_REDIS_PREFIX: get('JWT_REVOCATION_REDIS_PREFIX', 'zt:jwt:revoked:'),
|
|
270
|
+
JWT_REVOCATION_KV_BINDING: get('JWT_REVOCATION_KV_BINDING', 'CACHE'),
|
|
271
|
+
JWT_REVOCATION_KV_PREFIX: get('JWT_REVOCATION_KV_PREFIX', 'zt:jwt:revoked:'),
|
|
264
272
|
// Encryption interop
|
|
265
273
|
ENCRYPTION_CIPHER: get('ENCRYPTION_CIPHER', ''),
|
|
266
274
|
// Deployment
|
package/src/config/queue.js
CHANGED
|
@@ -114,7 +114,7 @@ export const createBaseDrivers = () => ({
|
|
|
114
114
|
* Helper: Create monitor configuration from environment
|
|
115
115
|
*/
|
|
116
116
|
const createBaseMonitor = () => ({
|
|
117
|
-
enabled: Env.getBool('QUEUE_MONITOR_ENABLED',
|
|
117
|
+
enabled: Env.getBool('QUEUE_MONITOR_ENABLED', false),
|
|
118
118
|
basePath: Env.get('QUEUE_MONITOR_BASE_PATH', '/queue-monitor'),
|
|
119
119
|
middleware: Env.get('QUEUE_MONITOR_MIDDLEWARE', '')
|
|
120
120
|
.split(',')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/functions/cloudflare.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/functions/cloudflare.ts"],"names":[],"mappings":";mBAmFuB,OAAO,QAAQ,OAAO,QAAQ,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;;AADhF,wBAkCE"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Logger } from '../config/logger.js';
|
|
2
|
-
import * as AppRoutes from '../../routes/api.js';
|
|
3
2
|
import { CloudflareAdapter } from '../runtime/adapters/CloudflareAdapter.js';
|
|
4
3
|
import { StartupConfigFile } from '../runtime/StartupConfigFileRegistry.js';
|
|
5
4
|
import { WorkerAdapterImports } from '../runtime/WorkerAdapterImports.js';
|
|
@@ -52,7 +51,10 @@ export default {
|
|
|
52
51
|
try {
|
|
53
52
|
// Make bindings available to framework code in Workers
|
|
54
53
|
globalThis.env = _env;
|
|
55
|
-
|
|
54
|
+
const AppRoutes = (await import('@routes/' + 'api.ts'));
|
|
55
|
+
if (AppRoutes !== undefined) {
|
|
56
|
+
globalThis.__zintrustRoutes = AppRoutes;
|
|
57
|
+
}
|
|
56
58
|
await ensureStartupConfigOverridesLoaded();
|
|
57
59
|
await WorkerAdapterImports.ready; // NOSONAR - Ensure adapter imports are ready before handling requests.
|
|
58
60
|
await injectIoredisModule();
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight validation / type helper utilities used across the codebase.
|
|
3
|
+
* Keep implementations small and dependency-free so they work in both
|
|
4
|
+
* Node and Cloudflare Worker runtimes.
|
|
5
|
+
*/
|
|
6
|
+
/** Check whether value is a string primitive */
|
|
7
|
+
export declare const isString: (value: unknown) => value is string;
|
|
8
|
+
/** Check whether value is an array */
|
|
9
|
+
export declare const isArray: (value: unknown) => value is unknown[];
|
|
10
|
+
/** Check whether value is an object (and not null/array) */
|
|
11
|
+
export declare const isObject: (value: unknown) => value is Record<string, unknown>;
|
|
12
|
+
/** Check whether value is a function */
|
|
13
|
+
export declare const isFunction: (value: unknown) => value is (...args: unknown[]) => unknown;
|
|
14
|
+
/** Check whether value is a valid Date object */
|
|
15
|
+
export declare const isDate: (value: unknown) => value is Date;
|
|
16
|
+
/**
|
|
17
|
+
* Check if value is "empty".
|
|
18
|
+
* Matches legacy behavior: null, undefined, false, 0, '', '0' are all considered empty.
|
|
19
|
+
*/
|
|
20
|
+
export declare const isEmpty: (value: unknown) => boolean;
|
|
21
|
+
/** Check if value is null or string 'null'/'NULL' or empty string */
|
|
22
|
+
export declare const isNull: (value: unknown) => boolean;
|
|
23
|
+
/** Check if value is undefined */
|
|
24
|
+
export declare const isUndefined: (value: unknown) => boolean;
|
|
25
|
+
/** Check if value is undefined or satisfies isNull() */
|
|
26
|
+
export declare const isUndefinedOrNull: (value: unknown) => boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Check whether value is a boolean primitive.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isBoolean(value: unknown, allowString?: false): value is boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Check whether value is a boolean primitive OR a boolean-like string.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isBoolean(value: unknown, allowString: true): value is boolean | string;
|
|
35
|
+
/** Check if value is a string representation of a boolean (true/false/1/0) */
|
|
36
|
+
export declare const isBooleanString: (value: unknown) => boolean;
|
|
37
|
+
/** Check if value is a valid number or numeric string */
|
|
38
|
+
export declare const isNumeric: (value: unknown) => boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Check if value is an integer.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isInt(value: unknown, allowString?: false, conditions?: {
|
|
43
|
+
min?: number;
|
|
44
|
+
max?: number;
|
|
45
|
+
}): value is number;
|
|
46
|
+
/**
|
|
47
|
+
* Check if value is an integer OR a string representing an integer.
|
|
48
|
+
*/
|
|
49
|
+
export declare function isInt(value: unknown, allowString: true, conditions?: {
|
|
50
|
+
min?: number;
|
|
51
|
+
max?: number;
|
|
52
|
+
}): value is number | string;
|
|
53
|
+
/**
|
|
54
|
+
* Check if value is a float (finite number).
|
|
55
|
+
*/
|
|
56
|
+
export declare function isFloat(value: unknown, allowString?: false, conditions?: {
|
|
57
|
+
min?: number;
|
|
58
|
+
max?: number;
|
|
59
|
+
}): value is number;
|
|
60
|
+
/**
|
|
61
|
+
* Check if value is a float OR a string representing a float.
|
|
62
|
+
*/
|
|
63
|
+
export declare function isFloat(value: unknown, allowString: true, conditions?: {
|
|
64
|
+
min?: number;
|
|
65
|
+
max?: number;
|
|
66
|
+
}): value is number | string;
|
|
67
|
+
/** Check if value is a valid integer string (supports min/max) */
|
|
68
|
+
export declare const isIntString: (value: unknown, conditions?: {
|
|
69
|
+
min?: number;
|
|
70
|
+
max?: number;
|
|
71
|
+
}) => boolean;
|
|
72
|
+
/** Check if value is a valid float string (supports min/max) */
|
|
73
|
+
export declare const isFloatString: (value: unknown, conditions?: {
|
|
74
|
+
min?: number;
|
|
75
|
+
max?: number;
|
|
76
|
+
}) => boolean;
|
|
77
|
+
/** Check if value is a valid email string */
|
|
78
|
+
export declare const isEmail: (value: unknown) => boolean;
|
|
79
|
+
/** Check if value is a valid URL string (http/https) */
|
|
80
|
+
export declare const isUrl: (value: unknown) => boolean;
|
|
81
|
+
/** Check if string contains only letters */
|
|
82
|
+
export declare const isAlpha: (value: unknown) => boolean;
|
|
83
|
+
/** Check if string contains only letters and numbers */
|
|
84
|
+
export declare const isAlphanumeric: (value: unknown) => boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Check if string matches regex.
|
|
87
|
+
*
|
|
88
|
+
* Security/perf: Regex evaluation can be expensive for some patterns.
|
|
89
|
+
* This helper defensively caps the input length to reduce ReDoS risk
|
|
90
|
+
* when used on untrusted strings.
|
|
91
|
+
*/
|
|
92
|
+
export declare const isMatch: (value: unknown, regex: RegExp, options?: {
|
|
93
|
+
maxLength?: number;
|
|
94
|
+
}) => boolean;
|
|
95
|
+
/** Check if value exists in array */
|
|
96
|
+
export declare const isIn: (value: unknown, array: unknown[]) => boolean;
|
|
97
|
+
/** Check if value does not exist in array */
|
|
98
|
+
export declare const isNotIn: (value: unknown, array: unknown[]) => boolean;
|
|
99
|
+
/** Check if string or array has exact length */
|
|
100
|
+
export declare const isLength: (value: unknown, length: number) => boolean;
|
|
101
|
+
/** Check if string or array has minimum length */
|
|
102
|
+
export declare const isMinLength: (value: unknown, min: number) => boolean;
|
|
103
|
+
/** Check if string or array has maximum length */
|
|
104
|
+
export declare const isMaxLength: (value: unknown, max: number) => boolean;
|
|
105
|
+
/** Check if value is a string with length > 0 (after trim) */
|
|
106
|
+
export declare const isNonEmptyString: (value: unknown) => value is string;
|
|
107
|
+
/** Check if value is an array with items */
|
|
108
|
+
export declare const isNonEmptyArray: (value: unknown) => value is unknown[];
|
|
109
|
+
/** Check if value is an object with keys */
|
|
110
|
+
export declare const isNonEmptyObject: (value: unknown) => value is Record<string, unknown>;
|
|
111
|
+
/**
|
|
112
|
+
* Check if value is a string containing only whitespace.
|
|
113
|
+
* Useful for distinguishing between truly empty and whitespace-only strings.
|
|
114
|
+
*/
|
|
115
|
+
export declare const isWhitespaceOnly: (value: unknown) => boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Check if value is a valid UUID v4 string.
|
|
118
|
+
* Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
|
|
119
|
+
*/
|
|
120
|
+
export declare const isUUID: (value: unknown) => boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Check if value is a valid JSON string (parses without error).
|
|
123
|
+
*/
|
|
124
|
+
export declare const isJSON: (value: unknown) => boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Check if value is a valid Base64-encoded string.
|
|
127
|
+
*/
|
|
128
|
+
export declare const isBase64: (value: unknown) => boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Check if value is a valid hexadecimal color string.
|
|
131
|
+
* Accepts #RGB, #RGBA, #RRGGBB, #RRGGBBAA formats.
|
|
132
|
+
*/
|
|
133
|
+
export declare const isHexColor: (value: unknown) => boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Check if value is a valid URL slug (lowercase alphanumeric with hyphens).
|
|
136
|
+
* Example: "my-blog-post", "user-profile-page"
|
|
137
|
+
*/
|
|
138
|
+
export declare const isSlug: (value: unknown) => boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Check if value is a string with uppercase letters.
|
|
141
|
+
*/
|
|
142
|
+
export declare const isUpperCase: (value: unknown) => boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Check if value is a string with lowercase letters.
|
|
145
|
+
*/
|
|
146
|
+
export declare const isLowerCase: (value: unknown) => boolean;
|
|
147
|
+
/** Check if number is positive (> 0) */
|
|
148
|
+
export declare const isPositive: (value: unknown) => boolean;
|
|
149
|
+
/** Check if number is negative (< 0) */
|
|
150
|
+
export declare const isNegative: (value: unknown) => boolean;
|
|
151
|
+
/** Check if number is zero */
|
|
152
|
+
export declare const isZero: (value: unknown) => boolean;
|
|
153
|
+
/** Check if number is even */
|
|
154
|
+
export declare const isEven: (value: unknown) => boolean;
|
|
155
|
+
/** Check if number is odd */
|
|
156
|
+
export declare const isOdd: (value: unknown) => boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Check if number has decimal places.
|
|
159
|
+
* Examples: 1.5 → true, 1.0 → false, 1 → false
|
|
160
|
+
*/
|
|
161
|
+
export declare const isDecimal: (value: unknown) => boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Check if number is between min and max (inclusive).
|
|
164
|
+
*/
|
|
165
|
+
export declare const isBetween: (value: unknown, min: number, max: number) => boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Check if number is divisible by divisor.
|
|
168
|
+
*/
|
|
169
|
+
export declare const isDivisibleBy: (value: unknown, divisor: number) => boolean;
|
|
170
|
+
export declare const Helpers: Readonly<{
|
|
171
|
+
isString: (value: unknown) => value is string;
|
|
172
|
+
isBoolean: typeof isBoolean;
|
|
173
|
+
isBooleanString: (value: unknown) => boolean;
|
|
174
|
+
isEmpty: (value: unknown) => boolean;
|
|
175
|
+
isNull: (value: unknown) => boolean;
|
|
176
|
+
isUndefined: (value: unknown) => boolean;
|
|
177
|
+
isUndefinedOrNull: (value: unknown) => boolean;
|
|
178
|
+
isArray: (value: unknown) => value is unknown[];
|
|
179
|
+
isObject: (value: unknown) => value is Record<string, unknown>;
|
|
180
|
+
isFunction: (value: unknown) => value is (...args: unknown[]) => unknown;
|
|
181
|
+
isDate: (value: unknown) => value is Date;
|
|
182
|
+
isEmail: (value: unknown) => boolean;
|
|
183
|
+
isUrl: (value: unknown) => boolean;
|
|
184
|
+
isIn: (value: unknown, array: unknown[]) => boolean;
|
|
185
|
+
isNotIn: (value: unknown, array: unknown[]) => boolean;
|
|
186
|
+
isLength: (value: unknown, length: number) => boolean;
|
|
187
|
+
isMinLength: (value: unknown, min: number) => boolean;
|
|
188
|
+
isMaxLength: (value: unknown, max: number) => boolean;
|
|
189
|
+
isMatch: (value: unknown, regex: RegExp, options?: {
|
|
190
|
+
maxLength?: number;
|
|
191
|
+
}) => boolean;
|
|
192
|
+
isAlpha: (value: unknown) => boolean;
|
|
193
|
+
isAlphanumeric: (value: unknown) => boolean;
|
|
194
|
+
isNumeric: (value: unknown) => boolean;
|
|
195
|
+
isInt: typeof isInt;
|
|
196
|
+
isFloat: typeof isFloat;
|
|
197
|
+
isIntString: (value: unknown, conditions?: {
|
|
198
|
+
min?: number;
|
|
199
|
+
max?: number;
|
|
200
|
+
}) => boolean;
|
|
201
|
+
isFloatString: (value: unknown, conditions?: {
|
|
202
|
+
min?: number;
|
|
203
|
+
max?: number;
|
|
204
|
+
}) => boolean;
|
|
205
|
+
isNonEmptyString: (value: unknown) => value is string;
|
|
206
|
+
isNonEmptyArray: (value: unknown) => value is unknown[];
|
|
207
|
+
isNonEmptyObject: (value: unknown) => value is Record<string, unknown>;
|
|
208
|
+
isWhitespaceOnly: (value: unknown) => boolean;
|
|
209
|
+
isUUID: (value: unknown) => boolean;
|
|
210
|
+
isJSON: (value: unknown) => boolean;
|
|
211
|
+
isBase64: (value: unknown) => boolean;
|
|
212
|
+
isHexColor: (value: unknown) => boolean;
|
|
213
|
+
isSlug: (value: unknown) => boolean;
|
|
214
|
+
isUpperCase: (value: unknown) => boolean;
|
|
215
|
+
isLowerCase: (value: unknown) => boolean;
|
|
216
|
+
isPositive: (value: unknown) => boolean;
|
|
217
|
+
isNegative: (value: unknown) => boolean;
|
|
218
|
+
isZero: (value: unknown) => boolean;
|
|
219
|
+
isEven: (value: unknown) => boolean;
|
|
220
|
+
isOdd: (value: unknown) => boolean;
|
|
221
|
+
isDecimal: (value: unknown) => boolean;
|
|
222
|
+
isBetween: (value: unknown, min: number, max: number) => boolean;
|
|
223
|
+
isDivisibleBy: (value: unknown, divisor: number) => boolean;
|
|
224
|
+
}>;
|
|
225
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helper/index.ts"],"names":[],"mappings":"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"}
|