bunqueue-client 0.1.8 → 0.2.0
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/CHANGELOG.md +162 -0
- package/LEGACY.md +460 -0
- package/README.md +204 -349
- package/dist/ack-batcher.js +7 -67
- package/dist/canonical-manifest.json +930 -0
- package/dist/chunk-b967v3w3.js +79 -0
- package/dist/chunk-fekm0ma6.js +110 -0
- package/dist/chunk-jxkszwqp.js +573 -0
- package/dist/embedded.js +16418 -0
- package/dist/frame.js +14 -57
- package/dist/index.d.ts +1 -27
- package/dist/index.js +10905 -16
- package/dist/legacy.d.ts +1 -0
- package/dist/legacy.js +2081 -0
- package/dist/{ack-batcher.d.ts → types/sdk/typescript/src/ack-batcher.d.ts} +3 -3
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/aging.d.ts +2 -2
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/batch.d.ts +2 -2
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/bunqueue-api.d.ts +5 -5
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/bunqueue.d.ts +13 -13
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/circuit-breaker.d.ts +2 -2
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/dedup-debounce.d.ts +2 -2
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/dlq-rate-limit.d.ts +2 -2
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/rate-gate.d.ts +1 -1
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/retry.d.ts +1 -1
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/triggers.d.ts +3 -3
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/ttl.d.ts +1 -1
- package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/types.d.ts +4 -4
- package/dist/types/sdk/typescript/src/canonical-transport/bun-sqlite-types.d.ts +21 -0
- package/dist/{connection-pool.d.ts → types/sdk/typescript/src/connection-pool.d.ts} +1 -1
- package/dist/{connection-types.d.ts → types/sdk/typescript/src/connection-types.d.ts} +1 -1
- package/dist/{connection.d.ts → types/sdk/typescript/src/connection.d.ts} +6 -19
- package/dist/{errors.d.ts → types/sdk/typescript/src/errors.d.ts} +3 -0
- package/dist/types/sdk/typescript/src/flow-commit.d.ts +5 -0
- package/dist/types/sdk/typescript/src/flow-plan-legacy.d.ts +13 -0
- package/dist/types/sdk/typescript/src/flow-plan.d.ts +29 -0
- package/dist/{flow-types.d.ts → types/sdk/typescript/src/flow-types.d.ts} +7 -4
- package/dist/{flow.d.ts → types/sdk/typescript/src/flow.d.ts} +6 -10
- package/dist/{frame.d.ts → types/sdk/typescript/src/frame.d.ts} +1 -1
- package/dist/types/sdk/typescript/src/index.d.ts +10 -0
- package/dist/{job.d.ts → types/sdk/typescript/src/job.d.ts} +4 -3
- package/dist/types/sdk/typescript/src/legacy.d.ts +27 -0
- package/dist/{observability.d.ts → types/sdk/typescript/src/observability.d.ts} +14 -0
- package/dist/{queue-admin.d.ts → types/sdk/typescript/src/queue-admin.d.ts} +3 -4
- package/dist/{queue-control.d.ts → types/sdk/typescript/src/queue-control.d.ts} +7 -6
- package/dist/{queue-query.d.ts → types/sdk/typescript/src/queue-query.d.ts} +3 -3
- package/dist/{queue.d.ts → types/sdk/typescript/src/queue.d.ts} +8 -8
- package/dist/{responses.d.ts → types/sdk/typescript/src/responses.d.ts} +2 -2
- package/dist/types/sdk/typescript/src/serialization.d.ts +10 -0
- package/dist/{socket-factory.d.ts → types/sdk/typescript/src/socket-factory.d.ts} +1 -1
- package/dist/types/sdk/typescript/src/terminal-outcome.d.ts +8 -0
- package/dist/{types.d.ts → types/sdk/typescript/src/types.d.ts} +5 -2
- package/dist/{worker-base.d.ts → types/sdk/typescript/src/worker-base.d.ts} +6 -6
- package/dist/types/sdk/typescript/src/worker-slot-signal.d.ts +6 -0
- package/dist/{worker-types.d.ts → types/sdk/typescript/src/worker-types.d.ts} +3 -3
- package/dist/{worker.d.ts → types/sdk/typescript/src/worker.d.ts} +3 -2
- package/dist/types/src/application/background/dlq.d.ts +2 -0
- package/dist/types/src/application/background/lifecycle.d.ts +4 -0
- package/dist/types/src/application/background/recovery/active.d.ts +5 -0
- package/dist/types/src/application/background/recovery/index.d.ts +2 -0
- package/dist/types/src/application/background/recovery/pending.d.ts +3 -0
- package/dist/types/src/application/background/recovery/restore.d.ts +5 -0
- package/dist/types/src/application/background/recovery/shared.d.ts +6 -0
- package/dist/types/src/application/background/timeouts.d.ts +25 -0
- package/dist/types/src/application/backgroundTasks.d.ts +7 -0
- package/dist/types/src/application/cleanupTasks.d.ts +10 -0
- package/dist/types/src/application/clientTracking.d.ts +44 -0
- package/dist/types/src/application/completedCleanup.d.ts +34 -0
- package/dist/types/src/application/completedRetry.d.ts +21 -0
- package/dist/types/src/application/contextFactory.d.ts +49 -0
- package/dist/types/src/application/dependencyCompletions.d.ts +63 -0
- package/dist/types/src/application/dependencyProcessor.d.ts +15 -0
- package/dist/types/src/application/dependencyResultTracker.d.ts +18 -0
- package/dist/types/src/application/dlqManager.d.ts +49 -0
- package/dist/types/src/application/dlqRetry.d.ts +12 -0
- package/dist/types/src/application/emptyQueueCleanup.d.ts +3 -0
- package/dist/types/src/application/eventsManager.d.ts +50 -0
- package/dist/types/src/application/flowFailureRecovery.d.ts +20 -0
- package/dist/types/src/application/flowParentBackpatch.d.ts +27 -0
- package/dist/types/src/application/jobLogsManager.d.ts +21 -0
- package/dist/types/src/application/latencyTracker.d.ts +39 -0
- package/dist/types/src/application/lockManager.d.ts +15 -0
- package/dist/types/src/application/lockOperations.d.ts +38 -0
- package/dist/types/src/application/metricsExporter.d.ts +27 -0
- package/dist/types/src/application/monitoringChecks.d.ts +36 -0
- package/dist/types/src/application/operations/ack/batch.d.ts +8 -0
- package/dist/types/src/application/operations/ack/completion.d.ts +3 -0
- package/dist/types/src/application/operations/ack/failure.d.ts +3 -0
- package/dist/types/src/application/operations/ack.d.ts +5 -0
- package/dist/types/src/application/operations/ackHelpers.d.ts +36 -0
- package/dist/types/src/application/operations/customId.d.ts +51 -0
- package/dist/types/src/application/operations/flowPush.d.ts +9 -0
- package/dist/types/src/application/operations/flowTopologyValidation.d.ts +3 -0
- package/dist/types/src/application/operations/flowValidation.d.ts +3 -0
- package/dist/types/src/application/operations/jobClaim.d.ts +17 -0
- package/dist/types/src/application/operations/jobManagement.d.ts +43 -0
- package/dist/types/src/application/operations/jobMoveOperations.d.ts +9 -0
- package/dist/types/src/application/operations/jobPromotion.d.ts +7 -0
- package/dist/types/src/application/operations/jobStateTransitions.d.ts +15 -0
- package/dist/types/src/application/operations/parentLink.d.ts +36 -0
- package/dist/types/src/application/operations/parentLinkInput.d.ts +8 -0
- package/dist/types/src/application/operations/pull.d.ts +20 -0
- package/dist/types/src/application/operations/pullFinalization.d.ts +6 -0
- package/dist/types/src/application/operations/pullStateTransition.d.ts +51 -0
- package/dist/types/src/application/operations/push.d.ts +13 -0
- package/dist/types/src/application/operations/pushAdmission.d.ts +36 -0
- package/dist/types/src/application/operations/pushBatch.d.ts +4 -0
- package/dist/types/src/application/operations/pushContext.d.ts +48 -0
- package/dist/types/src/application/operations/pushDeduplication.d.ts +42 -0
- package/dist/types/src/application/operations/pushInsert.d.ts +39 -0
- package/dist/types/src/application/operations/pushLocks.d.ts +15 -0
- package/dist/types/src/application/operations/query/collect.d.ts +12 -0
- package/dist/types/src/application/operations/query/jobLookup.d.ts +9 -0
- package/dist/types/src/application/operations/query/pagination.d.ts +8 -0
- package/dist/types/src/application/operations/query/state.d.ts +4 -0
- package/dist/types/src/application/operations/queryOperations.d.ts +5 -0
- package/dist/types/src/application/operations/queueControl.d.ts +50 -0
- package/dist/types/src/application/prometheusOperationalMetrics.d.ts +31 -0
- package/dist/types/src/application/queue-manager/ack.d.ts +23 -0
- package/dist/types/src/application/queue-manager/configuration.d.ts +27 -0
- package/dist/types/src/application/queue-manager/context.d.ts +5 -0
- package/dist/types/src/application/queue-manager/control.d.ts +20 -0
- package/dist/types/src/application/queue-manager/delivery.d.ts +33 -0
- package/dist/types/src/application/queue-manager/dependencies.d.ts +8 -0
- package/dist/types/src/application/queue-manager/dependency-runtime.d.ts +8 -0
- package/dist/types/src/application/queue-manager/flow-failures.d.ts +18 -0
- package/dist/types/src/application/queue-manager/flow-options.d.ts +8 -0
- package/dist/types/src/application/queue-manager/job-management.d.ts +17 -0
- package/dist/types/src/application/queue-manager/lifecycle.d.ts +4 -0
- package/dist/types/src/application/queue-manager/limits.d.ts +58 -0
- package/dist/types/src/application/queue-manager/locks.d.ts +21 -0
- package/dist/types/src/application/queue-manager/observability.d.ts +16 -0
- package/dist/types/src/application/queue-manager/queries.d.ts +24 -0
- package/dist/types/src/application/queue-manager/repeat.d.ts +4 -0
- package/dist/types/src/application/queue-manager/services.d.ts +19 -0
- package/dist/types/src/application/queue-manager/state.d.ts +96 -0
- package/dist/types/src/application/queue-manager/stats.d.ts +28 -0
- package/dist/types/src/application/queueManager.d.ts +5 -0
- package/dist/types/src/application/queueStatsAggregator.d.ts +23 -0
- package/dist/types/src/application/queueTelemetryJournal.d.ts +24 -0
- package/dist/types/src/application/repeatJobs.d.ts +7 -0
- package/dist/types/src/application/stallDetection.d.ts +10 -0
- package/dist/types/src/application/statsManager.d.ts +59 -0
- package/dist/types/src/application/taskErrorTracking.d.ts +22 -0
- package/dist/types/src/application/throughputTracker.d.ts +34 -0
- package/dist/types/src/application/types/ack.d.ts +136 -0
- package/dist/types/src/application/types/background.d.ts +18 -0
- package/dist/types/src/application/types/config.d.ts +41 -0
- package/dist/types/src/application/types/contextFactory.d.ts +87 -0
- package/dist/types/src/application/types/contexts.d.ts +114 -0
- package/dist/types/src/application/types/index.d.ts +7 -0
- package/dist/types/src/application/types/query.d.ts +23 -0
- package/dist/types/src/application/types/queueManager.d.ts +98 -0
- package/dist/types/src/application/webhookManager.d.ts +47 -0
- package/dist/types/src/application/workerManager.d.ts +61 -0
- package/dist/types/src/client/bunqueue/aging.d.ts +16 -0
- package/dist/types/src/client/bunqueue/batch.d.ts +16 -0
- package/dist/types/src/client/bunqueue/cancellation.d.ts +21 -0
- package/dist/types/src/client/bunqueue/circuitBreaker.d.ts +21 -0
- package/dist/types/src/client/bunqueue/dedupDebounce.d.ts +12 -0
- package/dist/types/src/client/bunqueue/dlqRateLimit.d.ts +26 -0
- package/dist/types/src/client/bunqueue/retry.d.ts +8 -0
- package/dist/types/src/client/bunqueue/runtime.d.ts +35 -0
- package/dist/types/src/client/bunqueue/triggers.d.ts +17 -0
- package/dist/types/src/client/bunqueue/ttl.d.ts +17 -0
- package/dist/types/src/client/bunqueue/types.d.ts +147 -0
- package/dist/types/src/client/bunqueue.d.ts +73 -0
- package/dist/types/src/client/dlqConversion.d.ts +5 -0
- package/dist/types/src/client/errors.d.ts +24 -0
- package/dist/types/src/client/events.d.ts +85 -0
- package/dist/types/src/client/flow.d.ts +70 -0
- package/dist/types/src/client/flowAtomic.d.ts +9 -0
- package/dist/types/src/client/flowJobCoreMethods.d.ts +28 -0
- package/dist/types/src/client/flowJobDependencies.d.ts +7 -0
- package/dist/types/src/client/flowJobFactory.d.ts +24 -0
- package/dist/types/src/client/flowJobMoveMethods.d.ts +16 -0
- package/dist/types/src/client/flowJobTypes.d.ts +29 -0
- package/dist/types/src/client/flowLegacyPlan.d.ts +16 -0
- package/dist/types/src/client/flowOptions.d.ts +10 -0
- package/dist/types/src/client/flowPlan.d.ts +16 -0
- package/dist/types/src/client/flowPush.d.ts +27 -0
- package/dist/types/src/client/flowReader.d.ts +10 -0
- package/dist/types/src/client/flowResults.d.ts +11 -0
- package/dist/types/src/client/flowTypes.d.ts +77 -0
- package/dist/types/src/client/forwarder.d.ts +74 -0
- package/dist/types/src/client/groupId.d.ts +1 -0
- package/dist/types/src/client/index.d.ts +46 -0
- package/dist/types/src/client/jobConversion.d.ts +10 -0
- package/dist/types/src/client/jobConversionHelpers.d.ts +28 -0
- package/dist/types/src/client/jobConversionTypes.d.ts +88 -0
- package/dist/types/src/client/jobDeduplication.d.ts +6 -0
- package/dist/types/src/client/jobHelpers.d.ts +31 -0
- package/dist/types/src/client/legacyConnectionOptions.d.ts +8 -0
- package/dist/types/src/client/manager.d.ts +15 -0
- package/dist/types/src/client/pro.d.ts +9 -0
- package/dist/types/src/client/queue/addBatcher.d.ts +59 -0
- package/dist/types/src/client/queue/bullmqCompat.d.ts +57 -0
- package/dist/types/src/client/queue/deduplication.d.ts +14 -0
- package/dist/types/src/client/queue/dlq.d.ts +61 -0
- package/dist/types/src/client/queue/dlqJobMethods.d.ts +9 -0
- package/dist/types/src/client/queue/dlqOps.d.ts +26 -0
- package/dist/types/src/client/queue/dlqStats.d.ts +3 -0
- package/dist/types/src/client/queue/failWire.d.ts +17 -0
- package/dist/types/src/client/queue/helpers.d.ts +19 -0
- package/dist/types/src/client/queue/job-proxy/dependencies.d.ts +9 -0
- package/dist/types/src/client/queue/job-proxy/reflection.d.ts +2 -0
- package/dist/types/src/client/queue/job-proxy/simple.d.ts +3 -0
- package/dist/types/src/client/queue/job-proxy/tcp.d.ts +4 -0
- package/dist/types/src/client/queue/jobMetadata.d.ts +10 -0
- package/dist/types/src/client/queue/jobMove.d.ts +32 -0
- package/dist/types/src/client/queue/jobProxy.d.ts +4 -0
- package/dist/types/src/client/queue/operations/add/bulk.d.ts +7 -0
- package/dist/types/src/client/queue/operations/add/payload.d.ts +25 -0
- package/dist/types/src/client/queue/operations/add/single.d.ts +3 -0
- package/dist/types/src/client/queue/operations/add.d.ts +2 -0
- package/dist/types/src/client/queue/operations/control.d.ts +42 -0
- package/dist/types/src/client/queue/operations/counts.d.ts +48 -0
- package/dist/types/src/client/queue/operations/groups.d.ts +24 -0
- package/dist/types/src/client/queue/operations/management.d.ts +51 -0
- package/dist/types/src/client/queue/operations/query.d.ts +50 -0
- package/dist/types/src/client/queue/operations/queryStates.d.ts +13 -0
- package/dist/types/src/client/queue/operations/queryTcpPages.d.ts +14 -0
- package/dist/types/src/client/queue/queue.d.ts +12 -0
- package/dist/types/src/client/queue/rateLimit.d.ts +46 -0
- package/dist/types/src/client/queue/runtime/compatibility.d.ts +13 -0
- package/dist/types/src/client/queue/runtime/configuration.d.ts +46 -0
- package/dist/types/src/client/queue/runtime/connection.d.ts +6 -0
- package/dist/types/src/client/queue/runtime/control.d.ts +41 -0
- package/dist/types/src/client/queue/runtime/queries.d.ts +66 -0
- package/dist/types/src/client/queue/runtime/scheduling.d.ts +33 -0
- package/dist/types/src/client/queue/runtime/state.d.ts +101 -0
- package/dist/types/src/client/queue/scheduler.d.ts +58 -0
- package/dist/types/src/client/queue/schedulerPagination.d.ts +7 -0
- package/dist/types/src/client/queue/stall.d.ts +20 -0
- package/dist/types/src/client/queue/types/add.d.ts +40 -0
- package/dist/types/src/client/queue/types/contexts.d.ts +33 -0
- package/dist/types/src/client/queue/types/index.d.ts +3 -0
- package/dist/types/src/client/queue/types/job.d.ts +50 -0
- package/dist/types/src/client/queue/types/runtime.d.ts +35 -0
- package/dist/types/src/client/queue/workers.d.ts +36 -0
- package/dist/types/src/client/queue-events/tcpSubscription.d.ts +23 -0
- package/dist/types/src/client/queue.d.ts +5 -0
- package/dist/types/src/client/queueGroup.d.ts +51 -0
- package/dist/types/src/client/resolveToken.d.ts +10 -0
- package/dist/types/src/client/sandboxed/index.d.ts +7 -0
- package/dist/types/src/client/sandboxed/queueOps.d.ts +24 -0
- package/dist/types/src/client/sandboxed/runtime/dispatch.d.ts +13 -0
- package/dist/types/src/client/sandboxed/runtime/lifecycle.d.ts +20 -0
- package/dist/types/src/client/sandboxed/runtime/log.d.ts +1 -0
- package/dist/types/src/client/sandboxed/runtime/pool.d.ts +11 -0
- package/dist/types/src/client/sandboxed/runtime/recovery.d.ts +11 -0
- package/dist/types/src/client/sandboxed/runtime/state.d.ts +39 -0
- package/dist/types/src/client/sandboxed/types/index.d.ts +2 -0
- package/dist/types/src/client/sandboxed/types/options.d.ts +27 -0
- package/dist/types/src/client/sandboxed/types/process.d.ts +39 -0
- package/dist/types/src/client/sandboxed/worker.d.ts +4 -0
- package/dist/types/src/client/sandboxed/wrapper.d.ts +12 -0
- package/dist/types/src/client/sandboxedWorker.d.ts +6 -0
- package/dist/types/src/client/tcp/client.d.ts +6 -0
- package/dist/types/src/client/tcp/commandQueue.d.ts +23 -0
- package/dist/types/src/client/tcp/connection.d.ts +4 -0
- package/dist/types/src/client/tcp/errors.d.ts +6 -0
- package/dist/types/src/client/tcp/health.d.ts +60 -0
- package/dist/types/src/client/tcp/index.d.ts +11 -0
- package/dist/types/src/client/tcp/reconnect.d.ts +47 -0
- package/dist/types/src/client/tcp/runtime/commands.d.ts +9 -0
- package/dist/types/src/client/tcp/runtime/connectivity.d.ts +13 -0
- package/dist/types/src/client/tcp/runtime/health.d.ts +14 -0
- package/dist/types/src/client/tcp/runtime/lifecycle.d.ts +8 -0
- package/dist/types/src/client/tcp/runtime/state.d.ts +50 -0
- package/dist/types/src/client/tcp/shared.d.ts +12 -0
- package/dist/types/src/client/tcp/transport.d.ts +18 -0
- package/dist/types/src/client/tcp/types/command.d.ts +9 -0
- package/dist/types/src/client/tcp/types/connection.d.ts +31 -0
- package/dist/types/src/client/tcp/types/index.d.ts +5 -0
- package/dist/types/src/client/tcp/types/socket.d.ts +8 -0
- package/dist/types/src/client/tcp/types/tls.d.ts +4 -0
- package/dist/types/src/client/tcp/types.d.ts +2 -0
- package/dist/types/src/client/tcpClient.d.ts +6 -0
- package/dist/types/src/client/tcpPool.d.ts +69 -0
- package/dist/types/src/client/types/connection.d.ts +30 -0
- package/dist/types/src/client/types/dlq.d.ts +45 -0
- package/dist/types/src/client/types/events.d.ts +54 -0
- package/dist/types/src/client/types/flow.d.ts +22 -0
- package/dist/types/src/client/types/index.d.ts +10 -0
- package/dist/types/src/client/types/job.d.ts +131 -0
- package/dist/types/src/client/types/metrics.d.ts +1 -0
- package/dist/types/src/client/types/options.d.ts +70 -0
- package/dist/types/src/client/types/worker.d.ts +54 -0
- package/dist/types/src/client/types.d.ts +2 -0
- package/dist/types/src/client/worker/ackBatcher.d.ts +55 -0
- package/dist/types/src/client/worker/ackFrontier.d.ts +21 -0
- package/dist/types/src/client/worker/ackOutcome.d.ts +8 -0
- package/dist/types/src/client/worker/batchExecution.d.ts +14 -0
- package/dist/types/src/client/worker/constants.d.ts +7 -0
- package/dist/types/src/client/worker/groupConcurrency.d.ts +49 -0
- package/dist/types/src/client/worker/handlers/completion.d.ts +29 -0
- package/dist/types/src/client/worker/handlers/dependencies.d.ts +11 -0
- package/dist/types/src/client/worker/handlers/mutations.d.ts +23 -0
- package/dist/types/src/client/worker/handlers/queries.d.ts +15 -0
- package/dist/types/src/client/worker/jobParser.d.ts +9 -0
- package/dist/types/src/client/worker/processor.d.ts +11 -0
- package/dist/types/src/client/worker/processorHandlers.d.ts +4 -0
- package/dist/types/src/client/worker/processorOutcome.d.ts +14 -0
- package/dist/types/src/client/worker/processorResult.d.ts +2 -0
- package/dist/types/src/client/worker/runtime/buffer.d.ts +8 -0
- package/dist/types/src/client/worker/runtime/control.d.ts +28 -0
- package/dist/types/src/client/worker/runtime/execution.d.ts +16 -0
- package/dist/types/src/client/worker/runtime/lifecycle.d.ts +7 -0
- package/dist/types/src/client/worker/runtime/manual.d.ts +10 -0
- package/dist/types/src/client/worker/runtime/options.d.ts +5 -0
- package/dist/types/src/client/worker/runtime/polling.d.ts +14 -0
- package/dist/types/src/client/worker/runtime/state.d.ts +121 -0
- package/dist/types/src/client/worker/types/index.d.ts +5 -0
- package/dist/types/src/client/worker/types/manual.d.ts +7 -0
- package/dist/types/src/client/worker/types/options.d.ts +26 -0
- package/dist/types/src/client/worker/types/outcome.d.ts +23 -0
- package/dist/types/src/client/worker/types/processor.d.ts +25 -0
- package/dist/types/src/client/worker/types/transport.d.ts +11 -0
- package/dist/types/src/client/worker/worker.d.ts +6 -0
- package/dist/types/src/client/worker/workerHeartbeat.d.ts +15 -0
- package/dist/types/src/client/worker/workerPull.d.ts +24 -0
- package/dist/types/src/client/worker/workerRateLimiter.d.ts +51 -0
- package/dist/types/src/client/worker.d.ts +6 -0
- package/dist/types/src/client/workflow/admission.d.ts +45 -0
- package/dist/types/src/client/workflow/clock.d.ts +60 -0
- package/dist/types/src/client/workflow/compensationChild.d.ts +33 -0
- package/dist/types/src/client/workflow/compensationClaim.d.ts +11 -0
- package/dist/types/src/client/workflow/compensationPass.d.ts +17 -0
- package/dist/types/src/client/workflow/compensationSupport.d.ts +24 -0
- package/dist/types/src/client/workflow/compensator.d.ts +34 -0
- package/dist/types/src/client/workflow/definitionGuard.d.ts +11 -0
- package/dist/types/src/client/workflow/emitter.d.ts +17 -0
- package/dist/types/src/client/workflow/engine.d.ts +66 -0
- package/dist/types/src/client/workflow/eventTypes.d.ts +44 -0
- package/dist/types/src/client/workflow/executionFence.d.ts +15 -0
- package/dist/types/src/client/workflow/executionTypes.d.ts +133 -0
- package/dist/types/src/client/workflow/executor.d.ts +52 -0
- package/dist/types/src/client/workflow/executorLifecycle.d.ts +19 -0
- package/dist/types/src/client/workflow/executorNodes.d.ts +18 -0
- package/dist/types/src/client/workflow/executorQueue.d.ts +9 -0
- package/dist/types/src/client/workflow/forEachRunner.d.ts +4 -0
- package/dist/types/src/client/workflow/identity.d.ts +48 -0
- package/dist/types/src/client/workflow/index.d.ts +23 -0
- package/dist/types/src/client/workflow/loops.d.ts +11 -0
- package/dist/types/src/client/workflow/mapRunner.d.ts +4 -0
- package/dist/types/src/client/workflow/recovery.d.ts +32 -0
- package/dist/types/src/client/workflow/rollbackControl.d.ts +37 -0
- package/dist/types/src/client/workflow/runner.d.ts +23 -0
- package/dist/types/src/client/workflow/runnerTiming.d.ts +14 -0
- package/dist/types/src/client/workflow/stepTypes.d.ts +171 -0
- package/dist/types/src/client/workflow/store.d.ts +83 -0
- package/dist/types/src/client/workflow/storeCodec.d.ts +7 -0
- package/dist/types/src/client/workflow/storeExecutionCodec.d.ts +11 -0
- package/dist/types/src/client/workflow/storeListing.d.ts +11 -0
- package/dist/types/src/client/workflow/storeMaintenance.d.ts +4 -0
- package/dist/types/src/client/workflow/storeSignals.d.ts +70 -0
- package/dist/types/src/client/workflow/subWorkflowRunner.d.ts +14 -0
- package/dist/types/src/client/workflow/types.d.ts +4 -0
- package/dist/types/src/client/workflow/unwindPlan.d.ts +87 -0
- package/dist/types/src/client/workflow/waitFor.d.ts +56 -0
- package/dist/types/src/client/workflow/workflow.d.ts +70 -0
- package/dist/types/src/client/workflow/workflowDecisions.d.ts +11 -0
- package/dist/types/src/client/workflow/workflowDefinition.d.ts +16 -0
- package/dist/types/src/client/workflow/workflowIntrospection.d.ts +5 -0
- package/dist/types/src/client/workflow/workflowValidation.d.ts +44 -0
- package/dist/types/src/config/index.d.ts +9 -0
- package/dist/types/src/config/loader.d.ts +7 -0
- package/dist/types/src/config/resolve.d.ts +59 -0
- package/dist/types/src/config/types.d.ts +88 -0
- package/dist/types/src/domain/job/constants.d.ts +12 -0
- package/dist/types/src/domain/job/create.d.ts +2 -0
- package/dist/types/src/domain/job/groupFifoOrder.d.ts +9 -0
- package/dist/types/src/domain/job/ids.d.ts +7 -0
- package/dist/types/src/domain/job/locks.d.ts +4 -0
- package/dist/types/src/domain/job/payload.d.ts +18 -0
- package/dist/types/src/domain/job/state.d.ts +8 -0
- package/dist/types/src/domain/job/terminal.d.ts +3 -0
- package/dist/types/src/domain/queue/dependencyTracker.d.ts +78 -0
- package/dist/types/src/domain/queue/dlqShard.d.ts +66 -0
- package/dist/types/src/domain/queue/groupLimiterManager.d.ts +30 -0
- package/dist/types/src/domain/queue/groupScheduler.d.ts +31 -0
- package/dist/types/src/domain/queue/groupSchedulerOrder.d.ts +6 -0
- package/dist/types/src/domain/queue/limiterManager.d.ts +68 -0
- package/dist/types/src/domain/queue/priorityQueue.d.ts +54 -0
- package/dist/types/src/domain/queue/priorityQueueOrder.d.ts +3 -0
- package/dist/types/src/domain/queue/shard/dependencies.d.ts +11 -0
- package/dist/types/src/domain/queue/shard/dlq.d.ts +26 -0
- package/dist/types/src/domain/queue/shard/keys.d.ts +19 -0
- package/dist/types/src/domain/queue/shard/lifecycle.d.ts +10 -0
- package/dist/types/src/domain/queue/shard/limits.d.ts +47 -0
- package/dist/types/src/domain/queue/shard/metrics.d.ts +32 -0
- package/dist/types/src/domain/queue/shard/state.d.ts +40 -0
- package/dist/types/src/domain/queue/shard.d.ts +7 -0
- package/dist/types/src/domain/queue/shardCounters.d.ts +35 -0
- package/dist/types/src/domain/queue/temporalIndex.d.ts +24 -0
- package/dist/types/src/domain/queue/temporalManager.d.ts +72 -0
- package/dist/types/src/domain/queue/uniqueKeyManager.d.ts +33 -0
- package/dist/types/src/domain/queue/waiterManager.d.ts +18 -0
- package/dist/types/src/domain/response/builders.d.ts +15 -0
- package/dist/types/src/domain/types/command.d.ts +2 -0
- package/dist/types/src/domain/types/commands/base.d.ts +5 -0
- package/dist/types/src/domain/types/commands/core.d.ts +110 -0
- package/dist/types/src/domain/types/commands/cron.d.ts +36 -0
- package/dist/types/src/domain/types/commands/dashboard.d.ts +13 -0
- package/dist/types/src/domain/types/commands/dlq.d.ts +44 -0
- package/dist/types/src/domain/types/commands/extended.d.ts +63 -0
- package/dist/types/src/domain/types/commands/index.d.ts +12 -0
- package/dist/types/src/domain/types/commands/limits.d.ts +108 -0
- package/dist/types/src/domain/types/commands/management.d.ts +73 -0
- package/dist/types/src/domain/types/commands/monitoring.d.ts +49 -0
- package/dist/types/src/domain/types/commands/protocol.d.ts +20 -0
- package/dist/types/src/domain/types/commands/query.d.ts +46 -0
- package/dist/types/src/domain/types/commands/union.d.ts +13 -0
- package/dist/types/src/domain/types/commands/workers.d.ts +39 -0
- package/dist/types/src/domain/types/cron.d.ts +91 -0
- package/dist/types/src/domain/types/deduplication.d.ts +43 -0
- package/dist/types/src/domain/types/dlq.d.ts +136 -0
- package/dist/types/src/domain/types/flow.d.ts +25 -0
- package/dist/types/src/domain/types/group.d.ts +26 -0
- package/dist/types/src/domain/types/job.d.ts +8 -0
- package/dist/types/src/domain/types/jobs/model.d.ts +153 -0
- package/dist/types/src/domain/types/metrics.d.ts +16 -0
- package/dist/types/src/domain/types/priorityQueue.d.ts +13 -0
- package/dist/types/src/domain/types/protocol.d.ts +5 -0
- package/dist/types/src/domain/types/queue.d.ts +110 -0
- package/dist/types/src/domain/types/response.d.ts +3 -0
- package/dist/types/src/domain/types/responses/model.d.ts +152 -0
- package/dist/types/src/domain/types/shard.d.ts +4 -0
- package/dist/types/src/domain/types/stall.d.ts +48 -0
- package/dist/types/src/domain/types/webhook.d.ts +42 -0
- package/dist/types/src/domain/types/worker.d.ts +40 -0
- package/dist/types/src/infrastructure/backup/backupTelemetry.d.ts +30 -0
- package/dist/types/src/infrastructure/backup/s3BackupConfig.d.ts +80 -0
- package/dist/types/src/infrastructure/cloud/types/config.d.ts +18 -0
- package/dist/types/src/infrastructure/cloud/types/event.d.ts +14 -0
- package/dist/types/src/infrastructure/cloud/types/snapshot.d.ts +52 -0
- package/dist/types/src/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
- package/dist/types/src/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
- package/dist/types/src/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
- package/dist/types/src/infrastructure/cloud/types.d.ts +3 -0
- package/dist/types/src/infrastructure/persistence/batchInsert.d.ts +13 -0
- package/dist/types/src/infrastructure/persistence/completedJobCountSchema.d.ts +6 -0
- package/dist/types/src/infrastructure/persistence/dependencyCompletionSchema.d.ts +6 -0
- package/dist/types/src/infrastructure/persistence/dependencyCompletionStore.d.ts +40 -0
- package/dist/types/src/infrastructure/persistence/index.d.ts +5 -0
- package/dist/types/src/infrastructure/persistence/jobOptionsBlob.d.ts +19 -0
- package/dist/types/src/infrastructure/persistence/legacyNameMigration.d.ts +17 -0
- package/dist/types/src/infrastructure/persistence/migrationProgressSchema.d.ts +2 -0
- package/dist/types/src/infrastructure/persistence/migrations.d.ts +3 -0
- package/dist/types/src/infrastructure/persistence/schema.d.ts +8 -0
- package/dist/types/src/infrastructure/persistence/sqlite/admission.d.ts +9 -0
- package/dist/types/src/infrastructure/persistence/sqlite/completed.d.ts +17 -0
- package/dist/types/src/infrastructure/persistence/sqlite/control.d.ts +48 -0
- package/dist/types/src/infrastructure/persistence/sqlite/flows.d.ts +26 -0
- package/dist/types/src/infrastructure/persistence/sqlite/jobLifecycle.d.ts +17 -0
- package/dist/types/src/infrastructure/persistence/sqlite/jobs.d.ts +15 -0
- package/dist/types/src/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
- package/dist/types/src/infrastructure/persistence/sqlite/mutations.d.ts +27 -0
- package/dist/types/src/infrastructure/persistence/sqlite/queries.d.ts +23 -0
- package/dist/types/src/infrastructure/persistence/sqlite/queueDeletionSql.d.ts +3 -0
- package/dist/types/src/infrastructure/persistence/sqlite/records.d.ts +24 -0
- package/dist/types/src/infrastructure/persistence/sqlite/state.d.ts +42 -0
- package/dist/types/src/infrastructure/persistence/sqlite/telemetry.d.ts +17 -0
- package/dist/types/src/infrastructure/persistence/sqlite/telemetryStore.d.ts +30 -0
- package/dist/types/src/infrastructure/persistence/sqlite/telemetryWrites.d.ts +47 -0
- package/dist/types/src/infrastructure/persistence/sqlite.d.ts +6 -0
- package/dist/types/src/infrastructure/persistence/sqliteBatch.d.ts +4 -0
- package/dist/types/src/infrastructure/persistence/sqliteMigration.d.ts +5 -0
- package/dist/types/src/infrastructure/persistence/sqliteSerializer.d.ts +50 -0
- package/dist/types/src/infrastructure/persistence/statements.d.ts +86 -0
- package/dist/types/src/infrastructure/persistence/types/admission.d.ts +8 -0
- package/dist/types/src/infrastructure/persistence/types/batch.d.ts +12 -0
- package/dist/types/src/infrastructure/persistence/types/sqlite.d.ts +27 -0
- package/dist/types/src/infrastructure/persistence/writeBuffer.d.ts +48 -0
- package/dist/types/src/infrastructure/persistence/writeBufferPending.d.ts +11 -0
- package/dist/types/src/infrastructure/scheduler/cron/execution.d.ts +12 -0
- package/dist/types/src/infrastructure/scheduler/cron/persisted.d.ts +5 -0
- package/dist/types/src/infrastructure/scheduler/cron/runtime.d.ts +31 -0
- package/dist/types/src/infrastructure/scheduler/cron/validation.d.ts +3 -0
- package/dist/types/src/infrastructure/scheduler/cronParser.d.ts +45 -0
- package/dist/types/src/infrastructure/scheduler/cronScheduler.d.ts +5 -0
- package/dist/types/src/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
- package/dist/types/src/infrastructure/server/protocol/commands.d.ts +8 -0
- package/dist/types/src/infrastructure/server/protocol/frameParser.d.ts +16 -0
- package/dist/types/src/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
- package/dist/types/src/infrastructure/server/protocol/validation.d.ts +10 -0
- package/dist/types/src/infrastructure/server/protocol.d.ts +6 -0
- package/dist/types/src/infrastructure/server/socketWriteQueue.d.ts +66 -0
- package/dist/types/src/infrastructure/server/types/protocol.d.ts +4 -0
- package/dist/types/src/require-bun.d.ts +13 -0
- package/dist/types/src/shared/asyncLock.d.ts +13 -0
- package/dist/types/src/shared/boundedMap.d.ts +30 -0
- package/dist/types/src/shared/boundedSet.d.ts +26 -0
- package/dist/types/src/shared/hash.d.ts +30 -0
- package/dist/types/src/shared/histogram.d.ts +23 -0
- package/dist/types/src/shared/lock.d.ts +13 -0
- package/dist/types/src/shared/lockError.d.ts +3 -0
- package/dist/types/src/shared/lockTimeout.d.ts +2 -0
- package/dist/types/src/shared/logger.d.ts +48 -0
- package/dist/types/src/shared/lru.d.ts +9 -0
- package/dist/types/src/shared/lruMap.d.ts +42 -0
- package/dist/types/src/shared/lruSet.d.ts +36 -0
- package/dist/types/src/shared/minHeap.d.ts +43 -0
- package/dist/types/src/shared/msgpack.d.ts +3 -0
- package/dist/types/src/shared/pausedView.d.ts +19 -0
- package/dist/types/src/shared/rwLock.d.ts +22 -0
- package/dist/types/src/shared/serialization.d.ts +24 -0
- package/dist/types/src/shared/skipList.d.ts +97 -0
- package/dist/types/src/shared/skipListNodes.d.ts +6 -0
- package/dist/types/src/shared/storageHealth.d.ts +9 -0
- package/dist/types/src/shared/ttlMap.d.ts +81 -0
- package/dist/types/src/shared/types/lock.d.ts +7 -0
- package/dist/types/src/shared/types/skipList.d.ts +4 -0
- package/dist/types/src/shared/version.d.ts +4 -0
- package/dist/types/src/shared/webhookValidation.d.ts +6 -0
- package/package.json +27 -9
- package/src/ack-batcher.ts +8 -5
- package/src/bunqueue/bunqueue-api.ts +1 -1
- package/src/bunqueue/bunqueue.ts +2 -1
- package/src/canonical-transport/bun-sqlite-types.ts +22 -0
- package/src/canonical-transport/dlq.ts +12 -0
- package/src/canonical-transport/embedded.ts +55 -0
- package/src/canonical-transport/runtime.ts +49 -0
- package/src/canonical-transport/thread-worker.ts +83 -0
- package/src/canonical-transport/transport.ts +153 -0
- package/src/connection.ts +25 -30
- package/src/errors.ts +3 -0
- package/src/flow-commit.ts +45 -0
- package/src/flow-plan-legacy.ts +117 -0
- package/src/flow-plan.ts +209 -0
- package/src/flow-types.ts +4 -0
- package/src/flow.ts +31 -163
- package/src/frame.ts +5 -2
- package/src/index.ts +7 -75
- package/src/job.ts +43 -9
- package/src/legacy.ts +91 -0
- package/src/observability.ts +59 -1
- package/src/queue-admin.ts +5 -5
- package/src/queue-control.ts +12 -8
- package/src/queue.ts +10 -6
- package/src/serialization.ts +93 -0
- package/src/terminal-outcome.ts +58 -0
- package/src/types.ts +3 -6
- package/src/worker-base.ts +9 -6
- package/src/worker-slot-signal.ts +23 -0
- package/src/worker.ts +11 -5
- package/dist/backpressure.js +0 -39
- package/dist/bunqueue/aging.js +0 -53
- package/dist/bunqueue/batch.js +0 -60
- package/dist/bunqueue/bunqueue-api.js +0 -116
- package/dist/bunqueue/bunqueue.js +0 -194
- package/dist/bunqueue/cancellation.js +0 -48
- package/dist/bunqueue/circuit-breaker.js +0 -69
- package/dist/bunqueue/dedup-debounce.js +0 -37
- package/dist/bunqueue/dlq-rate-limit.js +0 -65
- package/dist/bunqueue/rate-gate.js +0 -61
- package/dist/bunqueue/retry.js +0 -56
- package/dist/bunqueue/triggers.js +0 -42
- package/dist/bunqueue/ttl.js +0 -31
- package/dist/bunqueue/types.js +0 -6
- package/dist/connection-pool.js +0 -60
- package/dist/connection-types.js +0 -2
- package/dist/connection.js +0 -281
- package/dist/errors.js +0 -25
- package/dist/flow-types.js +0 -2
- package/dist/flow.js +0 -212
- package/dist/job.js +0 -155
- package/dist/observability.js +0 -110
- package/dist/queue-admin.js +0 -158
- package/dist/queue-control.js +0 -105
- package/dist/queue-query.js +0 -187
- package/dist/queue.js +0 -92
- package/dist/responses.js +0 -10
- package/dist/socket-factory.js +0 -47
- package/dist/types.js +0 -50
- package/dist/worker-base.js +0 -159
- package/dist/worker-types.js +0 -5
- package/dist/worker.js +0 -211
- /package/dist/{backpressure.d.ts → types/sdk/typescript/src/backpressure.d.ts} +0 -0
- /package/dist/{bunqueue → types/sdk/typescript/src/bunqueue}/cancellation.d.ts +0 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { Shard } from "../../domain/queue/shard.js";
|
|
2
|
+
import type { FailureReason } from "../../domain/types/dlq.js";
|
|
3
|
+
import type { Job, JobId, JobLock } from "../../domain/types/job.js";
|
|
4
|
+
import type { JobLocation } from "../../domain/types/queue.js";
|
|
5
|
+
import type { JobLogEntry } from "../../domain/types/worker.js";
|
|
6
|
+
import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
|
|
7
|
+
import type { RWLock } from "../../shared/lock.js";
|
|
8
|
+
import type { BoundedMap, BoundedSet, LRUMap, MapLike, SetLike } from "../../shared/lru.js";
|
|
9
|
+
import type { DependencyCompletionTracker } from "../dependencyCompletions.js";
|
|
10
|
+
import type { DependencyResultTracker } from "../dependencyResultTracker.js";
|
|
11
|
+
import type { EventsManager } from "../eventsManager.js";
|
|
12
|
+
import type { MonitoringState } from "../monitoringChecks.js";
|
|
13
|
+
import type { WebhookManager } from "../webhookManager.js";
|
|
14
|
+
import type { WorkerManager } from "../workerManager.js";
|
|
15
|
+
import type { DEFAULT_CONFIG } from "./config.js";
|
|
16
|
+
import type { JobTimeoutScheduler } from "../background/timeouts.js";
|
|
17
|
+
import type { RetiredTimeoutGeneration } from "./background.js";
|
|
18
|
+
export interface QueueManagerState {
|
|
19
|
+
readonly config: typeof DEFAULT_CONFIG & {
|
|
20
|
+
dataPath?: string;
|
|
21
|
+
};
|
|
22
|
+
readonly storage: SqliteStorage | null;
|
|
23
|
+
readonly shards: Shard[];
|
|
24
|
+
readonly shardLocks: RWLock[];
|
|
25
|
+
readonly processingShards: Map<JobId, Job>[];
|
|
26
|
+
readonly processingLocks: RWLock[];
|
|
27
|
+
readonly jobIndex: Map<JobId, JobLocation>;
|
|
28
|
+
readonly completedJobs: BoundedSet<JobId>;
|
|
29
|
+
readonly jobResults: LRUMap<JobId, unknown>;
|
|
30
|
+
readonly jobResultQueues: Map<JobId, string>;
|
|
31
|
+
readonly dependencyResults: DependencyResultTracker;
|
|
32
|
+
readonly customIdMap: LRUMap<string, JobId>;
|
|
33
|
+
readonly jobLogs: LRUMap<JobId, JobLogEntry[]>;
|
|
34
|
+
readonly jobLogQueues: Map<JobId, string>;
|
|
35
|
+
readonly jobLocks: Map<JobId, JobLock>;
|
|
36
|
+
readonly timedOutJobs: MapLike<JobId, RetiredTimeoutGeneration>;
|
|
37
|
+
readonly retiredTimeoutLeaseTokens: MapLike<string, RetiredTimeoutGeneration>;
|
|
38
|
+
readonly retiredCronLeaseTokens: MapLike<JobId, string>;
|
|
39
|
+
readonly timeoutScheduler: JobTimeoutScheduler;
|
|
40
|
+
readonly clientJobs: Map<string, Set<JobId>>;
|
|
41
|
+
readonly stalledCandidates: Set<JobId>;
|
|
42
|
+
readonly pendingDepChecks: Set<JobId>;
|
|
43
|
+
readonly pendingQueueAdmissions: Map<string, number>;
|
|
44
|
+
readonly queueNamesCache: Set<string>;
|
|
45
|
+
readonly eventsManager: EventsManager;
|
|
46
|
+
readonly webhookManager: WebhookManager;
|
|
47
|
+
readonly metrics: QueueManagerMetrics;
|
|
48
|
+
readonly startTime: number;
|
|
49
|
+
readonly perQueueMetrics: MapLike<string, {
|
|
50
|
+
totalCompleted: bigint;
|
|
51
|
+
totalFailed: bigint;
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
export interface QueueManagerMetrics {
|
|
55
|
+
totalPushed: {
|
|
56
|
+
value: bigint;
|
|
57
|
+
};
|
|
58
|
+
totalPulled: {
|
|
59
|
+
value: bigint;
|
|
60
|
+
};
|
|
61
|
+
totalCompleted: {
|
|
62
|
+
value: bigint;
|
|
63
|
+
};
|
|
64
|
+
totalFailed: {
|
|
65
|
+
value: bigint;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export interface LockContext {
|
|
69
|
+
jobIndex: Map<JobId, JobLocation>;
|
|
70
|
+
jobLocks: Map<JobId, JobLock>;
|
|
71
|
+
retiredCronLeaseTokens: MapLike<JobId, string>;
|
|
72
|
+
clientJobs: Map<string, Set<JobId>>;
|
|
73
|
+
processingShards: Map<JobId, Job>[];
|
|
74
|
+
processingLocks: RWLock[];
|
|
75
|
+
shards: Shard[];
|
|
76
|
+
shardLocks: RWLock[];
|
|
77
|
+
eventsManager: EventsManager;
|
|
78
|
+
dashboardEmit?: (event: string, data: Record<string, unknown>) => void;
|
|
79
|
+
storage: SqliteStorage | null;
|
|
80
|
+
timeoutScheduler: JobTimeoutScheduler;
|
|
81
|
+
}
|
|
82
|
+
export interface BackgroundContext extends QueueManagerState {
|
|
83
|
+
fail: (jobId: JobId, error?: string, failureReason?: FailureReason) => Promise<void>;
|
|
84
|
+
registerQueueName: (queue: string) => void;
|
|
85
|
+
unregisterQueueName: (queue: string) => void;
|
|
86
|
+
dashboardEmit?: (event: string, data: Record<string, unknown>) => void;
|
|
87
|
+
workerManager: WorkerManager;
|
|
88
|
+
monitoringState: MonitoringState;
|
|
89
|
+
completedJobsData: BoundedMap<JobId, Job>;
|
|
90
|
+
depCompletions?: DependencyCompletionTracker;
|
|
91
|
+
maxDependencyCompletions: number;
|
|
92
|
+
timedOutJobs: BoundedMap<JobId, RetiredTimeoutGeneration>;
|
|
93
|
+
retiredTimeoutLeaseTokens: BoundedMap<string, RetiredTimeoutGeneration>;
|
|
94
|
+
}
|
|
95
|
+
export interface StatsContext {
|
|
96
|
+
storage?: SqliteStorage | null;
|
|
97
|
+
shards: Shard[];
|
|
98
|
+
processingShards: Map<JobId, Job>[];
|
|
99
|
+
completedJobs: SetLike<JobId>;
|
|
100
|
+
jobIndex: Map<JobId, JobLocation>;
|
|
101
|
+
jobResults: LRUMap<JobId, unknown>;
|
|
102
|
+
jobLogs: LRUMap<JobId, JobLogEntry[]>;
|
|
103
|
+
customIdMap: LRUMap<string, JobId>;
|
|
104
|
+
jobLocks: Map<JobId, JobLock>;
|
|
105
|
+
clientJobs: Map<string, Set<JobId>>;
|
|
106
|
+
pendingDepChecks: Set<JobId>;
|
|
107
|
+
stalledCandidates: Set<JobId>;
|
|
108
|
+
metrics: QueueManagerMetrics;
|
|
109
|
+
startTime: number;
|
|
110
|
+
perQueueMetrics?: MapLike<string, {
|
|
111
|
+
totalCompleted: bigint;
|
|
112
|
+
totalFailed: bigint;
|
|
113
|
+
}>;
|
|
114
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { DEFAULT_CONFIG } from "./config.js";
|
|
2
|
+
export type { AckContext, BatchContext, ExtractedJob, FinalizeContext } from "./ack.js";
|
|
3
|
+
export type { BackgroundTaskHandles } from "./background.js";
|
|
4
|
+
export type { QueueManagerConfig } from "./config.js";
|
|
5
|
+
export type { BackgroundContext, LockContext, QueueManagerMetrics, QueueManagerState, StatsContext, } from "./contexts.js";
|
|
6
|
+
export type { QueueManagerRuntime, QueueManagerRuntimeApi, QueueManagerStateView, } from "./queueManager.js";
|
|
7
|
+
export type { GetJobsContext, QueryContext } from "./query.js";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Shard } from "../../domain/queue/shard.js";
|
|
2
|
+
import type { JobLocation } from "../../domain/types/queue.js";
|
|
3
|
+
import type { Job, JobId } from "../../domain/types/job.js";
|
|
4
|
+
import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
|
|
5
|
+
import type { RWLock } from "../../shared/lock.js";
|
|
6
|
+
import type { MapLike, SetLike } from "../../shared/lru.js";
|
|
7
|
+
import type { DependencyResultTracker } from "../dependencyResultTracker.js";
|
|
8
|
+
export interface QueryContext {
|
|
9
|
+
storage: SqliteStorage | null;
|
|
10
|
+
shards: Shard[];
|
|
11
|
+
shardLocks: RWLock[];
|
|
12
|
+
processingShards: Map<JobId, Job>[];
|
|
13
|
+
processingLocks: RWLock[];
|
|
14
|
+
jobIndex: Map<JobId, JobLocation>;
|
|
15
|
+
completedJobs: SetLike<JobId>;
|
|
16
|
+
completedJobsData: MapLike<JobId, Job>;
|
|
17
|
+
jobResults: MapLike<JobId, unknown>;
|
|
18
|
+
dependencyResults: DependencyResultTracker;
|
|
19
|
+
customIdMap: MapLike<string, JobId>;
|
|
20
|
+
}
|
|
21
|
+
export interface GetJobsContext extends QueryContext {
|
|
22
|
+
shardCount: number;
|
|
23
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { Shard } from "../../domain/queue/shard.js";
|
|
2
|
+
import type { DlqEntry } from "../../domain/types/dlq.js";
|
|
3
|
+
import type { FailureReason } from "../../domain/types/dlq.js";
|
|
4
|
+
import type { Job, JobId, JobInput, JobLock } from "../../domain/types/job.js";
|
|
5
|
+
import type { JobLocation } from "../../domain/types/queue.js";
|
|
6
|
+
import type { JobLogEntry } from "../../domain/types/worker.js";
|
|
7
|
+
import type { SqliteStorage } from "../../infrastructure/persistence/sqlite.js";
|
|
8
|
+
import type { CronScheduler } from "../../infrastructure/scheduler/cronScheduler.js";
|
|
9
|
+
import type { RWLock } from "../../shared/lock.js";
|
|
10
|
+
import type { BoundedMap, BoundedSet, LRUMap } from "../../shared/lru.js";
|
|
11
|
+
import type { DependencyCompletionTracker } from "../dependencyCompletions.js";
|
|
12
|
+
import type { DependencyResultTracker } from "../dependencyResultTracker.js";
|
|
13
|
+
import type { EventsManager } from "../eventsManager.js";
|
|
14
|
+
import type { OperationalMetrics } from "../metricsExporter.js";
|
|
15
|
+
import type { MonitoringState } from "../monitoringChecks.js";
|
|
16
|
+
import type { WebhookManager } from "../webhookManager.js";
|
|
17
|
+
import type { WorkerManager } from "../workerManager.js";
|
|
18
|
+
import type { DEFAULT_CONFIG } from "./config.js";
|
|
19
|
+
import type { JobTimeoutScheduler } from "../background/timeouts.js";
|
|
20
|
+
import type { RetiredTimeoutGeneration } from "./background.js";
|
|
21
|
+
import type { AckOutcome } from "./ack.js";
|
|
22
|
+
export interface QueueManagerStateView {
|
|
23
|
+
config: typeof DEFAULT_CONFIG & {
|
|
24
|
+
dataPath?: string;
|
|
25
|
+
};
|
|
26
|
+
storage: SqliteStorage | null;
|
|
27
|
+
shards: Shard[];
|
|
28
|
+
shardLocks: RWLock[];
|
|
29
|
+
customIdLock: RWLock;
|
|
30
|
+
processingShards: Map<JobId, Job>[];
|
|
31
|
+
processingLocks: RWLock[];
|
|
32
|
+
jobIndex: Map<JobId, JobLocation>;
|
|
33
|
+
completedJobs: BoundedSet<JobId>;
|
|
34
|
+
completedJobsData: BoundedMap<JobId, Job>;
|
|
35
|
+
depCompletions: DependencyCompletionTracker;
|
|
36
|
+
timedOutJobs: BoundedMap<JobId, RetiredTimeoutGeneration>;
|
|
37
|
+
retiredTimeoutLeaseTokens: BoundedMap<string, RetiredTimeoutGeneration>;
|
|
38
|
+
retiredCronLeaseTokens: BoundedMap<JobId, string>;
|
|
39
|
+
timeoutScheduler: JobTimeoutScheduler;
|
|
40
|
+
jobResults: LRUMap<JobId, unknown>;
|
|
41
|
+
jobResultQueues: Map<JobId, string>;
|
|
42
|
+
dependencyResults: DependencyResultTracker;
|
|
43
|
+
customIdMap: LRUMap<string, JobId>;
|
|
44
|
+
jobLogs: LRUMap<JobId, JobLogEntry[]>;
|
|
45
|
+
jobLogQueues: Map<JobId, string>;
|
|
46
|
+
pendingDepChecks: Set<JobId>;
|
|
47
|
+
pendingQueueAdmissions: Map<string, number>;
|
|
48
|
+
stalledCandidates: Set<JobId>;
|
|
49
|
+
jobLocks: Map<JobId, JobLock>;
|
|
50
|
+
clientJobs: Map<string, Set<JobId>>;
|
|
51
|
+
repeatChain: Map<JobId, JobId>;
|
|
52
|
+
queueNamesCache: Set<string>;
|
|
53
|
+
eventsManager: EventsManager;
|
|
54
|
+
webhookManager: WebhookManager;
|
|
55
|
+
workerManager: WorkerManager;
|
|
56
|
+
monitoringState: MonitoringState;
|
|
57
|
+
metrics: {
|
|
58
|
+
totalPushed: {
|
|
59
|
+
value: bigint;
|
|
60
|
+
};
|
|
61
|
+
totalPulled: {
|
|
62
|
+
value: bigint;
|
|
63
|
+
};
|
|
64
|
+
totalCompleted: {
|
|
65
|
+
value: bigint;
|
|
66
|
+
};
|
|
67
|
+
totalFailed: {
|
|
68
|
+
value: bigint;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
startTime: number;
|
|
72
|
+
maxLogsPerJob: number;
|
|
73
|
+
perQueueMetrics: LRUMap<string, {
|
|
74
|
+
totalCompleted: bigint;
|
|
75
|
+
totalFailed: bigint;
|
|
76
|
+
}>;
|
|
77
|
+
failedChildrenValues: Map<JobId, Record<string, string>>;
|
|
78
|
+
ignoredChildrenFailures: Map<JobId, Record<string, string>>;
|
|
79
|
+
cronScheduler: CronScheduler;
|
|
80
|
+
operationalMetricsProvider: (() => OperationalMetrics) | null;
|
|
81
|
+
}
|
|
82
|
+
export interface QueueManagerRuntimeApi {
|
|
83
|
+
push(queue: string, input: JobInput): Promise<Job>;
|
|
84
|
+
fail(jobId: JobId, error?: string): Promise<AckOutcome>;
|
|
85
|
+
failWithReason(jobId: JobId, error: string | undefined, reason: FailureReason): Promise<AckOutcome>;
|
|
86
|
+
registerQueueName(queue: string): void;
|
|
87
|
+
unregisterQueueName(queue: string): void;
|
|
88
|
+
onQueueAdmissionsDrained(queue: string): void;
|
|
89
|
+
onJobCompleted(jobId: JobId): void;
|
|
90
|
+
onJobFailed(jobId: JobId): void;
|
|
91
|
+
onJobsCompleted(jobIds: JobId[]): void;
|
|
92
|
+
hasPendingDeps(): boolean;
|
|
93
|
+
emitDashboardEvent(event: string, data: Record<string, unknown>): void;
|
|
94
|
+
failParentOnChildFailure(job: Job, error: string | undefined): Promise<void>;
|
|
95
|
+
onChildDependencyOption(job: Job, error: string | undefined): Promise<void>;
|
|
96
|
+
onDlqEvicted(entry: DlqEntry): void;
|
|
97
|
+
}
|
|
98
|
+
export type QueueManagerRuntime = QueueManagerStateView & QueueManagerRuntimeApi;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhook Manager
|
|
3
|
+
* Manages webhooks and sends HTTP callbacks
|
|
4
|
+
*/
|
|
5
|
+
import { type Webhook, type WebhookId, type WebhookEvent } from "../domain/types/webhook.js";
|
|
6
|
+
/**
|
|
7
|
+
* Webhook Manager
|
|
8
|
+
*/
|
|
9
|
+
export declare class WebhookManager {
|
|
10
|
+
private readonly webhooks;
|
|
11
|
+
private readonly maxRetries;
|
|
12
|
+
private readonly retryDelay;
|
|
13
|
+
private readonly validateUrls;
|
|
14
|
+
private dashboardEmit;
|
|
15
|
+
/** Running counter for enabled webhooks - avoids O(n) filter in getStats */
|
|
16
|
+
private enabledCount;
|
|
17
|
+
constructor(options?: {
|
|
18
|
+
validateUrls?: boolean;
|
|
19
|
+
});
|
|
20
|
+
/** Set the dashboard event emitter callback */
|
|
21
|
+
setDashboardEmit(callback: (event: string, data: Record<string, unknown>) => void): void;
|
|
22
|
+
/** Add a webhook (validates URL to prevent SSRF) */
|
|
23
|
+
add(url: string, events: string[], queue?: string, secret?: string): Webhook;
|
|
24
|
+
/** Remove a webhook */
|
|
25
|
+
remove(id: WebhookId): boolean;
|
|
26
|
+
/** Get webhook by ID */
|
|
27
|
+
get(id: WebhookId): Webhook | undefined;
|
|
28
|
+
/** Set webhook enabled state - properly maintains running counter */
|
|
29
|
+
setEnabled(id: WebhookId, enabled: boolean): boolean;
|
|
30
|
+
/** List all webhooks */
|
|
31
|
+
list(): Webhook[];
|
|
32
|
+
/** Trigger webhooks for an event */
|
|
33
|
+
trigger(event: WebhookEvent, jobId: string, queue: string, extra?: {
|
|
34
|
+
data?: unknown;
|
|
35
|
+
error?: string;
|
|
36
|
+
progress?: number;
|
|
37
|
+
}): Promise<void>;
|
|
38
|
+
/** Send webhook with retries */
|
|
39
|
+
private sendWebhook;
|
|
40
|
+
/** Check if there are any enabled webhooks - O(1) */
|
|
41
|
+
hasEnabledWebhooks(): boolean;
|
|
42
|
+
/** Get stats - O(1) using running counter */
|
|
43
|
+
getStats(): {
|
|
44
|
+
total: number;
|
|
45
|
+
enabled: number;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Manager
|
|
3
|
+
* Tracks connected workers and their status
|
|
4
|
+
*/
|
|
5
|
+
import { type Worker, type WorkerId, type CreateWorkerOptions } from "../domain/types/worker.js";
|
|
6
|
+
/**
|
|
7
|
+
* Worker Manager
|
|
8
|
+
*/
|
|
9
|
+
export declare class WorkerManager {
|
|
10
|
+
private readonly workers;
|
|
11
|
+
private cleanupInterval;
|
|
12
|
+
private dashboardEmit;
|
|
13
|
+
/** Running counters for O(1) stats - avoids O(n) reduce operations */
|
|
14
|
+
private totalProcessedCounter;
|
|
15
|
+
private totalFailedCounter;
|
|
16
|
+
private totalActiveJobsCounter;
|
|
17
|
+
constructor();
|
|
18
|
+
/** Set the dashboard event emitter callback */
|
|
19
|
+
setDashboardEmit(callback: (event: string, data: Record<string, unknown>) => void): void;
|
|
20
|
+
/** Register a new worker */
|
|
21
|
+
register(name: string, queues: string[], concurrency?: number, opts?: CreateWorkerOptions): Worker;
|
|
22
|
+
/** Unregister a worker */
|
|
23
|
+
unregister(id: WorkerId): boolean;
|
|
24
|
+
/** Unregister all workers associated with a TCP client ID */
|
|
25
|
+
unregisterByClientId(clientId: string): number;
|
|
26
|
+
/** Get worker by ID */
|
|
27
|
+
get(id: WorkerId): Worker | undefined;
|
|
28
|
+
/** Update worker last seen time and optionally client-reported stats */
|
|
29
|
+
heartbeat(id: WorkerId, stats?: {
|
|
30
|
+
activeJobs?: number;
|
|
31
|
+
processed?: number;
|
|
32
|
+
failed?: number;
|
|
33
|
+
}): boolean;
|
|
34
|
+
/** Increment active jobs count */
|
|
35
|
+
incrementActive(id: WorkerId, jobId?: string): void;
|
|
36
|
+
/** Decrement active jobs and increment processed */
|
|
37
|
+
jobCompleted(id: WorkerId): void;
|
|
38
|
+
/** Decrement active jobs and increment failed */
|
|
39
|
+
jobFailed(id: WorkerId): void;
|
|
40
|
+
/** List all workers */
|
|
41
|
+
list(): Worker[];
|
|
42
|
+
/** List active workers (seen recently) */
|
|
43
|
+
listActive(): Worker[];
|
|
44
|
+
/** Get workers for a specific queue (only active workers with recent heartbeat) */
|
|
45
|
+
getForQueue(queue: string): Worker[];
|
|
46
|
+
/** Start cleanup interval */
|
|
47
|
+
private startCleanup;
|
|
48
|
+
/** Remove stale workers */
|
|
49
|
+
private cleanupStale;
|
|
50
|
+
/** Stop cleanup */
|
|
51
|
+
stop(): void;
|
|
52
|
+
/** Get stats - O(n) only for active count, O(1) for other metrics */
|
|
53
|
+
getStats(): {
|
|
54
|
+
total: number;
|
|
55
|
+
active: number;
|
|
56
|
+
totalProcessed: number;
|
|
57
|
+
totalFailed: number;
|
|
58
|
+
activeJobs: number;
|
|
59
|
+
concurrencySlots: number;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue — Priority Aging
|
|
3
|
+
* Automatically boosts priority of old waiting jobs.
|
|
4
|
+
*/
|
|
5
|
+
import type { Queue } from "../queue/queue.js";
|
|
6
|
+
import type { PriorityAgingConfig } from "./types.js";
|
|
7
|
+
export declare class PriorityAger<T = unknown> {
|
|
8
|
+
private timer;
|
|
9
|
+
private generation;
|
|
10
|
+
private readonly config;
|
|
11
|
+
private readonly queue;
|
|
12
|
+
constructor(config: PriorityAgingConfig, queue: Queue<T>);
|
|
13
|
+
start(): void;
|
|
14
|
+
private tick;
|
|
15
|
+
destroy(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue — Batch Processing
|
|
3
|
+
* Accumulates jobs and processes them in groups.
|
|
4
|
+
*/
|
|
5
|
+
import type { Processor } from "../types.js";
|
|
6
|
+
import type { BatchConfig } from "./types.js";
|
|
7
|
+
export declare class BatchAccumulator<T = unknown, R = unknown> {
|
|
8
|
+
private readonly buffer;
|
|
9
|
+
private timer;
|
|
10
|
+
private readonly config;
|
|
11
|
+
constructor(config: BatchConfig<T, R>);
|
|
12
|
+
/** Build a Processor that buffers jobs into batches */
|
|
13
|
+
buildProcessor(): Processor<T, R>;
|
|
14
|
+
flush(): void;
|
|
15
|
+
destroy(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue — Graceful Job Cancellation
|
|
3
|
+
* AbortController-based cancellation with optional grace period.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CancellationManager {
|
|
6
|
+
private readonly currentByJob;
|
|
7
|
+
private readonly registrations;
|
|
8
|
+
/** Register a new AbortController for a job */
|
|
9
|
+
register(jobId: string): AbortController;
|
|
10
|
+
/** Remove a job's controller (on completion) */
|
|
11
|
+
unregister(jobId: string, controller?: AbortController): void;
|
|
12
|
+
/** Cancel a job with optional grace period */
|
|
13
|
+
cancel(jobId: string, gracePeriodMs?: number): void;
|
|
14
|
+
/** Check if a job is cancelled */
|
|
15
|
+
isCancelled(jobId: string): boolean;
|
|
16
|
+
/** Get the AbortSignal for a job */
|
|
17
|
+
getSignal(jobId: string): AbortSignal | null;
|
|
18
|
+
/** Cancel all and clear */
|
|
19
|
+
destroyAll(): void;
|
|
20
|
+
private clearTimer;
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue — Circuit Breaker for worker protection
|
|
3
|
+
*/
|
|
4
|
+
import type { Worker } from "../worker/worker.js";
|
|
5
|
+
import type { CircuitBreakerConfig, CircuitState } from "./types.js";
|
|
6
|
+
export declare class WorkerCircuitBreaker {
|
|
7
|
+
private state;
|
|
8
|
+
private failures;
|
|
9
|
+
private timer;
|
|
10
|
+
private destroyed;
|
|
11
|
+
private readonly config;
|
|
12
|
+
private readonly worker;
|
|
13
|
+
constructor(config: CircuitBreakerConfig, worker: Worker);
|
|
14
|
+
get currentState(): CircuitState;
|
|
15
|
+
isOpen(): boolean;
|
|
16
|
+
onSuccess(): void;
|
|
17
|
+
onFailure(): void;
|
|
18
|
+
private open;
|
|
19
|
+
reset(): void;
|
|
20
|
+
destroy(): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue — Deduplication & Debounce defaults merger
|
|
3
|
+
*/
|
|
4
|
+
import type { JobOptions } from "../types.js";
|
|
5
|
+
import type { BunqueueDeduplicationConfig, BunqueueDebounceConfig } from "./types.js";
|
|
6
|
+
export declare class DedupDebounceMerger {
|
|
7
|
+
private readonly dedup;
|
|
8
|
+
private readonly debounce;
|
|
9
|
+
constructor(dedup: BunqueueDeduplicationConfig | null, debounce: BunqueueDebounceConfig | null);
|
|
10
|
+
get active(): boolean;
|
|
11
|
+
merge(name: string, opts?: JobOptions, data?: unknown): JobOptions | undefined;
|
|
12
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue — DLQ & Rate Limit helpers
|
|
3
|
+
* Mixin-style functions that delegate to Queue methods.
|
|
4
|
+
*/
|
|
5
|
+
import type { Queue } from "../queue/queue.js";
|
|
6
|
+
import type { DlqConfig, DlqEntry, DlqStats, DlqFilter } from "../types.js";
|
|
7
|
+
export declare class DlqRateLimitManager<T = unknown> {
|
|
8
|
+
private readonly queue;
|
|
9
|
+
constructor(queue: Queue<T>);
|
|
10
|
+
setDlqConfig(config: Partial<DlqConfig>): void;
|
|
11
|
+
setDlqConfigAsync(config: Partial<DlqConfig>): Promise<void>;
|
|
12
|
+
getDlqConfig(): DlqConfig;
|
|
13
|
+
getDlqConfigAsync(): Promise<DlqConfig>;
|
|
14
|
+
getDlq(filter?: DlqFilter): DlqEntry<T>[];
|
|
15
|
+
getDlqAsync(filter?: DlqFilter): Promise<DlqEntry<T>[]>;
|
|
16
|
+
getDlqStats(): DlqStats;
|
|
17
|
+
getDlqStatsAsync(): Promise<DlqStats>;
|
|
18
|
+
retryDlq(id?: string): number;
|
|
19
|
+
retryDlqAsync(id?: string): Promise<number>;
|
|
20
|
+
purgeDlq(): number;
|
|
21
|
+
purgeDlqAsync(): Promise<number>;
|
|
22
|
+
setGlobalRateLimit(max: number, duration?: number): void;
|
|
23
|
+
setGlobalRateLimitAsync(max: number, duration?: number): Promise<void>;
|
|
24
|
+
removeGlobalRateLimit(): void;
|
|
25
|
+
removeGlobalRateLimitAsync(): Promise<void>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue — Advanced Retry with backoff strategies
|
|
3
|
+
*/
|
|
4
|
+
import type { RetryConfig, RetryStrategy } from "./types.js";
|
|
5
|
+
/** Calculate backoff delay based on strategy */
|
|
6
|
+
export declare function calculateBackoff(strategy: RetryStrategy, attempt: number, baseDelay: number, error: Error, config: RetryConfig): number;
|
|
7
|
+
/** Execute a function with retry logic */
|
|
8
|
+
export declare function executeWithRetry<R>(fn: () => Promise<R>, config: RetryConfig, signal?: AbortSignal): Promise<R>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Queue } from "../queue/queue.js";
|
|
2
|
+
import { Worker } from "../worker/worker.js";
|
|
3
|
+
import { PriorityAger } from "./aging.js";
|
|
4
|
+
import { BatchAccumulator } from "./batch.js";
|
|
5
|
+
import { CancellationManager } from "./cancellation.js";
|
|
6
|
+
import { WorkerCircuitBreaker } from "./circuitBreaker.js";
|
|
7
|
+
import { DedupDebounceMerger } from "./dedupDebounce.js";
|
|
8
|
+
import { DlqRateLimitManager } from "./dlqRateLimit.js";
|
|
9
|
+
import { TriggerManager } from "./triggers.js";
|
|
10
|
+
import { TtlChecker } from "./ttl.js";
|
|
11
|
+
import type { BunqueueMiddleware, BunqueueOptions } from "./types.js";
|
|
12
|
+
/** Construction and processing pipeline shared by the compact Bunqueue façade. */
|
|
13
|
+
export declare abstract class BunqueueRuntime<T, R> {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly queue: Queue<T>;
|
|
16
|
+
readonly worker: Worker<T, R>;
|
|
17
|
+
private readonly middlewares;
|
|
18
|
+
private readonly baseProcessor;
|
|
19
|
+
protected readonly cb: WorkerCircuitBreaker | null;
|
|
20
|
+
private readonly retryConfig;
|
|
21
|
+
protected readonly triggerMgr: TriggerManager<T, R>;
|
|
22
|
+
protected readonly ager: PriorityAger<T> | null;
|
|
23
|
+
protected readonly cancellation: CancellationManager;
|
|
24
|
+
protected readonly ttlChecker: TtlChecker | null;
|
|
25
|
+
protected readonly batchAcc: BatchAccumulator<T, R> | null;
|
|
26
|
+
protected readonly merger: DedupDebounceMerger;
|
|
27
|
+
protected readonly dlqrl: DlqRateLimitManager<T>;
|
|
28
|
+
constructor(name: string, options: BunqueueOptions<T, R>);
|
|
29
|
+
private buildRouteProcessor;
|
|
30
|
+
private buildQueueOptions;
|
|
31
|
+
private buildWorkerOptions;
|
|
32
|
+
private processJob;
|
|
33
|
+
private runMiddlewareChain;
|
|
34
|
+
use(middleware: BunqueueMiddleware<T, R>): this;
|
|
35
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue — Event Triggers
|
|
3
|
+
* When a job completes/fails, automatically create another job.
|
|
4
|
+
*/
|
|
5
|
+
import type { Queue } from "../queue/queue.js";
|
|
6
|
+
import type { Worker } from "../worker/worker.js";
|
|
7
|
+
import type { TriggerRule } from "./types.js";
|
|
8
|
+
export declare class TriggerManager<T = unknown, R = unknown> {
|
|
9
|
+
private readonly rules;
|
|
10
|
+
private active;
|
|
11
|
+
private readonly queue;
|
|
12
|
+
private readonly worker;
|
|
13
|
+
constructor(queue: Queue<T>, worker: Worker<T, R>);
|
|
14
|
+
add(rule: TriggerRule<T>): void;
|
|
15
|
+
private ensureActive;
|
|
16
|
+
private fire;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue — Job TTL (Time To Live)
|
|
3
|
+
* Expire unprocessed jobs based on configurable TTL.
|
|
4
|
+
*/
|
|
5
|
+
import type { JobTtlConfig } from "./types.js";
|
|
6
|
+
export declare class TtlChecker {
|
|
7
|
+
private readonly config;
|
|
8
|
+
constructor(config: JobTtlConfig);
|
|
9
|
+
/** Get TTL for a specific job name */
|
|
10
|
+
getTtl(jobName: string): number;
|
|
11
|
+
/** Check if a job has expired */
|
|
12
|
+
isExpired(jobName: string, jobTimestamp: number): boolean;
|
|
13
|
+
/** Set default TTL */
|
|
14
|
+
setDefaultTtl(ttlMs: number): void;
|
|
15
|
+
/** Set TTL for a specific job name */
|
|
16
|
+
setNameTtl(jobName: string, ttlMs: number): void;
|
|
17
|
+
}
|