bunqueue-client 0.1.9 → 0.2.1
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 +165 -0
- package/LEGACY.md +460 -0
- package/README.md +204 -349
- package/dist/ack-batcher.js +7 -67
- package/dist/canonical-manifest.json +934 -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 +16510 -0
- package/dist/frame.js +14 -57
- package/dist/index.d.ts +1 -27
- package/dist/index.js +10953 -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} +5 -5
- 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/clientOwnership.d.ts +65 -0
- package/dist/types/src/application/clientTracking.d.ts +40 -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 +45 -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/orphanRecovery.d.ts +25 -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 +98 -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 +26 -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 +89 -0
- package/dist/types/src/application/types/contexts.d.ts +117 -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 +100 -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 +75 -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 +72 -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 +14 -0
- package/dist/types/src/domain/job/create.d.ts +9 -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 +16 -0
- package/dist/types/src/domain/job/payload.d.ts +18 -0
- package/dist/types/src/domain/job/state.d.ts +23 -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 +107 -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 +89 -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 +150 -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 +8 -6
- 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 -107
- 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,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bunqueue Simple Mode — Type definitions
|
|
3
|
+
*/
|
|
4
|
+
import type { Job, JobOptions, Processor, ConnectionOptions, QueueOptions, WorkerOptions, RateLimiterOptions } from "../types.js";
|
|
5
|
+
/** Middleware function: receives job and next(), returns result */
|
|
6
|
+
export type BunqueueMiddleware<T = unknown, R = unknown> = (job: Job<T>, next: () => Promise<R>) => Promise<R>;
|
|
7
|
+
/** Retry strategy for advanced backoff */
|
|
8
|
+
export type RetryStrategy = 'fixed' | 'exponential' | 'jitter' | 'fibonacci' | 'custom';
|
|
9
|
+
/** Advanced retry configuration */
|
|
10
|
+
export interface RetryConfig {
|
|
11
|
+
/** Max attempts (default: 3) */
|
|
12
|
+
maxAttempts?: number;
|
|
13
|
+
/** Base delay in ms (default: 1000) */
|
|
14
|
+
delay?: number;
|
|
15
|
+
/** Strategy (default: exponential) */
|
|
16
|
+
strategy?: RetryStrategy;
|
|
17
|
+
/** Custom backoff function: attempt → delay in ms */
|
|
18
|
+
customBackoff?: (attempt: number, error: Error) => number;
|
|
19
|
+
/** Only retry if this returns true */
|
|
20
|
+
retryIf?: (error: Error, attempt: number) => boolean;
|
|
21
|
+
}
|
|
22
|
+
/** Circuit breaker configuration */
|
|
23
|
+
export interface CircuitBreakerConfig {
|
|
24
|
+
/** Max consecutive failures before opening (default: 5) */
|
|
25
|
+
threshold?: number;
|
|
26
|
+
/** Time in ms before half-open retry (default: 30000) */
|
|
27
|
+
resetTimeout?: number;
|
|
28
|
+
/** Callback when circuit opens */
|
|
29
|
+
onOpen?: (failures: number) => void;
|
|
30
|
+
/** Callback when circuit closes */
|
|
31
|
+
onClose?: () => void;
|
|
32
|
+
/** Callback on half-open probe */
|
|
33
|
+
onHalfOpen?: () => void;
|
|
34
|
+
}
|
|
35
|
+
/** Circuit breaker state */
|
|
36
|
+
export type CircuitState = 'closed' | 'open' | 'half-open';
|
|
37
|
+
/** Event trigger rule */
|
|
38
|
+
export interface TriggerRule<T = unknown> {
|
|
39
|
+
/** Job name that triggers this rule */
|
|
40
|
+
on: string;
|
|
41
|
+
/** Event type (default: completed) */
|
|
42
|
+
event?: 'completed' | 'failed';
|
|
43
|
+
/** Job name to create */
|
|
44
|
+
create: string;
|
|
45
|
+
/** Data builder from the triggering job */
|
|
46
|
+
data: (result: unknown, job: Job<T>) => T;
|
|
47
|
+
/** Optional job options */
|
|
48
|
+
opts?: JobOptions;
|
|
49
|
+
/** Optional condition */
|
|
50
|
+
condition?: (result: unknown, job: Job<T>) => boolean;
|
|
51
|
+
}
|
|
52
|
+
/** Priority aging configuration */
|
|
53
|
+
export interface PriorityAgingConfig {
|
|
54
|
+
/** Check interval in ms (default: 60000) */
|
|
55
|
+
interval?: number;
|
|
56
|
+
/** Min age in ms before boost (default: 60000) */
|
|
57
|
+
minAge?: number;
|
|
58
|
+
/** Priority boost per interval (default: 1) */
|
|
59
|
+
boost?: number;
|
|
60
|
+
/** Max priority cap (default: 100) */
|
|
61
|
+
maxPriority?: number;
|
|
62
|
+
/** Max jobs to scan per tick (default: 100) */
|
|
63
|
+
maxScan?: number;
|
|
64
|
+
}
|
|
65
|
+
/** Batch processor function */
|
|
66
|
+
export type BatchProcessor<T = unknown, R = unknown> = (jobs: Array<Job<T>>) => Promise<R[]>;
|
|
67
|
+
/** Batch processing configuration */
|
|
68
|
+
export interface BatchConfig<T = unknown, R = unknown> {
|
|
69
|
+
/** Batch size (default: 10) */
|
|
70
|
+
size: number;
|
|
71
|
+
/** Max wait in ms before flushing partial batch (default: 5000) */
|
|
72
|
+
timeout?: number;
|
|
73
|
+
/** Batch processor function */
|
|
74
|
+
processor: BatchProcessor<T, R>;
|
|
75
|
+
}
|
|
76
|
+
/** Job TTL configuration */
|
|
77
|
+
export interface JobTtlConfig {
|
|
78
|
+
/** Default TTL in ms (0 = no TTL) */
|
|
79
|
+
defaultTtl?: number;
|
|
80
|
+
/** Per-job-name TTL overrides */
|
|
81
|
+
perName?: Record<string, number>;
|
|
82
|
+
}
|
|
83
|
+
/** Deduplication configuration for Simple Mode */
|
|
84
|
+
export interface BunqueueDeduplicationConfig {
|
|
85
|
+
/** Default deduplication TTL in ms (default: 3600000 = 1 hour) */
|
|
86
|
+
ttl?: number;
|
|
87
|
+
/** Extend TTL when duplicate arrives (default: false) */
|
|
88
|
+
extend?: boolean;
|
|
89
|
+
/** Replace data when duplicate arrives in delayed state (default: false) */
|
|
90
|
+
replace?: boolean;
|
|
91
|
+
}
|
|
92
|
+
/** Debounce configuration for Simple Mode */
|
|
93
|
+
export interface BunqueueDebounceConfig {
|
|
94
|
+
/** Default debounce TTL in ms */
|
|
95
|
+
ttl: number;
|
|
96
|
+
}
|
|
97
|
+
/** DLQ configuration for Simple Mode */
|
|
98
|
+
export interface BunqueueDlqConfig {
|
|
99
|
+
/** Enable auto-retry from DLQ (default: false) */
|
|
100
|
+
autoRetry?: boolean;
|
|
101
|
+
/** Auto-retry interval in ms (default: 3600000 = 1 hour) */
|
|
102
|
+
autoRetryInterval?: number;
|
|
103
|
+
/** Max auto-retries (default: 3) */
|
|
104
|
+
maxAutoRetries?: number;
|
|
105
|
+
/** Max age before auto-purge in ms (default: 604800000 = 7 days) */
|
|
106
|
+
maxAge?: number | null;
|
|
107
|
+
/** Max entries per queue (default: 10000) */
|
|
108
|
+
maxEntries?: number;
|
|
109
|
+
}
|
|
110
|
+
/** Bunqueue options */
|
|
111
|
+
export interface BunqueueOptions<T = unknown, R = unknown> {
|
|
112
|
+
processor?: Processor<T, R>;
|
|
113
|
+
routes?: Record<string, Processor<T, R>>;
|
|
114
|
+
batch?: BatchConfig<T, R>;
|
|
115
|
+
concurrency?: number;
|
|
116
|
+
connection?: ConnectionOptions;
|
|
117
|
+
embedded?: boolean;
|
|
118
|
+
dataPath?: string;
|
|
119
|
+
defaultJobOptions?: JobOptions;
|
|
120
|
+
autorun?: boolean;
|
|
121
|
+
heartbeatInterval?: number;
|
|
122
|
+
batchSize?: number;
|
|
123
|
+
pollTimeout?: number;
|
|
124
|
+
autoBatch?: QueueOptions['autoBatch'];
|
|
125
|
+
limiter?: WorkerOptions['limiter'];
|
|
126
|
+
removeOnComplete?: WorkerOptions['removeOnComplete'];
|
|
127
|
+
removeOnFail?: WorkerOptions['removeOnFail'];
|
|
128
|
+
retry?: RetryConfig;
|
|
129
|
+
circuitBreaker?: CircuitBreakerConfig;
|
|
130
|
+
ttl?: JobTtlConfig;
|
|
131
|
+
priorityAging?: PriorityAgingConfig;
|
|
132
|
+
/** Job deduplication defaults — applied via defaultJobOptions */
|
|
133
|
+
deduplication?: BunqueueDeduplicationConfig;
|
|
134
|
+
/** Job debouncing defaults — applied via defaultJobOptions */
|
|
135
|
+
debounce?: BunqueueDebounceConfig;
|
|
136
|
+
/** Rate limiting for the worker */
|
|
137
|
+
rateLimit?: RateLimiterOptions;
|
|
138
|
+
/** Dead letter queue auto-management */
|
|
139
|
+
dlq?: BunqueueDlqConfig;
|
|
140
|
+
/**
|
|
141
|
+
* Namespace prefix prepended to the queue name on the server. Lets multiple
|
|
142
|
+
* environments (e.g. `dev:`, `prod:`) share the same broker without their
|
|
143
|
+
* jobs, workers, cron schedulers, stats, or DLQ overlapping. Forwarded to
|
|
144
|
+
* both the internal Queue and Worker. See `QueueOptions.prefixKey`.
|
|
145
|
+
*/
|
|
146
|
+
prefixKey?: string;
|
|
147
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { SchedulerInfo } from "./queue/scheduler.js";
|
|
2
|
+
import type { DlqConfig, DlqEntry, DlqFilter, DlqStats, Job, JobOptions } from "./types.js";
|
|
3
|
+
import { BunqueueRuntime } from "./bunqueue/runtime.js";
|
|
4
|
+
import type { CircuitState, TriggerRule } from "./bunqueue/types.js";
|
|
5
|
+
export type { BatchConfig, BatchProcessor, BunqueueDebounceConfig, BunqueueDeduplicationConfig, BunqueueDlqConfig, BunqueueMiddleware, BunqueueOptions, CircuitBreakerConfig, JobTtlConfig, PriorityAgingConfig, RetryConfig, RetryStrategy, TriggerRule, } from "./bunqueue/types.js";
|
|
6
|
+
/** Simplified all-in-one Queue and Worker façade. */
|
|
7
|
+
export declare class Bunqueue<T = unknown, R = unknown> extends BunqueueRuntime<T, R> {
|
|
8
|
+
add(name: string, data: T, options?: JobOptions): Promise<Job<T>>;
|
|
9
|
+
addBulk(jobs: Array<{
|
|
10
|
+
name: string;
|
|
11
|
+
data: T;
|
|
12
|
+
opts?: JobOptions;
|
|
13
|
+
}>): Promise<Job<T>[]>;
|
|
14
|
+
getJob(id: string): Promise<Job<T> | null>;
|
|
15
|
+
getJobCounts(): import("./queue/operations/counts.js").JobCounts | Promise<import("./queue/operations/counts.js").JobCounts>;
|
|
16
|
+
getJobCountsAsync(): Promise<import("./queue/operations/counts.js").JobCounts>;
|
|
17
|
+
count(): number;
|
|
18
|
+
countAsync(): Promise<number>;
|
|
19
|
+
cron(id: string, pattern: string, data?: T, options?: {
|
|
20
|
+
timezone?: string;
|
|
21
|
+
limit?: number;
|
|
22
|
+
jobOpts?: JobOptions;
|
|
23
|
+
}): Promise<SchedulerInfo | null>;
|
|
24
|
+
every(id: string, intervalMs: number, data?: T, options?: {
|
|
25
|
+
limit?: number;
|
|
26
|
+
jobOpts?: JobOptions;
|
|
27
|
+
}): Promise<SchedulerInfo | null>;
|
|
28
|
+
removeCron(id: string): Promise<boolean>;
|
|
29
|
+
listCrons(): Promise<SchedulerInfo[]>;
|
|
30
|
+
cancel(jobId: string, gracePeriodMs?: number): void;
|
|
31
|
+
isCancelled(jobId: string): boolean;
|
|
32
|
+
getSignal(jobId: string): AbortSignal | null;
|
|
33
|
+
getCircuitState(): CircuitState;
|
|
34
|
+
resetCircuit(): void;
|
|
35
|
+
trigger(rule: TriggerRule<T>): this;
|
|
36
|
+
setDefaultTtl(ttlMs: number): void;
|
|
37
|
+
setNameTtl(name: string, ttlMs: number): void;
|
|
38
|
+
setDlqConfig(config: Partial<DlqConfig>): void;
|
|
39
|
+
setDlqConfigAsync(config: Partial<DlqConfig>): Promise<void>;
|
|
40
|
+
getDlqConfig(): DlqConfig;
|
|
41
|
+
getDlqConfigAsync(): Promise<DlqConfig>;
|
|
42
|
+
getDlq(filter?: DlqFilter): DlqEntry<T>[];
|
|
43
|
+
getDlqAsync(filter?: DlqFilter): Promise<DlqEntry<T>[]>;
|
|
44
|
+
getDlqStats(): DlqStats;
|
|
45
|
+
getDlqStatsAsync(): Promise<DlqStats>;
|
|
46
|
+
retryDlq(id?: string): number;
|
|
47
|
+
retryDlqAsync(id?: string): Promise<number>;
|
|
48
|
+
purgeDlq(): number;
|
|
49
|
+
purgeDlqAsync(): Promise<number>;
|
|
50
|
+
setGlobalRateLimit(max: number, duration?: number): void;
|
|
51
|
+
setGlobalRateLimitAsync(max: number, duration?: number): Promise<void>;
|
|
52
|
+
removeGlobalRateLimit(): void;
|
|
53
|
+
removeGlobalRateLimitAsync(): Promise<void>;
|
|
54
|
+
on(event: 'ready' | 'drained' | 'closed', listener: () => void): this;
|
|
55
|
+
on(event: 'active', listener: (job: Job<T>) => void): this;
|
|
56
|
+
on(event: 'completed', listener: (job: Job<T>, result: R) => void): this;
|
|
57
|
+
on(event: 'failed', listener: (job: Job<T>, error: Error) => void): this;
|
|
58
|
+
on(event: 'progress', listener: (job: Job<T> | null, progress: number) => void): this;
|
|
59
|
+
on(event: 'stalled', listener: (jobId: string, reason: string) => void): this;
|
|
60
|
+
on(event: 'error', listener: (error: Error) => void): this;
|
|
61
|
+
once(event: 'ready' | 'drained' | 'closed', listener: () => void): this;
|
|
62
|
+
once(event: 'completed', listener: (job: Job<T>, result: R) => void): this;
|
|
63
|
+
once(event: 'failed', listener: (job: Job<T>, error: Error) => void): this;
|
|
64
|
+
off(event: any, listener: (...args: any[]) => void): this;
|
|
65
|
+
pause(): void;
|
|
66
|
+
resume(): void;
|
|
67
|
+
pauseAsync(): Promise<void>;
|
|
68
|
+
resumeAsync(): Promise<void>;
|
|
69
|
+
close(force?: boolean): Promise<void>;
|
|
70
|
+
isRunning(): boolean;
|
|
71
|
+
isPaused(): boolean;
|
|
72
|
+
isClosed(): boolean;
|
|
73
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DlqEntry as InternalDlqEntry } from "../domain/types/dlq.js";
|
|
2
|
+
import type { DlqEntry, Job } from "./types.js";
|
|
3
|
+
import type { CreatePublicJobOptions, PublicJobMethodContext } from "./jobConversionTypes.js";
|
|
4
|
+
/** Convert authoritative DLQ metadata while retaining live public Job methods. */
|
|
5
|
+
export declare function convertDlqEntry<T>(entry: InternalDlqEntry, methods: PublicJobMethodContext, buildJob: (options: CreatePublicJobOptions) => Job<T>): DlqEntry<T>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BullMQ-compatible error classes
|
|
3
|
+
*
|
|
4
|
+
* UnrecoverableError - Skip all retries, go directly to failed/DLQ
|
|
5
|
+
* DelayedError - Move job back to delayed state instead of failing
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Throw this error in a processor to skip all retries.
|
|
9
|
+
* The job will go directly to failed/DLQ regardless of the attempts setting.
|
|
10
|
+
*/
|
|
11
|
+
export declare class UnrecoverableError extends Error {
|
|
12
|
+
constructor(message?: string);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Throw this error in a processor to move the job back to delayed state.
|
|
16
|
+
* The job will not count as failed — it will be re-delayed for later processing.
|
|
17
|
+
*/
|
|
18
|
+
export declare class DelayedError extends Error {
|
|
19
|
+
constructor(message?: string);
|
|
20
|
+
}
|
|
21
|
+
/** Marker thrown after a processor manually rate-limits and requeues its group. */
|
|
22
|
+
export declare class RateLimitError extends Error {
|
|
23
|
+
constructor(message?: string);
|
|
24
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QueueEvents - BullMQ-style event listener
|
|
3
|
+
*/
|
|
4
|
+
import { EventEmitter } from 'events';
|
|
5
|
+
import { type JobEvent } from "../domain/types/queue.js";
|
|
6
|
+
import type { ActiveEvent, CompletedEvent, DelayedEvent, DrainedEvent, DuplicatedEvent, FailedEvent, ProgressEvent, QueueEventsOptions, RemovedEvent, RetriedEvent, StalledEvent, WaitingChildrenEvent, WaitingEvent } from "./types/events.js";
|
|
7
|
+
export type { ActiveEvent, CompletedEvent, DelayedEvent, DrainedEvent, DuplicatedEvent, FailedEvent, ProgressEvent, QueueEventsOptions, RemovedEvent, RetriedEvent, StalledEvent, WaitingChildrenEvent, WaitingEvent, } from "./types/events.js";
|
|
8
|
+
/**
|
|
9
|
+
* QueueEvents class for listening to queue events
|
|
10
|
+
* Provides a way to listen to events without processing jobs
|
|
11
|
+
*
|
|
12
|
+
* BullMQ v5 compatible events:
|
|
13
|
+
* - waiting: job added to queue
|
|
14
|
+
* - active: job started processing
|
|
15
|
+
* - completed: job completed successfully
|
|
16
|
+
* - failed: job failed
|
|
17
|
+
* - progress: job progress updated
|
|
18
|
+
* - stalled: job stalled (no heartbeat)
|
|
19
|
+
* - removed: job removed from queue
|
|
20
|
+
* - delayed: job moved to delayed state
|
|
21
|
+
* - duplicated: duplicate job detected
|
|
22
|
+
* - retried: job retried
|
|
23
|
+
* - waiting-children: job waiting for children to complete
|
|
24
|
+
* - drained: queue has no more waiting jobs
|
|
25
|
+
* - error: error occurred
|
|
26
|
+
*
|
|
27
|
+
* @template R - Type of the job result (for 'completed' event)
|
|
28
|
+
* @template P - Type of the progress data (for 'progress' event)
|
|
29
|
+
*/
|
|
30
|
+
export declare class QueueEvents<R = unknown, P = unknown> extends EventEmitter {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
private running;
|
|
33
|
+
private unsubscribe;
|
|
34
|
+
private subscription;
|
|
35
|
+
private ready;
|
|
36
|
+
private readonly queueKey;
|
|
37
|
+
private readonly options;
|
|
38
|
+
constructor(name: string, options?: QueueEventsOptions);
|
|
39
|
+
on(event: 'waiting', listener: (data: WaitingEvent) => void): this;
|
|
40
|
+
on(event: 'active', listener: (data: ActiveEvent) => void): this;
|
|
41
|
+
on(event: 'completed', listener: (data: CompletedEvent<R>) => void): this;
|
|
42
|
+
on(event: 'failed', listener: (data: FailedEvent) => void): this;
|
|
43
|
+
on(event: 'progress', listener: (data: ProgressEvent<P>) => void): this;
|
|
44
|
+
on(event: 'stalled', listener: (data: StalledEvent) => void): this;
|
|
45
|
+
on(event: 'removed', listener: (data: RemovedEvent) => void): this;
|
|
46
|
+
on(event: 'delayed', listener: (data: DelayedEvent) => void): this;
|
|
47
|
+
on(event: 'duplicated', listener: (data: DuplicatedEvent) => void): this;
|
|
48
|
+
on(event: 'retried', listener: (data: RetriedEvent) => void): this;
|
|
49
|
+
on(event: 'waiting-children', listener: (data: WaitingChildrenEvent) => void): this;
|
|
50
|
+
on(event: 'drained', listener: (data: DrainedEvent) => void): this;
|
|
51
|
+
on(event: 'paused' | 'resumed', listener: (data: Record<string, never>) => void): this;
|
|
52
|
+
on(event: 'error', listener: (error: Error, event?: JobEvent) => void): this;
|
|
53
|
+
once(event: 'waiting', listener: (data: WaitingEvent) => void): this;
|
|
54
|
+
once(event: 'active', listener: (data: ActiveEvent) => void): this;
|
|
55
|
+
once(event: 'completed', listener: (data: CompletedEvent<R>) => void): this;
|
|
56
|
+
once(event: 'failed', listener: (data: FailedEvent) => void): this;
|
|
57
|
+
once(event: 'progress', listener: (data: ProgressEvent<P>) => void): this;
|
|
58
|
+
once(event: 'stalled', listener: (data: StalledEvent) => void): this;
|
|
59
|
+
once(event: 'removed', listener: (data: RemovedEvent) => void): this;
|
|
60
|
+
once(event: 'delayed', listener: (data: DelayedEvent) => void): this;
|
|
61
|
+
once(event: 'duplicated', listener: (data: DuplicatedEvent) => void): this;
|
|
62
|
+
once(event: 'retried', listener: (data: RetriedEvent) => void): this;
|
|
63
|
+
once(event: 'waiting-children', listener: (data: WaitingChildrenEvent) => void): this;
|
|
64
|
+
once(event: 'drained', listener: (data: DrainedEvent) => void): this;
|
|
65
|
+
once(event: 'paused' | 'resumed', listener: (data: Record<string, never>) => void): this;
|
|
66
|
+
once(event: 'error', listener: (error: Error, event?: JobEvent) => void): this;
|
|
67
|
+
private dispatchEvent;
|
|
68
|
+
private start;
|
|
69
|
+
private emitTransportError;
|
|
70
|
+
/** Emit an error event (can be called externally) */
|
|
71
|
+
emitError(error: Error): void;
|
|
72
|
+
/**
|
|
73
|
+
* Wait until the QueueEvents is ready to receive events.
|
|
74
|
+
* In embedded mode, this resolves immediately.
|
|
75
|
+
* BullMQ v5 compatible.
|
|
76
|
+
*/
|
|
77
|
+
waitUntilReady(): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Disconnect from the event stream.
|
|
80
|
+
* Alias for close() for BullMQ v5 compatibility.
|
|
81
|
+
*/
|
|
82
|
+
disconnect(): Promise<void>;
|
|
83
|
+
/** Close the event listener and remove all listeners */
|
|
84
|
+
close(): void;
|
|
85
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FlowProducer - Job chaining and pipelines
|
|
3
|
+
* BullMQ v5 compatible
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
import type { FlowProducerOptions, FlowStep, FlowResult, FlowJob, JobNode, GetFlowOpts, FlowOpts } from "./flowTypes.js";
|
|
7
|
+
import { type RuntimeResult } from "./flowResults.js";
|
|
8
|
+
export type { FlowProducerOptions, FlowStep, FlowResult, FlowJob, JobNode, GetFlowOpts, FlowOpts, } from "./flowTypes.js";
|
|
9
|
+
/**
|
|
10
|
+
* FlowProducer creates job flows with automatic dependencies.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const flow = new FlowProducer();
|
|
15
|
+
*
|
|
16
|
+
* // Simple chain: A → B → C
|
|
17
|
+
* const { jobIds } = await flow.addChain([
|
|
18
|
+
* { name: 'fetch', queueName: 'pipeline', data: { url: '...' } },
|
|
19
|
+
* { name: 'process', queueName: 'pipeline', data: {} },
|
|
20
|
+
* { name: 'store', queueName: 'pipeline', data: {} },
|
|
21
|
+
* ]);
|
|
22
|
+
*
|
|
23
|
+
* // Parallel then merge
|
|
24
|
+
* const result = await flow.addBulkThen(
|
|
25
|
+
* [
|
|
26
|
+
* { name: 'task1', queueName: 'parallel', data: { id: 1 } },
|
|
27
|
+
* { name: 'task2', queueName: 'parallel', data: { id: 2 } },
|
|
28
|
+
* ],
|
|
29
|
+
* { name: 'merge', queueName: 'final', data: {} }
|
|
30
|
+
* );
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class FlowProducer extends EventEmitter {
|
|
34
|
+
closing: Promise<void> | null;
|
|
35
|
+
private readonly embedded;
|
|
36
|
+
private readonly tcp;
|
|
37
|
+
private readonly useSharedPool;
|
|
38
|
+
constructor(opts?: FlowProducerOptions);
|
|
39
|
+
/** Get push context for helper functions */
|
|
40
|
+
private get pushCtx();
|
|
41
|
+
/** Close the connection pool (only if using dedicated pool) */
|
|
42
|
+
close(): Promise<void>;
|
|
43
|
+
/** Disconnect from the server (BullMQ v5 compatible). Alias for close(). */
|
|
44
|
+
disconnect(): Promise<void>;
|
|
45
|
+
/** Wait until the FlowProducer is ready (BullMQ v5 compatible). */
|
|
46
|
+
waitUntilReady(): Promise<void>;
|
|
47
|
+
/** Add a flow (BullMQ v5 compatible). Children are processed BEFORE their parent. */
|
|
48
|
+
add<T = unknown>(flow: FlowJob<T>, opts?: FlowOpts): Promise<JobNode<T>>;
|
|
49
|
+
/** Add multiple flows (BullMQ v5 compatible). */
|
|
50
|
+
addBulk<T = unknown>(flows: FlowJob<T>[]): Promise<JobNode<T>[]>;
|
|
51
|
+
/** Get a flow tree starting from a job (BullMQ v5 compatible). */
|
|
52
|
+
getFlow<T = unknown>(opts: GetFlowOpts): Promise<JobNode<T> | null>;
|
|
53
|
+
/** Add a chain of jobs. Jobs execute sequentially: step[0] → step[1] → ... */
|
|
54
|
+
addChain<T = unknown>(steps: FlowStep<T>[]): Promise<FlowResult>;
|
|
55
|
+
/** Add parallel jobs that converge to a final job. */
|
|
56
|
+
addBulkThen<T = unknown>(parallel: FlowStep<T>[], final: FlowStep<T>): Promise<{
|
|
57
|
+
parallelIds: string[];
|
|
58
|
+
finalId: string;
|
|
59
|
+
}>;
|
|
60
|
+
/** Add a tree of jobs where children depend on parent. */
|
|
61
|
+
addTree<T = unknown>(root: FlowStep<T>): Promise<FlowResult>;
|
|
62
|
+
/** Get the result of a completed parent job in embedded or TCP mode. */
|
|
63
|
+
getParentResult<R = unknown>(parentId: string): RuntimeResult<R | undefined>;
|
|
64
|
+
/** Get results from multiple parent jobs in input order in either runtime. */
|
|
65
|
+
getParentResults<R = unknown>(parentIds: string[]): RuntimeResult<Map<string, R>>;
|
|
66
|
+
/** Build callbacks that wire flow job methods to actual management operations */
|
|
67
|
+
private buildCallbacks;
|
|
68
|
+
private buildPlannedNode;
|
|
69
|
+
private indexSnapshots;
|
|
70
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Job as DomainJob } from "../domain/types/job.js";
|
|
2
|
+
import type { AtomicFlowBatchInput } from "../domain/types/flow.js";
|
|
3
|
+
import type { TcpConnectionPool } from "./tcpPool.js";
|
|
4
|
+
export interface AtomicFlowContext {
|
|
5
|
+
readonly embedded: boolean;
|
|
6
|
+
readonly tcp: TcpConnectionPool | null;
|
|
7
|
+
}
|
|
8
|
+
/** Execute the same one-command atomic primitive in embedded and TCP modes. */
|
|
9
|
+
export declare function commitFlow(ctx: AtomicFlowContext, batch: AtomicFlowBatchInput): Promise<DomainJob[]>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ChangePriorityOpts } from "./types.js";
|
|
2
|
+
import { type FlowJobRuntime } from "./flowJobTypes.js";
|
|
3
|
+
/** Core state, mutation, and dependency methods exposed by a FlowProducer Job. */
|
|
4
|
+
export declare function buildFlowJobCoreMethods(runtime: FlowJobRuntime): {
|
|
5
|
+
updateProgress: (progress: number | object) => Promise<void>;
|
|
6
|
+
log: (message: string) => Promise<void>;
|
|
7
|
+
getState: () => Promise<import("./types.js").JobStateType>;
|
|
8
|
+
remove: () => Promise<void>;
|
|
9
|
+
retry: () => Promise<void>;
|
|
10
|
+
getChildrenValues: <R = unknown>() => Promise<Record<string, R>>;
|
|
11
|
+
isWaiting: () => Promise<boolean>;
|
|
12
|
+
isActive: () => Promise<boolean>;
|
|
13
|
+
isDelayed: () => Promise<boolean>;
|
|
14
|
+
isCompleted: () => Promise<boolean>;
|
|
15
|
+
isFailed: () => Promise<boolean>;
|
|
16
|
+
isWaitingChildren: () => Promise<boolean>;
|
|
17
|
+
updateData: (data: unknown) => Promise<void>;
|
|
18
|
+
promote: () => Promise<void>;
|
|
19
|
+
changeDelay: (delay: number) => Promise<void>;
|
|
20
|
+
changePriority: (opts: ChangePriorityOpts) => Promise<void>;
|
|
21
|
+
extendLock: (token: string, duration: number) => Promise<number>;
|
|
22
|
+
clearLogs: (keepLogs?: number) => Promise<void>;
|
|
23
|
+
getDependencies: () => Promise<import("./flowJobDependencies.js").FlowDependencies>;
|
|
24
|
+
getDependenciesCount: () => Promise<{
|
|
25
|
+
processed: number;
|
|
26
|
+
unprocessed: number;
|
|
27
|
+
}>;
|
|
28
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TcpConnectionPool } from "./tcpPool.js";
|
|
2
|
+
export interface FlowDependencies {
|
|
3
|
+
processed: Record<string, unknown>;
|
|
4
|
+
unprocessed: string[];
|
|
5
|
+
}
|
|
6
|
+
/** Resolve dependency keys using the actual queue of every child. */
|
|
7
|
+
export declare function getFlowDependencies(id: string, queueName: string, embedded: boolean, tcp: TcpConnectionPool | null): Promise<FlowDependencies>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow Job Factory
|
|
3
|
+
* Creates BullMQ-compatible Job objects backed by FlowProducer transports.
|
|
4
|
+
*/
|
|
5
|
+
import type { Job as DomainJob } from "../domain/types/job.js";
|
|
6
|
+
import type { FlowJobCallbacks } from "./flowJobTypes.js";
|
|
7
|
+
import type { Job } from "./types.js";
|
|
8
|
+
export type { FlowJobCallbacks } from "./flowJobTypes.js";
|
|
9
|
+
/** Decode historical flow envelopes for callers that only have the data field. */
|
|
10
|
+
export declare function extractUserDataFromInternal(data: Record<string, unknown>): unknown;
|
|
11
|
+
/** Resolve a stored flow node while preserving a modern user `data.name` field. */
|
|
12
|
+
export declare function extractFlowJobPayload(job: {
|
|
13
|
+
readonly name?: unknown;
|
|
14
|
+
readonly data?: unknown;
|
|
15
|
+
}): {
|
|
16
|
+
name: string;
|
|
17
|
+
data: unknown;
|
|
18
|
+
};
|
|
19
|
+
interface FlowJobObjectOptions {
|
|
20
|
+
callbacks?: FlowJobCallbacks;
|
|
21
|
+
snapshot?: DomainJob;
|
|
22
|
+
}
|
|
23
|
+
/** Create a Job object for a newly committed or fetched flow node. */
|
|
24
|
+
export declare function createFlowJobObject<T>(id: string, name: string, data: T, queueName: string, factoryOptions?: FlowJobObjectOptions): Job<T>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type FlowJobRuntime } from "./flowJobTypes.js";
|
|
2
|
+
/** Lifecycle and failure-inspection methods exposed by a FlowProducer Job. */
|
|
3
|
+
export declare function buildFlowJobMoveMethods(runtime: FlowJobRuntime): {
|
|
4
|
+
moveToCompleted: (returnValue: unknown, token?: string) => Promise<null>;
|
|
5
|
+
moveToFailed: (error: Error, token?: string) => Promise<void>;
|
|
6
|
+
moveToWait: (token?: string) => Promise<boolean>;
|
|
7
|
+
moveToDelayed: (timestamp: number, token?: string) => Promise<undefined>;
|
|
8
|
+
moveToWaitingChildren: (token?: string) => Promise<boolean>;
|
|
9
|
+
waitUntilFinished: (_queueEvents: unknown, ttl?: number) => Promise<unknown>;
|
|
10
|
+
discard: () => void;
|
|
11
|
+
getFailedChildrenValues: () => Promise<Record<string, string>>;
|
|
12
|
+
getIgnoredChildrenFailures: () => Promise<Record<string, string>>;
|
|
13
|
+
removeChildDependency: () => Promise<boolean>;
|
|
14
|
+
removeDeduplicationKey: () => Promise<boolean>;
|
|
15
|
+
removeUnprocessedChildren: () => Promise<undefined>;
|
|
16
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { JobStateType } from "./types.js";
|
|
2
|
+
import type { TcpConnectionPool } from "./tcpPool.js";
|
|
3
|
+
/** Callbacks used to wire FlowProducer Job mutations to the selected transport. */
|
|
4
|
+
export interface FlowJobCallbacks {
|
|
5
|
+
embedded?: boolean;
|
|
6
|
+
tcp?: TcpConnectionPool | null;
|
|
7
|
+
updateData?: (id: string, data: unknown) => Promise<void>;
|
|
8
|
+
updateProgress?: (id: string, progress: number | object) => Promise<void>;
|
|
9
|
+
log?: (id: string, message: string) => Promise<void>;
|
|
10
|
+
promote?: (id: string) => Promise<void>;
|
|
11
|
+
remove?: (id: string) => Promise<void>;
|
|
12
|
+
changePriority?: (id: string, opts: {
|
|
13
|
+
priority: number;
|
|
14
|
+
lifo?: boolean;
|
|
15
|
+
}) => Promise<void>;
|
|
16
|
+
changeDelay?: (id: string, delay: number) => Promise<void>;
|
|
17
|
+
clearLogs?: (id: string, keepLogs?: number) => Promise<void>;
|
|
18
|
+
retry?: (id: string) => Promise<void>;
|
|
19
|
+
getState?: (id: string) => Promise<string>;
|
|
20
|
+
}
|
|
21
|
+
export interface FlowJobRuntime {
|
|
22
|
+
id: string;
|
|
23
|
+
queueName: string;
|
|
24
|
+
callbacks?: FlowJobCallbacks;
|
|
25
|
+
embedded: boolean;
|
|
26
|
+
tcp: TcpConnectionPool | null;
|
|
27
|
+
getState: () => Promise<JobStateType>;
|
|
28
|
+
}
|
|
29
|
+
export declare function assertFlowTcpOk(response: Record<string, unknown>, operation: string): void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type JobId } from "../domain/types/job.js";
|
|
2
|
+
import type { AtomicFlowBatchInput } from "../domain/types/flow.js";
|
|
3
|
+
import type { FlowStep } from "./flowTypes.js";
|
|
4
|
+
export declare function planChain<T>(steps: FlowStep<T>[]): {
|
|
5
|
+
batch: AtomicFlowBatchInput;
|
|
6
|
+
ids: JobId[];
|
|
7
|
+
};
|
|
8
|
+
export declare function planBulkThen<T>(parallel: FlowStep<T>[], final: FlowStep<T>): {
|
|
9
|
+
batch: AtomicFlowBatchInput;
|
|
10
|
+
parallelIds: JobId[];
|
|
11
|
+
finalId: JobId;
|
|
12
|
+
};
|
|
13
|
+
export declare function planTree<T>(root: FlowStep<T>): {
|
|
14
|
+
batch: AtomicFlowBatchInput;
|
|
15
|
+
ids: JobId[];
|
|
16
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { JobInput, JobId } from "../domain/types/job.js";
|
|
2
|
+
import type { JobOptions } from "./types.js";
|
|
3
|
+
/** Options intentionally unsupported by BullMQ-compatible atomic flows. */
|
|
4
|
+
export declare function assertAtomicFlowOptions(opts: JobOptions): void;
|
|
5
|
+
/** Convert public JobOptions into the domain input used by the atomic broker command. */
|
|
6
|
+
export declare function flowJobInput(name: string, data: unknown, opts: JobOptions, links?: {
|
|
7
|
+
parentId?: JobId;
|
|
8
|
+
dependsOn?: JobId[];
|
|
9
|
+
childrenIds?: JobId[];
|
|
10
|
+
}): JobInput;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type JobId } from "../domain/types/job.js";
|
|
2
|
+
import type { AtomicFlowBatchInput } from "../domain/types/flow.js";
|
|
3
|
+
import type { FlowJob, FlowOpts } from "./flowTypes.js";
|
|
4
|
+
export interface PlannedFlowNode<T> {
|
|
5
|
+
readonly id: JobId;
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly queueName: string;
|
|
8
|
+
readonly data: T | undefined;
|
|
9
|
+
readonly children?: PlannedFlowNode<T>[];
|
|
10
|
+
}
|
|
11
|
+
export interface FlowPlan<T> {
|
|
12
|
+
readonly batch: AtomicFlowBatchInput;
|
|
13
|
+
readonly roots: PlannedFlowNode<T>[];
|
|
14
|
+
}
|
|
15
|
+
/** Compile one or more trees into a fully-resolved graph before contacting the broker. */
|
|
16
|
+
export declare function planFlows<T>(flows: FlowJob<T>[], options?: FlowOpts): FlowPlan<T>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow Push Operations
|
|
3
|
+
* Handles job push logic for FlowProducer
|
|
4
|
+
*/
|
|
5
|
+
import type { TcpConnectionPool } from "./tcpPool.js";
|
|
6
|
+
import type { JobOptions } from "./types.js";
|
|
7
|
+
export interface PushContext {
|
|
8
|
+
embedded: boolean;
|
|
9
|
+
tcp: TcpConnectionPool | null;
|
|
10
|
+
}
|
|
11
|
+
/** Push a job via embedded manager or TCP */
|
|
12
|
+
export declare function pushJob(ctx: PushContext, queueName: string, data: unknown, opts?: JobOptions, dependsOn?: string[]): Promise<string>;
|
|
13
|
+
export interface PushWithParentOpts {
|
|
14
|
+
queueName: string;
|
|
15
|
+
name?: string;
|
|
16
|
+
data: unknown;
|
|
17
|
+
opts: JobOptions;
|
|
18
|
+
parentRef: {
|
|
19
|
+
id: string;
|
|
20
|
+
queue: string;
|
|
21
|
+
} | null;
|
|
22
|
+
childIds: string[];
|
|
23
|
+
}
|
|
24
|
+
/** Push a job with parent/children tracking */
|
|
25
|
+
export declare function pushJobWithParent(ctx: PushContext, params: PushWithParentOpts): Promise<string>;
|
|
26
|
+
/** Cleanup jobs that were created before a failure occurred */
|
|
27
|
+
export declare function cleanupJobs(ctx: PushContext, jobIds: string[]): Promise<void>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FlowJobCallbacks } from "./flowJobTypes.js";
|
|
2
|
+
import type { GetFlowOpts, JobNode } from "./flowTypes.js";
|
|
3
|
+
import type { TcpConnectionPool } from "./tcpPool.js";
|
|
4
|
+
export interface FlowReaderContext {
|
|
5
|
+
embedded: boolean;
|
|
6
|
+
tcp: TcpConnectionPool | null;
|
|
7
|
+
buildCallbacks: (queueName: string) => FlowJobCallbacks;
|
|
8
|
+
}
|
|
9
|
+
/** Read a flow without silently truncating transport or topology errors. */
|
|
10
|
+
export declare function readFlow<T>(context: FlowReaderContext, opts: GetFlowOpts): Promise<JobNode<T> | null>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TcpConnectionPool } from "./tcpPool.js";
|
|
2
|
+
interface FlowResultContext {
|
|
3
|
+
embedded: boolean;
|
|
4
|
+
tcp: TcpConnectionPool | null;
|
|
5
|
+
}
|
|
6
|
+
export type RuntimeResult<T> = T | Promise<T>;
|
|
7
|
+
/** Keep the embedded call synchronous while providing the same result over TCP. */
|
|
8
|
+
export declare function getParentResult<R>(ctx: FlowResultContext, parentId: string): RuntimeResult<R | undefined>;
|
|
9
|
+
/** Resolve parent results in input order and preserve falsy completed values. */
|
|
10
|
+
export declare function getParentResults<R>(ctx: FlowResultContext, parentIds: string[]): RuntimeResult<Map<string, R>>;
|
|
11
|
+
export {};
|