bullmq 1.77.0 → 1.77.3

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.
@@ -77,6 +77,9 @@ local jobCounter = rcall("INCR", KEYS[4])
77
77
  -- Includes
78
78
  --- @include "includes/updateParentDepsIfNeeded"
79
79
 
80
+ -- Trim events before emiting them to avoid trimming events emitted in this script
81
+ trimEvents(KEYS[3], KEYS[8])
82
+
80
83
  local parentDependenciesKey = args[7]
81
84
  if args[2] == "" then
82
85
  jobId = jobCounter
@@ -174,6 +177,4 @@ if parentDependenciesKey ~= nil then
174
177
  rcall("SADD", parentDependenciesKey, jobIdKey)
175
178
  end
176
179
 
177
- trimEvents(KEYS[3], KEYS[8])
178
-
179
180
  return jobId .. "" -- convert to string
@@ -42,8 +42,10 @@ local jobs = rcall(command, KEYS[1], rangeStart, rangeEnd)
42
42
  local deleted = {}
43
43
  local deletedCount = 0
44
44
  local jobTS
45
+ local deletionMarker = ''
46
+ local jobIdsLen = #jobs
45
47
  if ARGV[4] == "active" then
46
- for _, job in ipairs(jobs) do
48
+ for i, job in ipairs(jobs) do
47
49
  if limit > 0 and deletedCount >= limit then
48
50
  break
49
51
  end
@@ -52,7 +54,9 @@ if ARGV[4] == "active" then
52
54
  if (rcall("EXISTS", jobKey .. ":lock") == 0) then
53
55
  jobTS = rcall("HGET", jobKey, "timestamp")
54
56
  if (not jobTS or jobTS < ARGV[2]) then
55
- rcall("LREM", KEYS[1], 0, job)
57
+ -- replace the entry with a deletion marker; the actual deletion will
58
+ -- occur at the end of the script
59
+ rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
56
60
  removeJob(job, true, ARGV[1])
57
61
  deletedCount = deletedCount + 1
58
62
  table.insert(deleted, job)
@@ -60,7 +64,7 @@ if ARGV[4] == "active" then
60
64
  end
61
65
  end
62
66
  else
63
- for _, job in ipairs(jobs) do
67
+ for i, job in ipairs(jobs) do
64
68
  if limit > 0 and deletedCount >= limit then
65
69
  break
66
70
  end
@@ -69,7 +73,9 @@ else
69
73
  jobTS = rcall("HGET", jobKey, "timestamp")
70
74
  if (not jobTS or jobTS < ARGV[2]) then
71
75
  if isList then
72
- rcall("LREM", KEYS[1], 0, job)
76
+ -- replace the entry with a deletion marker; the actual deletion will
77
+ -- occur at the end of the script
78
+ rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
73
79
  end
74
80
  removeJob(job, true, ARGV[1])
75
81
  deletedCount = deletedCount + 1
@@ -86,6 +92,10 @@ else
86
92
  end
87
93
  end
88
94
 
95
+ if isList then
96
+ rcall("LREM", KEYS[1], 0, deletionMarker)
97
+ end
98
+
89
99
  rcall("XADD", KEYS[2], "*", "event", "cleaned", "count", deletedCount)
90
100
 
91
101
  return deleted
@@ -7,7 +7,7 @@
7
7
 
8
8
  local function removeJob(key, hard, baseKey)
9
9
  local jobKey = baseKey .. key
10
- removeParentDependencyKey(jobKey, hard, baseKey)
10
+ removeParentDependencyKey(jobKey, hard, nil, baseKey)
11
11
  rcall("DEL", jobKey, jobKey .. ':logs',
12
12
  jobKey .. ':dependencies', jobKey .. ':processed')
13
13
  end
@@ -19,9 +19,10 @@ local function moveParentToWait(parentPrefix, parentId, emitEvent)
19
19
  end
20
20
  end
21
21
 
22
- local function removeParentDependencyKey(jobKey, hard, baseKey)
23
- local parentKey = rcall("HGET", jobKey, "parentKey")
24
- if( (type(parentKey) == "string") and parentKey ~= "" and (rcall("EXISTS", parentKey) == 1)) then
22
+ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
23
+ if parentKey then
24
+ local parentProcessedKey = parentKey .. ":processed"
25
+ rcall("HDEL", parentProcessedKey, jobKey)
25
26
  local parentDependenciesKey = parentKey .. ":dependencies"
26
27
  local result = rcall("SREM", parentDependenciesKey, jobKey)
27
28
  if result > 0 then
@@ -34,7 +35,7 @@ local function removeParentDependencyKey(jobKey, hard, baseKey)
34
35
 
35
36
  if hard then
36
37
  if parentPrefix == baseKey then
37
- removeParentDependencyKey(parentKey, hard, baseKey)
38
+ removeParentDependencyKey(parentKey, hard, nil, baseKey)
38
39
  rcall("DEL", parentKey, parentKey .. ':logs',
39
40
  parentKey .. ':dependencies', parentKey .. ':processed')
40
41
  else
@@ -45,6 +46,34 @@ local function removeParentDependencyKey(jobKey, hard, baseKey)
45
46
  end
46
47
  end
47
48
  end
49
+ else
50
+ local missedParentKey = rcall("HGET", jobKey, "parentKey")
51
+ if( (type(missedParentKey) == "string") and missedParentKey ~= "" and (rcall("EXISTS", missedParentKey) == 1)) then
52
+ local parentProcessedKey = missedParentKey .. ":processed"
53
+ rcall("HDEL", parentProcessedKey, jobKey)
54
+ local parentDependenciesKey = missedParentKey .. ":dependencies"
55
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
56
+ if result > 0 then
57
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
58
+ if pendingDependencies == 0 then
59
+ local parentId = getJobIdFromKey(missedParentKey)
60
+ local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
61
+
62
+ rcall("ZREM", parentPrefix .. "waiting-children", parentId)
63
+
64
+ if hard then
65
+ if parentPrefix == baseKey then
66
+ removeParentDependencyKey(missedParentKey, hard, nil, baseKey)
67
+ rcall("DEL", missedParentKey, missedParentKey .. ':logs',
68
+ missedParentKey .. ':dependencies', missedParentKey .. ':processed')
69
+ else
70
+ moveParentToWait(parentPrefix, parentId)
71
+ end
72
+ else
73
+ moveParentToWait(parentPrefix, parentId, true)
74
+ end
75
+ end
76
+ end
77
+ end
48
78
  end
49
79
  end
50
-
@@ -4,7 +4,7 @@
4
4
 
5
5
  local function trimEvents(metaKey, eventStreamKey)
6
6
  local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
7
- if (maxEvents) then
7
+ if maxEvents ~= false then
8
8
  rcall("XTRIM", eventStreamKey, "MAXLEN", "~", maxEvents)
9
9
  else
10
10
  rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
@@ -32,6 +32,9 @@ if rcall("EXISTS", KEYS[5]) == 1 then return {{}, {}} end
32
32
 
33
33
  rcall("SET", KEYS[5], ARGV[3], "PX", ARGV[4])
34
34
 
35
+ -- Trim events before emiting them to avoid trimming events emitted in this script
36
+ trimEvents(KEYS[6], KEYS[8])
37
+
35
38
  -- Move all stalled jobs to wait
36
39
  local stalling = rcall('SMEMBERS', KEYS[1])
37
40
  local stalled = {}
@@ -97,6 +100,4 @@ if (#active > 0) then
97
100
  end
98
101
  end
99
102
 
100
- trimEvents(KEYS[6], KEYS[8])
101
-
102
103
  return {failed, stalled}
@@ -42,35 +42,44 @@ local function isLocked( prefix, jobId)
42
42
  return true
43
43
  end
44
44
 
45
- local function removeJob( prefix, jobId)
45
+ local function removeJob( prefix, jobId, parentKey)
46
46
  local jobKey = prefix .. jobId;
47
47
 
48
- removeParentDependencyKey(jobKey)
49
-
50
- rcall("LREM", prefix .. "active", 0, jobId)
51
- rcall("LREM", prefix .. "wait", 0, jobId)
52
- rcall("ZREM", prefix .. "delayed", jobId)
53
- rcall("LREM", prefix .. "paused", 0, jobId)
54
- rcall("ZREM", prefix .. "completed", jobId)
55
- rcall("ZREM", prefix .. "failed", jobId)
56
- rcall("ZREM", prefix .. "priority", jobId)
57
- rcall("ZREM", prefix .. "waiting-children", jobId)
58
- rcall("DEL", jobKey, jobKey .. ":logs", jobKey .. ":processed")
48
+ removeParentDependencyKey(jobKey, false, parentKey)
59
49
 
60
50
  -- Check if this job has children
61
51
  -- If so, we are going to try to remove the children recursively in deep first way because
62
52
  -- if some job is locked we must exit with and error.
53
+ --local countProcessed = rcall("HLEN", jobKey .. ":processed")
54
+ local processed = rcall("HGETALL", jobKey .. ":processed")
55
+
56
+ if (#processed > 0) then
57
+ for i = 1, #processed, 2 do
58
+ local childJobId = getJobIdFromKey(processed[i])
59
+ local childJobPrefix = getJobKeyPrefix(processed[i], childJobId)
60
+ removeJob( childJobPrefix, childJobId, jobKey )
61
+ end
62
+ end
63
+
63
64
  local dependencies = rcall("SMEMBERS", jobKey .. ":dependencies")
64
65
  if (#dependencies > 0) then
65
66
  for i, childJobKey in ipairs(dependencies) do
66
67
  -- We need to get the jobId for this job.
67
68
  local childJobId = getJobIdFromKey(childJobKey)
68
69
  local childJobPrefix = getJobKeyPrefix(childJobKey, childJobId)
69
- removeJob( childJobPrefix, childJobId )
70
+ removeJob( childJobPrefix, childJobId, jobKey )
70
71
  end
71
72
  end
72
73
 
73
- rcall("DEL", jobKey .. ":dependencies")
74
+ rcall("LREM", prefix .. "active", 0, jobId)
75
+ rcall("LREM", prefix .. "wait", 0, jobId)
76
+ rcall("ZREM", prefix .. "delayed", jobId)
77
+ rcall("LREM", prefix .. "paused", 0, jobId)
78
+ rcall("ZREM", prefix .. "completed", jobId)
79
+ rcall("ZREM", prefix .. "failed", jobId)
80
+ rcall("ZREM", prefix .. "priority", jobId)
81
+ rcall("ZREM", prefix .. "waiting-children", jobId)
82
+ rcall("DEL", jobKey, jobKey .. ":logs", jobKey .. ":dependencies", jobKey .. ":processed")
74
83
 
75
84
  -- -- delete keys related to rate limiter
76
85
  -- local limiterIndexTable = KEYS[10] .. ":index"
package/dist/cjs/utils.js CHANGED
@@ -112,14 +112,19 @@ function isNotConnectionError(error) {
112
112
  exports.isNotConnectionError = isNotConnectionError;
113
113
  exports.asyncSend = (proc, msg) => {
114
114
  return new Promise((resolve, reject) => {
115
- proc.send(msg, (err) => {
116
- if (err) {
117
- reject(err);
118
- }
119
- else {
120
- resolve();
121
- }
122
- });
115
+ if (typeof proc.send === 'function') {
116
+ proc.send(msg, (err) => {
117
+ if (err) {
118
+ reject(err);
119
+ }
120
+ else {
121
+ resolve();
122
+ }
123
+ });
124
+ }
125
+ else {
126
+ resolve();
127
+ }
123
128
  });
124
129
  };
125
130
  exports.childSend = (proc, msg) => exports.asyncSend(proc, msg);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,9 @@ local jobCounter = rcall("INCR", KEYS[4])
77
77
  -- Includes
78
78
  --- @include "includes/updateParentDepsIfNeeded"
79
79
 
80
+ -- Trim events before emiting them to avoid trimming events emitted in this script
81
+ trimEvents(KEYS[3], KEYS[8])
82
+
80
83
  local parentDependenciesKey = args[7]
81
84
  if args[2] == "" then
82
85
  jobId = jobCounter
@@ -174,6 +177,4 @@ if parentDependenciesKey ~= nil then
174
177
  rcall("SADD", parentDependenciesKey, jobIdKey)
175
178
  end
176
179
 
177
- trimEvents(KEYS[3], KEYS[8])
178
-
179
180
  return jobId .. "" -- convert to string
@@ -42,8 +42,10 @@ local jobs = rcall(command, KEYS[1], rangeStart, rangeEnd)
42
42
  local deleted = {}
43
43
  local deletedCount = 0
44
44
  local jobTS
45
+ local deletionMarker = ''
46
+ local jobIdsLen = #jobs
45
47
  if ARGV[4] == "active" then
46
- for _, job in ipairs(jobs) do
48
+ for i, job in ipairs(jobs) do
47
49
  if limit > 0 and deletedCount >= limit then
48
50
  break
49
51
  end
@@ -52,7 +54,9 @@ if ARGV[4] == "active" then
52
54
  if (rcall("EXISTS", jobKey .. ":lock") == 0) then
53
55
  jobTS = rcall("HGET", jobKey, "timestamp")
54
56
  if (not jobTS or jobTS < ARGV[2]) then
55
- rcall("LREM", KEYS[1], 0, job)
57
+ -- replace the entry with a deletion marker; the actual deletion will
58
+ -- occur at the end of the script
59
+ rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
56
60
  removeJob(job, true, ARGV[1])
57
61
  deletedCount = deletedCount + 1
58
62
  table.insert(deleted, job)
@@ -60,7 +64,7 @@ if ARGV[4] == "active" then
60
64
  end
61
65
  end
62
66
  else
63
- for _, job in ipairs(jobs) do
67
+ for i, job in ipairs(jobs) do
64
68
  if limit > 0 and deletedCount >= limit then
65
69
  break
66
70
  end
@@ -69,7 +73,9 @@ else
69
73
  jobTS = rcall("HGET", jobKey, "timestamp")
70
74
  if (not jobTS or jobTS < ARGV[2]) then
71
75
  if isList then
72
- rcall("LREM", KEYS[1], 0, job)
76
+ -- replace the entry with a deletion marker; the actual deletion will
77
+ -- occur at the end of the script
78
+ rcall("LSET", KEYS[1], rangeEnd - jobIdsLen + i, deletionMarker)
73
79
  end
74
80
  removeJob(job, true, ARGV[1])
75
81
  deletedCount = deletedCount + 1
@@ -86,6 +92,10 @@ else
86
92
  end
87
93
  end
88
94
 
95
+ if isList then
96
+ rcall("LREM", KEYS[1], 0, deletionMarker)
97
+ end
98
+
89
99
  rcall("XADD", KEYS[2], "*", "event", "cleaned", "count", deletedCount)
90
100
 
91
101
  return deleted
@@ -7,7 +7,7 @@
7
7
 
8
8
  local function removeJob(key, hard, baseKey)
9
9
  local jobKey = baseKey .. key
10
- removeParentDependencyKey(jobKey, hard, baseKey)
10
+ removeParentDependencyKey(jobKey, hard, nil, baseKey)
11
11
  rcall("DEL", jobKey, jobKey .. ':logs',
12
12
  jobKey .. ':dependencies', jobKey .. ':processed')
13
13
  end
@@ -19,9 +19,10 @@ local function moveParentToWait(parentPrefix, parentId, emitEvent)
19
19
  end
20
20
  end
21
21
 
22
- local function removeParentDependencyKey(jobKey, hard, baseKey)
23
- local parentKey = rcall("HGET", jobKey, "parentKey")
24
- if( (type(parentKey) == "string") and parentKey ~= "" and (rcall("EXISTS", parentKey) == 1)) then
22
+ local function removeParentDependencyKey(jobKey, hard, parentKey, baseKey)
23
+ if parentKey then
24
+ local parentProcessedKey = parentKey .. ":processed"
25
+ rcall("HDEL", parentProcessedKey, jobKey)
25
26
  local parentDependenciesKey = parentKey .. ":dependencies"
26
27
  local result = rcall("SREM", parentDependenciesKey, jobKey)
27
28
  if result > 0 then
@@ -34,7 +35,7 @@ local function removeParentDependencyKey(jobKey, hard, baseKey)
34
35
 
35
36
  if hard then
36
37
  if parentPrefix == baseKey then
37
- removeParentDependencyKey(parentKey, hard, baseKey)
38
+ removeParentDependencyKey(parentKey, hard, nil, baseKey)
38
39
  rcall("DEL", parentKey, parentKey .. ':logs',
39
40
  parentKey .. ':dependencies', parentKey .. ':processed')
40
41
  else
@@ -45,6 +46,34 @@ local function removeParentDependencyKey(jobKey, hard, baseKey)
45
46
  end
46
47
  end
47
48
  end
49
+ else
50
+ local missedParentKey = rcall("HGET", jobKey, "parentKey")
51
+ if( (type(missedParentKey) == "string") and missedParentKey ~= "" and (rcall("EXISTS", missedParentKey) == 1)) then
52
+ local parentProcessedKey = missedParentKey .. ":processed"
53
+ rcall("HDEL", parentProcessedKey, jobKey)
54
+ local parentDependenciesKey = missedParentKey .. ":dependencies"
55
+ local result = rcall("SREM", parentDependenciesKey, jobKey)
56
+ if result > 0 then
57
+ local pendingDependencies = rcall("SCARD", parentDependenciesKey)
58
+ if pendingDependencies == 0 then
59
+ local parentId = getJobIdFromKey(missedParentKey)
60
+ local parentPrefix = getJobKeyPrefix(missedParentKey, parentId)
61
+
62
+ rcall("ZREM", parentPrefix .. "waiting-children", parentId)
63
+
64
+ if hard then
65
+ if parentPrefix == baseKey then
66
+ removeParentDependencyKey(missedParentKey, hard, nil, baseKey)
67
+ rcall("DEL", missedParentKey, missedParentKey .. ':logs',
68
+ missedParentKey .. ':dependencies', missedParentKey .. ':processed')
69
+ else
70
+ moveParentToWait(parentPrefix, parentId)
71
+ end
72
+ else
73
+ moveParentToWait(parentPrefix, parentId, true)
74
+ end
75
+ end
76
+ end
77
+ end
48
78
  end
49
79
  end
50
-
@@ -4,7 +4,7 @@
4
4
 
5
5
  local function trimEvents(metaKey, eventStreamKey)
6
6
  local maxEvents = rcall("HGET", metaKey, "opts.maxLenEvents")
7
- if (maxEvents) then
7
+ if maxEvents ~= false then
8
8
  rcall("XTRIM", eventStreamKey, "MAXLEN", "~", maxEvents)
9
9
  else
10
10
  rcall("XTRIM", eventStreamKey, "MAXLEN", "~", 10000)
@@ -32,6 +32,9 @@ if rcall("EXISTS", KEYS[5]) == 1 then return {{}, {}} end
32
32
 
33
33
  rcall("SET", KEYS[5], ARGV[3], "PX", ARGV[4])
34
34
 
35
+ -- Trim events before emiting them to avoid trimming events emitted in this script
36
+ trimEvents(KEYS[6], KEYS[8])
37
+
35
38
  -- Move all stalled jobs to wait
36
39
  local stalling = rcall('SMEMBERS', KEYS[1])
37
40
  local stalled = {}
@@ -97,6 +100,4 @@ if (#active > 0) then
97
100
  end
98
101
  end
99
102
 
100
- trimEvents(KEYS[6], KEYS[8])
101
-
102
103
  return {failed, stalled}
@@ -42,35 +42,44 @@ local function isLocked( prefix, jobId)
42
42
  return true
43
43
  end
44
44
 
45
- local function removeJob( prefix, jobId)
45
+ local function removeJob( prefix, jobId, parentKey)
46
46
  local jobKey = prefix .. jobId;
47
47
 
48
- removeParentDependencyKey(jobKey)
49
-
50
- rcall("LREM", prefix .. "active", 0, jobId)
51
- rcall("LREM", prefix .. "wait", 0, jobId)
52
- rcall("ZREM", prefix .. "delayed", jobId)
53
- rcall("LREM", prefix .. "paused", 0, jobId)
54
- rcall("ZREM", prefix .. "completed", jobId)
55
- rcall("ZREM", prefix .. "failed", jobId)
56
- rcall("ZREM", prefix .. "priority", jobId)
57
- rcall("ZREM", prefix .. "waiting-children", jobId)
58
- rcall("DEL", jobKey, jobKey .. ":logs", jobKey .. ":processed")
48
+ removeParentDependencyKey(jobKey, false, parentKey)
59
49
 
60
50
  -- Check if this job has children
61
51
  -- If so, we are going to try to remove the children recursively in deep first way because
62
52
  -- if some job is locked we must exit with and error.
53
+ --local countProcessed = rcall("HLEN", jobKey .. ":processed")
54
+ local processed = rcall("HGETALL", jobKey .. ":processed")
55
+
56
+ if (#processed > 0) then
57
+ for i = 1, #processed, 2 do
58
+ local childJobId = getJobIdFromKey(processed[i])
59
+ local childJobPrefix = getJobKeyPrefix(processed[i], childJobId)
60
+ removeJob( childJobPrefix, childJobId, jobKey )
61
+ end
62
+ end
63
+
63
64
  local dependencies = rcall("SMEMBERS", jobKey .. ":dependencies")
64
65
  if (#dependencies > 0) then
65
66
  for i, childJobKey in ipairs(dependencies) do
66
67
  -- We need to get the jobId for this job.
67
68
  local childJobId = getJobIdFromKey(childJobKey)
68
69
  local childJobPrefix = getJobKeyPrefix(childJobKey, childJobId)
69
- removeJob( childJobPrefix, childJobId )
70
+ removeJob( childJobPrefix, childJobId, jobKey )
70
71
  end
71
72
  end
72
73
 
73
- rcall("DEL", jobKey .. ":dependencies")
74
+ rcall("LREM", prefix .. "active", 0, jobId)
75
+ rcall("LREM", prefix .. "wait", 0, jobId)
76
+ rcall("ZREM", prefix .. "delayed", jobId)
77
+ rcall("LREM", prefix .. "paused", 0, jobId)
78
+ rcall("ZREM", prefix .. "completed", jobId)
79
+ rcall("ZREM", prefix .. "failed", jobId)
80
+ rcall("ZREM", prefix .. "priority", jobId)
81
+ rcall("ZREM", prefix .. "waiting-children", jobId)
82
+ rcall("DEL", jobKey, jobKey .. ":logs", jobKey .. ":dependencies", jobKey .. ":processed")
74
83
 
75
84
  -- -- delete keys related to rate limiter
76
85
  -- local limiterIndexTable = KEYS[10] .. ":index"
package/dist/esm/utils.js CHANGED
@@ -99,14 +99,19 @@ export function isNotConnectionError(error) {
99
99
  }
100
100
  export const asyncSend = (proc, msg) => {
101
101
  return new Promise((resolve, reject) => {
102
- proc.send(msg, (err) => {
103
- if (err) {
104
- reject(err);
105
- }
106
- else {
107
- resolve();
108
- }
109
- });
102
+ if (typeof proc.send === 'function') {
103
+ proc.send(msg, (err) => {
104
+ if (err) {
105
+ reject(err);
106
+ }
107
+ else {
108
+ resolve();
109
+ }
110
+ });
111
+ }
112
+ else {
113
+ resolve();
114
+ }
110
115
  });
111
116
  };
112
117
  export const childSend = (proc, msg) => asyncSend(proc, msg);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bullmq",
3
- "version": "1.77.0",
3
+ "version": "1.77.3",
4
4
  "description": "Queue for messages and jobs based on Redis",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",