bunqueue 2.8.53 → 2.8.56
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/dist/application/background/dlq.d.ts +2 -0
- package/dist/application/background/dlq.js +26 -0
- package/dist/application/background/lifecycle.d.ts +4 -0
- package/dist/application/background/lifecycle.js +90 -0
- package/dist/application/background/recovery/active.d.ts +4 -0
- package/dist/application/background/recovery/active.js +69 -0
- package/dist/application/background/recovery/index.d.ts +2 -0
- package/dist/application/background/recovery/index.js +22 -0
- package/dist/application/background/recovery/pending.d.ts +3 -0
- package/dist/application/background/recovery/pending.js +69 -0
- package/dist/application/background/recovery/restore.d.ts +5 -0
- package/dist/application/background/recovery/restore.js +58 -0
- package/dist/application/background/recovery/shared.d.ts +6 -0
- package/dist/application/background/recovery/shared.js +15 -0
- package/dist/application/background/timeouts.d.ts +25 -0
- package/dist/application/background/timeouts.js +191 -0
- package/dist/application/backgroundTasks.d.ts +7 -31
- package/dist/application/backgroundTasks.js +6 -438
- package/dist/application/cleanupTasks.js +2 -1
- package/dist/application/clientTracking.js +3 -1
- package/dist/application/contextFactory.d.ts +13 -90
- package/dist/application/contextFactory.js +9 -0
- package/dist/application/dependencyResultTracker.d.ts +1 -0
- package/dist/application/dependencyResultTracker.js +3 -0
- package/dist/application/dlqManager.d.ts +9 -9
- package/dist/application/dlqManager.js +49 -167
- package/dist/application/dlqRetry.d.ts +12 -0
- package/dist/application/dlqRetry.js +97 -0
- package/dist/application/lockManager.js +24 -4
- package/dist/application/lockOperations.js +16 -3
- package/dist/application/operations/ack/batch.d.ts +8 -0
- package/dist/application/operations/ack/batch.js +64 -0
- package/dist/application/operations/ack/completion.d.ts +3 -0
- package/dist/application/operations/ack/completion.js +74 -0
- package/dist/application/operations/ack/failure.d.ts +3 -0
- package/dist/application/operations/ack/failure.js +160 -0
- package/dist/application/operations/ack.d.ts +5 -79
- package/dist/application/operations/ack.js +4 -319
- package/dist/application/operations/ackHelpers.d.ts +3 -52
- package/dist/application/operations/ackHelpers.js +11 -4
- package/dist/application/operations/customId.d.ts +18 -5
- package/dist/application/operations/customId.js +36 -25
- package/dist/application/operations/flowValidation.js +9 -4
- package/dist/application/operations/jobManagement.js +50 -11
- package/dist/application/operations/jobMoveOperations.js +3 -3
- package/dist/application/operations/jobStateTransitions.d.ts +1 -1
- package/dist/application/operations/jobStateTransitions.js +16 -2
- package/dist/application/operations/parentLink.d.ts +36 -0
- package/dist/application/operations/parentLink.js +153 -0
- package/dist/application/operations/parentLinkInput.d.ts +8 -0
- package/dist/application/operations/parentLinkInput.js +23 -0
- package/dist/application/operations/push.d.ts +5 -44
- package/dist/application/operations/push.js +62 -152
- package/dist/application/operations/pushAdmission.d.ts +32 -0
- package/dist/application/operations/pushAdmission.js +38 -0
- package/dist/application/operations/pushBatch.d.ts +4 -0
- package/dist/application/operations/pushBatch.js +136 -0
- package/dist/application/operations/pushContext.d.ts +39 -0
- package/dist/application/operations/pushContext.js +1 -0
- package/dist/application/operations/pushDeduplication.d.ts +42 -0
- package/dist/application/operations/pushDeduplication.js +131 -0
- package/dist/application/operations/pushInsert.d.ts +13 -1
- package/dist/application/operations/pushInsert.js +33 -17
- package/dist/application/operations/pushLocks.js +13 -9
- package/dist/application/operations/query/collect.d.ts +12 -0
- package/dist/application/operations/query/collect.js +118 -0
- package/dist/application/operations/query/jobLookup.d.ts +9 -0
- package/dist/application/operations/query/jobLookup.js +110 -0
- package/dist/application/operations/query/pagination.d.ts +8 -0
- package/dist/application/operations/query/pagination.js +90 -0
- package/dist/application/operations/query/state.d.ts +4 -0
- package/dist/application/operations/query/state.js +63 -0
- package/dist/application/operations/queryOperations.d.ts +5 -50
- package/dist/application/operations/queryOperations.js +4 -474
- package/dist/application/queue-manager/ack.d.ts +23 -0
- package/dist/application/queue-manager/ack.js +242 -0
- package/dist/application/queue-manager/configuration.d.ts +27 -0
- package/dist/application/queue-manager/configuration.js +84 -0
- package/dist/application/queue-manager/context.d.ts +5 -0
- package/dist/application/queue-manager/context.js +61 -0
- package/dist/application/queue-manager/control.d.ts +17 -0
- package/dist/application/queue-manager/control.js +133 -0
- package/dist/application/queue-manager/delivery.d.ts +32 -0
- package/dist/application/queue-manager/delivery.js +143 -0
- package/dist/application/queue-manager/dependencies.d.ts +8 -0
- package/dist/application/queue-manager/dependencies.js +127 -0
- package/dist/application/queue-manager/dependency-runtime.d.ts +8 -0
- package/dist/application/queue-manager/dependency-runtime.js +40 -0
- package/dist/application/queue-manager/flow-failures.d.ts +18 -0
- package/dist/application/queue-manager/flow-failures.js +107 -0
- package/dist/application/queue-manager/flow-options.d.ts +8 -0
- package/dist/application/queue-manager/flow-options.js +129 -0
- package/dist/application/queue-manager/job-management.d.ts +17 -0
- package/dist/application/queue-manager/job-management.js +100 -0
- package/dist/application/queue-manager/lifecycle.d.ts +4 -0
- package/dist/application/queue-manager/lifecycle.js +41 -0
- package/dist/application/queue-manager/limits.d.ts +41 -0
- package/dist/application/queue-manager/limits.js +108 -0
- package/dist/application/queue-manager/locks.d.ts +21 -0
- package/dist/application/queue-manager/locks.js +59 -0
- package/dist/application/queue-manager/observability.d.ts +16 -0
- package/dist/application/queue-manager/observability.js +44 -0
- package/dist/application/queue-manager/queries.d.ts +17 -0
- package/dist/application/queue-manager/queries.js +118 -0
- package/dist/application/queue-manager/repeat.d.ts +4 -0
- package/dist/application/queue-manager/repeat.js +26 -0
- package/dist/application/queue-manager/services.d.ts +19 -0
- package/dist/application/queue-manager/services.js +80 -0
- package/dist/application/queue-manager/state.d.ts +92 -0
- package/dist/application/queue-manager/state.js +144 -0
- package/dist/application/queue-manager/stats.d.ts +28 -0
- package/dist/application/queue-manager/stats.js +52 -0
- package/dist/application/queueManager.d.ts +4 -380
- package/dist/application/queueManager.js +3 -1880
- package/dist/application/queueTelemetryJournal.d.ts +20 -0
- package/dist/application/queueTelemetryJournal.js +133 -0
- package/dist/application/repeatJobs.d.ts +7 -0
- package/dist/application/repeatJobs.js +132 -0
- package/dist/application/stallDetection.js +9 -4
- package/dist/application/types/ack.d.ts +132 -0
- package/dist/application/types/ack.js +1 -0
- package/dist/application/types/background.d.ts +18 -0
- package/dist/application/types/background.js +1 -0
- package/dist/application/types/config.d.ts +37 -0
- package/dist/application/types/config.js +15 -0
- package/dist/application/types/contextFactory.d.ts +83 -0
- package/dist/application/types/contextFactory.js +1 -0
- package/dist/application/types/contexts.d.ts +110 -0
- package/dist/application/types/contexts.js +1 -0
- package/dist/application/types/index.d.ts +7 -0
- package/dist/application/types/index.js +1 -0
- package/dist/application/types/query.d.ts +23 -0
- package/dist/application/types/query.js +1 -0
- package/dist/application/types/queueManager.d.ts +94 -0
- package/dist/application/types/queueManager.js +1 -0
- package/dist/cli/commandRouter.d.ts +1 -1
- package/dist/cli/commands/core.js +1 -0
- package/dist/cli/output/collections.d.ts +8 -0
- package/dist/cli/output/collections.js +131 -0
- package/dist/cli/output/jobs.d.ts +2 -0
- package/dist/cli/output/jobs.js +61 -0
- package/dist/cli/output/style.d.ts +14 -0
- package/dist/cli/output/style.js +28 -0
- package/dist/cli/output/success.d.ts +1 -0
- package/dist/cli/output/success.js +108 -0
- package/dist/cli/output.d.ts +1 -6
- package/dist/cli/output.js +7 -395
- package/dist/client/bunqueue/dlqRateLimit.d.ts +8 -0
- package/dist/client/bunqueue/dlqRateLimit.js +24 -0
- package/dist/client/bunqueue/runtime.d.ts +35 -0
- package/dist/client/bunqueue/runtime.js +138 -0
- package/dist/client/bunqueue.d.ts +19 -34
- package/dist/client/bunqueue.js +45 -166
- package/dist/client/dlqConversion.d.ts +5 -0
- package/dist/client/dlqConversion.js +28 -0
- package/dist/client/events.d.ts +7 -56
- package/dist/client/events.js +38 -15
- package/dist/client/flow.d.ts +6 -12
- package/dist/client/flow.js +16 -34
- package/dist/client/flowJobDependencies.js +3 -1
- package/dist/client/flowJobFactory.d.ts +9 -1
- package/dist/client/flowJobFactory.js +25 -9
- package/dist/client/flowJobMoveMethods.d.ts +5 -5
- package/dist/client/flowJobMoveMethods.js +37 -17
- package/dist/client/flowLegacyPlan.js +22 -8
- package/dist/client/flowOptions.d.ts +1 -1
- package/dist/client/flowOptions.js +2 -1
- package/dist/client/flowPlan.js +2 -3
- package/dist/client/flowPush.d.ts +1 -0
- package/dist/client/flowPush.js +5 -1
- package/dist/client/flowReader.js +5 -5
- package/dist/client/flowResults.d.ts +11 -0
- package/dist/client/flowResults.js +42 -0
- package/dist/client/index.d.ts +3 -1
- package/dist/client/jobConversion.d.ts +3 -7
- package/dist/client/jobConversion.js +36 -33
- package/dist/client/jobConversionHelpers.d.ts +19 -3
- package/dist/client/jobConversionHelpers.js +20 -16
- package/dist/client/jobConversionTypes.d.ts +8 -0
- package/dist/client/jobDeduplication.d.ts +6 -0
- package/dist/client/jobDeduplication.js +14 -0
- package/dist/client/jobHelpers.d.ts +7 -2
- package/dist/client/jobHelpers.js +16 -8
- package/dist/client/queue/bullmqCompat.d.ts +18 -8
- package/dist/client/queue/bullmqCompat.js +39 -71
- package/dist/client/queue/deduplication.d.ts +2 -0
- package/dist/client/queue/deduplication.js +20 -11
- package/dist/client/queue/dlq.d.ts +11 -6
- package/dist/client/queue/dlq.js +57 -16
- package/dist/client/queue/dlqJobMethods.d.ts +9 -0
- package/dist/client/queue/dlqJobMethods.js +177 -0
- package/dist/client/queue/dlqOps.d.ts +2 -1
- package/dist/client/queue/dlqOps.js +4 -10
- package/dist/client/queue/dlqStats.d.ts +3 -0
- package/dist/client/queue/dlqStats.js +21 -0
- package/dist/client/queue/job-proxy/dependencies.d.ts +9 -0
- package/dist/client/queue/job-proxy/dependencies.js +67 -0
- package/dist/client/queue/job-proxy/reflection.d.ts +2 -0
- package/dist/client/queue/job-proxy/reflection.js +18 -0
- package/dist/client/queue/job-proxy/simple.d.ts +3 -0
- package/dist/client/queue/job-proxy/simple.js +316 -0
- package/dist/client/queue/job-proxy/tcp.d.ts +4 -0
- package/dist/client/queue/job-proxy/tcp.js +191 -0
- package/dist/client/queue/jobMetadata.d.ts +10 -0
- package/dist/client/queue/jobMetadata.js +24 -0
- package/dist/client/queue/jobMove.d.ts +4 -4
- package/dist/client/queue/jobMove.js +87 -24
- package/dist/client/queue/jobProxy.d.ts +4 -50
- package/dist/client/queue/jobProxy.js +3 -511
- package/dist/client/queue/operations/add/bulk.d.ts +7 -0
- package/dist/client/queue/operations/add/bulk.js +129 -0
- package/dist/client/queue/operations/add/payload.d.ts +24 -0
- package/dist/client/queue/operations/add/payload.js +85 -0
- package/dist/client/queue/operations/add/single.d.ts +3 -0
- package/dist/client/queue/operations/add/single.js +107 -0
- package/dist/client/queue/operations/add.d.ts +2 -47
- package/dist/client/queue/operations/add.js +2 -347
- package/dist/client/queue/operations/index.d.ts +1 -0
- package/dist/client/queue/operations/index.js +1 -0
- package/dist/client/queue/operations/management.d.ts +0 -4
- package/dist/client/queue/operations/management.js +35 -6
- package/dist/client/queue/operations/query.d.ts +1 -20
- package/dist/client/queue/operations/query.js +38 -116
- package/dist/client/queue/operations/queryStates.d.ts +13 -0
- package/dist/client/queue/operations/queryStates.js +32 -0
- package/dist/client/queue/operations/queryTcpPages.d.ts +14 -0
- package/dist/client/queue/operations/queryTcpPages.js +40 -0
- package/dist/client/queue/queue.d.ts +6 -189
- package/dist/client/queue/queue.js +6 -547
- package/dist/client/queue/rateLimit.d.ts +4 -4
- package/dist/client/queue/rateLimit.js +17 -8
- package/dist/client/queue/runtime/compatibility.d.ts +13 -0
- package/dist/client/queue/runtime/compatibility.js +38 -0
- package/dist/client/queue/runtime/configuration.d.ts +42 -0
- package/dist/client/queue/runtime/configuration.js +109 -0
- package/dist/client/queue/runtime/connection.d.ts +6 -0
- package/dist/client/queue/runtime/connection.js +16 -0
- package/dist/client/queue/runtime/control.d.ts +41 -0
- package/dist/client/queue/runtime/control.js +87 -0
- package/dist/client/queue/runtime/queries.d.ts +48 -0
- package/dist/client/queue/runtime/queries.js +95 -0
- package/dist/client/queue/runtime/scheduling.d.ts +33 -0
- package/dist/client/queue/runtime/scheduling.js +56 -0
- package/dist/client/queue/runtime/state.d.ts +96 -0
- package/dist/client/queue/runtime/state.js +149 -0
- package/dist/client/queue/scheduler.d.ts +2 -5
- package/dist/client/queue/scheduler.js +25 -23
- package/dist/client/queue/schedulerPagination.d.ts +7 -0
- package/dist/client/queue/schedulerPagination.js +10 -0
- package/dist/client/queue/types/add.d.ts +40 -0
- package/dist/client/queue/types/add.js +1 -0
- package/dist/client/queue/types/contexts.d.ts +33 -0
- package/dist/client/queue/types/contexts.js +5 -0
- package/dist/client/queue/types/index.d.ts +3 -0
- package/dist/client/queue/types/index.js +1 -0
- package/dist/client/queue/types/job.d.ts +50 -0
- package/dist/client/queue/types/job.js +1 -0
- package/dist/client/queue/types/runtime.d.ts +35 -0
- package/dist/client/queue/types/runtime.js +1 -0
- package/dist/client/queue/workers.d.ts +16 -8
- package/dist/client/queue/workers.js +42 -16
- package/dist/client/queue-events/tcpSubscription.d.ts +23 -0
- package/dist/client/queue-events/tcpSubscription.js +99 -0
- package/dist/client/queueGroup.d.ts +11 -0
- package/dist/client/queueGroup.js +28 -1
- package/dist/client/sandboxed/queueOps.d.ts +2 -2
- package/dist/client/sandboxed/queueOps.js +32 -5
- package/dist/client/sandboxed/runtime/dispatch.d.ts +13 -0
- package/dist/client/sandboxed/runtime/dispatch.js +186 -0
- package/dist/client/sandboxed/runtime/lifecycle.d.ts +20 -0
- package/dist/client/sandboxed/runtime/lifecycle.js +95 -0
- package/dist/client/sandboxed/runtime/log.d.ts +1 -0
- package/dist/client/sandboxed/runtime/log.js +15 -0
- package/dist/client/sandboxed/runtime/pool.d.ts +11 -0
- package/dist/client/sandboxed/runtime/pool.js +121 -0
- package/dist/client/sandboxed/runtime/recovery.d.ts +11 -0
- package/dist/client/sandboxed/runtime/recovery.js +122 -0
- package/dist/client/sandboxed/runtime/state.d.ts +39 -0
- package/dist/client/sandboxed/runtime/state.js +59 -0
- package/dist/client/sandboxed/types/index.d.ts +2 -0
- package/dist/client/sandboxed/types/index.js +1 -0
- package/dist/client/sandboxed/types/options.d.ts +27 -0
- package/dist/client/sandboxed/types/options.js +1 -0
- package/dist/client/sandboxed/types/process.d.ts +30 -0
- package/dist/client/sandboxed/types/process.js +1 -0
- package/dist/client/sandboxed/worker.d.ts +3 -85
- package/dist/client/sandboxed/worker.js +3 -557
- package/dist/client/sandboxed/wrapper.js +1 -0
- package/dist/client/tcp/client.d.ts +5 -112
- package/dist/client/tcp/client.js +5 -481
- package/dist/client/tcp/commandQueue.d.ts +23 -0
- package/dist/client/tcp/commandQueue.js +89 -0
- package/dist/client/tcp/connection.d.ts +4 -85
- package/dist/client/tcp/connection.js +3 -315
- package/dist/client/tcp/errors.d.ts +6 -0
- package/dist/client/tcp/errors.js +18 -0
- package/dist/client/tcp/runtime/commands.d.ts +9 -0
- package/dist/client/tcp/runtime/commands.js +124 -0
- package/dist/client/tcp/runtime/connectivity.d.ts +13 -0
- package/dist/client/tcp/runtime/connectivity.js +77 -0
- package/dist/client/tcp/runtime/health.d.ts +14 -0
- package/dist/client/tcp/runtime/health.js +127 -0
- package/dist/client/tcp/runtime/lifecycle.d.ts +8 -0
- package/dist/client/tcp/runtime/lifecycle.js +32 -0
- package/dist/client/tcp/runtime/state.d.ts +50 -0
- package/dist/client/tcp/runtime/state.js +45 -0
- package/dist/client/tcp/transport.d.ts +18 -0
- package/dist/client/tcp/transport.js +158 -0
- package/dist/client/tcp/types/command.d.ts +9 -0
- package/dist/client/tcp/types/command.js +1 -0
- package/dist/client/tcp/types/connection.d.ts +31 -0
- package/dist/client/tcp/types/connection.js +17 -0
- package/dist/client/tcp/types/index.d.ts +5 -0
- package/dist/client/tcp/types/index.js +1 -0
- package/dist/client/tcp/types/socket.d.ts +8 -0
- package/dist/client/tcp/types/socket.js +1 -0
- package/dist/client/tcp/types/tls.d.ts +4 -0
- package/dist/client/tcp/types/tls.js +1 -0
- package/dist/client/tcp/types.d.ts +2 -106
- package/dist/client/tcp/types.js +2 -22
- package/dist/client/types/connection.d.ts +29 -0
- package/dist/client/types/connection.js +1 -0
- package/dist/client/types/dlq.d.ts +45 -0
- package/dist/client/types/dlq.js +1 -0
- package/dist/client/types/events.d.ts +54 -0
- package/dist/client/types/events.js +1 -0
- package/dist/client/types/flow.d.ts +10 -0
- package/dist/client/types/flow.js +1 -0
- package/dist/client/types/index.d.ts +10 -0
- package/dist/client/types/index.js +1 -0
- package/dist/client/types/job.d.ts +127 -0
- package/dist/client/types/job.js +1 -0
- package/dist/client/types/metrics.d.ts +1 -0
- package/dist/client/types/metrics.js +1 -0
- package/dist/client/types/options.d.ts +62 -0
- package/dist/client/types/options.js +1 -0
- package/dist/client/types/worker.d.ts +38 -0
- package/dist/client/types/worker.js +1 -0
- package/dist/client/types.d.ts +2 -583
- package/dist/client/types.js +2 -6
- package/dist/client/worker/ackBatcher.d.ts +1 -1
- package/dist/client/worker/ackBatcher.js +17 -5
- package/dist/client/worker/ackOutcome.d.ts +8 -0
- package/dist/client/worker/ackOutcome.js +58 -0
- package/dist/client/worker/constants.d.ts +7 -0
- package/dist/client/worker/constants.js +7 -0
- package/dist/client/worker/groupConcurrency.js +3 -0
- package/dist/client/worker/handlers/completion.d.ts +28 -0
- package/dist/client/worker/handlers/completion.js +68 -0
- package/dist/client/worker/handlers/dependencies.d.ts +11 -0
- package/dist/client/worker/handlers/dependencies.js +107 -0
- package/dist/client/worker/handlers/mutations.d.ts +23 -0
- package/dist/client/worker/handlers/mutations.js +211 -0
- package/dist/client/worker/handlers/queries.d.ts +15 -0
- package/dist/client/worker/handlers/queries.js +100 -0
- package/dist/client/worker/index.d.ts +2 -2
- package/dist/client/worker/index.js +1 -1
- package/dist/client/worker/jobParser.js +4 -2
- package/dist/client/worker/processor.d.ts +2 -15
- package/dist/client/worker/processor.js +68 -125
- package/dist/client/worker/processorHandlers.d.ts +4 -65
- package/dist/client/worker/processorHandlers.js +4 -400
- package/dist/client/worker/processorOutcome.d.ts +14 -0
- package/dist/client/worker/processorOutcome.js +125 -0
- package/dist/client/worker/runtime/buffer.d.ts +8 -0
- package/dist/client/worker/runtime/buffer.js +50 -0
- package/dist/client/worker/runtime/control.d.ts +26 -0
- package/dist/client/worker/runtime/control.js +175 -0
- package/dist/client/worker/runtime/execution.d.ts +11 -0
- package/dist/client/worker/runtime/execution.js +123 -0
- package/dist/client/worker/runtime/lifecycle.d.ts +7 -0
- package/dist/client/worker/runtime/lifecycle.js +114 -0
- package/dist/client/worker/runtime/manual.d.ts +10 -0
- package/dist/client/worker/runtime/manual.js +137 -0
- package/dist/client/worker/runtime/options.d.ts +5 -0
- package/dist/client/worker/runtime/options.js +39 -0
- package/dist/client/worker/runtime/polling.d.ts +12 -0
- package/dist/client/worker/runtime/polling.js +123 -0
- package/dist/client/worker/runtime/state.d.ts +110 -0
- package/dist/client/worker/runtime/state.js +156 -0
- package/dist/client/worker/types/index.d.ts +5 -0
- package/dist/client/worker/types/index.js +1 -0
- package/dist/client/worker/types/manual.d.ts +7 -0
- package/dist/client/worker/types/manual.js +1 -0
- package/dist/client/worker/types/options.d.ts +24 -0
- package/dist/client/worker/types/options.js +1 -0
- package/dist/client/worker/types/outcome.d.ts +23 -0
- package/dist/client/worker/types/outcome.js +1 -0
- package/dist/client/worker/types/processor.d.ts +22 -0
- package/dist/client/worker/types/processor.js +1 -0
- package/dist/client/worker/types/transport.d.ts +11 -0
- package/dist/client/worker/types/transport.js +1 -0
- package/dist/client/worker/worker.d.ts +3 -160
- package/dist/client/worker/worker.js +3 -904
- package/dist/client/worker/workerRateLimiter.d.ts +5 -1
- package/dist/client/worker/workerRateLimiter.js +40 -20
- package/dist/client/worker.d.ts +1 -0
- package/dist/client/workflow/compensationChild.d.ts +2 -1
- package/dist/client/workflow/compensationChild.js +1 -1
- package/dist/client/workflow/compensationClaim.d.ts +11 -0
- package/dist/client/workflow/compensationClaim.js +30 -0
- package/dist/client/workflow/compensator.d.ts +7 -2
- package/dist/client/workflow/compensator.js +5 -11
- package/dist/client/workflow/recovery.js +25 -2
- package/dist/client/workflow/rollbackControl.js +1 -1
- package/dist/domain/job/constants.d.ts +12 -0
- package/dist/domain/job/constants.js +12 -0
- package/dist/domain/job/create.d.ts +2 -0
- package/dist/domain/job/create.js +103 -0
- package/dist/domain/job/ids.d.ts +5 -0
- package/dist/domain/job/ids.js +12 -0
- package/dist/domain/job/locks.d.ts +4 -0
- package/dist/domain/job/locks.js +23 -0
- package/dist/domain/job/payload.d.ts +18 -0
- package/dist/domain/job/payload.js +43 -0
- package/dist/domain/job/state.d.ts +8 -0
- package/dist/domain/job/state.js +51 -0
- package/dist/domain/job/terminal.d.ts +3 -0
- package/dist/domain/job/terminal.js +9 -0
- package/dist/domain/queue/dlqShard.d.ts +2 -0
- package/dist/domain/queue/dlqShard.js +34 -9
- package/dist/domain/queue/limiterManager.d.ts +11 -0
- package/dist/domain/queue/limiterManager.js +28 -0
- package/dist/domain/queue/priorityQueue.js +3 -39
- package/dist/domain/queue/priorityQueueOrder.d.ts +3 -0
- package/dist/domain/queue/priorityQueueOrder.js +21 -0
- package/dist/domain/queue/shard/dependencies.d.ts +11 -0
- package/dist/domain/queue/shard/dependencies.js +22 -0
- package/dist/domain/queue/shard/dlq.d.ts +25 -0
- package/dist/domain/queue/shard/dlq.js +71 -0
- package/dist/domain/queue/shard/keys.d.ts +18 -0
- package/dist/domain/queue/shard/keys.js +45 -0
- package/dist/domain/queue/shard/lifecycle.d.ts +10 -0
- package/dist/domain/queue/shard/lifecycle.js +43 -0
- package/dist/domain/queue/shard/limits.d.ts +24 -0
- package/dist/domain/queue/shard/limits.js +57 -0
- package/dist/domain/queue/shard/metrics.d.ts +32 -0
- package/dist/domain/queue/shard/metrics.js +72 -0
- package/dist/domain/queue/shard/state.d.ts +34 -0
- package/dist/domain/queue/shard/state.js +80 -0
- package/dist/domain/queue/shard.d.ts +5 -137
- package/dist/domain/queue/shard.js +4 -390
- package/dist/domain/queue/uniqueKeyManager.d.ts +3 -1
- package/dist/domain/queue/uniqueKeyManager.js +9 -1
- package/dist/domain/response/builders.d.ts +15 -0
- package/dist/domain/response/builders.js +39 -0
- package/dist/domain/types/command.d.ts +2 -522
- package/dist/domain/types/command.js +2 -5
- package/dist/domain/types/commands/base.d.ts +5 -0
- package/dist/domain/types/commands/base.js +1 -0
- package/dist/domain/types/commands/core.d.ts +106 -0
- package/dist/domain/types/commands/core.js +1 -0
- package/dist/domain/types/commands/cron.d.ts +36 -0
- package/dist/domain/types/commands/cron.js +1 -0
- package/dist/domain/types/commands/dashboard.d.ts +13 -0
- package/dist/domain/types/commands/dashboard.js +1 -0
- package/dist/domain/types/commands/dlq.d.ts +39 -0
- package/dist/domain/types/commands/dlq.js +1 -0
- package/dist/domain/types/commands/extended.d.ts +63 -0
- package/dist/domain/types/commands/extended.js +1 -0
- package/dist/domain/types/commands/index.d.ts +12 -0
- package/dist/domain/types/commands/index.js +12 -0
- package/dist/domain/types/commands/limits.d.ts +54 -0
- package/dist/domain/types/commands/limits.js +1 -0
- package/dist/domain/types/commands/management.d.ts +73 -0
- package/dist/domain/types/commands/management.js +1 -0
- package/dist/domain/types/commands/monitoring.d.ts +49 -0
- package/dist/domain/types/commands/monitoring.js +1 -0
- package/dist/domain/types/commands/protocol.d.ts +20 -0
- package/dist/domain/types/commands/protocol.js +1 -0
- package/dist/domain/types/commands/query.d.ts +46 -0
- package/dist/domain/types/commands/query.js +1 -0
- package/dist/domain/types/commands/union.d.ts +13 -0
- package/dist/domain/types/commands/union.js +1 -0
- package/dist/domain/types/commands/workers.d.ts +39 -0
- package/dist/domain/types/commands/workers.js +1 -0
- package/dist/domain/types/cron.d.ts +4 -2
- package/dist/domain/types/cron.js +3 -0
- package/dist/domain/types/dlq.d.ts +17 -0
- package/dist/domain/types/dlq.js +70 -14
- package/dist/domain/types/index.d.ts +2 -0
- package/dist/domain/types/index.js +1 -0
- package/dist/domain/types/job.d.ts +8 -269
- package/dist/domain/types/job.js +8 -234
- package/dist/domain/types/jobs/model.d.ts +152 -0
- package/dist/domain/types/jobs/model.js +1 -0
- package/dist/domain/types/metrics.d.ts +16 -0
- package/dist/domain/types/metrics.js +1 -0
- package/dist/domain/types/priorityQueue.d.ts +12 -0
- package/dist/domain/types/priorityQueue.js +1 -0
- package/dist/domain/types/protocol.d.ts +5 -0
- package/dist/domain/types/protocol.js +4 -0
- package/dist/domain/types/queue.d.ts +7 -0
- package/dist/domain/types/queue.js +13 -0
- package/dist/domain/types/response.d.ts +3 -192
- package/dist/domain/types/response.js +3 -101
- package/dist/domain/types/responses/model.d.ts +152 -0
- package/dist/domain/types/responses/model.js +1 -0
- package/dist/domain/types/shard.d.ts +4 -0
- package/dist/domain/types/shard.js +1 -0
- package/dist/infrastructure/cloud/cloudAgent.js +6 -0
- package/dist/infrastructure/cloud/commandHandler.d.ts +2 -41
- package/dist/infrastructure/cloud/commandHandler.js +1 -1
- package/dist/infrastructure/cloud/commands/integrations.d.ts +2 -0
- package/dist/infrastructure/cloud/commands/integrations.js +31 -0
- package/dist/infrastructure/cloud/commands/jobMapper.d.ts +56 -0
- package/dist/infrastructure/cloud/commands/jobMapper.js +72 -0
- package/dist/infrastructure/cloud/commands/jobs.d.ts +2 -0
- package/dist/infrastructure/cloud/commands/jobs.js +111 -0
- package/dist/infrastructure/cloud/commands/queues.d.ts +2 -0
- package/dist/infrastructure/cloud/commands/queues.js +126 -0
- package/dist/infrastructure/cloud/commands.d.ts +3 -10
- package/dist/infrastructure/cloud/commands.js +7 -344
- package/dist/infrastructure/cloud/snapshot/analytics.d.ts +16 -0
- package/dist/infrastructure/cloud/snapshot/analytics.js +132 -0
- package/dist/infrastructure/cloud/snapshot/collector.d.ts +24 -0
- package/dist/infrastructure/cloud/snapshot/collector.js +105 -0
- package/dist/infrastructure/cloud/snapshot/config.d.ts +5 -0
- package/dist/infrastructure/cloud/snapshot/config.js +86 -0
- package/dist/infrastructure/cloud/snapshot/jobs.d.ts +5 -0
- package/dist/infrastructure/cloud/snapshot/jobs.js +148 -0
- package/dist/infrastructure/cloud/snapshot/stalls.d.ts +3 -0
- package/dist/infrastructure/cloud/snapshot/stalls.js +34 -0
- package/dist/infrastructure/cloud/snapshotCollector.d.ts +2 -53
- package/dist/infrastructure/cloud/snapshotCollector.js +5 -107
- package/dist/infrastructure/cloud/snapshotHelpers.d.ts +5 -45
- package/dist/infrastructure/cloud/snapshotHelpers.js +4 -426
- package/dist/infrastructure/cloud/types/collector.d.ts +54 -0
- package/dist/infrastructure/cloud/types/collector.js +1 -0
- package/dist/infrastructure/cloud/types/command.d.ts +44 -0
- package/dist/infrastructure/cloud/types/command.js +1 -0
- package/dist/infrastructure/cloud/types/config.d.ts +18 -0
- package/dist/infrastructure/cloud/types/config.js +1 -0
- package/dist/infrastructure/cloud/types/event.d.ts +14 -0
- package/dist/infrastructure/cloud/types/event.js +1 -0
- package/dist/infrastructure/cloud/types/redact.d.ts +4 -0
- package/dist/infrastructure/cloud/types/redact.js +1 -0
- package/dist/infrastructure/cloud/types/snapshot.d.ts +52 -0
- package/dist/infrastructure/cloud/types/snapshot.js +1 -0
- package/dist/infrastructure/cloud/types/snapshotCore.d.ts +125 -0
- package/dist/infrastructure/cloud/types/snapshotCore.js +1 -0
- package/dist/infrastructure/cloud/types/snapshotJobs.d.ts +124 -0
- package/dist/infrastructure/cloud/types/snapshotJobs.js +1 -0
- package/dist/infrastructure/cloud/types/snapshotTelemetry.d.ts +100 -0
- package/dist/infrastructure/cloud/types/snapshotTelemetry.js +1 -0
- package/dist/infrastructure/cloud/types.d.ts +3 -445
- package/dist/infrastructure/cloud/types.js +0 -4
- package/dist/infrastructure/persistence/batchInsert.d.ts +13 -0
- package/dist/infrastructure/persistence/batchInsert.js +96 -0
- package/dist/infrastructure/persistence/jobOptionsBlob.d.ts +18 -0
- package/dist/infrastructure/persistence/jobOptionsBlob.js +56 -0
- package/dist/infrastructure/persistence/legacyNameMigration.d.ts +5 -0
- package/dist/infrastructure/persistence/legacyNameMigration.js +42 -0
- package/dist/infrastructure/persistence/migrations.d.ts +3 -0
- package/dist/infrastructure/persistence/migrations.js +120 -0
- package/dist/infrastructure/persistence/schema.d.ts +3 -5
- package/dist/infrastructure/persistence/schema.js +40 -136
- package/dist/infrastructure/persistence/sqlite/admission.d.ts +9 -0
- package/dist/infrastructure/persistence/sqlite/admission.js +34 -0
- package/dist/infrastructure/persistence/sqlite/control.d.ts +32 -0
- package/dist/infrastructure/persistence/sqlite/control.js +90 -0
- package/dist/infrastructure/persistence/sqlite/flows.d.ts +26 -0
- package/dist/infrastructure/persistence/sqlite/flows.js +167 -0
- package/dist/infrastructure/persistence/sqlite/jobs.d.ts +23 -0
- package/dist/infrastructure/persistence/sqlite/jobs.js +166 -0
- package/dist/infrastructure/persistence/sqlite/lifecycle.d.ts +6 -0
- package/dist/infrastructure/persistence/sqlite/lifecycle.js +30 -0
- package/dist/infrastructure/persistence/sqlite/mutations.d.ts +20 -0
- package/dist/infrastructure/persistence/sqlite/mutations.js +149 -0
- package/dist/infrastructure/persistence/sqlite/queries.d.ts +23 -0
- package/dist/infrastructure/persistence/sqlite/queries.js +89 -0
- package/dist/infrastructure/persistence/sqlite/records.d.ts +24 -0
- package/dist/infrastructure/persistence/sqlite/records.js +115 -0
- package/dist/infrastructure/persistence/sqlite/state.d.ts +36 -0
- package/dist/infrastructure/persistence/sqlite/state.js +207 -0
- package/dist/infrastructure/persistence/sqlite/telemetry.d.ts +16 -0
- package/dist/infrastructure/persistence/sqlite/telemetry.js +126 -0
- package/dist/infrastructure/persistence/sqlite.d.ts +5 -276
- package/dist/infrastructure/persistence/sqlite.js +3 -997
- package/dist/infrastructure/persistence/sqliteBatch.d.ts +4 -121
- package/dist/infrastructure/persistence/sqliteBatch.js +3 -422
- package/dist/infrastructure/persistence/sqliteSerializer.d.ts +6 -1
- package/dist/infrastructure/persistence/sqliteSerializer.js +33 -11
- package/dist/infrastructure/persistence/statements.d.ts +5 -1
- package/dist/infrastructure/persistence/statements.js +14 -9
- package/dist/infrastructure/persistence/types/admission.d.ts +8 -0
- package/dist/infrastructure/persistence/types/admission.js +1 -0
- package/dist/infrastructure/persistence/types/batch.d.ts +12 -0
- package/dist/infrastructure/persistence/types/batch.js +1 -0
- package/dist/infrastructure/persistence/types/sqlite.d.ts +17 -0
- package/dist/infrastructure/persistence/types/sqlite.js +1 -0
- package/dist/infrastructure/persistence/writeBuffer.d.ts +38 -0
- package/dist/infrastructure/persistence/writeBuffer.js +221 -0
- package/dist/infrastructure/scheduler/cron/execution.d.ts +12 -0
- package/dist/infrastructure/scheduler/cron/execution.js +150 -0
- package/dist/infrastructure/scheduler/cron/runtime.d.ts +31 -0
- package/dist/infrastructure/scheduler/cron/runtime.js +143 -0
- package/dist/infrastructure/scheduler/cronScheduler.d.ts +4 -117
- package/dist/infrastructure/scheduler/cronScheduler.js +3 -436
- package/dist/infrastructure/scheduler/types/cronScheduler.d.ts +16 -0
- package/dist/infrastructure/scheduler/types/cronScheduler.js +1 -0
- package/dist/infrastructure/server/bootstrap.js +3 -0
- package/dist/infrastructure/server/handler-routes/control.d.ts +8 -0
- package/dist/infrastructure/server/handler-routes/control.js +82 -0
- package/dist/infrastructure/server/handler-routes/jobs.d.ts +6 -0
- package/dist/infrastructure/server/handler-routes/jobs.js +110 -0
- package/dist/infrastructure/server/handler-routes/monitoring.d.ts +5 -0
- package/dist/infrastructure/server/handler-routes/monitoring.js +65 -0
- package/dist/infrastructure/server/handlerRoutes.d.ts +3 -26
- package/dist/infrastructure/server/handlerRoutes.js +3 -257
- package/dist/infrastructure/server/handlers/advanced/configNumbers.d.ts +2 -0
- package/dist/infrastructure/server/handlers/advanced/configNumbers.js +26 -0
- package/dist/infrastructure/server/handlers/advanced/dependencies.d.ts +15 -0
- package/dist/infrastructure/server/handlers/advanced/dependencies.js +38 -0
- package/dist/infrastructure/server/handlers/advanced/jobs.d.ts +33 -0
- package/dist/infrastructure/server/handlers/advanced/jobs.js +136 -0
- package/dist/infrastructure/server/handlers/advanced/queue.d.ts +42 -0
- package/dist/infrastructure/server/handlers/advanced/queue.js +111 -0
- package/dist/infrastructure/server/handlers/advanced.d.ts +3 -121
- package/dist/infrastructure/server/handlers/advanced.js +3 -336
- package/dist/infrastructure/server/handlers/core.d.ts +1 -4
- package/dist/infrastructure/server/handlers/core.js +37 -20
- package/dist/infrastructure/server/handlers/cron.js +9 -1
- package/dist/infrastructure/server/handlers/dlq.d.ts +3 -0
- package/dist/infrastructure/server/handlers/dlq.js +18 -4
- package/dist/infrastructure/server/handlers/flow.js +6 -1
- package/dist/infrastructure/server/handlers/introspection.d.ts +19 -0
- package/dist/infrastructure/server/handlers/introspection.js +21 -0
- package/dist/infrastructure/server/handlers/management.d.ts +8 -0
- package/dist/infrastructure/server/handlers/management.js +30 -0
- package/dist/infrastructure/server/handlers/monitoring/health.d.ts +13 -0
- package/dist/infrastructure/server/handlers/monitoring/health.js +61 -0
- package/dist/infrastructure/server/handlers/monitoring/operations.d.ts +8 -0
- package/dist/infrastructure/server/handlers/monitoring/operations.js +28 -0
- package/dist/infrastructure/server/handlers/monitoring/webhooks.d.ts +7 -0
- package/dist/infrastructure/server/handlers/monitoring/webhooks.js +56 -0
- package/dist/infrastructure/server/handlers/monitoring/workers.d.ts +6 -0
- package/dist/infrastructure/server/handlers/monitoring/workers.js +57 -0
- package/dist/infrastructure/server/handlers/monitoring.d.ts +4 -30
- package/dist/infrastructure/server/handlers/monitoring.js +4 -222
- package/dist/infrastructure/server/handlers/pushBatchValidation.d.ts +1 -1
- package/dist/infrastructure/server/handlers/pushBatchValidation.js +7 -0
- package/dist/infrastructure/server/handlers/query.js +13 -4
- package/dist/infrastructure/server/http-routes/jobAdvanced.d.ts +2 -0
- package/dist/infrastructure/server/http-routes/jobAdvanced.js +106 -0
- package/dist/infrastructure/server/http-routes/jobManagement.d.ts +2 -0
- package/dist/infrastructure/server/http-routes/jobManagement.js +74 -0
- package/dist/infrastructure/server/http-routes/queueJobs.d.ts +2 -0
- package/dist/infrastructure/server/http-routes/queueJobs.js +108 -0
- package/dist/infrastructure/server/httpRouteJobs.d.ts +1 -8
- package/dist/infrastructure/server/httpRouteJobs.js +33 -222
- package/dist/infrastructure/server/httpRouteQueues.d.ts +1 -6
- package/dist/infrastructure/server/httpRouteQueues.js +51 -217
- package/dist/infrastructure/server/httpRouteResources.js +1 -0
- package/dist/infrastructure/server/protocol/commands.d.ts +8 -0
- package/dist/infrastructure/server/protocol/commands.js +31 -0
- package/dist/infrastructure/server/protocol/frameParser.d.ts +16 -0
- package/dist/infrastructure/server/protocol/frameParser.js +65 -0
- package/dist/infrastructure/server/protocol/lineBuffer.d.ts +6 -0
- package/dist/infrastructure/server/protocol/lineBuffer.js +21 -0
- package/dist/infrastructure/server/protocol/validation.d.ts +9 -0
- package/dist/infrastructure/server/protocol/validation.js +75 -0
- package/dist/infrastructure/server/protocol.d.ts +5 -77
- package/dist/infrastructure/server/protocol.js +4 -265
- package/dist/infrastructure/server/rateLimiter.js +1 -0
- package/dist/infrastructure/server/socketWriteQueue.d.ts +1 -1
- package/dist/infrastructure/server/socketWriteQueue.js +8 -5
- package/dist/infrastructure/server/sse/constants.d.ts +5 -0
- package/dist/infrastructure/server/sse/constants.js +5 -0
- package/dist/infrastructure/server/sse/eventBuffer.d.ts +3 -0
- package/dist/infrastructure/server/sse/eventBuffer.js +21 -0
- package/dist/infrastructure/server/sseHandler.d.ts +2 -6
- package/dist/infrastructure/server/sseHandler.js +20 -96
- package/dist/infrastructure/server/tcp/clientRelease.d.ts +2 -0
- package/dist/infrastructure/server/tcp/clientRelease.js +18 -0
- package/dist/infrastructure/server/tcp/connections.d.ts +24 -0
- package/dist/infrastructure/server/tcp/connections.js +162 -0
- package/dist/infrastructure/server/tcp/constants.d.ts +3 -0
- package/dist/infrastructure/server/tcp/constants.js +3 -0
- package/dist/infrastructure/server/tcp/eventSubscriptions.d.ts +10 -0
- package/dist/infrastructure/server/tcp/eventSubscriptions.js +17 -0
- package/dist/infrastructure/server/tcp/responses.d.ts +3 -0
- package/dist/infrastructure/server/tcp/responses.js +8 -0
- package/dist/infrastructure/server/tcp.d.ts +10 -68
- package/dist/infrastructure/server/tcp.js +47 -256
- package/dist/infrastructure/server/types/protocol.d.ts +4 -0
- package/dist/infrastructure/server/types/protocol.js +1 -0
- package/dist/infrastructure/server/types/sse.d.ts +11 -0
- package/dist/infrastructure/server/types/sse.js +1 -0
- package/dist/infrastructure/server/types/tcpServer.d.ts +25 -0
- package/dist/infrastructure/server/types/tcpServer.js +1 -0
- package/dist/infrastructure/server/types/ws.d.ts +6 -0
- package/dist/infrastructure/server/types/ws.js +1 -0
- package/dist/infrastructure/server/ws/constants.d.ts +6 -0
- package/dist/infrastructure/server/ws/constants.js +130 -0
- package/dist/infrastructure/server/ws/snapshots.d.ts +4 -0
- package/dist/infrastructure/server/ws/snapshots.js +52 -0
- package/dist/infrastructure/server/ws/subscriptions.d.ts +10 -0
- package/dist/infrastructure/server/ws/subscriptions.js +39 -0
- package/dist/infrastructure/server/wsHandler.d.ts +2 -10
- package/dist/infrastructure/server/wsHandler.js +12 -237
- package/dist/mcp/adapter.d.ts +5 -403
- package/dist/mcp/adapter.js +6 -778
- package/dist/mcp/backend/embedded/base.d.ts +7 -0
- package/dist/mcp/backend/embedded/base.js +15 -0
- package/dist/mcp/backend/embedded/index.d.ts +14 -0
- package/dist/mcp/backend/embedded/index.js +22 -0
- package/dist/mcp/backend/embedded/jobs.d.ts +44 -0
- package/dist/mcp/backend/embedded/jobs.js +98 -0
- package/dist/mcp/backend/embedded/queues.d.ts +27 -0
- package/dist/mcp/backend/embedded/queues.js +84 -0
- package/dist/mcp/backend/embedded/services.d.ts +29 -0
- package/dist/mcp/backend/embedded/services.js +107 -0
- package/dist/mcp/backend/serializers.d.ts +7 -0
- package/dist/mcp/backend/serializers.js +32 -0
- package/dist/mcp/backend/tcp/base.d.ts +19 -0
- package/dist/mcp/backend/tcp/base.js +54 -0
- package/dist/mcp/backend/tcp/index.d.ts +14 -0
- package/dist/mcp/backend/tcp/index.js +20 -0
- package/dist/mcp/backend/tcp/jobs.d.ts +44 -0
- package/dist/mcp/backend/tcp/jobs.js +122 -0
- package/dist/mcp/backend/tcp/queues.d.ts +27 -0
- package/dist/mcp/backend/tcp/queues.js +89 -0
- package/dist/mcp/backend/tcp/services.d.ts +30 -0
- package/dist/mcp/backend/tcp/services.js +161 -0
- package/dist/mcp/types/adapter.d.ts +176 -0
- package/dist/mcp/types/adapter.js +1 -0
- package/dist/shared/asyncLock.d.ts +13 -0
- package/dist/shared/asyncLock.js +65 -0
- package/dist/shared/lock.d.ts +10 -72
- package/dist/shared/lock.js +7 -231
- package/dist/shared/lockError.d.ts +3 -0
- package/dist/shared/lockError.js +6 -0
- package/dist/shared/lockTimeout.d.ts +2 -0
- package/dist/shared/lockTimeout.js +2 -0
- package/dist/shared/rwLock.d.ts +22 -0
- package/dist/shared/rwLock.js +124 -0
- package/dist/shared/serialization.js +1 -0
- package/dist/shared/skipList.d.ts +0 -5
- package/dist/shared/skipList.js +10 -57
- package/dist/shared/skipListNodes.d.ts +6 -0
- package/dist/shared/skipListNodes.js +43 -0
- package/dist/shared/types/lock.d.ts +7 -0
- package/dist/shared/types/lock.js +1 -0
- package/dist/shared/types/skipList.d.ts +4 -0
- package/dist/shared/types/skipList.js +1 -0
- package/package.json +2 -1
package/dist/client/flow.js
CHANGED
|
@@ -13,6 +13,7 @@ import { assertFlowTcpOk } from './flowJobTypes';
|
|
|
13
13
|
import { planFlows } from './flowPlan';
|
|
14
14
|
import { planBulkThen, planChain, planTree } from './flowLegacyPlan';
|
|
15
15
|
import { readFlow } from './flowReader';
|
|
16
|
+
import { getParentResult as readParentResult, getParentResults as readParentResults, } from './flowResults';
|
|
16
17
|
const FORCE_EMBEDDED = Bun.env.BUNQUEUE_EMBEDDED === '1';
|
|
17
18
|
/**
|
|
18
19
|
* FlowProducer creates job flows with automatic dependencies.
|
|
@@ -39,11 +40,10 @@ const FORCE_EMBEDDED = Bun.env.BUNQUEUE_EMBEDDED === '1';
|
|
|
39
40
|
* ```
|
|
40
41
|
*/
|
|
41
42
|
export class FlowProducer extends EventEmitter {
|
|
42
|
-
closing =
|
|
43
|
+
closing = null;
|
|
43
44
|
embedded;
|
|
44
45
|
tcp;
|
|
45
46
|
useSharedPool;
|
|
46
|
-
closed = false;
|
|
47
47
|
constructor(opts = {}) {
|
|
48
48
|
super();
|
|
49
49
|
this.embedded = opts.embedded ?? FORCE_EMBEDDED;
|
|
@@ -91,16 +91,14 @@ export class FlowProducer extends EventEmitter {
|
|
|
91
91
|
}
|
|
92
92
|
/** Close the connection pool (only if using dedicated pool) */
|
|
93
93
|
close() {
|
|
94
|
-
if (this.
|
|
94
|
+
if (this.closing)
|
|
95
95
|
return this.closing;
|
|
96
|
-
this.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
this.closing = Promise.resolve();
|
|
96
|
+
this.closing = Promise.resolve().then(() => {
|
|
97
|
+
if (this.tcp && !this.useSharedPool)
|
|
98
|
+
this.tcp.close();
|
|
99
|
+
else if (this.tcp)
|
|
100
|
+
releaseSharedPool(this.tcp);
|
|
101
|
+
});
|
|
104
102
|
return this.closing;
|
|
105
103
|
}
|
|
106
104
|
/** Disconnect from the server (BullMQ v5 compatible). Alias for close(). */
|
|
@@ -131,6 +129,7 @@ export class FlowProducer extends EventEmitter {
|
|
|
131
129
|
return plan.roots.map((root) => this.buildPlannedNode(root, snapshotsById));
|
|
132
130
|
}
|
|
133
131
|
/** Get a flow tree starting from a job (BullMQ v5 compatible). */
|
|
132
|
+
// biome-ignore lint/suspicious/useAwait: preserves the public Promise return contract.
|
|
134
133
|
async getFlow(opts) {
|
|
135
134
|
return readFlow({
|
|
136
135
|
embedded: this.embedded,
|
|
@@ -164,31 +163,14 @@ export class FlowProducer extends EventEmitter {
|
|
|
164
163
|
await commitFlow(this.pushCtx, plan.batch);
|
|
165
164
|
return { jobIds: plan.ids.map(String) };
|
|
166
165
|
}
|
|
167
|
-
/**
|
|
168
|
-
* Get the result of a completed parent job (embedded only).
|
|
169
|
-
* @template R - Type of the job result
|
|
170
|
-
*/
|
|
166
|
+
/** Get the result of a completed parent job in embedded or TCP mode. */
|
|
171
167
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters
|
|
172
168
|
getParentResult(parentId) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Get results from multiple parent jobs (embedded only).
|
|
179
|
-
* @template R - Type of the job results
|
|
180
|
-
*/
|
|
169
|
+
return readParentResult({ embedded: this.embedded, tcp: this.tcp }, parentId);
|
|
170
|
+
}
|
|
171
|
+
/** Get results from multiple parent jobs in input order in either runtime. */
|
|
181
172
|
getParentResults(parentIds) {
|
|
182
|
-
|
|
183
|
-
throw new Error('getParentResults is only available in embedded mode');
|
|
184
|
-
const manager = getSharedManager();
|
|
185
|
-
const results = new Map();
|
|
186
|
-
for (const id of parentIds) {
|
|
187
|
-
const result = manager.getResult(jobId(id));
|
|
188
|
-
if (result !== undefined)
|
|
189
|
-
results.set(id, result);
|
|
190
|
-
}
|
|
191
|
-
return results;
|
|
173
|
+
return readParentResults({ embedded: this.embedded, tcp: this.tcp }, parentIds);
|
|
192
174
|
}
|
|
193
175
|
// ============================================================================
|
|
194
176
|
// Private Methods
|
|
@@ -216,7 +198,7 @@ export class FlowProducer extends EventEmitter {
|
|
|
216
198
|
embedded: true,
|
|
217
199
|
updateData: (id, data) => managementOps.updateJobData(ctx, id, data),
|
|
218
200
|
updateProgress: (id, progress) => managementOps.updateJobProgress(ctx, id, progress),
|
|
219
|
-
log: (id, msg) => managementOps.addJobLog(ctx, id, msg).then(() =>
|
|
201
|
+
log: (id, msg) => managementOps.addJobLog(ctx, id, msg).then(() => undefined),
|
|
220
202
|
promote: (id) => managementOps.promoteJob(ctx, id),
|
|
221
203
|
remove: (id) => managementOps.removeAsync(ctx, id),
|
|
222
204
|
changePriority: (id, opts) => managementOps.changeJobPriority(ctx, id, opts),
|
|
@@ -5,12 +5,14 @@ async function fetchChildIds(id, embedded, tcp) {
|
|
|
5
5
|
if (embedded) {
|
|
6
6
|
const job = await getSharedManager().getJob(jobId(id));
|
|
7
7
|
if (!job)
|
|
8
|
-
|
|
8
|
+
return [];
|
|
9
9
|
return job.childrenIds.map(String);
|
|
10
10
|
}
|
|
11
11
|
if (!tcp)
|
|
12
12
|
return [];
|
|
13
13
|
const response = await tcp.send({ cmd: 'GetJob', id });
|
|
14
|
+
if (response.ok !== true && response.error === 'Job not found')
|
|
15
|
+
return [];
|
|
14
16
|
assertFlowTcpOk(response, 'GetJob');
|
|
15
17
|
const parent = response.job;
|
|
16
18
|
return (parent?.childrenIds ?? []).map(String);
|
|
@@ -6,8 +6,16 @@ import type { Job as DomainJob } from '../domain/types/job';
|
|
|
6
6
|
import type { FlowJobCallbacks } from './flowJobTypes';
|
|
7
7
|
import type { Job } from './types';
|
|
8
8
|
export type { FlowJobCallbacks } from './flowJobTypes';
|
|
9
|
-
/**
|
|
9
|
+
/** Decode historical flow envelopes for callers that only have the data field. */
|
|
10
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
|
+
};
|
|
11
19
|
interface FlowJobObjectOptions {
|
|
12
20
|
callbacks?: FlowJobCallbacks;
|
|
13
21
|
snapshot?: DomainJob;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Flow Job Factory
|
|
3
3
|
* Creates BullMQ-compatible Job objects backed by FlowProducer transports.
|
|
4
4
|
*/
|
|
5
|
-
import { jobId } from '../domain/types/job';
|
|
5
|
+
import { jobId, normalizeLegacyJobPayload } from '../domain/types/job';
|
|
6
6
|
import { buildJobProperties, buildSerializationMethods } from './jobConversionHelpers';
|
|
7
7
|
import { buildJobOpts } from './jobHelpers';
|
|
8
8
|
import { buildFlowJobCoreMethods } from './flowJobCoreMethods';
|
|
@@ -22,14 +22,16 @@ function stateAsType(state) {
|
|
|
22
22
|
return JOB_STATES.has(state) ? state : 'unknown';
|
|
23
23
|
}
|
|
24
24
|
function buildStateResolver(id, callbacks) {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
const getState = callbacks?.getState;
|
|
26
|
+
if (getState) {
|
|
27
|
+
return () => getState(id).then(stateAsType);
|
|
27
28
|
}
|
|
28
29
|
if (callbacks?.embedded) {
|
|
29
30
|
return () => getSharedManager().getJobState(jobId(id)).then(stateAsType);
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
const tcp = callbacks?.tcp;
|
|
33
|
+
if (tcp) {
|
|
34
|
+
return () => tcp.send({ cmd: 'GetState', id }).then((response) => {
|
|
33
35
|
if (response.ok !== true) {
|
|
34
36
|
throw new Error(typeof response.error === 'string' ? response.error : 'GetState failed');
|
|
35
37
|
}
|
|
@@ -65,15 +67,25 @@ function defaultSerialization(id, name, data, queueName, timestamp) {
|
|
|
65
67
|
}),
|
|
66
68
|
};
|
|
67
69
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
function stripFlowMetadata(data) {
|
|
71
|
+
if (typeof data !== 'object' || data === null || Array.isArray(data))
|
|
72
|
+
return data;
|
|
70
73
|
const result = {};
|
|
71
74
|
for (const [key, value] of Object.entries(data)) {
|
|
72
|
-
if (!key.startsWith('__')
|
|
75
|
+
if (!key.startsWith('__'))
|
|
73
76
|
result[key] = value;
|
|
74
77
|
}
|
|
75
78
|
return result;
|
|
76
79
|
}
|
|
80
|
+
/** Decode historical flow envelopes for callers that only have the data field. */
|
|
81
|
+
export function extractUserDataFromInternal(data) {
|
|
82
|
+
return stripFlowMetadata(normalizeLegacyJobPayload({ data }).data);
|
|
83
|
+
}
|
|
84
|
+
/** Resolve a stored flow node while preserving a modern user `data.name` field. */
|
|
85
|
+
export function extractFlowJobPayload(job) {
|
|
86
|
+
const payload = normalizeLegacyJobPayload({ name: job.name, data: job.data });
|
|
87
|
+
return { name: payload.name, data: stripFlowMetadata(payload.data) };
|
|
88
|
+
}
|
|
77
89
|
/** Create a Job object for a newly committed or fetched flow node. */
|
|
78
90
|
export function createFlowJobObject(id, name, data, queueName, factoryOptions = {}) {
|
|
79
91
|
const { callbacks, snapshot } = factoryOptions;
|
|
@@ -115,7 +127,11 @@ export function createFlowJobObject(id, name, data, queueName, factoryOptions =
|
|
|
115
127
|
return result;
|
|
116
128
|
const options = buildJobOpts(snapshot);
|
|
117
129
|
Object.assign(result, buildJobProperties(snapshot, name), { data, opts: options });
|
|
118
|
-
const serialization = buildSerializationMethods(snapshot,
|
|
130
|
+
const serialization = buildSerializationMethods(snapshot, {
|
|
131
|
+
id,
|
|
132
|
+
name,
|
|
133
|
+
jobOpts: options,
|
|
134
|
+
});
|
|
119
135
|
Object.assign(result, {
|
|
120
136
|
toJSON: () => ({ ...serialization.toJSON(), data }),
|
|
121
137
|
asJSON: () => ({ ...serialization.asJSON(), data: JSON.stringify(data) }),
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type FlowJobRuntime } from './flowJobTypes';
|
|
2
2
|
/** Lifecycle and failure-inspection methods exposed by a FlowProducer Job. */
|
|
3
3
|
export declare function buildFlowJobMoveMethods(runtime: FlowJobRuntime): {
|
|
4
|
-
moveToCompleted: (returnValue: unknown) => Promise<null>;
|
|
5
|
-
moveToFailed: (error: Error) => Promise<void>;
|
|
6
|
-
moveToWait: () => Promise<boolean>;
|
|
7
|
-
moveToDelayed: (timestamp: number) => Promise<undefined>;
|
|
8
|
-
moveToWaitingChildren: () => Promise<boolean>;
|
|
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
9
|
waitUntilFinished: (_queueEvents: unknown, ttl?: number) => Promise<unknown>;
|
|
10
10
|
discard: () => void;
|
|
11
11
|
getFailedChildrenValues: () => Promise<Record<string, string>>;
|
|
@@ -2,47 +2,67 @@ import { jobId } from '../domain/types/job';
|
|
|
2
2
|
import { getSharedManager } from './manager';
|
|
3
3
|
import { buildFailCommand, failEmbeddedArgs } from './queue/failWire';
|
|
4
4
|
import { assertFlowTcpOk } from './flowJobTypes';
|
|
5
|
+
import { removeJobDeduplicationKey } from './jobDeduplication';
|
|
5
6
|
/** Lifecycle and failure-inspection methods exposed by a FlowProducer Job. */
|
|
6
7
|
export function buildFlowJobMoveMethods(runtime) {
|
|
7
8
|
const { id, embedded, tcp } = runtime;
|
|
8
9
|
return {
|
|
9
|
-
moveToCompleted: async (returnValue) => {
|
|
10
|
+
moveToCompleted: async (returnValue, token) => {
|
|
10
11
|
if (embedded) {
|
|
11
|
-
await getSharedManager().ack(jobId(id), returnValue);
|
|
12
|
+
await getSharedManager().ack(jobId(id), returnValue, token);
|
|
12
13
|
return null;
|
|
13
14
|
}
|
|
14
|
-
if (tcp)
|
|
15
|
-
assertFlowTcpOk(await tcp.send({
|
|
15
|
+
if (tcp) {
|
|
16
|
+
assertFlowTcpOk(await tcp.send({
|
|
17
|
+
cmd: 'ACK',
|
|
18
|
+
id,
|
|
19
|
+
result: returnValue,
|
|
20
|
+
...(token === undefined ? {} : { token }),
|
|
21
|
+
}), 'ACK');
|
|
22
|
+
}
|
|
16
23
|
return null;
|
|
17
24
|
},
|
|
18
|
-
moveToFailed: async (error) => {
|
|
25
|
+
moveToFailed: async (error, token) => {
|
|
19
26
|
if (embedded) {
|
|
20
|
-
await getSharedManager().fail(jobId(id), ...failEmbeddedArgs(error));
|
|
27
|
+
await getSharedManager().fail(jobId(id), ...failEmbeddedArgs(error, token));
|
|
21
28
|
return;
|
|
22
29
|
}
|
|
23
30
|
if (tcp)
|
|
24
|
-
assertFlowTcpOk(await tcp.send(buildFailCommand(id, error)), 'FAIL');
|
|
31
|
+
assertFlowTcpOk(await tcp.send(buildFailCommand(id, error, token)), 'FAIL');
|
|
25
32
|
},
|
|
26
|
-
moveToWait: async () => {
|
|
33
|
+
moveToWait: async (token) => {
|
|
27
34
|
if (embedded)
|
|
28
|
-
return getSharedManager().moveActiveToWait(jobId(id));
|
|
35
|
+
return getSharedManager().moveActiveToWait(jobId(id), token);
|
|
29
36
|
if (!tcp)
|
|
30
37
|
return false;
|
|
31
|
-
assertFlowTcpOk(await tcp.send({ cmd: 'MoveToWait', id }), 'MoveToWait');
|
|
38
|
+
assertFlowTcpOk(await tcp.send({ cmd: 'MoveToWait', id, ...(token === undefined ? {} : { token }) }), 'MoveToWait');
|
|
32
39
|
return true;
|
|
33
40
|
},
|
|
34
|
-
moveToDelayed: async (timestamp) => {
|
|
41
|
+
moveToDelayed: async (timestamp, token) => {
|
|
35
42
|
const delay = Math.max(0, timestamp - Date.now());
|
|
36
43
|
if (embedded)
|
|
37
|
-
return void (await getSharedManager().moveToDelayed(jobId(id), delay));
|
|
44
|
+
return void (await getSharedManager().moveToDelayed(jobId(id), delay, token));
|
|
38
45
|
if (!tcp)
|
|
39
46
|
return;
|
|
40
|
-
assertFlowTcpOk(await tcp.send({
|
|
47
|
+
assertFlowTcpOk(await tcp.send({
|
|
48
|
+
cmd: 'MoveToDelayed',
|
|
49
|
+
id,
|
|
50
|
+
delay,
|
|
51
|
+
...(token === undefined ? {} : { token }),
|
|
52
|
+
}), 'MoveToDelayed');
|
|
41
53
|
},
|
|
42
|
-
moveToWaitingChildren: async () => {
|
|
54
|
+
moveToWaitingChildren: async (token) => {
|
|
43
55
|
if (embedded)
|
|
44
|
-
return getSharedManager().moveToWaitingChildren(jobId(id));
|
|
45
|
-
|
|
56
|
+
return getSharedManager().moveToWaitingChildren(jobId(id), token);
|
|
57
|
+
if (!tcp)
|
|
58
|
+
return false;
|
|
59
|
+
const response = await tcp.send({
|
|
60
|
+
cmd: 'MoveToWaitingChildren',
|
|
61
|
+
id,
|
|
62
|
+
...(token === undefined ? {} : { token }),
|
|
63
|
+
});
|
|
64
|
+
assertFlowTcpOk(response, 'MoveToWaitingChildren');
|
|
65
|
+
return true;
|
|
46
66
|
},
|
|
47
67
|
waitUntilFinished: async (_queueEvents, ttl) => {
|
|
48
68
|
const timeout = ttl ?? 30_000;
|
|
@@ -100,7 +120,7 @@ export function buildFlowJobMoveMethods(runtime) {
|
|
|
100
120
|
assertFlowTcpOk(response, 'RemoveChildDependency');
|
|
101
121
|
return response.removed ?? false;
|
|
102
122
|
},
|
|
103
|
-
removeDeduplicationKey: () =>
|
|
123
|
+
removeDeduplicationKey: () => removeJobDeduplicationKey(id, embedded, tcp),
|
|
104
124
|
removeUnprocessedChildren: async () => {
|
|
105
125
|
if (embedded)
|
|
106
126
|
return void (await getSharedManager().removeUnprocessedChildren(jobId(id)));
|
|
@@ -21,7 +21,7 @@ function validateStep(step, depth = 0) {
|
|
|
21
21
|
throw new Error('flow job data must be an object');
|
|
22
22
|
}
|
|
23
23
|
for (const key of Object.keys(step.data)) {
|
|
24
|
-
if (key
|
|
24
|
+
if (key.startsWith('__')) {
|
|
25
25
|
throw new Error(`flow job data key is reserved: ${key}`);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -48,7 +48,7 @@ function allocate(step, ids) {
|
|
|
48
48
|
return id;
|
|
49
49
|
}
|
|
50
50
|
function dataFor(step, internal) {
|
|
51
|
-
return { ...step.data,
|
|
51
|
+
return { ...step.data, ...internal };
|
|
52
52
|
}
|
|
53
53
|
export function planChain(steps) {
|
|
54
54
|
validateFlatSteps(steps);
|
|
@@ -56,10 +56,17 @@ export function planChain(steps) {
|
|
|
56
56
|
const ids = steps.map((step) => allocate(step, seen));
|
|
57
57
|
const jobs = steps.map((step, index) => {
|
|
58
58
|
const dependency = index > 0 ? ids[index - 1] : undefined;
|
|
59
|
+
const dependencyQueue = index > 0 ? steps[index - 1].queueName : undefined;
|
|
59
60
|
return {
|
|
60
61
|
id: ids[index],
|
|
61
62
|
queue: step.queueName,
|
|
62
|
-
input: flowJobInput(
|
|
63
|
+
input: flowJobInput(step.name, dataFor(step, dependency && dependencyQueue
|
|
64
|
+
? {
|
|
65
|
+
__flowParentId: String(dependency),
|
|
66
|
+
__parentId: String(dependency),
|
|
67
|
+
__parentQueue: dependencyQueue,
|
|
68
|
+
}
|
|
69
|
+
: { __flowParentId: null }), step.opts ?? {}, { dependsOn: dependency ? [dependency] : undefined }),
|
|
63
70
|
};
|
|
64
71
|
});
|
|
65
72
|
return { batch: { jobs }, ids };
|
|
@@ -72,7 +79,7 @@ export function planBulkThen(parallel, final) {
|
|
|
72
79
|
const parallelJobs = parallel.map((step, index) => ({
|
|
73
80
|
id: parallelIds[index],
|
|
74
81
|
queue: step.queueName,
|
|
75
|
-
input: flowJobInput(dataFor(step, {
|
|
82
|
+
input: flowJobInput(step.name, dataFor(step, {
|
|
76
83
|
__parentId: String(finalId),
|
|
77
84
|
__parentQueue: final.queueName,
|
|
78
85
|
}), step.opts ?? {}, { parentId: finalId }),
|
|
@@ -80,7 +87,7 @@ export function planBulkThen(parallel, final) {
|
|
|
80
87
|
const finalJob = {
|
|
81
88
|
id: finalId,
|
|
82
89
|
queue: final.queueName,
|
|
83
|
-
input: flowJobInput(dataFor(final, {
|
|
90
|
+
input: flowJobInput(final.name, dataFor(final, {
|
|
84
91
|
__flowParentIds: parallelIds.map(String),
|
|
85
92
|
__childrenIds: parallelIds.map(String),
|
|
86
93
|
}), final.opts ?? {}, {
|
|
@@ -108,10 +115,17 @@ export function planTree(root) {
|
|
|
108
115
|
jobs.push({
|
|
109
116
|
id,
|
|
110
117
|
queue: step.queueName,
|
|
111
|
-
input: flowJobInput(
|
|
118
|
+
input: flowJobInput(step.name, dataFor(step, dependency
|
|
119
|
+
? {
|
|
120
|
+
__flowParentId: String(dependency.id),
|
|
121
|
+
__parentId: String(dependency.id),
|
|
122
|
+
__parentQueue: dependency.queue,
|
|
123
|
+
}
|
|
124
|
+
: { __flowParentId: null }), step.opts ?? {}, { dependsOn: dependency ? [dependency.id] : undefined }),
|
|
112
125
|
});
|
|
113
|
-
for (const child of step.children ?? [])
|
|
114
|
-
visit(child, id, depth + 1);
|
|
126
|
+
for (const child of step.children ?? []) {
|
|
127
|
+
visit(child, { id, queue: step.queueName }, depth + 1);
|
|
128
|
+
}
|
|
115
129
|
};
|
|
116
130
|
visit(root);
|
|
117
131
|
return { batch: { jobs }, ids };
|
|
@@ -3,7 +3,7 @@ import type { JobOptions } from './types';
|
|
|
3
3
|
/** Options intentionally unsupported by BullMQ-compatible atomic flows. */
|
|
4
4
|
export declare function assertAtomicFlowOptions(opts: JobOptions): void;
|
|
5
5
|
/** Convert public JobOptions into the domain input used by the atomic broker command. */
|
|
6
|
-
export declare function flowJobInput(data: unknown, opts: JobOptions, links?: {
|
|
6
|
+
export declare function flowJobInput(name: string, data: unknown, opts: JobOptions, links?: {
|
|
7
7
|
parentId?: JobId;
|
|
8
8
|
dependsOn?: JobId[];
|
|
9
9
|
childrenIds?: JobId[];
|
|
@@ -14,9 +14,10 @@ export function assertAtomicFlowOptions(opts) {
|
|
|
14
14
|
throw new Error('FlowProducer owns parent links; opts.parent is not allowed');
|
|
15
15
|
}
|
|
16
16
|
/** Convert public JobOptions into the domain input used by the atomic broker command. */
|
|
17
|
-
export function flowJobInput(data, opts, links = {}) {
|
|
17
|
+
export function flowJobInput(name, data, opts, links = {}) {
|
|
18
18
|
assertAtomicFlowOptions(opts);
|
|
19
19
|
return {
|
|
20
|
+
name,
|
|
20
21
|
data,
|
|
21
22
|
priority: opts.priority,
|
|
22
23
|
delay: opts.delay,
|
package/dist/client/flowPlan.js
CHANGED
|
@@ -21,7 +21,7 @@ function validateNodeShape(node, depth) {
|
|
|
21
21
|
throw new Error('flow job data must be an object');
|
|
22
22
|
}
|
|
23
23
|
for (const key of Object.keys(node.data)) {
|
|
24
|
-
if (key
|
|
24
|
+
if (key.startsWith('__')) {
|
|
25
25
|
throw new Error(`flow job data key is reserved: ${key}`);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -69,7 +69,6 @@ export function planFlows(flows, options) {
|
|
|
69
69
|
const opts = defaults ? { ...defaults, ...node.opts } : (node.opts ?? {});
|
|
70
70
|
const internalData = {
|
|
71
71
|
...node.data,
|
|
72
|
-
name: node.name,
|
|
73
72
|
};
|
|
74
73
|
if (parent) {
|
|
75
74
|
internalData.__parentId = String(parent.id);
|
|
@@ -80,7 +79,7 @@ export function planFlows(flows, options) {
|
|
|
80
79
|
jobs.push({
|
|
81
80
|
id,
|
|
82
81
|
queue: node.queueName,
|
|
83
|
-
input: flowJobInput(internalData, opts, {
|
|
82
|
+
input: flowJobInput(node.name, internalData, opts, {
|
|
84
83
|
parentId: parent?.id,
|
|
85
84
|
dependsOn: childIds.length > 0 ? childIds : undefined,
|
|
86
85
|
childrenIds: childIds.length > 0 ? childIds : undefined,
|
|
@@ -12,6 +12,7 @@ export interface PushContext {
|
|
|
12
12
|
export declare function pushJob(ctx: PushContext, queueName: string, data: unknown, opts?: JobOptions, dependsOn?: string[]): Promise<string>;
|
|
13
13
|
export interface PushWithParentOpts {
|
|
14
14
|
queueName: string;
|
|
15
|
+
name?: string;
|
|
15
16
|
data: unknown;
|
|
16
17
|
opts: JobOptions;
|
|
17
18
|
parentRef: {
|
package/dist/client/flowPush.js
CHANGED
|
@@ -102,6 +102,7 @@ export async function pushJob(ctx, queueName, data, opts = {}, dependsOn) {
|
|
|
102
102
|
if (ctx.embedded) {
|
|
103
103
|
const manager = getSharedManager();
|
|
104
104
|
const job = await manager.push(queueName, {
|
|
105
|
+
name: 'default',
|
|
105
106
|
data,
|
|
106
107
|
...managerOptions(opts),
|
|
107
108
|
removeOnComplete,
|
|
@@ -115,6 +116,7 @@ export async function pushJob(ctx, queueName, data, opts = {}, dependsOn) {
|
|
|
115
116
|
const response = await ctx.tcp.send({
|
|
116
117
|
cmd: 'PUSH',
|
|
117
118
|
queue: queueName,
|
|
119
|
+
name: 'default',
|
|
118
120
|
data,
|
|
119
121
|
...tcpOptions(opts),
|
|
120
122
|
removeOnComplete,
|
|
@@ -128,12 +130,13 @@ export async function pushJob(ctx, queueName, data, opts = {}, dependsOn) {
|
|
|
128
130
|
}
|
|
129
131
|
/** Push a job with parent/children tracking */
|
|
130
132
|
export async function pushJobWithParent(ctx, params) {
|
|
131
|
-
const { queueName, data, opts, parentRef, childIds } = params;
|
|
133
|
+
const { queueName, data, opts, parentRef, childIds, name = 'default' } = params;
|
|
132
134
|
const { removeOnComplete, removeOnFail } = parseRemoveOptions(opts);
|
|
133
135
|
if (ctx.embedded) {
|
|
134
136
|
const manager = getSharedManager();
|
|
135
137
|
const childJobIds = childIds.map((id) => jobId(id));
|
|
136
138
|
const job = await manager.push(queueName, {
|
|
139
|
+
name,
|
|
137
140
|
data,
|
|
138
141
|
...managerOptions(opts),
|
|
139
142
|
removeOnComplete,
|
|
@@ -154,6 +157,7 @@ export async function pushJobWithParent(ctx, params) {
|
|
|
154
157
|
const response = await ctx.tcp.send({
|
|
155
158
|
cmd: 'PUSH',
|
|
156
159
|
queue: queueName,
|
|
160
|
+
name,
|
|
157
161
|
data,
|
|
158
162
|
...tcpOptions(opts),
|
|
159
163
|
removeOnComplete,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jobId } from '../domain/types/job';
|
|
2
|
-
import { createFlowJobObject,
|
|
2
|
+
import { createFlowJobObject, extractFlowJobPayload } from './flowJobFactory';
|
|
3
3
|
import { getSharedManager } from './manager';
|
|
4
4
|
function traversalLimit(value, name) {
|
|
5
5
|
if (value === undefined)
|
|
@@ -43,9 +43,9 @@ async function buildEmbeddedNode(context, job, traversal) {
|
|
|
43
43
|
const nextAncestors = assertNoCycle(id, ancestors);
|
|
44
44
|
const data = job.data;
|
|
45
45
|
assertParentLink(id, job.parentId, data, expectedParent);
|
|
46
|
-
const
|
|
46
|
+
const payload = extractFlowJobPayload(job);
|
|
47
47
|
const node = {
|
|
48
|
-
job: createFlowJobObject(id, name,
|
|
48
|
+
job: createFlowJobObject(id, payload.name, payload.data, job.queue, {
|
|
49
49
|
callbacks: context.buildCallbacks(job.queue),
|
|
50
50
|
snapshot: job,
|
|
51
51
|
}),
|
|
@@ -91,9 +91,9 @@ async function buildTcpNode(context, job, traversal) {
|
|
|
91
91
|
const nextAncestors = assertNoCycle(id, ancestors);
|
|
92
92
|
const data = typeof job.data === 'object' && job.data !== null ? job.data : {};
|
|
93
93
|
assertParentLink(id, job.parentId, data, expectedParent);
|
|
94
|
-
const
|
|
94
|
+
const payload = extractFlowJobPayload(job);
|
|
95
95
|
const node = {
|
|
96
|
-
job: createFlowJobObject(id, name,
|
|
96
|
+
job: createFlowJobObject(id, payload.name, payload.data, queueName, {
|
|
97
97
|
callbacks: context.buildCallbacks(queueName),
|
|
98
98
|
snapshot: job,
|
|
99
99
|
}),
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TcpConnectionPool } from './tcpPool';
|
|
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 {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jobId } from '../domain/types/job';
|
|
2
|
+
import { getSharedManager } from './manager';
|
|
3
|
+
import { assertFlowTcpOk } from './flowJobTypes';
|
|
4
|
+
/** Keep the embedded call synchronous while providing the same result over TCP. */
|
|
5
|
+
export function getParentResult(ctx, parentId) {
|
|
6
|
+
if (ctx.embedded)
|
|
7
|
+
return getSharedManager().getResult(jobId(parentId));
|
|
8
|
+
if (!ctx.tcp)
|
|
9
|
+
return Promise.reject(new Error('FlowProducer TCP connection is unavailable'));
|
|
10
|
+
return ctx.tcp.send({ cmd: 'GetResult', id: parentId }).then((response) => {
|
|
11
|
+
assertFlowTcpOk(response, 'GetResult');
|
|
12
|
+
return response.result;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
/** Resolve parent results in input order and preserve falsy completed values. */
|
|
16
|
+
export function getParentResults(ctx, parentIds) {
|
|
17
|
+
if (ctx.embedded) {
|
|
18
|
+
const manager = getSharedManager();
|
|
19
|
+
const results = new Map();
|
|
20
|
+
for (const id of parentIds) {
|
|
21
|
+
const result = manager.getResult(jobId(id));
|
|
22
|
+
if (result !== undefined)
|
|
23
|
+
results.set(id, result);
|
|
24
|
+
}
|
|
25
|
+
return results;
|
|
26
|
+
}
|
|
27
|
+
const tcp = ctx.tcp;
|
|
28
|
+
if (!tcp)
|
|
29
|
+
return Promise.reject(new Error('FlowProducer TCP connection is unavailable'));
|
|
30
|
+
return Promise.all(parentIds.map(async (id) => {
|
|
31
|
+
const response = await tcp.send({ cmd: 'GetResult', id });
|
|
32
|
+
assertFlowTcpOk(response, 'GetResult');
|
|
33
|
+
return [id, response.result];
|
|
34
|
+
})).then((entries) => {
|
|
35
|
+
const results = new Map();
|
|
36
|
+
for (const [id, result] of entries) {
|
|
37
|
+
if (result !== undefined)
|
|
38
|
+
results.set(id, result);
|
|
39
|
+
}
|
|
40
|
+
return results;
|
|
41
|
+
});
|
|
42
|
+
}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -23,12 +23,14 @@ export { defineConfig } from '../config';
|
|
|
23
23
|
export type { BunqueueConfig } from '../config';
|
|
24
24
|
export { Queue } from './queue';
|
|
25
25
|
export { Worker } from './worker';
|
|
26
|
+
export type { ManualJob } from './worker/types';
|
|
26
27
|
export { Bunqueue } from './bunqueue';
|
|
27
28
|
export type { BunqueueOptions, BunqueueMiddleware, RetryStrategy, RetryConfig, CircuitBreakerConfig, TriggerRule, PriorityAgingConfig, BatchProcessor, BatchConfig, JobTtlConfig, BunqueueDeduplicationConfig, BunqueueDebounceConfig, BunqueueDlqConfig, } from './bunqueue';
|
|
28
29
|
export { SandboxedWorker } from './sandboxedWorker';
|
|
29
30
|
export { Forwarder } from './forwarder';
|
|
30
31
|
export type { ForwardOptions, ForwardedInfo } from './forwarder';
|
|
31
32
|
export { QueueEvents } from './events';
|
|
33
|
+
export type { ActiveEvent, CompletedEvent, DelayedEvent, DrainedEvent, DuplicatedEvent, FailedEvent, ProgressEvent, QueueEventsOptions, RemovedEvent, RetriedEvent, StalledEvent, WaitingChildrenEvent, WaitingEvent, } from './types/events';
|
|
32
34
|
export { QueueGroup } from './queueGroup';
|
|
33
35
|
export { FlowProducer } from './flow';
|
|
34
36
|
export { UnrecoverableError, DelayedError } from './errors';
|
|
@@ -36,7 +38,7 @@ export { shutdownManager } from './manager';
|
|
|
36
38
|
export { closeSharedTcpClient } from './tcpClient';
|
|
37
39
|
export type { ConnectionHealth } from './tcpClient';
|
|
38
40
|
export { TcpConnectionPool, getSharedPool, closeAllSharedPools } from './tcpPool';
|
|
39
|
-
export type { Job, JobOptions, JobJson, JobJsonRaw, QueueOptions, WorkerOptions, Processor, FlowJobData, StallConfig, DlqConfig, DlqEntry, DlqStats, DlqFilter, FailureReason, ConnectionOptions, ParentOpts, RateLimiterOptions, ChangePriorityOpts, GetDependenciesOpts, JobDependencies, JobDependenciesCount, } from './types';
|
|
41
|
+
export type { Job, JobOptions, JobJson, JobJsonRaw, QueueOptions, WorkerOptions, Processor, FlowJobData, StallConfig, DlqConfig, DlqEntry, DlqStats, DlqFilter, FailureReason, ConnectionOptions, ParentOpts, RateLimiterOptions, ChangePriorityOpts, GetDependenciesOpts, JobDependencies, JobDependenciesCount, QueueMetrics, QueueMetricsMeta, QueueMetricType, } from './types';
|
|
40
42
|
export type { FlowStep, FlowResult, FlowJob, JobNode, FlowProducerOptions, FlowOpts } from './flow';
|
|
41
43
|
export type { RepeatOpts, JobTemplate, SchedulerInfo } from './queue/scheduler';
|
|
42
44
|
export type { SandboxedWorkerOptions } from './sandboxedWorker';
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Job Conversion Functions
|
|
3
|
-
* Convert internal job types to public API types
|
|
4
|
-
*/
|
|
5
1
|
import type { DlqEntry as InternalDlqEntry } from '../domain/types/dlq';
|
|
6
2
|
import type { Job, DlqEntry } from './types';
|
|
7
|
-
import type { CreatePublicJobOptions, ToPublicJobOptions } from './jobConversionTypes';
|
|
8
|
-
export type { CreatePublicJobOptions, ToPublicJobOptions } from './jobConversionTypes';
|
|
3
|
+
import type { CreatePublicJobOptions, PublicJobMethodContext, ToPublicJobOptions } from './jobConversionTypes';
|
|
4
|
+
export type { CreatePublicJobOptions, PublicJobMethodContext, ToPublicJobOptions, } from './jobConversionTypes';
|
|
9
5
|
/** Convert internal job to public job (with methods) */
|
|
10
6
|
export declare function createPublicJob<T>(opts: CreatePublicJobOptions): Job<T>;
|
|
11
7
|
/** Simple public job without methods (for Queue.getJob) */
|
|
12
8
|
export declare function toPublicJob<T>(opts: ToPublicJobOptions): Job<T>;
|
|
13
9
|
/** Convert internal DLQ entry to public DLQ entry */
|
|
14
|
-
export declare function toDlqEntry<T>(entry: InternalDlqEntry): DlqEntry<T>;
|
|
10
|
+
export declare function toDlqEntry<T>(entry: InternalDlqEntry, methods: PublicJobMethodContext): DlqEntry<T>;
|