bunqueue 2.8.0 → 2.8.2
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/README.md +44 -11
- package/dist/application/backgroundTasks.d.ts +0 -1
- package/dist/application/backgroundTasks.js +83 -1
- package/dist/application/cleanupTasks.d.ts +0 -1
- package/dist/application/cleanupTasks.js +0 -1
- package/dist/application/clientTracking.d.ts +23 -1
- package/dist/application/clientTracking.js +80 -26
- package/dist/application/contextFactory.d.ts +6 -1
- package/dist/application/contextFactory.js +7 -1
- package/dist/application/dependencyProcessor.d.ts +0 -1
- package/dist/application/dependencyProcessor.js +0 -1
- package/dist/application/dlqManager.d.ts +0 -1
- package/dist/application/dlqManager.js +5 -1
- package/dist/application/eventsManager.d.ts +0 -1
- package/dist/application/eventsManager.js +0 -1
- package/dist/application/jobLogsManager.d.ts +0 -1
- package/dist/application/jobLogsManager.js +0 -1
- package/dist/application/latencyTracker.d.ts +0 -1
- package/dist/application/latencyTracker.js +0 -1
- package/dist/application/lockManager.d.ts +1 -2
- package/dist/application/lockManager.js +1 -2
- package/dist/application/lockOperations.d.ts +0 -1
- package/dist/application/lockOperations.js +0 -1
- package/dist/application/metricsExporter.d.ts +0 -1
- package/dist/application/metricsExporter.js +0 -1
- package/dist/application/monitoringChecks.d.ts +0 -1
- package/dist/application/monitoringChecks.js +0 -1
- package/dist/application/operations/ack.d.ts +0 -1
- package/dist/application/operations/ack.js +32 -34
- package/dist/application/operations/ackHelpers.d.ts +0 -1
- package/dist/application/operations/ackHelpers.js +0 -1
- package/dist/application/operations/index.d.ts +0 -1
- package/dist/application/operations/index.js +0 -1
- package/dist/application/operations/jobManagement.d.ts +1 -2
- package/dist/application/operations/jobManagement.js +3 -3
- package/dist/application/operations/jobStateTransitions.d.ts +0 -1
- package/dist/application/operations/jobStateTransitions.js +0 -1
- package/dist/application/operations/pull.d.ts +0 -1
- package/dist/application/operations/pull.js +0 -1
- package/dist/application/operations/push.d.ts +0 -1
- package/dist/application/operations/push.js +0 -1
- package/dist/application/operations/queryOperations.d.ts +0 -1
- package/dist/application/operations/queryOperations.js +37 -4
- package/dist/application/operations/queueControl.d.ts +16 -5
- package/dist/application/operations/queueControl.js +119 -24
- package/dist/application/queueManager.d.ts +17 -4
- package/dist/application/queueManager.js +106 -28
- package/dist/application/stallDetection.d.ts +0 -1
- package/dist/application/stallDetection.js +1 -1
- package/dist/application/statsManager.d.ts +0 -1
- package/dist/application/statsManager.js +0 -1
- package/dist/application/taskErrorTracking.d.ts +0 -1
- package/dist/application/taskErrorTracking.js +0 -1
- package/dist/application/throughputTracker.d.ts +0 -1
- package/dist/application/throughputTracker.js +0 -1
- package/dist/application/types.d.ts +2 -2
- package/dist/application/types.js +0 -1
- package/dist/application/webhookManager.d.ts +0 -1
- package/dist/application/webhookManager.js +0 -1
- package/dist/application/workerManager.d.ts +0 -1
- package/dist/application/workerManager.js +0 -1
- package/dist/cli/client.d.ts +0 -1
- package/dist/cli/client.js +15 -3
- package/dist/cli/commands/backup.d.ts +0 -1
- package/dist/cli/commands/backup.js +0 -1
- package/dist/cli/commands/core.d.ts +0 -1
- package/dist/cli/commands/core.js +0 -1
- package/dist/cli/commands/cron.d.ts +0 -1
- package/dist/cli/commands/cron.js +0 -1
- package/dist/cli/commands/dlq.d.ts +0 -1
- package/dist/cli/commands/dlq.js +0 -1
- package/dist/cli/commands/doctor.d.ts +0 -1
- package/dist/cli/commands/doctor.js +0 -1
- package/dist/cli/commands/job.d.ts +0 -1
- package/dist/cli/commands/job.js +0 -1
- package/dist/cli/commands/monitor.d.ts +0 -1
- package/dist/cli/commands/monitor.js +0 -1
- package/dist/cli/commands/queue.d.ts +0 -1
- package/dist/cli/commands/queue.js +0 -1
- package/dist/cli/commands/rateLimit.d.ts +0 -1
- package/dist/cli/commands/rateLimit.js +0 -1
- package/dist/cli/commands/server.d.ts +0 -1
- package/dist/cli/commands/server.js +0 -1
- package/dist/cli/commands/types.d.ts +0 -1
- package/dist/cli/commands/types.js +0 -1
- package/dist/cli/commands/webhook.d.ts +0 -1
- package/dist/cli/commands/webhook.js +0 -1
- package/dist/cli/commands/worker.d.ts +0 -1
- package/dist/cli/commands/worker.js +0 -1
- package/dist/cli/help.d.ts +0 -1
- package/dist/cli/help.js +0 -1
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.js +31 -3
- package/dist/cli/output.d.ts +1 -2
- package/dist/cli/output.js +71 -10
- package/dist/client/bunqueue/aging.d.ts +0 -1
- package/dist/client/bunqueue/aging.js +0 -1
- package/dist/client/bunqueue/batch.d.ts +0 -1
- package/dist/client/bunqueue/batch.js +2 -3
- package/dist/client/bunqueue/cancellation.d.ts +0 -1
- package/dist/client/bunqueue/cancellation.js +0 -1
- package/dist/client/bunqueue/circuitBreaker.d.ts +0 -1
- package/dist/client/bunqueue/circuitBreaker.js +0 -1
- package/dist/client/bunqueue/dedupDebounce.d.ts +0 -1
- package/dist/client/bunqueue/dedupDebounce.js +0 -1
- package/dist/client/bunqueue/dlqRateLimit.d.ts +0 -1
- package/dist/client/bunqueue/dlqRateLimit.js +0 -1
- package/dist/client/bunqueue/retry.d.ts +0 -1
- package/dist/client/bunqueue/retry.js +0 -1
- package/dist/client/bunqueue/triggers.d.ts +0 -1
- package/dist/client/bunqueue/triggers.js +0 -1
- package/dist/client/bunqueue/ttl.d.ts +0 -1
- package/dist/client/bunqueue/ttl.js +0 -1
- package/dist/client/bunqueue/types.d.ts +0 -1
- package/dist/client/bunqueue/types.js +0 -1
- package/dist/client/bunqueue.d.ts +0 -1
- package/dist/client/bunqueue.js +3 -4
- package/dist/client/errors.d.ts +0 -1
- package/dist/client/errors.js +0 -1
- package/dist/client/events.d.ts +0 -1
- package/dist/client/events.js +0 -1
- package/dist/client/flow.d.ts +0 -1
- package/dist/client/flow.js +3 -2
- package/dist/client/flowJobFactory.d.ts +8 -2
- package/dist/client/flowJobFactory.js +328 -57
- package/dist/client/flowPush.d.ts +0 -1
- package/dist/client/flowPush.js +95 -47
- package/dist/client/flowTypes.d.ts +0 -1
- package/dist/client/flowTypes.js +0 -1
- package/dist/client/index.d.ts +0 -1
- package/dist/client/index.js +0 -1
- package/dist/client/jobConversion.d.ts +0 -1
- package/dist/client/jobConversion.js +12 -5
- package/dist/client/jobConversionHelpers.d.ts +0 -1
- package/dist/client/jobConversionHelpers.js +0 -1
- package/dist/client/jobConversionTypes.d.ts +0 -1
- package/dist/client/jobConversionTypes.js +0 -1
- package/dist/client/jobHelpers.d.ts +0 -1
- package/dist/client/jobHelpers.js +0 -1
- package/dist/client/manager.d.ts +0 -1
- package/dist/client/manager.js +0 -1
- package/dist/client/queue/addBatcher.d.ts +0 -1
- package/dist/client/queue/addBatcher.js +0 -1
- package/dist/client/queue/bullmqCompat.d.ts +1 -1
- package/dist/client/queue/bullmqCompat.js +0 -1
- package/dist/client/queue/deduplication.d.ts +0 -1
- package/dist/client/queue/deduplication.js +0 -1
- package/dist/client/queue/dlq.d.ts +0 -1
- package/dist/client/queue/dlq.js +0 -1
- package/dist/client/queue/dlqOps.d.ts +0 -1
- package/dist/client/queue/dlqOps.js +0 -1
- package/dist/client/queue/helpers.d.ts +0 -1
- package/dist/client/queue/helpers.js +0 -1
- package/dist/client/queue/index.d.ts +0 -1
- package/dist/client/queue/index.js +0 -1
- package/dist/client/queue/jobMove.d.ts +0 -1
- package/dist/client/queue/jobMove.js +0 -1
- package/dist/client/queue/jobProxy.d.ts +22 -4
- package/dist/client/queue/jobProxy.js +347 -67
- package/dist/client/queue/operations/add.d.ts +1 -1
- package/dist/client/queue/operations/add.js +126 -30
- package/dist/client/queue/operations/control.d.ts +0 -1
- package/dist/client/queue/operations/control.js +0 -1
- package/dist/client/queue/operations/counts.d.ts +0 -1
- package/dist/client/queue/operations/counts.js +0 -1
- package/dist/client/queue/operations/index.d.ts +0 -1
- package/dist/client/queue/operations/index.js +0 -1
- package/dist/client/queue/operations/management.d.ts +1 -2
- package/dist/client/queue/operations/management.js +27 -10
- package/dist/client/queue/operations/query.d.ts +12 -1
- package/dist/client/queue/operations/query.js +44 -5
- package/dist/client/queue/queue.d.ts +0 -1
- package/dist/client/queue/queue.js +8 -2
- package/dist/client/queue/queueTypes.d.ts +0 -1
- package/dist/client/queue/queueTypes.js +0 -1
- package/dist/client/queue/rateLimit.d.ts +0 -1
- package/dist/client/queue/rateLimit.js +0 -1
- package/dist/client/queue/scheduler.d.ts +2 -1
- package/dist/client/queue/scheduler.js +28 -1
- package/dist/client/queue/stall.d.ts +0 -1
- package/dist/client/queue/stall.js +0 -1
- package/dist/client/queue/workers.d.ts +0 -1
- package/dist/client/queue/workers.js +0 -1
- package/dist/client/queue.d.ts +0 -1
- package/dist/client/queue.js +0 -1
- package/dist/client/queueGroup.d.ts +0 -1
- package/dist/client/queueGroup.js +0 -1
- package/dist/client/resolveToken.d.ts +0 -1
- package/dist/client/resolveToken.js +0 -1
- package/dist/client/sandboxed/index.d.ts +0 -1
- package/dist/client/sandboxed/index.js +0 -1
- package/dist/client/sandboxed/queueOps.d.ts +0 -1
- package/dist/client/sandboxed/queueOps.js +0 -1
- package/dist/client/sandboxed/types.d.ts +0 -1
- package/dist/client/sandboxed/types.js +0 -1
- package/dist/client/sandboxed/worker.d.ts +0 -1
- package/dist/client/sandboxed/worker.js +57 -16
- package/dist/client/sandboxed/wrapper.d.ts +0 -1
- package/dist/client/sandboxed/wrapper.js +62 -11
- package/dist/client/sandboxedWorker.d.ts +0 -1
- package/dist/client/sandboxedWorker.js +0 -1
- package/dist/client/tcp/client.d.ts +9 -1
- package/dist/client/tcp/client.js +84 -29
- package/dist/client/tcp/connection.d.ts +0 -1
- package/dist/client/tcp/connection.js +6 -2
- package/dist/client/tcp/health.d.ts +0 -1
- package/dist/client/tcp/health.js +0 -1
- package/dist/client/tcp/index.d.ts +0 -1
- package/dist/client/tcp/index.js +0 -1
- package/dist/client/tcp/reconnect.d.ts +0 -1
- package/dist/client/tcp/reconnect.js +0 -1
- package/dist/client/tcp/shared.d.ts +0 -1
- package/dist/client/tcp/shared.js +0 -1
- package/dist/client/tcp/types.d.ts +7 -1
- package/dist/client/tcp/types.js +0 -1
- package/dist/client/tcpClient.d.ts +0 -1
- package/dist/client/tcpClient.js +0 -1
- package/dist/client/tcpPool.d.ts +0 -1
- package/dist/client/tcpPool.js +0 -1
- package/dist/client/types.d.ts +8 -5
- package/dist/client/types.js +0 -1
- package/dist/client/worker/ackBatcher.d.ts +0 -1
- package/dist/client/worker/ackBatcher.js +18 -9
- package/dist/client/worker/groupConcurrency.d.ts +0 -1
- package/dist/client/worker/groupConcurrency.js +0 -1
- package/dist/client/worker/index.d.ts +0 -1
- package/dist/client/worker/index.js +0 -1
- package/dist/client/worker/jobParser.d.ts +0 -1
- package/dist/client/worker/jobParser.js +0 -1
- package/dist/client/worker/processor.d.ts +0 -1
- package/dist/client/worker/processor.js +54 -100
- package/dist/client/worker/processorHandlers.d.ts +54 -0
- package/dist/client/worker/processorHandlers.js +372 -0
- package/dist/client/worker/types.d.ts +0 -1
- package/dist/client/worker/types.js +0 -1
- package/dist/client/worker/worker.d.ts +0 -1
- package/dist/client/worker/worker.js +0 -1
- package/dist/client/worker/workerHeartbeat.d.ts +0 -1
- package/dist/client/worker/workerHeartbeat.js +0 -1
- package/dist/client/worker/workerPull.d.ts +0 -1
- package/dist/client/worker/workerPull.js +0 -1
- package/dist/client/worker/workerRateLimiter.d.ts +0 -1
- package/dist/client/worker/workerRateLimiter.js +0 -1
- package/dist/client/worker.d.ts +0 -1
- package/dist/client/worker.js +0 -1
- package/dist/client/workflow/compensator.d.ts +14 -0
- package/dist/client/workflow/compensator.js +45 -0
- package/dist/client/workflow/emitter.d.ts +0 -1
- package/dist/client/workflow/emitter.js +15 -4
- package/dist/client/workflow/engine.d.ts +8 -2
- package/dist/client/workflow/engine.js +9 -1
- package/dist/client/workflow/executor.d.ts +5 -3
- package/dist/client/workflow/executor.js +43 -61
- package/dist/client/workflow/index.d.ts +1 -2
- package/dist/client/workflow/index.js +0 -1
- package/dist/client/workflow/loops.d.ts +1 -2
- package/dist/client/workflow/loops.js +10 -2
- package/dist/client/workflow/recovery.d.ts +22 -0
- package/dist/client/workflow/recovery.js +73 -0
- package/dist/client/workflow/runner.d.ts +0 -1
- package/dist/client/workflow/runner.js +7 -6
- package/dist/client/workflow/store.d.ts +2 -1
- package/dist/client/workflow/store.js +6 -1
- package/dist/client/workflow/types.d.ts +41 -23
- package/dist/client/workflow/types.js +0 -1
- package/dist/client/workflow/workflow.d.ts +17 -15
- package/dist/client/workflow/workflow.js +30 -21
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -1
- package/dist/config/loader.d.ts +0 -1
- package/dist/config/loader.js +0 -1
- package/dist/config/resolve.d.ts +0 -1
- package/dist/config/resolve.js +0 -1
- package/dist/config/types.d.ts +0 -1
- package/dist/config/types.js +0 -1
- package/dist/domain/queue/dependencyTracker.d.ts +0 -1
- package/dist/domain/queue/dependencyTracker.js +0 -1
- package/dist/domain/queue/dlqShard.d.ts +0 -1
- package/dist/domain/queue/dlqShard.js +6 -1
- package/dist/domain/queue/index.d.ts +0 -1
- package/dist/domain/queue/index.js +0 -1
- package/dist/domain/queue/limiterManager.d.ts +0 -1
- package/dist/domain/queue/limiterManager.js +0 -1
- package/dist/domain/queue/priorityQueue.d.ts +2 -3
- package/dist/domain/queue/priorityQueue.js +5 -4
- package/dist/domain/queue/shard.d.ts +0 -1
- package/dist/domain/queue/shard.js +0 -1
- package/dist/domain/queue/shardCounters.d.ts +0 -1
- package/dist/domain/queue/shardCounters.js +0 -1
- package/dist/domain/queue/temporalManager.d.ts +0 -1
- package/dist/domain/queue/temporalManager.js +0 -1
- package/dist/domain/queue/uniqueKeyManager.d.ts +0 -1
- package/dist/domain/queue/uniqueKeyManager.js +0 -1
- package/dist/domain/queue/waiterManager.d.ts +0 -1
- package/dist/domain/queue/waiterManager.js +0 -1
- package/dist/domain/types/command.d.ts +22 -1
- package/dist/domain/types/command.js +0 -1
- package/dist/domain/types/cron.d.ts +21 -1
- package/dist/domain/types/cron.js +1 -1
- package/dist/domain/types/deduplication.d.ts +0 -1
- package/dist/domain/types/deduplication.js +0 -1
- package/dist/domain/types/dlq.d.ts +0 -1
- package/dist/domain/types/dlq.js +0 -1
- package/dist/domain/types/index.d.ts +0 -1
- package/dist/domain/types/index.js +0 -1
- package/dist/domain/types/job.d.ts +0 -1
- package/dist/domain/types/job.js +9 -3
- package/dist/domain/types/queue.d.ts +0 -1
- package/dist/domain/types/queue.js +0 -1
- package/dist/domain/types/response.d.ts +2 -1
- package/dist/domain/types/response.js +0 -1
- package/dist/domain/types/stall.d.ts +0 -1
- package/dist/domain/types/stall.js +0 -1
- package/dist/domain/types/webhook.d.ts +0 -1
- package/dist/domain/types/webhook.js +0 -1
- package/dist/domain/types/worker.d.ts +0 -1
- package/dist/domain/types/worker.js +0 -1
- package/dist/infrastructure/backup/index.d.ts +0 -1
- package/dist/infrastructure/backup/index.js +0 -1
- package/dist/infrastructure/backup/s3Backup.d.ts +0 -1
- package/dist/infrastructure/backup/s3Backup.js +0 -1
- package/dist/infrastructure/backup/s3BackupConfig.d.ts +0 -1
- package/dist/infrastructure/backup/s3BackupConfig.js +0 -1
- package/dist/infrastructure/backup/s3BackupOperations.d.ts +0 -1
- package/dist/infrastructure/backup/s3BackupOperations.js +44 -7
- package/dist/infrastructure/cloud/buffer.d.ts +0 -1
- package/dist/infrastructure/cloud/buffer.js +0 -1
- package/dist/infrastructure/cloud/circuitBreaker.d.ts +0 -1
- package/dist/infrastructure/cloud/circuitBreaker.js +0 -1
- package/dist/infrastructure/cloud/cloudAgent.d.ts +1 -2
- package/dist/infrastructure/cloud/cloudAgent.js +9 -12
- package/dist/infrastructure/cloud/commandHandler.d.ts +0 -1
- package/dist/infrastructure/cloud/commandHandler.js +0 -1
- package/dist/infrastructure/cloud/commands.d.ts +0 -1
- package/dist/infrastructure/cloud/commands.js +2 -3
- package/dist/infrastructure/cloud/config.d.ts +0 -1
- package/dist/infrastructure/cloud/config.js +0 -1
- package/dist/infrastructure/cloud/httpSender.d.ts +0 -1
- package/dist/infrastructure/cloud/httpSender.js +0 -1
- package/dist/infrastructure/cloud/index.d.ts +0 -1
- package/dist/infrastructure/cloud/index.js +0 -1
- package/dist/infrastructure/cloud/logger.d.ts +0 -1
- package/dist/infrastructure/cloud/logger.js +0 -1
- package/dist/infrastructure/cloud/redact.d.ts +10 -0
- package/dist/infrastructure/cloud/redact.js +21 -0
- package/dist/infrastructure/cloud/snapshotCollector.d.ts +4 -1
- package/dist/infrastructure/cloud/snapshotCollector.js +32 -18
- package/dist/infrastructure/cloud/snapshotHelpers.d.ts +9 -3
- package/dist/infrastructure/cloud/snapshotHelpers.js +10 -9
- package/dist/infrastructure/cloud/statsRefresh.d.ts +0 -1
- package/dist/infrastructure/cloud/statsRefresh.js +0 -1
- package/dist/infrastructure/cloud/statsUpdate.d.ts +0 -1
- package/dist/infrastructure/cloud/statsUpdate.js +0 -1
- package/dist/infrastructure/cloud/types.d.ts +0 -1
- package/dist/infrastructure/cloud/types.js +0 -1
- package/dist/infrastructure/cloud/wsSender.d.ts +0 -1
- package/dist/infrastructure/cloud/wsSender.js +0 -1
- package/dist/infrastructure/persistence/index.d.ts +0 -1
- package/dist/infrastructure/persistence/index.js +0 -1
- package/dist/infrastructure/persistence/schema.d.ts +2 -3
- package/dist/infrastructure/persistence/schema.js +16 -3
- package/dist/infrastructure/persistence/sqlite.d.ts +54 -2
- package/dist/infrastructure/persistence/sqlite.js +174 -3
- package/dist/infrastructure/persistence/sqliteBatch.d.ts +14 -1
- package/dist/infrastructure/persistence/sqliteBatch.js +29 -1
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts +16 -1
- package/dist/infrastructure/persistence/sqliteSerializer.js +73 -9
- package/dist/infrastructure/persistence/statements.d.ts +2 -2
- package/dist/infrastructure/persistence/statements.js +3 -3
- package/dist/infrastructure/scheduler/cronParser.d.ts +0 -1
- package/dist/infrastructure/scheduler/cronParser.js +0 -1
- package/dist/infrastructure/scheduler/cronScheduler.d.ts +0 -1
- package/dist/infrastructure/scheduler/cronScheduler.js +19 -2
- package/dist/infrastructure/scheduler/index.d.ts +0 -1
- package/dist/infrastructure/scheduler/index.js +0 -1
- package/dist/infrastructure/server/handler.d.ts +0 -1
- package/dist/infrastructure/server/handler.js +0 -1
- package/dist/infrastructure/server/handlerRoutes.d.ts +0 -1
- package/dist/infrastructure/server/handlerRoutes.js +0 -1
- package/dist/infrastructure/server/handlers/advanced.d.ts +7 -2
- package/dist/infrastructure/server/handlers/advanced.js +41 -11
- package/dist/infrastructure/server/handlers/core.d.ts +0 -1
- package/dist/infrastructure/server/handlers/core.js +8 -1
- package/dist/infrastructure/server/handlers/cron.d.ts +0 -1
- package/dist/infrastructure/server/handlers/cron.js +1 -1
- package/dist/infrastructure/server/handlers/dashboard.d.ts +0 -1
- package/dist/infrastructure/server/handlers/dashboard.js +1 -1
- package/dist/infrastructure/server/handlers/dlq.d.ts +0 -1
- package/dist/infrastructure/server/handlers/dlq.js +0 -1
- package/dist/infrastructure/server/handlers/index.d.ts +0 -1
- package/dist/infrastructure/server/handlers/index.js +0 -1
- package/dist/infrastructure/server/handlers/management.d.ts +1 -2
- package/dist/infrastructure/server/handlers/management.js +27 -13
- package/dist/infrastructure/server/handlers/monitoring.d.ts +0 -1
- package/dist/infrastructure/server/handlers/monitoring.js +0 -1
- package/dist/infrastructure/server/handlers/query.d.ts +0 -1
- package/dist/infrastructure/server/handlers/query.js +0 -1
- package/dist/infrastructure/server/http.d.ts +0 -1
- package/dist/infrastructure/server/http.js +0 -1
- package/dist/infrastructure/server/httpEndpoints.d.ts +0 -1
- package/dist/infrastructure/server/httpEndpoints.js +0 -1
- package/dist/infrastructure/server/httpRouteJobs.d.ts +0 -1
- package/dist/infrastructure/server/httpRouteJobs.js +0 -1
- package/dist/infrastructure/server/httpRouteQueueConfig.d.ts +0 -1
- package/dist/infrastructure/server/httpRouteQueueConfig.js +0 -1
- package/dist/infrastructure/server/httpRouteQueues.d.ts +0 -1
- package/dist/infrastructure/server/httpRouteQueues.js +0 -1
- package/dist/infrastructure/server/httpRouteResources.d.ts +0 -1
- package/dist/infrastructure/server/httpRouteResources.js +0 -1
- package/dist/infrastructure/server/index.d.ts +0 -1
- package/dist/infrastructure/server/index.js +0 -1
- package/dist/infrastructure/server/protocol.d.ts +4 -1
- package/dist/infrastructure/server/protocol.js +17 -3
- package/dist/infrastructure/server/rateLimiter.d.ts +0 -1
- package/dist/infrastructure/server/rateLimiter.js +0 -1
- package/dist/infrastructure/server/socketWriteQueue.d.ts +66 -0
- package/dist/infrastructure/server/socketWriteQueue.js +126 -0
- package/dist/infrastructure/server/sseHandler.d.ts +0 -1
- package/dist/infrastructure/server/sseHandler.js +0 -1
- package/dist/infrastructure/server/tcp.d.ts +17 -1
- package/dist/infrastructure/server/tcp.js +112 -15
- package/dist/infrastructure/server/types.d.ts +0 -1
- package/dist/infrastructure/server/types.js +0 -1
- package/dist/infrastructure/server/wsHandler.d.ts +0 -1
- package/dist/infrastructure/server/wsHandler.js +0 -1
- package/dist/main.d.ts +0 -1
- package/dist/main.js +48 -44
- package/dist/mcp/adapter.d.ts +3 -4
- package/dist/mcp/adapter.js +48 -16
- package/dist/mcp/httpHandler.d.ts +0 -1
- package/dist/mcp/httpHandler.js +0 -1
- package/dist/mcp/index.d.ts +3 -4
- package/dist/mcp/index.js +26 -90
- package/dist/mcp/prompts.d.ts +0 -1
- package/dist/mcp/prompts.js +0 -1
- package/dist/mcp/resources.d.ts +0 -1
- package/dist/mcp/resources.js +0 -1
- package/dist/mcp/server.d.ts +15 -0
- package/dist/mcp/server.js +100 -0
- package/dist/mcp/tools/consumptionTools.d.ts +0 -1
- package/dist/mcp/tools/consumptionTools.js +0 -1
- package/dist/mcp/tools/cronTools.d.ts +0 -1
- package/dist/mcp/tools/cronTools.js +0 -1
- package/dist/mcp/tools/dlqTools.d.ts +0 -1
- package/dist/mcp/tools/dlqTools.js +0 -1
- package/dist/mcp/tools/flowTools.d.ts +0 -1
- package/dist/mcp/tools/flowTools.js +0 -1
- package/dist/mcp/tools/handlerTools.d.ts +0 -1
- package/dist/mcp/tools/handlerTools.js +0 -1
- package/dist/mcp/tools/jobMgmtTools.d.ts +0 -1
- package/dist/mcp/tools/jobMgmtTools.js +0 -1
- package/dist/mcp/tools/jobTools.d.ts +0 -1
- package/dist/mcp/tools/jobTools.js +0 -1
- package/dist/mcp/tools/mcpTracker.d.ts +0 -1
- package/dist/mcp/tools/mcpTracker.js +0 -1
- package/dist/mcp/tools/monitoringTools.d.ts +0 -1
- package/dist/mcp/tools/monitoringTools.js +0 -1
- package/dist/mcp/tools/queueTools.d.ts +0 -1
- package/dist/mcp/tools/queueTools.js +6 -4
- package/dist/mcp/tools/rateLimitTools.d.ts +0 -1
- package/dist/mcp/tools/rateLimitTools.js +0 -1
- package/dist/mcp/tools/webhookTools.d.ts +0 -1
- package/dist/mcp/tools/webhookTools.js +1 -2
- package/dist/mcp/tools/withErrorHandler.d.ts +0 -1
- package/dist/mcp/tools/withErrorHandler.js +0 -1
- package/dist/mcp/tools/workerMgmtTools.d.ts +0 -1
- package/dist/mcp/tools/workerMgmtTools.js +0 -1
- package/dist/shared/boundedMap.d.ts +0 -1
- package/dist/shared/boundedMap.js +0 -1
- package/dist/shared/boundedSet.d.ts +0 -1
- package/dist/shared/boundedSet.js +0 -1
- package/dist/shared/hash.d.ts +0 -1
- package/dist/shared/hash.js +0 -1
- package/dist/shared/histogram.d.ts +0 -1
- package/dist/shared/histogram.js +0 -1
- package/dist/shared/index.d.ts +0 -1
- package/dist/shared/index.js +0 -1
- package/dist/shared/lock.d.ts +0 -1
- package/dist/shared/lock.js +15 -1
- package/dist/shared/logger.d.ts +0 -1
- package/dist/shared/logger.js +0 -1
- package/dist/shared/lru.d.ts +0 -1
- package/dist/shared/lru.js +0 -1
- package/dist/shared/lruMap.d.ts +0 -1
- package/dist/shared/lruMap.js +0 -1
- package/dist/shared/lruSet.d.ts +0 -1
- package/dist/shared/lruSet.js +0 -1
- package/dist/shared/minHeap.d.ts +0 -1
- package/dist/shared/minHeap.js +0 -1
- package/dist/shared/semaphore.d.ts +0 -1
- package/dist/shared/semaphore.js +0 -1
- package/dist/shared/serialization.d.ts +0 -1
- package/dist/shared/serialization.js +0 -1
- package/dist/shared/skipList.d.ts +0 -1
- package/dist/shared/skipList.js +0 -1
- package/dist/shared/ttlMap.d.ts +0 -1
- package/dist/shared/ttlMap.js +0 -1
- package/dist/shared/version.d.ts +0 -1
- package/dist/shared/version.js +0 -1
- package/dist/shared/webhookValidation.d.ts +0 -1
- package/dist/shared/webhookValidation.js +0 -1
- package/package.json +12 -9
- package/dist/application/backgroundTasks.d.ts.map +0 -1
- package/dist/application/backgroundTasks.js.map +0 -1
- package/dist/application/cleanupTasks.d.ts.map +0 -1
- package/dist/application/cleanupTasks.js.map +0 -1
- package/dist/application/clientTracking.d.ts.map +0 -1
- package/dist/application/clientTracking.js.map +0 -1
- package/dist/application/contextFactory.d.ts.map +0 -1
- package/dist/application/contextFactory.js.map +0 -1
- package/dist/application/dependencyProcessor.d.ts.map +0 -1
- package/dist/application/dependencyProcessor.js.map +0 -1
- package/dist/application/dlqManager.d.ts.map +0 -1
- package/dist/application/dlqManager.js.map +0 -1
- package/dist/application/eventsManager.d.ts.map +0 -1
- package/dist/application/eventsManager.js.map +0 -1
- package/dist/application/jobLogsManager.d.ts.map +0 -1
- package/dist/application/jobLogsManager.js.map +0 -1
- package/dist/application/latencyTracker.d.ts.map +0 -1
- package/dist/application/latencyTracker.js.map +0 -1
- package/dist/application/lockManager.d.ts.map +0 -1
- package/dist/application/lockManager.js.map +0 -1
- package/dist/application/lockOperations.d.ts.map +0 -1
- package/dist/application/lockOperations.js.map +0 -1
- package/dist/application/metricsExporter.d.ts.map +0 -1
- package/dist/application/metricsExporter.js.map +0 -1
- package/dist/application/monitoringChecks.d.ts.map +0 -1
- package/dist/application/monitoringChecks.js.map +0 -1
- package/dist/application/operations/ack.d.ts.map +0 -1
- package/dist/application/operations/ack.js.map +0 -1
- package/dist/application/operations/ackHelpers.d.ts.map +0 -1
- package/dist/application/operations/ackHelpers.js.map +0 -1
- package/dist/application/operations/index.d.ts.map +0 -1
- package/dist/application/operations/index.js.map +0 -1
- package/dist/application/operations/jobManagement.d.ts.map +0 -1
- package/dist/application/operations/jobManagement.js.map +0 -1
- package/dist/application/operations/jobStateTransitions.d.ts.map +0 -1
- package/dist/application/operations/jobStateTransitions.js.map +0 -1
- package/dist/application/operations/pull.d.ts.map +0 -1
- package/dist/application/operations/pull.js.map +0 -1
- package/dist/application/operations/push.d.ts.map +0 -1
- package/dist/application/operations/push.js.map +0 -1
- package/dist/application/operations/queryOperations.d.ts.map +0 -1
- package/dist/application/operations/queryOperations.js.map +0 -1
- package/dist/application/operations/queueControl.d.ts.map +0 -1
- package/dist/application/operations/queueControl.js.map +0 -1
- package/dist/application/queueManager.d.ts.map +0 -1
- package/dist/application/queueManager.js.map +0 -1
- package/dist/application/stallDetection.d.ts.map +0 -1
- package/dist/application/stallDetection.js.map +0 -1
- package/dist/application/statsManager.d.ts.map +0 -1
- package/dist/application/statsManager.js.map +0 -1
- package/dist/application/taskErrorTracking.d.ts.map +0 -1
- package/dist/application/taskErrorTracking.js.map +0 -1
- package/dist/application/throughputTracker.d.ts.map +0 -1
- package/dist/application/throughputTracker.js.map +0 -1
- package/dist/application/types.d.ts.map +0 -1
- package/dist/application/types.js.map +0 -1
- package/dist/application/webhookManager.d.ts.map +0 -1
- package/dist/application/webhookManager.js.map +0 -1
- package/dist/application/workerManager.d.ts.map +0 -1
- package/dist/application/workerManager.js.map +0 -1
- package/dist/cli/client.d.ts.map +0 -1
- package/dist/cli/client.js.map +0 -1
- package/dist/cli/commands/backup.d.ts.map +0 -1
- package/dist/cli/commands/backup.js.map +0 -1
- package/dist/cli/commands/core.d.ts.map +0 -1
- package/dist/cli/commands/core.js.map +0 -1
- package/dist/cli/commands/cron.d.ts.map +0 -1
- package/dist/cli/commands/cron.js.map +0 -1
- package/dist/cli/commands/dlq.d.ts.map +0 -1
- package/dist/cli/commands/dlq.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/job.d.ts.map +0 -1
- package/dist/cli/commands/job.js.map +0 -1
- package/dist/cli/commands/monitor.d.ts.map +0 -1
- package/dist/cli/commands/monitor.js.map +0 -1
- package/dist/cli/commands/queue.d.ts.map +0 -1
- package/dist/cli/commands/queue.js.map +0 -1
- package/dist/cli/commands/rateLimit.d.ts.map +0 -1
- package/dist/cli/commands/rateLimit.js.map +0 -1
- package/dist/cli/commands/server.d.ts.map +0 -1
- package/dist/cli/commands/server.js.map +0 -1
- package/dist/cli/commands/types.d.ts.map +0 -1
- package/dist/cli/commands/types.js.map +0 -1
- package/dist/cli/commands/webhook.d.ts.map +0 -1
- package/dist/cli/commands/webhook.js.map +0 -1
- package/dist/cli/commands/worker.d.ts.map +0 -1
- package/dist/cli/commands/worker.js.map +0 -1
- package/dist/cli/help.d.ts.map +0 -1
- package/dist/cli/help.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/output.d.ts.map +0 -1
- package/dist/cli/output.js.map +0 -1
- package/dist/client/bunqueue/aging.d.ts.map +0 -1
- package/dist/client/bunqueue/aging.js.map +0 -1
- package/dist/client/bunqueue/batch.d.ts.map +0 -1
- package/dist/client/bunqueue/batch.js.map +0 -1
- package/dist/client/bunqueue/cancellation.d.ts.map +0 -1
- package/dist/client/bunqueue/cancellation.js.map +0 -1
- package/dist/client/bunqueue/circuitBreaker.d.ts.map +0 -1
- package/dist/client/bunqueue/circuitBreaker.js.map +0 -1
- package/dist/client/bunqueue/dedupDebounce.d.ts.map +0 -1
- package/dist/client/bunqueue/dedupDebounce.js.map +0 -1
- package/dist/client/bunqueue/dlqRateLimit.d.ts.map +0 -1
- package/dist/client/bunqueue/dlqRateLimit.js.map +0 -1
- package/dist/client/bunqueue/retry.d.ts.map +0 -1
- package/dist/client/bunqueue/retry.js.map +0 -1
- package/dist/client/bunqueue/triggers.d.ts.map +0 -1
- package/dist/client/bunqueue/triggers.js.map +0 -1
- package/dist/client/bunqueue/ttl.d.ts.map +0 -1
- package/dist/client/bunqueue/ttl.js.map +0 -1
- package/dist/client/bunqueue/types.d.ts.map +0 -1
- package/dist/client/bunqueue/types.js.map +0 -1
- package/dist/client/bunqueue.d.ts.map +0 -1
- package/dist/client/bunqueue.js.map +0 -1
- package/dist/client/errors.d.ts.map +0 -1
- package/dist/client/errors.js.map +0 -1
- package/dist/client/events.d.ts.map +0 -1
- package/dist/client/events.js.map +0 -1
- package/dist/client/flow.d.ts.map +0 -1
- package/dist/client/flow.js.map +0 -1
- package/dist/client/flowJobFactory.d.ts.map +0 -1
- package/dist/client/flowJobFactory.js.map +0 -1
- package/dist/client/flowPush.d.ts.map +0 -1
- package/dist/client/flowPush.js.map +0 -1
- package/dist/client/flowTypes.d.ts.map +0 -1
- package/dist/client/flowTypes.js.map +0 -1
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/client/jobConversion.d.ts.map +0 -1
- package/dist/client/jobConversion.js.map +0 -1
- package/dist/client/jobConversionHelpers.d.ts.map +0 -1
- package/dist/client/jobConversionHelpers.js.map +0 -1
- package/dist/client/jobConversionTypes.d.ts.map +0 -1
- package/dist/client/jobConversionTypes.js.map +0 -1
- package/dist/client/jobHelpers.d.ts.map +0 -1
- package/dist/client/jobHelpers.js.map +0 -1
- package/dist/client/manager.d.ts.map +0 -1
- package/dist/client/manager.js.map +0 -1
- package/dist/client/queue/addBatcher.d.ts.map +0 -1
- package/dist/client/queue/addBatcher.js.map +0 -1
- package/dist/client/queue/bullmqCompat.d.ts.map +0 -1
- package/dist/client/queue/bullmqCompat.js.map +0 -1
- package/dist/client/queue/deduplication.d.ts.map +0 -1
- package/dist/client/queue/deduplication.js.map +0 -1
- package/dist/client/queue/dlq.d.ts.map +0 -1
- package/dist/client/queue/dlq.js.map +0 -1
- package/dist/client/queue/dlqOps.d.ts.map +0 -1
- package/dist/client/queue/dlqOps.js.map +0 -1
- package/dist/client/queue/helpers.d.ts.map +0 -1
- package/dist/client/queue/helpers.js.map +0 -1
- package/dist/client/queue/index.d.ts.map +0 -1
- package/dist/client/queue/index.js.map +0 -1
- package/dist/client/queue/jobMove.d.ts.map +0 -1
- package/dist/client/queue/jobMove.js.map +0 -1
- package/dist/client/queue/jobProxy.d.ts.map +0 -1
- package/dist/client/queue/jobProxy.js.map +0 -1
- package/dist/client/queue/operations/add.d.ts.map +0 -1
- package/dist/client/queue/operations/add.js.map +0 -1
- package/dist/client/queue/operations/control.d.ts.map +0 -1
- package/dist/client/queue/operations/control.js.map +0 -1
- package/dist/client/queue/operations/counts.d.ts.map +0 -1
- package/dist/client/queue/operations/counts.js.map +0 -1
- package/dist/client/queue/operations/index.d.ts.map +0 -1
- package/dist/client/queue/operations/index.js.map +0 -1
- package/dist/client/queue/operations/management.d.ts.map +0 -1
- package/dist/client/queue/operations/management.js.map +0 -1
- package/dist/client/queue/operations/query.d.ts.map +0 -1
- package/dist/client/queue/operations/query.js.map +0 -1
- package/dist/client/queue/queue.d.ts.map +0 -1
- package/dist/client/queue/queue.js.map +0 -1
- package/dist/client/queue/queueTypes.d.ts.map +0 -1
- package/dist/client/queue/queueTypes.js.map +0 -1
- package/dist/client/queue/rateLimit.d.ts.map +0 -1
- package/dist/client/queue/rateLimit.js.map +0 -1
- package/dist/client/queue/scheduler.d.ts.map +0 -1
- package/dist/client/queue/scheduler.js.map +0 -1
- package/dist/client/queue/stall.d.ts.map +0 -1
- package/dist/client/queue/stall.js.map +0 -1
- package/dist/client/queue/workers.d.ts.map +0 -1
- package/dist/client/queue/workers.js.map +0 -1
- package/dist/client/queue.d.ts.map +0 -1
- package/dist/client/queue.js.map +0 -1
- package/dist/client/queueGroup.d.ts.map +0 -1
- package/dist/client/queueGroup.js.map +0 -1
- package/dist/client/resolveToken.d.ts.map +0 -1
- package/dist/client/resolveToken.js.map +0 -1
- package/dist/client/sandboxed/index.d.ts.map +0 -1
- package/dist/client/sandboxed/index.js.map +0 -1
- package/dist/client/sandboxed/queueOps.d.ts.map +0 -1
- package/dist/client/sandboxed/queueOps.js.map +0 -1
- package/dist/client/sandboxed/types.d.ts.map +0 -1
- package/dist/client/sandboxed/types.js.map +0 -1
- package/dist/client/sandboxed/worker.d.ts.map +0 -1
- package/dist/client/sandboxed/worker.js.map +0 -1
- package/dist/client/sandboxed/wrapper.d.ts.map +0 -1
- package/dist/client/sandboxed/wrapper.js.map +0 -1
- package/dist/client/sandboxedWorker.d.ts.map +0 -1
- package/dist/client/sandboxedWorker.js.map +0 -1
- package/dist/client/tcp/client.d.ts.map +0 -1
- package/dist/client/tcp/client.js.map +0 -1
- package/dist/client/tcp/connection.d.ts.map +0 -1
- package/dist/client/tcp/connection.js.map +0 -1
- package/dist/client/tcp/health.d.ts.map +0 -1
- package/dist/client/tcp/health.js.map +0 -1
- package/dist/client/tcp/index.d.ts.map +0 -1
- package/dist/client/tcp/index.js.map +0 -1
- package/dist/client/tcp/reconnect.d.ts.map +0 -1
- package/dist/client/tcp/reconnect.js.map +0 -1
- package/dist/client/tcp/shared.d.ts.map +0 -1
- package/dist/client/tcp/shared.js.map +0 -1
- package/dist/client/tcp/types.d.ts.map +0 -1
- package/dist/client/tcp/types.js.map +0 -1
- package/dist/client/tcpClient.d.ts.map +0 -1
- package/dist/client/tcpClient.js.map +0 -1
- package/dist/client/tcpPool.d.ts.map +0 -1
- package/dist/client/tcpPool.js.map +0 -1
- package/dist/client/types.d.ts.map +0 -1
- package/dist/client/types.js.map +0 -1
- package/dist/client/worker/ackBatcher.d.ts.map +0 -1
- package/dist/client/worker/ackBatcher.js.map +0 -1
- package/dist/client/worker/groupConcurrency.d.ts.map +0 -1
- package/dist/client/worker/groupConcurrency.js.map +0 -1
- package/dist/client/worker/index.d.ts.map +0 -1
- package/dist/client/worker/index.js.map +0 -1
- package/dist/client/worker/jobParser.d.ts.map +0 -1
- package/dist/client/worker/jobParser.js.map +0 -1
- package/dist/client/worker/processor.d.ts.map +0 -1
- package/dist/client/worker/processor.js.map +0 -1
- package/dist/client/worker/types.d.ts.map +0 -1
- package/dist/client/worker/types.js.map +0 -1
- package/dist/client/worker/worker.d.ts.map +0 -1
- package/dist/client/worker/worker.js.map +0 -1
- package/dist/client/worker/workerHeartbeat.d.ts.map +0 -1
- package/dist/client/worker/workerHeartbeat.js.map +0 -1
- package/dist/client/worker/workerPull.d.ts.map +0 -1
- package/dist/client/worker/workerPull.js.map +0 -1
- package/dist/client/worker/workerRateLimiter.d.ts.map +0 -1
- package/dist/client/worker/workerRateLimiter.js.map +0 -1
- package/dist/client/worker.d.ts.map +0 -1
- package/dist/client/worker.js.map +0 -1
- package/dist/client/workflow/emitter.d.ts.map +0 -1
- package/dist/client/workflow/emitter.js.map +0 -1
- package/dist/client/workflow/engine.d.ts.map +0 -1
- package/dist/client/workflow/engine.js.map +0 -1
- package/dist/client/workflow/executor.d.ts.map +0 -1
- package/dist/client/workflow/executor.js.map +0 -1
- package/dist/client/workflow/index.d.ts.map +0 -1
- package/dist/client/workflow/index.js.map +0 -1
- package/dist/client/workflow/loops.d.ts.map +0 -1
- package/dist/client/workflow/loops.js.map +0 -1
- package/dist/client/workflow/runner.d.ts.map +0 -1
- package/dist/client/workflow/runner.js.map +0 -1
- package/dist/client/workflow/store.d.ts.map +0 -1
- package/dist/client/workflow/store.js.map +0 -1
- package/dist/client/workflow/types.d.ts.map +0 -1
- package/dist/client/workflow/types.js.map +0 -1
- package/dist/client/workflow/workflow.d.ts.map +0 -1
- package/dist/client/workflow/workflow.js.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js.map +0 -1
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js.map +0 -1
- package/dist/config/resolve.d.ts.map +0 -1
- package/dist/config/resolve.js.map +0 -1
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js.map +0 -1
- package/dist/domain/queue/dependencyTracker.d.ts.map +0 -1
- package/dist/domain/queue/dependencyTracker.js.map +0 -1
- package/dist/domain/queue/dlqShard.d.ts.map +0 -1
- package/dist/domain/queue/dlqShard.js.map +0 -1
- package/dist/domain/queue/index.d.ts.map +0 -1
- package/dist/domain/queue/index.js.map +0 -1
- package/dist/domain/queue/limiterManager.d.ts.map +0 -1
- package/dist/domain/queue/limiterManager.js.map +0 -1
- package/dist/domain/queue/priorityQueue.d.ts.map +0 -1
- package/dist/domain/queue/priorityQueue.js.map +0 -1
- package/dist/domain/queue/shard.d.ts.map +0 -1
- package/dist/domain/queue/shard.js.map +0 -1
- package/dist/domain/queue/shardCounters.d.ts.map +0 -1
- package/dist/domain/queue/shardCounters.js.map +0 -1
- package/dist/domain/queue/temporalManager.d.ts.map +0 -1
- package/dist/domain/queue/temporalManager.js.map +0 -1
- package/dist/domain/queue/uniqueKeyManager.d.ts.map +0 -1
- package/dist/domain/queue/uniqueKeyManager.js.map +0 -1
- package/dist/domain/queue/waiterManager.d.ts.map +0 -1
- package/dist/domain/queue/waiterManager.js.map +0 -1
- package/dist/domain/types/command.d.ts.map +0 -1
- package/dist/domain/types/command.js.map +0 -1
- package/dist/domain/types/cron.d.ts.map +0 -1
- package/dist/domain/types/cron.js.map +0 -1
- package/dist/domain/types/deduplication.d.ts.map +0 -1
- package/dist/domain/types/deduplication.js.map +0 -1
- package/dist/domain/types/dlq.d.ts.map +0 -1
- package/dist/domain/types/dlq.js.map +0 -1
- package/dist/domain/types/index.d.ts.map +0 -1
- package/dist/domain/types/index.js.map +0 -1
- package/dist/domain/types/job.d.ts.map +0 -1
- package/dist/domain/types/job.js.map +0 -1
- package/dist/domain/types/queue.d.ts.map +0 -1
- package/dist/domain/types/queue.js.map +0 -1
- package/dist/domain/types/response.d.ts.map +0 -1
- package/dist/domain/types/response.js.map +0 -1
- package/dist/domain/types/stall.d.ts.map +0 -1
- package/dist/domain/types/stall.js.map +0 -1
- package/dist/domain/types/webhook.d.ts.map +0 -1
- package/dist/domain/types/webhook.js.map +0 -1
- package/dist/domain/types/worker.d.ts.map +0 -1
- package/dist/domain/types/worker.js.map +0 -1
- package/dist/infrastructure/backup/index.d.ts.map +0 -1
- package/dist/infrastructure/backup/index.js.map +0 -1
- package/dist/infrastructure/backup/s3Backup.d.ts.map +0 -1
- package/dist/infrastructure/backup/s3Backup.js.map +0 -1
- package/dist/infrastructure/backup/s3BackupConfig.d.ts.map +0 -1
- package/dist/infrastructure/backup/s3BackupConfig.js.map +0 -1
- package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +0 -1
- package/dist/infrastructure/backup/s3BackupOperations.js.map +0 -1
- package/dist/infrastructure/cloud/buffer.d.ts.map +0 -1
- package/dist/infrastructure/cloud/buffer.js.map +0 -1
- package/dist/infrastructure/cloud/circuitBreaker.d.ts.map +0 -1
- package/dist/infrastructure/cloud/circuitBreaker.js.map +0 -1
- package/dist/infrastructure/cloud/cloudAgent 2.d.ts +0 -55
- package/dist/infrastructure/cloud/cloudAgent 2.d.ts.map +0 -1
- package/dist/infrastructure/cloud/cloudAgent 2.js +0 -243
- package/dist/infrastructure/cloud/cloudAgent 2.js.map +0 -1
- package/dist/infrastructure/cloud/cloudAgent.d.ts.map +0 -1
- package/dist/infrastructure/cloud/cloudAgent.js.map +0 -1
- package/dist/infrastructure/cloud/commandHandler 2.d.ts +0 -52
- package/dist/infrastructure/cloud/commandHandler 2.d.ts.map +0 -1
- package/dist/infrastructure/cloud/commandHandler 2.js +0 -84
- package/dist/infrastructure/cloud/commandHandler 2.js.map +0 -1
- package/dist/infrastructure/cloud/commandHandler.d.ts.map +0 -1
- package/dist/infrastructure/cloud/commandHandler.js.map +0 -1
- package/dist/infrastructure/cloud/commands 2.d.ts +0 -11
- package/dist/infrastructure/cloud/commands 2.d.ts.map +0 -1
- package/dist/infrastructure/cloud/commands 2.js +0 -343
- package/dist/infrastructure/cloud/commands 2.js.map +0 -1
- package/dist/infrastructure/cloud/commands.d.ts.map +0 -1
- package/dist/infrastructure/cloud/commands.js.map +0 -1
- package/dist/infrastructure/cloud/config.d.ts.map +0 -1
- package/dist/infrastructure/cloud/config.js.map +0 -1
- package/dist/infrastructure/cloud/httpSender.d.ts.map +0 -1
- package/dist/infrastructure/cloud/httpSender.js.map +0 -1
- package/dist/infrastructure/cloud/index.d.ts.map +0 -1
- package/dist/infrastructure/cloud/index.js.map +0 -1
- package/dist/infrastructure/cloud/instanceId.d.ts +0 -7
- package/dist/infrastructure/cloud/instanceId.d.ts.map +0 -1
- package/dist/infrastructure/cloud/instanceId.js +0 -34
- package/dist/infrastructure/cloud/instanceId.js.map +0 -1
- package/dist/infrastructure/cloud/logger.d.ts.map +0 -1
- package/dist/infrastructure/cloud/logger.js.map +0 -1
- package/dist/infrastructure/cloud/snapshotCollector.d.ts.map +0 -1
- package/dist/infrastructure/cloud/snapshotCollector.js.map +0 -1
- package/dist/infrastructure/cloud/snapshotHelpers.d.ts.map +0 -1
- package/dist/infrastructure/cloud/snapshotHelpers.js.map +0 -1
- package/dist/infrastructure/cloud/statsRefresh.d.ts.map +0 -1
- package/dist/infrastructure/cloud/statsRefresh.js.map +0 -1
- package/dist/infrastructure/cloud/statsUpdate.d.ts.map +0 -1
- package/dist/infrastructure/cloud/statsUpdate.js.map +0 -1
- package/dist/infrastructure/cloud/types.d.ts.map +0 -1
- package/dist/infrastructure/cloud/types.js.map +0 -1
- package/dist/infrastructure/cloud/wsSender.d.ts.map +0 -1
- package/dist/infrastructure/cloud/wsSender.js.map +0 -1
- package/dist/infrastructure/persistence/index.d.ts.map +0 -1
- package/dist/infrastructure/persistence/index.js.map +0 -1
- package/dist/infrastructure/persistence/schema.d.ts.map +0 -1
- package/dist/infrastructure/persistence/schema.js.map +0 -1
- package/dist/infrastructure/persistence/sqlite.d.ts.map +0 -1
- package/dist/infrastructure/persistence/sqlite.js.map +0 -1
- package/dist/infrastructure/persistence/sqliteBatch.d.ts.map +0 -1
- package/dist/infrastructure/persistence/sqliteBatch.js.map +0 -1
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +0 -1
- package/dist/infrastructure/persistence/sqliteSerializer.js.map +0 -1
- package/dist/infrastructure/persistence/statements.d.ts.map +0 -1
- package/dist/infrastructure/persistence/statements.js.map +0 -1
- package/dist/infrastructure/scheduler/cronParser.d.ts.map +0 -1
- package/dist/infrastructure/scheduler/cronParser.js.map +0 -1
- package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +0 -1
- package/dist/infrastructure/scheduler/cronScheduler.js.map +0 -1
- package/dist/infrastructure/scheduler/index.d.ts.map +0 -1
- package/dist/infrastructure/scheduler/index.js.map +0 -1
- package/dist/infrastructure/server/handler.d.ts.map +0 -1
- package/dist/infrastructure/server/handler.js.map +0 -1
- package/dist/infrastructure/server/handlerRoutes.d.ts.map +0 -1
- package/dist/infrastructure/server/handlerRoutes.js.map +0 -1
- package/dist/infrastructure/server/handlers/advanced.d.ts.map +0 -1
- package/dist/infrastructure/server/handlers/advanced.js.map +0 -1
- package/dist/infrastructure/server/handlers/core.d.ts.map +0 -1
- package/dist/infrastructure/server/handlers/core.js.map +0 -1
- package/dist/infrastructure/server/handlers/cron.d.ts.map +0 -1
- package/dist/infrastructure/server/handlers/cron.js.map +0 -1
- package/dist/infrastructure/server/handlers/dashboard.d.ts.map +0 -1
- package/dist/infrastructure/server/handlers/dashboard.js.map +0 -1
- package/dist/infrastructure/server/handlers/dlq.d.ts.map +0 -1
- package/dist/infrastructure/server/handlers/dlq.js.map +0 -1
- package/dist/infrastructure/server/handlers/index.d.ts.map +0 -1
- package/dist/infrastructure/server/handlers/index.js.map +0 -1
- package/dist/infrastructure/server/handlers/management.d.ts.map +0 -1
- package/dist/infrastructure/server/handlers/management.js.map +0 -1
- package/dist/infrastructure/server/handlers/monitoring.d.ts.map +0 -1
- package/dist/infrastructure/server/handlers/monitoring.js.map +0 -1
- package/dist/infrastructure/server/handlers/query.d.ts.map +0 -1
- package/dist/infrastructure/server/handlers/query.js.map +0 -1
- package/dist/infrastructure/server/http.d.ts.map +0 -1
- package/dist/infrastructure/server/http.js.map +0 -1
- package/dist/infrastructure/server/httpEndpoints.d.ts.map +0 -1
- package/dist/infrastructure/server/httpEndpoints.js.map +0 -1
- package/dist/infrastructure/server/httpRouteJobs.d.ts.map +0 -1
- package/dist/infrastructure/server/httpRouteJobs.js.map +0 -1
- package/dist/infrastructure/server/httpRouteQueueConfig.d.ts.map +0 -1
- package/dist/infrastructure/server/httpRouteQueueConfig.js.map +0 -1
- package/dist/infrastructure/server/httpRouteQueues.d.ts.map +0 -1
- package/dist/infrastructure/server/httpRouteQueues.js.map +0 -1
- package/dist/infrastructure/server/httpRouteResources.d.ts.map +0 -1
- package/dist/infrastructure/server/httpRouteResources.js.map +0 -1
- package/dist/infrastructure/server/index.d.ts.map +0 -1
- package/dist/infrastructure/server/index.js.map +0 -1
- package/dist/infrastructure/server/protocol.d.ts.map +0 -1
- package/dist/infrastructure/server/protocol.js.map +0 -1
- package/dist/infrastructure/server/rateLimiter.d.ts.map +0 -1
- package/dist/infrastructure/server/rateLimiter.js.map +0 -1
- package/dist/infrastructure/server/sseHandler.d.ts.map +0 -1
- package/dist/infrastructure/server/sseHandler.js.map +0 -1
- package/dist/infrastructure/server/tcp.d.ts.map +0 -1
- package/dist/infrastructure/server/tcp.js.map +0 -1
- package/dist/infrastructure/server/types.d.ts.map +0 -1
- package/dist/infrastructure/server/types.js.map +0 -1
- package/dist/infrastructure/server/wsHandler.d.ts.map +0 -1
- package/dist/infrastructure/server/wsHandler.js.map +0 -1
- package/dist/main.d.ts.map +0 -1
- package/dist/main.js.map +0 -1
- package/dist/mcp/adapter.d.ts.map +0 -1
- package/dist/mcp/adapter.js.map +0 -1
- package/dist/mcp/httpHandler.d.ts.map +0 -1
- package/dist/mcp/httpHandler.js.map +0 -1
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/mcpHandlers.d.ts +0 -129
- package/dist/mcp/mcpHandlers.d.ts.map +0 -1
- package/dist/mcp/mcpHandlers.js +0 -204
- package/dist/mcp/mcpHandlers.js.map +0 -1
- package/dist/mcp/mcpTools.d.ts +0 -15
- package/dist/mcp/mcpTools.d.ts.map +0 -1
- package/dist/mcp/mcpTools.js +0 -277
- package/dist/mcp/mcpTools.js.map +0 -1
- package/dist/mcp/prompts.d.ts.map +0 -1
- package/dist/mcp/prompts.js.map +0 -1
- package/dist/mcp/resources.d.ts.map +0 -1
- package/dist/mcp/resources.js.map +0 -1
- package/dist/mcp/tools/consumptionTools.d.ts.map +0 -1
- package/dist/mcp/tools/consumptionTools.js.map +0 -1
- package/dist/mcp/tools/cronTools.d.ts.map +0 -1
- package/dist/mcp/tools/cronTools.js.map +0 -1
- package/dist/mcp/tools/dlqTools.d.ts.map +0 -1
- package/dist/mcp/tools/dlqTools.js.map +0 -1
- package/dist/mcp/tools/flowTools.d.ts.map +0 -1
- package/dist/mcp/tools/flowTools.js.map +0 -1
- package/dist/mcp/tools/handlerTools.d.ts.map +0 -1
- package/dist/mcp/tools/handlerTools.js.map +0 -1
- package/dist/mcp/tools/jobMgmtTools.d.ts.map +0 -1
- package/dist/mcp/tools/jobMgmtTools.js.map +0 -1
- package/dist/mcp/tools/jobTools.d.ts.map +0 -1
- package/dist/mcp/tools/jobTools.js.map +0 -1
- package/dist/mcp/tools/mcpTracker.d.ts.map +0 -1
- package/dist/mcp/tools/mcpTracker.js.map +0 -1
- package/dist/mcp/tools/monitoringTools.d.ts.map +0 -1
- package/dist/mcp/tools/monitoringTools.js.map +0 -1
- package/dist/mcp/tools/queueTools.d.ts.map +0 -1
- package/dist/mcp/tools/queueTools.js.map +0 -1
- package/dist/mcp/tools/rateLimitTools.d.ts.map +0 -1
- package/dist/mcp/tools/rateLimitTools.js.map +0 -1
- package/dist/mcp/tools/webhookTools.d.ts.map +0 -1
- package/dist/mcp/tools/webhookTools.js.map +0 -1
- package/dist/mcp/tools/withErrorHandler.d.ts.map +0 -1
- package/dist/mcp/tools/withErrorHandler.js.map +0 -1
- package/dist/mcp/tools/workerMgmtTools.d.ts.map +0 -1
- package/dist/mcp/tools/workerMgmtTools.js.map +0 -1
- package/dist/shared/boundedMap.d.ts.map +0 -1
- package/dist/shared/boundedMap.js.map +0 -1
- package/dist/shared/boundedSet.d.ts.map +0 -1
- package/dist/shared/boundedSet.js.map +0 -1
- package/dist/shared/hash.d.ts.map +0 -1
- package/dist/shared/hash.js.map +0 -1
- package/dist/shared/histogram.d.ts.map +0 -1
- package/dist/shared/histogram.js.map +0 -1
- package/dist/shared/index.d.ts.map +0 -1
- package/dist/shared/index.js.map +0 -1
- package/dist/shared/lock.d.ts.map +0 -1
- package/dist/shared/lock.js.map +0 -1
- package/dist/shared/logger.d.ts.map +0 -1
- package/dist/shared/logger.js.map +0 -1
- package/dist/shared/lru.d.ts.map +0 -1
- package/dist/shared/lru.js.map +0 -1
- package/dist/shared/lruMap.d.ts.map +0 -1
- package/dist/shared/lruMap.js.map +0 -1
- package/dist/shared/lruSet.d.ts.map +0 -1
- package/dist/shared/lruSet.js.map +0 -1
- package/dist/shared/minHeap.d.ts.map +0 -1
- package/dist/shared/minHeap.js.map +0 -1
- package/dist/shared/semaphore.d.ts.map +0 -1
- package/dist/shared/semaphore.js.map +0 -1
- package/dist/shared/serialization.d.ts.map +0 -1
- package/dist/shared/serialization.js.map +0 -1
- package/dist/shared/skipList.d.ts.map +0 -1
- package/dist/shared/skipList.js.map +0 -1
- package/dist/shared/ttlMap.d.ts.map +0 -1
- package/dist/shared/ttlMap.js.map +0 -1
- package/dist/shared/version.d.ts.map +0 -1
- package/dist/shared/version.js.map +0 -1
- package/dist/shared/webhookValidation.d.ts.map +0 -1
- package/dist/shared/webhookValidation.js.map +0 -1
package/README.md
CHANGED
|
@@ -49,6 +49,24 @@ That's it. Queue + Worker in one object. No Redis, no config, no setup.
|
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
|
+
## 🪶 Featherweight install
|
|
53
|
+
|
|
54
|
+
`bun add bunqueue` pulls **7 packages and 5.4 MB** — and that includes the binary
|
|
55
|
+
queue server, the CLI, and the MCP server. Most queue libraries pull a Redis
|
|
56
|
+
client and its dependency tree before you've queued a single job.
|
|
57
|
+
|
|
58
|
+
| | Before (2.7.x) | Now | |
|
|
59
|
+
| --- | --- | --- | --- |
|
|
60
|
+
| **`node_modules`** | 93 MB | **5.4 MB** | **−94%** |
|
|
61
|
+
| **packages** | 117 | **7** | **−110** |
|
|
62
|
+
| **cold install** | ~6 s | **~1.2 s** | **~5× faster** |
|
|
63
|
+
|
|
64
|
+
Just **2 runtime dependencies** (`croner` + `msgpackr`). SQLite, S3, HTTP and
|
|
65
|
+
WebSocket are all Bun built-ins. The MCP SDK is an optional peer dependency —
|
|
66
|
+
queue users never download it. ([details →](https://bunqueue.dev/changelog/))
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
52
70
|
## Simple Mode
|
|
53
71
|
|
|
54
72
|
Simple Mode gives you a Queue and a Worker in a single object. Add jobs, process them, add middleware, schedule crons — all from one place.
|
|
@@ -537,26 +555,32 @@ await engine.start('order-pipeline', { orderId: 'ORD-1', amount: 99.99 });
|
|
|
537
555
|
|
|
538
556
|
**vs Competitors:**
|
|
539
557
|
|
|
540
|
-
| | **bunqueue** | **Temporal** | **Inngest** | **
|
|
558
|
+
| | **bunqueue** | **Temporal** | **Inngest** | **Trigger.dev** |
|
|
541
559
|
|---|---|---|---|---|
|
|
542
|
-
| **Infrastructure** | None (embedded) | PostgreSQL + 7 services | Cloud-only |
|
|
560
|
+
| **Infrastructure** | None (embedded) | PostgreSQL + 7 services | Cloud-only | Redis + PostgreSQL |
|
|
543
561
|
| **Saga compensation** | Built-in | Manual | Manual | Manual |
|
|
544
|
-
| **Human-in-the-loop** | `.waitFor()` | Signals API | `step.waitForEvent()` |
|
|
545
|
-
| **Self-hosted** | Zero-config | Complex | No |
|
|
546
|
-
| **Pricing** | Free (MIT) | Free / Cloud $$ | Per-execution |
|
|
562
|
+
| **Human-in-the-loop** | `.waitFor()` | Signals API | `step.waitForEvent()` | Waitpoint tokens |
|
|
563
|
+
| **Self-hosted** | Zero-config | Complex | No | Complex |
|
|
564
|
+
| **Pricing** | Free (MIT) | Free / Cloud $$ | Per-execution | Free tier, then $50/mo+ |
|
|
547
565
|
|
|
548
566
|
```typescript
|
|
549
567
|
// Branching
|
|
550
568
|
const flow = new Workflow('tiered')
|
|
551
|
-
.step('classify', async (ctx) =>
|
|
552
|
-
|
|
569
|
+
.step('classify', async (ctx) => {
|
|
570
|
+
const { amount } = ctx.input as { amount: number };
|
|
571
|
+
return { tier: amount > 1000 ? 'vip' : 'basic' };
|
|
572
|
+
})
|
|
573
|
+
.branch((ctx) => (ctx.steps['classify'] as { tier: string }).tier)
|
|
553
574
|
.path('vip', (w) => w.step('vip-handler', async () => ({ discount: 20 })))
|
|
554
575
|
.path('basic', (w) => w.step('basic-handler', async () => ({ discount: 0 })))
|
|
555
576
|
.step('done', async () => ({ processed: true }));
|
|
556
577
|
|
|
557
578
|
// Human-in-the-loop
|
|
558
579
|
const approvalFlow = new Workflow('expense')
|
|
559
|
-
.step('submit', async (ctx) =>
|
|
580
|
+
.step('submit', async (ctx) => {
|
|
581
|
+
const { amount } = ctx.input as { amount: number };
|
|
582
|
+
return { amount };
|
|
583
|
+
})
|
|
560
584
|
.waitFor('manager-approval')
|
|
561
585
|
.step('reimburse', async (ctx) => {
|
|
562
586
|
const decision = ctx.signals['manager-approval'] as { approved: boolean };
|
|
@@ -596,6 +620,7 @@ https://github.com/user-attachments/assets/e8a8d38e-b4a6-4dc8-8360-876c0f24d116
|
|
|
596
620
|
- **MCP server included** — 73 tools, 5 resources, 3 prompts. AI agents get full control out of the box
|
|
597
621
|
- **BullMQ-compatible API** — Same `Queue`, `Worker`, `QueueEvents`
|
|
598
622
|
- **Zero dependencies** — No Redis, no MongoDB
|
|
623
|
+
- **Tiny footprint** — 5.4 MB installed, 7 packages (just 2 runtime deps: `croner` + `msgpackr`)
|
|
599
624
|
- **SQLite persistence** — Survives restarts, WAL mode for concurrent access
|
|
600
625
|
- **Up to 286K ops/sec** — [Verified benchmarks](https://bunqueue.dev/guide/benchmarks/)
|
|
601
626
|
|
|
@@ -620,17 +645,25 @@ bunqueue is the **first job queue with native MCP support**. AI agents get a ful
|
|
|
620
645
|
- **HTTP handlers** — register a URL, bunqueue auto-processes jobs via HTTP calls
|
|
621
646
|
|
|
622
647
|
```bash
|
|
623
|
-
#
|
|
648
|
+
# bunqueue-mcp is a binary bundled inside the bunqueue package (not a standalone npm package),
|
|
649
|
+
# so install bunqueue first, then connect Claude Code:
|
|
650
|
+
bun add bunqueue
|
|
651
|
+
# Since v2.8.0 the MCP SDK is an optional peer dependency. Queue-only users skip it entirely:
|
|
652
|
+
# a clean install drops from 93 MB / 117 packages to 5.4 MB / 7 packages (−94%, up to ~5× faster on a cold install).
|
|
653
|
+
# bunx --package=bunqueue does NOT auto-install optional peers, so install the SDK once to run the MCP server:
|
|
654
|
+
bun add @modelcontextprotocol/sdk
|
|
624
655
|
claude mcp add bunqueue -- bunx bunqueue-mcp
|
|
625
656
|
```
|
|
626
657
|
|
|
627
658
|
```json
|
|
628
|
-
// Claude Desktop / Cursor / Windsurf —
|
|
659
|
+
// Claude Desktop / Cursor / Windsurf — --package=bunqueue lets bunx resolve the bundled
|
|
660
|
+
// bunqueue-mcp binary without a separate install (the @modelcontextprotocol/sdk optional
|
|
661
|
+
// peer dependency must still be installed once: bun add @modelcontextprotocol/sdk):
|
|
629
662
|
{
|
|
630
663
|
"mcpServers": {
|
|
631
664
|
"bunqueue": {
|
|
632
665
|
"command": "bunx",
|
|
633
|
-
"args": ["bunqueue-mcp"]
|
|
666
|
+
"args": ["--package=bunqueue", "bunqueue-mcp"]
|
|
634
667
|
}
|
|
635
668
|
}
|
|
636
669
|
}
|
|
@@ -28,4 +28,3 @@ export declare function startBackgroundTasks(ctx: BackgroundContext, cronSchedul
|
|
|
28
28
|
export declare function stopBackgroundTasks(handles: BackgroundTaskHandles): void;
|
|
29
29
|
export declare function recover(ctx: BackgroundContext): void;
|
|
30
30
|
export { processPendingDependencies };
|
|
31
|
-
//# sourceMappingURL=backgroundTasks.d.ts.map
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { queueLog } from '../shared/logger';
|
|
6
6
|
import { shardIndex } from '../shared/hash';
|
|
7
|
+
import { createDlqEntry } from '../domain/types/dlq';
|
|
7
8
|
import { calculateBackoff } from '../domain/types/job';
|
|
8
9
|
import * as dlqOps from './dlqManager';
|
|
9
10
|
import { checkExpiredLocks } from './lockManager';
|
|
@@ -12,6 +13,7 @@ import { checkStalledJobs } from './stallDetection';
|
|
|
12
13
|
import { processPendingDependencies } from './dependencyProcessor';
|
|
13
14
|
import { handleTaskError, handleTaskSuccess, getTaskErrorStats } from './taskErrorTracking';
|
|
14
15
|
import { runMonitoringChecks } from './monitoringChecks';
|
|
16
|
+
import { isCorruptDependsOn } from '../infrastructure/persistence/sqliteSerializer';
|
|
15
17
|
export { getTaskErrorStats };
|
|
16
18
|
/**
|
|
17
19
|
* Start all background tasks
|
|
@@ -151,12 +153,40 @@ function performDlqMaintenance(ctx) {
|
|
|
151
153
|
// ============ Recovery ============
|
|
152
154
|
/** Batch size for paginated recovery */
|
|
153
155
|
const RECOVERY_BATCH_SIZE = 10000;
|
|
156
|
+
/**
|
|
157
|
+
* Route a job whose `depends_on` blob was corrupt on disk straight to the DLQ.
|
|
158
|
+
*
|
|
159
|
+
* Its real dependency metadata is unrecoverable, so it must never be enqueued
|
|
160
|
+
* as "ready" (out-of-order execution) nor parked in waitingDeps behind a
|
|
161
|
+
* dependency that can never complete (an unbounded leak).
|
|
162
|
+
*
|
|
163
|
+
* We persist the DLQ entry to disk and drop the jobs row here, but do NOT add
|
|
164
|
+
* it to the in-memory DLQ — the later `loadDlq()` pass (which runs after both
|
|
165
|
+
* recovery phases) restores every persisted entry into memory exactly once.
|
|
166
|
+
* Adding it here too would double-count it. The job row is deleted so that pass
|
|
167
|
+
* sees only the DLQ table.
|
|
168
|
+
*/
|
|
169
|
+
function quarantineCorruptDependsOn(ctx, job) {
|
|
170
|
+
if (!ctx.storage)
|
|
171
|
+
return;
|
|
172
|
+
const entry = createDlqEntry(job, "unknown" /* FailureReason.Unknown */, 'corrupt-dependency-metadata');
|
|
173
|
+
ctx.storage.saveDlqEntry(entry);
|
|
174
|
+
ctx.storage.deleteJob(job.id);
|
|
175
|
+
ctx.registerQueueName(job.queue);
|
|
176
|
+
queueLog.error('Recovered job with corrupt depends_on metadata -> routed to DLQ', {
|
|
177
|
+
jobId: String(job.id),
|
|
178
|
+
queue: job.queue,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
154
181
|
// eslint-disable-next-line complexity
|
|
155
182
|
export function recover(ctx) {
|
|
156
183
|
if (!ctx.storage)
|
|
157
184
|
return;
|
|
158
185
|
// Load completed job IDs from SQLite for dependency checking
|
|
159
186
|
const completedInDb = ctx.storage.loadCompletedJobIds();
|
|
187
|
+
// Load DLQ job IDs so Phase 1 can skip stale active rows for DLQ'd jobs
|
|
188
|
+
// (legacy DBs predate the DLQ-row cleanup fix in failJob).
|
|
189
|
+
const dlqJobIds = ctx.storage.loadDlqJobIds();
|
|
160
190
|
const now = Date.now();
|
|
161
191
|
// === PHASE 1: Recover active jobs (were processing when server stopped) ===
|
|
162
192
|
// These jobs are considered "stalled" and need to be retried or moved to DLQ
|
|
@@ -177,6 +207,21 @@ export function recover(ctx) {
|
|
|
177
207
|
ctx.registerQueueName(job.queue);
|
|
178
208
|
continue;
|
|
179
209
|
}
|
|
210
|
+
// Skip jobs already present in DLQ (stale 'active' row from before the
|
|
211
|
+
// failJob fix). Drop the orphan row so Phase 2 and subsequent queries
|
|
212
|
+
// don't double-count it.
|
|
213
|
+
if (dlqJobIds.has(job.id)) {
|
|
214
|
+
ctx.storage.deleteJob(job.id);
|
|
215
|
+
ctx.registerQueueName(job.queue);
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
// A corrupt depends_on blob makes the job's real dependencies
|
|
219
|
+
// unrecoverable: route it to the DLQ instead of retrying it (which could
|
|
220
|
+
// execute it out-of-order once stalls are exhausted).
|
|
221
|
+
if (isCorruptDependsOn(job)) {
|
|
222
|
+
quarantineCorruptDependsOn(ctx, job);
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
180
225
|
// Increment stall count (job was interrupted)
|
|
181
226
|
job.stallCount = (job.stallCount || 0) + 1;
|
|
182
227
|
job.attempts++;
|
|
@@ -216,6 +261,13 @@ export function recover(ctx) {
|
|
|
216
261
|
for (const job of jobs) {
|
|
217
262
|
const idx = shardIndex(job.queue);
|
|
218
263
|
const shard = ctx.shards[idx];
|
|
264
|
+
// A corrupt depends_on blob means the real dependencies are unrecoverable.
|
|
265
|
+
// Route the job to the DLQ rather than enqueuing it as ready (out-of-order
|
|
266
|
+
// execution) or parking it in waitingDeps forever (unbounded leak).
|
|
267
|
+
if (isCorruptDependsOn(job)) {
|
|
268
|
+
quarantineCorruptDependsOn(ctx, job);
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
219
271
|
// Check if job has unmet dependencies
|
|
220
272
|
// Check both in-memory completedJobs AND SQLite job_results table
|
|
221
273
|
const hasDependencies = job.dependsOn && job.dependsOn.length > 0;
|
|
@@ -257,10 +309,40 @@ export function recover(ctx) {
|
|
|
257
309
|
const shard = ctx.shards[idx];
|
|
258
310
|
for (const entry of entries) {
|
|
259
311
|
shard.restoreDlqEntry(queue, entry);
|
|
312
|
+
// Populate jobIndex so getJob/getJobState resolve DLQ'd jobs post-restart.
|
|
313
|
+
ctx.jobIndex.set(entry.job.id, { type: 'dlq', queueName: queue });
|
|
260
314
|
}
|
|
261
315
|
ctx.registerQueueName(queue);
|
|
262
316
|
}
|
|
317
|
+
// === PHASE 3: Recover completed jobs ===
|
|
318
|
+
// Required for clean('completed'), stats.completed, and in-memory lookups
|
|
319
|
+
// on jobs that completed before a server restart (issue #84).
|
|
320
|
+
// Capped at maxCompletedJobs (matches BoundedSet cap) so we don't exceed
|
|
321
|
+
// the in-memory budget when SQLite contains more rows than the cap.
|
|
322
|
+
// Note: we deliberately do NOT populate customIdMap here — Phase 2 owns
|
|
323
|
+
// dedup for pending jobs, and push.ts handles customId collision against
|
|
324
|
+
// completed jobs via the storage fallback. Touching customIdMap here would
|
|
325
|
+
// LRU-evict pending-job mappings when many completed jobs have customIds.
|
|
326
|
+
const completedCap = ctx.config.maxCompletedJobs;
|
|
327
|
+
let completedLoaded = 0;
|
|
328
|
+
let completedOffset = 0;
|
|
329
|
+
while (completedLoaded < completedCap) {
|
|
330
|
+
const remaining = completedCap - completedLoaded;
|
|
331
|
+
const batchSize = Math.min(RECOVERY_BATCH_SIZE, remaining);
|
|
332
|
+
const completedBatch = ctx.storage.loadCompletedJobs(batchSize, completedOffset);
|
|
333
|
+
if (completedBatch.length === 0)
|
|
334
|
+
break;
|
|
335
|
+
for (const job of completedBatch) {
|
|
336
|
+
ctx.jobIndex.set(job.id, { type: 'completed', queueName: job.queue });
|
|
337
|
+
ctx.completedJobs.add(job.id);
|
|
338
|
+
ctx.completedJobsData.set(job.id, job);
|
|
339
|
+
ctx.registerQueueName(job.queue);
|
|
340
|
+
}
|
|
341
|
+
completedLoaded += completedBatch.length;
|
|
342
|
+
completedOffset += completedBatch.length;
|
|
343
|
+
if (completedBatch.length < batchSize)
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
263
346
|
}
|
|
264
347
|
// Re-export for backward compatibility
|
|
265
348
|
export { processPendingDependencies };
|
|
266
|
-
//# sourceMappingURL=backgroundTasks.js.map
|
|
@@ -19,4 +19,26 @@ export declare function unregisterClientJob(clientId: string | undefined, jobId:
|
|
|
19
19
|
* Uses proper locking to prevent race conditions.
|
|
20
20
|
*/
|
|
21
21
|
export declare function releaseClientJobs(clientId: string, ctx: LockContext): Promise<number>;
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Force-release client tracking without acquiring queue locks.
|
|
24
|
+
* Used as a last-resort fallback when releaseClientJobs has exhausted its
|
|
25
|
+
* retry budget (e.g. persistent lock contention on TCP disconnect). For each
|
|
26
|
+
* orphaned job:
|
|
27
|
+
* - clears `jobLocks` so a stale lock token can't survive the disconnect
|
|
28
|
+
* until its TTL expires;
|
|
29
|
+
* - expires both `lastHeartbeat` (so stall detection's heartbeat check
|
|
30
|
+
* fires) and `startedAt` (so the gracePeriod check passes immediately).
|
|
31
|
+
*
|
|
32
|
+
* Recovery latency: stall detection uses two-phase confirmation
|
|
33
|
+
* (stalledCandidates collected on one tick, acted on the next), so a job is
|
|
34
|
+
* recovered within ~2 stall-check ticks (≈10s with defaults). This is faster
|
|
35
|
+
* than the full stallTimeout (30s default) but NOT instant.
|
|
36
|
+
*
|
|
37
|
+
* This path runs lock-free: callers must accept that another path (stall
|
|
38
|
+
* detector, lock expiration) may concurrently mutate or remove the same job
|
|
39
|
+
* from processingShards. Worst case: our mutation lands on an object that is
|
|
40
|
+
* no longer in the Map, wasting the write. Never corrupts state.
|
|
41
|
+
*
|
|
42
|
+
* Returns the number of jobs whose state was reset.
|
|
43
|
+
*/
|
|
44
|
+
export declare function forceReleaseClientJobs(clientId: string, ctx: LockContext): number;
|
|
@@ -73,36 +73,91 @@ export async function releaseClientJobs(clientId, ctx) {
|
|
|
73
73
|
}
|
|
74
74
|
let released = 0;
|
|
75
75
|
const now = Date.now();
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
list
|
|
85
|
-
|
|
76
|
+
try {
|
|
77
|
+
// Phase 3: Process each processing shard with proper locking
|
|
78
|
+
// Lock order: shardLocks BEFORE processingLocks (per lock hierarchy in CLAUDE.md)
|
|
79
|
+
for (const [procIdx, items] of byProcShard) {
|
|
80
|
+
// Group items by queue shard to minimize lock acquisitions
|
|
81
|
+
const byQueueShard = new Map();
|
|
82
|
+
for (const item of items) {
|
|
83
|
+
let list = byQueueShard.get(item.queueShardIdx);
|
|
84
|
+
if (!list) {
|
|
85
|
+
list = [];
|
|
86
|
+
byQueueShard.set(item.queueShardIdx, list);
|
|
87
|
+
}
|
|
88
|
+
list.push(item);
|
|
86
89
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
90
|
+
// Acquire shard locks first, then processing lock
|
|
91
|
+
for (const [queueShardIdx, shardItems] of byQueueShard) {
|
|
92
|
+
await withWriteLock(ctx.shardLocks[queueShardIdx], async () => {
|
|
93
|
+
await withWriteLock(ctx.processingLocks[procIdx], () => {
|
|
94
|
+
for (const { jobId } of shardItems) {
|
|
95
|
+
const job = ctx.processingShards[procIdx].get(jobId);
|
|
96
|
+
if (!job)
|
|
97
|
+
continue;
|
|
98
|
+
released += releaseJobToQueue({ jobId, job, procIdx, queueShardIdx, ctx, now });
|
|
99
|
+
}
|
|
100
|
+
});
|
|
99
101
|
});
|
|
100
|
-
}
|
|
102
|
+
}
|
|
101
103
|
}
|
|
104
|
+
return released;
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
// Always clear client tracking, even if locking failed mid-flight.
|
|
108
|
+
// Prevents a leak in ctx.clientJobs that would otherwise accumulate
|
|
109
|
+
// across every TCP disconnect that hit a lock timeout. Jobs left in
|
|
110
|
+
// 'active' state will be recovered by the stall detector on its next tick.
|
|
111
|
+
ctx.clientJobs.delete(clientId);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Force-release client tracking without acquiring queue locks.
|
|
116
|
+
* Used as a last-resort fallback when releaseClientJobs has exhausted its
|
|
117
|
+
* retry budget (e.g. persistent lock contention on TCP disconnect). For each
|
|
118
|
+
* orphaned job:
|
|
119
|
+
* - clears `jobLocks` so a stale lock token can't survive the disconnect
|
|
120
|
+
* until its TTL expires;
|
|
121
|
+
* - expires both `lastHeartbeat` (so stall detection's heartbeat check
|
|
122
|
+
* fires) and `startedAt` (so the gracePeriod check passes immediately).
|
|
123
|
+
*
|
|
124
|
+
* Recovery latency: stall detection uses two-phase confirmation
|
|
125
|
+
* (stalledCandidates collected on one tick, acted on the next), so a job is
|
|
126
|
+
* recovered within ~2 stall-check ticks (≈10s with defaults). This is faster
|
|
127
|
+
* than the full stallTimeout (30s default) but NOT instant.
|
|
128
|
+
*
|
|
129
|
+
* This path runs lock-free: callers must accept that another path (stall
|
|
130
|
+
* detector, lock expiration) may concurrently mutate or remove the same job
|
|
131
|
+
* from processingShards. Worst case: our mutation lands on an object that is
|
|
132
|
+
* no longer in the Map, wasting the write. Never corrupts state.
|
|
133
|
+
*
|
|
134
|
+
* Returns the number of jobs whose state was reset.
|
|
135
|
+
*/
|
|
136
|
+
export function forceReleaseClientJobs(clientId, ctx) {
|
|
137
|
+
const jobs = ctx.clientJobs.get(clientId);
|
|
138
|
+
if (!jobs || jobs.size === 0) {
|
|
139
|
+
ctx.clientJobs.delete(clientId);
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
let touched = 0;
|
|
143
|
+
for (const jobId of jobs) {
|
|
144
|
+
// Always drop any lock token for this job, even if the location is no
|
|
145
|
+
// longer 'processing' — prevents stale tokens from surviving.
|
|
146
|
+
ctx.jobLocks.delete(jobId);
|
|
147
|
+
const loc = ctx.jobIndex.get(jobId);
|
|
148
|
+
if (loc?.type !== 'processing')
|
|
149
|
+
continue;
|
|
150
|
+
const job = ctx.processingShards[loc.shardIdx].get(jobId);
|
|
151
|
+
if (!job)
|
|
152
|
+
continue;
|
|
153
|
+
// Expire heartbeat AND startedAt so the stall detector's grace-period
|
|
154
|
+
// gate passes on the next eligible tick.
|
|
155
|
+
job.lastHeartbeat = 0;
|
|
156
|
+
job.startedAt = 0;
|
|
157
|
+
touched++;
|
|
102
158
|
}
|
|
103
|
-
// Clear client tracking
|
|
104
159
|
ctx.clientJobs.delete(clientId);
|
|
105
|
-
return
|
|
160
|
+
return touched;
|
|
106
161
|
}
|
|
107
162
|
/** Release a single job back to queue */
|
|
108
163
|
function releaseJobToQueue(opts) {
|
|
@@ -132,4 +187,3 @@ function releaseJobToQueue(opts) {
|
|
|
132
187
|
ctx.jobIndex.set(jobId, { type: 'queue', shardIdx: queueShardIdx, queueName: job.queue });
|
|
133
188
|
return 1;
|
|
134
189
|
}
|
|
135
|
-
//# sourceMappingURL=clientTracking.js.map
|
|
@@ -105,6 +105,11 @@ export declare class ContextFactory {
|
|
|
105
105
|
getQueueControlContext(): {
|
|
106
106
|
shards: Shard[];
|
|
107
107
|
jobIndex: Map<JobId, JobLocation>;
|
|
108
|
+
processingShards: Map<JobId, Job>[];
|
|
109
|
+
completedJobs: BoundedSet<JobId>;
|
|
110
|
+
completedJobsData: BoundedMap<JobId, Job>;
|
|
111
|
+
jobResults: LRUMap<JobId, unknown>;
|
|
112
|
+
jobLogs: LRUMap<JobId, JobLogEntry[]>;
|
|
113
|
+
storage: SqliteStorage | null;
|
|
108
114
|
};
|
|
109
115
|
}
|
|
110
|
-
//# sourceMappingURL=contextFactory.d.ts.map
|
|
@@ -53,6 +53,7 @@ export class ContextFactory {
|
|
|
53
53
|
dashboardEmit: this.callbacks.emitDashboardEvent,
|
|
54
54
|
workerManager: this.deps.workerManager,
|
|
55
55
|
monitoringState: this.deps.monitoringState,
|
|
56
|
+
completedJobsData: this.deps.completedJobsData,
|
|
56
57
|
};
|
|
57
58
|
}
|
|
58
59
|
getStatsContext() {
|
|
@@ -179,7 +180,12 @@ export class ContextFactory {
|
|
|
179
180
|
return {
|
|
180
181
|
shards: this.deps.shards,
|
|
181
182
|
jobIndex: this.deps.jobIndex,
|
|
183
|
+
processingShards: this.deps.processingShards,
|
|
184
|
+
completedJobs: this.deps.completedJobs,
|
|
185
|
+
completedJobsData: this.deps.completedJobsData,
|
|
186
|
+
jobResults: this.deps.jobResults,
|
|
187
|
+
jobLogs: this.deps.jobLogs,
|
|
188
|
+
storage: this.deps.storage,
|
|
182
189
|
};
|
|
183
190
|
}
|
|
184
191
|
}
|
|
185
|
-
//# sourceMappingURL=contextFactory.js.map
|
|
@@ -81,6 +81,8 @@ export function retryDlqJob(queue, jobId, ctx) {
|
|
|
81
81
|
const isDelayed = job.runAt > now;
|
|
82
82
|
shard.incrementQueued(job.id, isDelayed, job.createdAt, queue, job.runAt);
|
|
83
83
|
ctx.jobIndex.set(job.id, { type: 'queue', shardIdx: idx, queueName: queue });
|
|
84
|
+
// Re-insert jobs row (deleted when job entered DLQ) so retry survives restart
|
|
85
|
+
ctx.storage?.insertJob(job, true);
|
|
84
86
|
return job;
|
|
85
87
|
}
|
|
86
88
|
/** Retry jobs from DLQ (backward compatible) */
|
|
@@ -110,6 +112,7 @@ export function retryDlqJobs(queue, ctx, jobId) {
|
|
|
110
112
|
const isDelayed = job.runAt > now;
|
|
111
113
|
shard.incrementQueued(job.id, isDelayed, job.createdAt, queue, job.runAt);
|
|
112
114
|
ctx.jobIndex.set(job.id, { type: 'queue', shardIdx: idx, queueName: queue });
|
|
115
|
+
ctx.storage?.insertJob(job, true);
|
|
113
116
|
}
|
|
114
117
|
return count;
|
|
115
118
|
}
|
|
@@ -138,6 +141,7 @@ export function retryDlqByFilter(queue, ctx, filter) {
|
|
|
138
141
|
const isDelayed = job.runAt > now;
|
|
139
142
|
shard.incrementQueued(job.id, isDelayed, job.createdAt, queue, job.runAt);
|
|
140
143
|
ctx.jobIndex.set(job.id, { type: 'queue', shardIdx: idx, queueName: queue });
|
|
144
|
+
ctx.storage?.insertJob(job, true);
|
|
141
145
|
count++;
|
|
142
146
|
}
|
|
143
147
|
return count;
|
|
@@ -172,6 +176,7 @@ export function processAutoRetry(queue, ctx) {
|
|
|
172
176
|
const isDelayed = job.runAt > now;
|
|
173
177
|
shard.incrementQueued(job.id, isDelayed, job.createdAt, queue, job.runAt);
|
|
174
178
|
ctx.jobIndex.set(job.id, { type: 'queue', shardIdx: idx, queueName: queue });
|
|
179
|
+
ctx.storage?.insertJob(job, true);
|
|
175
180
|
count++;
|
|
176
181
|
}
|
|
177
182
|
return count;
|
|
@@ -248,4 +253,3 @@ function requeueCompletedJob(job, ctx) {
|
|
|
248
253
|
shard.notify();
|
|
249
254
|
return 1;
|
|
250
255
|
}
|
|
251
|
-
//# sourceMappingURL=dlqManager.js.map
|
|
@@ -18,4 +18,3 @@ export declare function addJobLog(jobId: JobId, message: string, ctx: JobLogsCon
|
|
|
18
18
|
export declare function getJobLogs(jobId: JobId, ctx: JobLogsContext): JobLogEntry[];
|
|
19
19
|
/** Clear logs for a job, optionally keeping the most recent N entries */
|
|
20
20
|
export declare function clearJobLogs(jobId: JobId, ctx: JobLogsContext, keepLogs?: number): void;
|
|
21
|
-
//# sourceMappingURL=jobLogsManager.d.ts.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { LockContext } from './types';
|
|
6
6
|
export { createLock, verifyLock, renewJobLock, renewJobLockBatch, releaseLock, getLockInfo, } from './lockOperations';
|
|
7
|
-
export { registerClientJob, unregisterClientJob, releaseClientJobs } from './clientTracking';
|
|
7
|
+
export { registerClientJob, unregisterClientJob, releaseClientJobs, forceReleaseClientJobs, } from './clientTracking';
|
|
8
8
|
/**
|
|
9
9
|
* Check and handle expired locks.
|
|
10
10
|
* Jobs with expired locks are requeued for retry.
|
|
@@ -13,4 +13,3 @@ export { registerClientJob, unregisterClientJob, releaseClientJobs } from './cli
|
|
|
13
13
|
* Lock hierarchy: shards[N] -> processingShards[N] (per CLAUDE.md)
|
|
14
14
|
*/
|
|
15
15
|
export declare function checkExpiredLocks(ctx: LockContext): Promise<void>;
|
|
16
|
-
//# sourceMappingURL=lockManager.d.ts.map
|
|
@@ -8,7 +8,7 @@ import { withWriteLock } from '../shared/lock';
|
|
|
8
8
|
// Re-export lock operations
|
|
9
9
|
export { createLock, verifyLock, renewJobLock, renewJobLockBatch, releaseLock, getLockInfo, } from './lockOperations';
|
|
10
10
|
// Re-export client tracking
|
|
11
|
-
export { registerClientJob, unregisterClientJob, releaseClientJobs } from './clientTracking';
|
|
11
|
+
export { registerClientJob, unregisterClientJob, releaseClientJobs, forceReleaseClientJobs, } from './clientTracking';
|
|
12
12
|
/**
|
|
13
13
|
* Check and handle expired locks.
|
|
14
14
|
* Jobs with expired locks are requeued for retry.
|
|
@@ -137,4 +137,3 @@ function requeueExpiredJob(opts) {
|
|
|
137
137
|
timestamp: now,
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
|
-
//# sourceMappingURL=lockManager.js.map
|
|
@@ -36,4 +36,3 @@ export declare function releaseLock(jobId: JobId, ctx: LockContext, token?: stri
|
|
|
36
36
|
* Get lock info for a job (for debugging/monitoring).
|
|
37
37
|
*/
|
|
38
38
|
export declare function getLockInfo(jobId: JobId, ctx: LockContext): JobLock | null;
|
|
39
|
-
//# sourceMappingURL=lockOperations.d.ts.map
|
|
@@ -23,4 +23,3 @@ export interface QueueStats {
|
|
|
23
23
|
}
|
|
24
24
|
/** Generate Prometheus metrics */
|
|
25
25
|
export declare function generatePrometheusMetrics(stats: QueueStats, workerManager: WorkerManager, webhookManager: WebhookManager, perQueueStats?: Map<string, PerQueueStats>): string;
|
|
26
|
-
//# sourceMappingURL=metricsExporter.d.ts.map
|