bullmq 4.0.0-beta.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (820) hide show
  1. package/README.md +153 -19
  2. package/dist/cjs/classes/async-fifo-queue.js +90 -0
  3. package/dist/cjs/classes/async-fifo-queue.js.map +1 -0
  4. package/dist/{classes → cjs/classes}/backoffs.js +10 -9
  5. package/dist/cjs/classes/backoffs.js.map +1 -0
  6. package/dist/cjs/classes/child-pool.js +64 -0
  7. package/dist/cjs/classes/child-pool.js.map +1 -0
  8. package/dist/cjs/classes/child-processor.js +150 -0
  9. package/dist/cjs/classes/child-processor.js.map +1 -0
  10. package/dist/cjs/classes/child.js +216 -0
  11. package/dist/cjs/classes/child.js.map +1 -0
  12. package/dist/cjs/classes/delayed-error.js +19 -0
  13. package/dist/cjs/classes/delayed-error.js.map +1 -0
  14. package/dist/cjs/classes/flow-producer.js +283 -0
  15. package/dist/cjs/classes/flow-producer.js.map +1 -0
  16. package/dist/{classes → cjs/classes}/index.js +11 -3
  17. package/dist/cjs/classes/index.js.map +1 -0
  18. package/dist/cjs/classes/job.js +768 -0
  19. package/dist/cjs/classes/job.js.map +1 -0
  20. package/dist/cjs/classes/main-base.js +45 -0
  21. package/dist/cjs/classes/main-base.js.map +1 -0
  22. package/dist/cjs/classes/main-worker.js +10 -0
  23. package/dist/cjs/classes/main-worker.js.map +1 -0
  24. package/dist/cjs/classes/main.js +10 -0
  25. package/dist/cjs/classes/main.js.map +1 -0
  26. package/dist/cjs/classes/queue-base.js +135 -0
  27. package/dist/cjs/classes/queue-base.js.map +1 -0
  28. package/dist/cjs/classes/queue-events.js +120 -0
  29. package/dist/cjs/classes/queue-events.js.map +1 -0
  30. package/dist/cjs/classes/queue-getters.js +347 -0
  31. package/dist/cjs/classes/queue-getters.js.map +1 -0
  32. package/dist/cjs/classes/queue-keys.js +45 -0
  33. package/dist/cjs/classes/queue-keys.js.map +1 -0
  34. package/dist/cjs/classes/queue.js +275 -0
  35. package/dist/cjs/classes/queue.js.map +1 -0
  36. package/dist/cjs/classes/redis-connection.js +207 -0
  37. package/dist/cjs/classes/redis-connection.js.map +1 -0
  38. package/dist/cjs/classes/repeat.js +149 -0
  39. package/dist/cjs/classes/repeat.js.map +1 -0
  40. package/dist/{classes → cjs/classes}/sandbox.js +18 -14
  41. package/dist/cjs/classes/sandbox.js.map +1 -0
  42. package/dist/cjs/classes/scripts.js +658 -0
  43. package/dist/cjs/classes/scripts.js.map +1 -0
  44. package/dist/cjs/classes/unrecoverable-error.js +19 -0
  45. package/dist/cjs/classes/unrecoverable-error.js.map +1 -0
  46. package/dist/cjs/classes/waiting-children-error.js +19 -0
  47. package/dist/cjs/classes/waiting-children-error.js.map +1 -0
  48. package/dist/cjs/classes/worker.js +577 -0
  49. package/dist/cjs/classes/worker.js.map +1 -0
  50. package/dist/cjs/commands/addJob-9.lua +170 -0
  51. package/dist/cjs/commands/changeDelay-3.lua +40 -0
  52. package/dist/cjs/commands/changePriority-5.lua +52 -0
  53. package/dist/cjs/commands/cleanJobsInSet-2.lua +48 -0
  54. package/dist/cjs/commands/drain-4.lua +26 -0
  55. package/dist/{commands → cjs/commands}/extendLock-2.lua +1 -0
  56. package/dist/cjs/commands/getCounts-1.lua +35 -0
  57. package/dist/cjs/commands/getRanges-1.lua +69 -0
  58. package/dist/cjs/commands/getState-8.lua +66 -0
  59. package/dist/cjs/commands/getStateV2-8.lua +59 -0
  60. package/dist/cjs/commands/includes/addDelayMarkerIfNeeded.lua +15 -0
  61. package/dist/cjs/commands/includes/addJobWithPriority.lua +15 -0
  62. package/dist/cjs/commands/includes/addPriorityMarkerIfNeeded.lua +12 -0
  63. package/dist/cjs/commands/includes/batches.lua +18 -0
  64. package/dist/cjs/commands/includes/checkItemInList.lua +12 -0
  65. package/dist/cjs/commands/includes/checkStalledJobs.lua +139 -0
  66. package/dist/cjs/commands/includes/cleanList.lua +47 -0
  67. package/dist/cjs/commands/includes/cleanSet.lua +39 -0
  68. package/dist/cjs/commands/includes/collectMetrics.lua +46 -0
  69. package/dist/cjs/commands/includes/destructureJobKey.lua +12 -0
  70. package/dist/cjs/commands/includes/getJobsInZset.lua +12 -0
  71. package/dist/cjs/commands/includes/getNextDelayedTimestamp.lua +13 -0
  72. package/dist/cjs/commands/includes/getRateLimitTTL.lua +17 -0
  73. package/dist/cjs/commands/includes/getTargetQueueList.lua +12 -0
  74. package/dist/cjs/commands/includes/getTimestamp.lua +19 -0
  75. package/dist/cjs/commands/includes/getZSetItems.lua +7 -0
  76. package/dist/cjs/commands/includes/isLocked.lua +31 -0
  77. package/dist/cjs/commands/includes/moveJobFromPriorityToActive.lua +14 -0
  78. package/dist/cjs/commands/includes/moveParentFromWaitingChildrenToFailed.lua +28 -0
  79. package/dist/cjs/commands/includes/prepareJobForProcessing.lua +74 -0
  80. package/dist/cjs/commands/includes/promoteDelayedJobs.lua +39 -0
  81. package/dist/cjs/commands/includes/pushBackJobWithPriority.lua +9 -0
  82. package/dist/cjs/commands/includes/removeJob.lua +13 -0
  83. package/dist/cjs/commands/includes/removeJobFromAnyState.lua +35 -0
  84. package/dist/cjs/commands/includes/removeJobs.lua +25 -0
  85. package/dist/cjs/commands/includes/removeJobsByMaxAge.lua +15 -0
  86. package/dist/cjs/commands/includes/removeJobsByMaxCount.lua +15 -0
  87. package/dist/cjs/commands/includes/removeParentDependencyKey.lua +77 -0
  88. package/dist/cjs/commands/includes/removeZSetJobs.lua +15 -0
  89. package/dist/cjs/commands/includes/trimEvents.lua +12 -0
  90. package/dist/cjs/commands/includes/updateParentDepsIfNeeded.lua +40 -0
  91. package/dist/cjs/commands/index.js +10 -0
  92. package/dist/cjs/commands/index.js.map +1 -0
  93. package/dist/cjs/commands/isFinished-3.lua +48 -0
  94. package/dist/cjs/commands/isJobInList-1.lua +16 -0
  95. package/dist/cjs/commands/moveJobFromActiveToWait-9.lua +53 -0
  96. package/dist/cjs/commands/moveStalledJobsToWait-8.lua +24 -0
  97. package/dist/cjs/commands/moveToActive-10.lua +116 -0
  98. package/dist/cjs/commands/moveToDelayed-8.lua +66 -0
  99. package/dist/cjs/commands/moveToFinished-13.lua +250 -0
  100. package/dist/cjs/commands/moveToWaitingChildren-4.lua +62 -0
  101. package/dist/cjs/commands/obliterate-2.lua +102 -0
  102. package/dist/cjs/commands/pause-5.lua +36 -0
  103. package/dist/cjs/commands/promote-7.lua +57 -0
  104. package/dist/cjs/commands/releaseLock-1.lua +19 -0
  105. package/dist/cjs/commands/removeJob-1.lua +71 -0
  106. package/{src → dist/cjs}/commands/removeRepeatable-2.lua +13 -1
  107. package/dist/cjs/commands/reprocessJob-6.lua +43 -0
  108. package/dist/cjs/commands/retryJob-9.lua +69 -0
  109. package/dist/cjs/commands/retryJobs-6.lua +53 -0
  110. package/dist/cjs/commands/saveStacktrace-1.lua +22 -0
  111. package/dist/cjs/commands/script-loader.js +408 -0
  112. package/dist/cjs/commands/script-loader.js.map +1 -0
  113. package/dist/cjs/commands/updateData-1.lua +20 -0
  114. package/dist/cjs/commands/updateProgress-2.lua +26 -0
  115. package/dist/cjs/enums/error-code.enum.js +13 -0
  116. package/dist/cjs/enums/error-code.enum.js.map +1 -0
  117. package/dist/cjs/enums/index.js +6 -0
  118. package/dist/cjs/enums/index.js.map +1 -0
  119. package/dist/cjs/enums/metrics-time.js +15 -0
  120. package/dist/cjs/enums/metrics-time.js.map +1 -0
  121. package/dist/{index.js → cjs/index.js} +2 -0
  122. package/dist/cjs/index.js.map +1 -0
  123. package/dist/cjs/interfaces/advanced-options.js +3 -0
  124. package/dist/cjs/interfaces/advanced-options.js.map +1 -0
  125. package/dist/cjs/interfaces/backoff-options.js.map +1 -0
  126. package/dist/cjs/interfaces/base-job-options.js +3 -0
  127. package/dist/cjs/interfaces/base-job-options.js.map +1 -0
  128. package/dist/cjs/interfaces/child-command.js +10 -0
  129. package/dist/cjs/interfaces/child-command.js.map +1 -0
  130. package/dist/cjs/interfaces/child-message.js +3 -0
  131. package/dist/cjs/interfaces/child-message.js.map +1 -0
  132. package/dist/{interfaces/jobs-options.js → cjs/interfaces/connection.js} +1 -1
  133. package/dist/cjs/interfaces/connection.js.map +1 -0
  134. package/dist/cjs/interfaces/flow-job.js +3 -0
  135. package/dist/cjs/interfaces/flow-job.js.map +1 -0
  136. package/dist/cjs/interfaces/index.js +28 -0
  137. package/dist/cjs/interfaces/index.js.map +1 -0
  138. package/dist/cjs/interfaces/ioredis-events.js +3 -0
  139. package/dist/cjs/interfaces/ioredis-events.js.map +1 -0
  140. package/dist/cjs/interfaces/job-json.js +3 -0
  141. package/dist/cjs/interfaces/job-json.js.map +1 -0
  142. package/dist/cjs/interfaces/keep-jobs.js +3 -0
  143. package/dist/cjs/interfaces/keep-jobs.js.map +1 -0
  144. package/dist/cjs/interfaces/metrics-options.js +3 -0
  145. package/dist/cjs/interfaces/metrics-options.js.map +1 -0
  146. package/dist/cjs/interfaces/metrics.js +3 -0
  147. package/dist/cjs/interfaces/metrics.js.map +1 -0
  148. package/dist/cjs/interfaces/minimal-job.js +3 -0
  149. package/dist/cjs/interfaces/minimal-job.js.map +1 -0
  150. package/dist/cjs/interfaces/parent-command.js +15 -0
  151. package/dist/cjs/interfaces/parent-command.js.map +1 -0
  152. package/dist/cjs/interfaces/parent-message.js +3 -0
  153. package/dist/cjs/interfaces/parent-message.js.map +1 -0
  154. package/dist/cjs/interfaces/parent.js +3 -0
  155. package/dist/cjs/interfaces/parent.js.map +1 -0
  156. package/dist/{interfaces → cjs/interfaces}/queue-options.js +1 -0
  157. package/dist/cjs/interfaces/queue-options.js.map +1 -0
  158. package/dist/cjs/interfaces/rate-limiter-options.js.map +1 -0
  159. package/dist/cjs/interfaces/redis-options.js.map +1 -0
  160. package/dist/cjs/interfaces/redis-streams.js +3 -0
  161. package/dist/cjs/interfaces/redis-streams.js.map +1 -0
  162. package/dist/cjs/interfaces/repeat-options.js.map +1 -0
  163. package/dist/{interfaces/queue-scheduler-options.js → cjs/interfaces/sandboxed-job-processor.js} +1 -1
  164. package/dist/cjs/interfaces/sandboxed-job-processor.js.map +1 -0
  165. package/dist/cjs/interfaces/sandboxed-job.js +3 -0
  166. package/dist/cjs/interfaces/sandboxed-job.js.map +1 -0
  167. package/dist/cjs/interfaces/worker-options.js.map +1 -0
  168. package/dist/cjs/scripts/addJob-9.js +252 -0
  169. package/dist/cjs/scripts/addJob-9.js.map +1 -0
  170. package/dist/cjs/scripts/changeDelay-3.js +41 -0
  171. package/dist/cjs/scripts/changeDelay-3.js.map +1 -0
  172. package/dist/cjs/scripts/changePriority-5.js +87 -0
  173. package/dist/cjs/scripts/changePriority-5.js.map +1 -0
  174. package/dist/cjs/scripts/cleanJobsInSet-2.js +259 -0
  175. package/dist/cjs/scripts/cleanJobsInSet-2.js.map +1 -0
  176. package/dist/cjs/scripts/drain-4.js +178 -0
  177. package/dist/cjs/scripts/drain-4.js.map +1 -0
  178. package/dist/cjs/scripts/extendLock-2.js +30 -0
  179. package/dist/cjs/scripts/extendLock-2.js.map +1 -0
  180. package/dist/cjs/scripts/getCounts-1.js +41 -0
  181. package/dist/cjs/scripts/getCounts-1.js.map +1 -0
  182. package/dist/cjs/scripts/getRanges-1.js +72 -0
  183. package/dist/cjs/scripts/getRanges-1.js.map +1 -0
  184. package/dist/cjs/scripts/getState-8.js +74 -0
  185. package/dist/cjs/scripts/getState-8.js.map +1 -0
  186. package/dist/cjs/scripts/getStateV2-8.js +58 -0
  187. package/dist/cjs/scripts/getStateV2-8.js.map +1 -0
  188. package/dist/cjs/scripts/index.js +34 -0
  189. package/dist/cjs/scripts/index.js.map +1 -0
  190. package/dist/cjs/scripts/isFinished-3.js +49 -0
  191. package/dist/cjs/scripts/isFinished-3.js.map +1 -0
  192. package/dist/cjs/scripts/isJobInList-1.js +32 -0
  193. package/dist/cjs/scripts/isJobInList-1.js.map +1 -0
  194. package/dist/cjs/scripts/moveJobFromActiveToWait-9.js +70 -0
  195. package/dist/cjs/scripts/moveJobFromActiveToWait-9.js.map +1 -0
  196. package/dist/cjs/scripts/moveStalledJobsToWait-8.js +289 -0
  197. package/dist/cjs/scripts/moveStalledJobsToWait-8.js.map +1 -0
  198. package/dist/cjs/scripts/moveToActive-10.js +269 -0
  199. package/dist/cjs/scripts/moveToActive-10.js.map +1 -0
  200. package/dist/cjs/scripts/moveToDelayed-8.js +152 -0
  201. package/dist/cjs/scripts/moveToDelayed-8.js.map +1 -0
  202. package/dist/cjs/scripts/moveToFinished-13.js +624 -0
  203. package/dist/cjs/scripts/moveToFinished-13.js.map +1 -0
  204. package/dist/cjs/scripts/moveToWaitingChildren-4.js +59 -0
  205. package/dist/cjs/scripts/moveToWaitingChildren-4.js.map +1 -0
  206. package/dist/cjs/scripts/obliterate-2.js +244 -0
  207. package/dist/cjs/scripts/obliterate-2.js.map +1 -0
  208. package/dist/cjs/scripts/pause-5.js +48 -0
  209. package/dist/cjs/scripts/pause-5.js.map +1 -0
  210. package/dist/cjs/scripts/promote-7.js +87 -0
  211. package/dist/cjs/scripts/promote-7.js.map +1 -0
  212. package/dist/cjs/scripts/releaseLock-1.js +25 -0
  213. package/dist/cjs/scripts/releaseLock-1.js.map +1 -0
  214. package/dist/cjs/scripts/removeJob-1.js +210 -0
  215. package/dist/cjs/scripts/removeJob-1.js.map +1 -0
  216. package/dist/cjs/scripts/removeRepeatable-2.js +38 -0
  217. package/dist/cjs/scripts/removeRepeatable-2.js.map +1 -0
  218. package/dist/cjs/scripts/reprocessJob-6.js +56 -0
  219. package/dist/cjs/scripts/reprocessJob-6.js.map +1 -0
  220. package/dist/cjs/scripts/retryJob-9.js +128 -0
  221. package/dist/cjs/scripts/retryJob-9.js.map +1 -0
  222. package/dist/cjs/scripts/retryJobs-6.js +76 -0
  223. package/dist/cjs/scripts/retryJobs-6.js.map +1 -0
  224. package/dist/cjs/scripts/saveStacktrace-1.js +27 -0
  225. package/dist/cjs/scripts/saveStacktrace-1.js.map +1 -0
  226. package/dist/cjs/scripts/updateData-1.js +26 -0
  227. package/dist/cjs/scripts/updateData-1.js.map +1 -0
  228. package/dist/cjs/scripts/updateProgress-2.js +31 -0
  229. package/dist/cjs/scripts/updateProgress-2.js.map +1 -0
  230. package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -0
  231. package/dist/cjs/types/backoff-strategy.js +3 -0
  232. package/dist/cjs/types/backoff-strategy.js.map +1 -0
  233. package/dist/cjs/types/finished-status.js +3 -0
  234. package/dist/cjs/types/finished-status.js.map +1 -0
  235. package/dist/cjs/types/index.js +11 -0
  236. package/dist/cjs/types/index.js.map +1 -0
  237. package/dist/cjs/types/job-json-sandbox.js +3 -0
  238. package/dist/cjs/types/job-json-sandbox.js.map +1 -0
  239. package/dist/cjs/types/job-options.js +3 -0
  240. package/dist/cjs/types/job-options.js.map +1 -0
  241. package/dist/cjs/types/job-type.js +3 -0
  242. package/dist/cjs/types/job-type.js.map +1 -0
  243. package/dist/cjs/types/minimal-queue.js +3 -0
  244. package/dist/cjs/types/minimal-queue.js.map +1 -0
  245. package/dist/cjs/types/repeat-strategy.js +3 -0
  246. package/dist/cjs/types/repeat-strategy.js.map +1 -0
  247. package/dist/cjs/utils.js +152 -0
  248. package/dist/cjs/utils.js.map +1 -0
  249. package/dist/esm/classes/async-fifo-queue.d.ts +31 -0
  250. package/dist/esm/classes/async-fifo-queue.js +86 -0
  251. package/dist/esm/classes/async-fifo-queue.js.map +1 -0
  252. package/dist/esm/classes/backoffs.d.ts +10 -0
  253. package/dist/esm/classes/backoffs.js +44 -0
  254. package/dist/esm/classes/backoffs.js.map +1 -0
  255. package/dist/esm/classes/child-pool.d.ts +23 -0
  256. package/dist/esm/classes/child-pool.js +60 -0
  257. package/dist/esm/classes/child-pool.js.map +1 -0
  258. package/dist/esm/classes/child-processor.d.ts +26 -0
  259. package/dist/esm/classes/child-processor.js +146 -0
  260. package/dist/esm/classes/child-processor.js.map +1 -0
  261. package/dist/esm/classes/child.d.ts +36 -0
  262. package/dist/esm/classes/child.js +212 -0
  263. package/dist/esm/classes/child.js.map +1 -0
  264. package/dist/esm/classes/delayed-error.d.ts +10 -0
  265. package/dist/esm/classes/delayed-error.js +15 -0
  266. package/dist/esm/classes/delayed-error.js.map +1 -0
  267. package/dist/esm/classes/flow-producer.d.ts +163 -0
  268. package/dist/esm/classes/flow-producer.js +279 -0
  269. package/dist/esm/classes/flow-producer.js.map +1 -0
  270. package/dist/{classes → esm/classes}/index.d.ts +9 -3
  271. package/dist/esm/classes/index.js +22 -0
  272. package/dist/esm/classes/index.js.map +1 -0
  273. package/dist/esm/classes/job.d.ts +355 -0
  274. package/dist/esm/classes/job.js +764 -0
  275. package/dist/esm/classes/job.js.map +1 -0
  276. package/dist/esm/classes/main-base.d.ts +4 -0
  277. package/dist/esm/classes/main-base.js +43 -0
  278. package/dist/esm/classes/main-base.js.map +1 -0
  279. package/dist/esm/classes/main-worker.js +8 -0
  280. package/dist/esm/classes/main-worker.js.map +1 -0
  281. package/dist/esm/classes/main.js +8 -0
  282. package/dist/esm/classes/main.js.map +1 -0
  283. package/dist/esm/classes/queue-base.d.ts +67 -0
  284. package/dist/esm/classes/queue-base.js +131 -0
  285. package/dist/esm/classes/queue-base.js.map +1 -0
  286. package/dist/esm/classes/queue-events.d.ts +179 -0
  287. package/dist/esm/classes/queue-events.js +116 -0
  288. package/dist/esm/classes/queue-events.js.map +1 -0
  289. package/dist/esm/classes/queue-getters.d.ts +164 -0
  290. package/dist/esm/classes/queue-getters.js +344 -0
  291. package/dist/esm/classes/queue-getters.js.map +1 -0
  292. package/dist/esm/classes/queue-keys.d.ts +10 -0
  293. package/dist/esm/classes/queue-keys.js +41 -0
  294. package/dist/esm/classes/queue-keys.js.map +1 -0
  295. package/dist/esm/classes/queue.d.ts +236 -0
  296. package/dist/esm/classes/queue.js +271 -0
  297. package/dist/esm/classes/queue.js.map +1 -0
  298. package/dist/esm/classes/redis-connection.d.ts +37 -0
  299. package/dist/esm/classes/redis-connection.js +203 -0
  300. package/dist/esm/classes/redis-connection.js.map +1 -0
  301. package/dist/esm/classes/repeat.d.ts +25 -0
  302. package/dist/esm/classes/repeat.js +144 -0
  303. package/dist/esm/classes/repeat.js.map +1 -0
  304. package/dist/esm/classes/sandbox.d.ts +4 -0
  305. package/dist/esm/classes/sandbox.js +58 -0
  306. package/dist/esm/classes/sandbox.js.map +1 -0
  307. package/dist/esm/classes/scripts.d.ts +106 -0
  308. package/dist/esm/classes/scripts.js +654 -0
  309. package/dist/esm/classes/scripts.js.map +1 -0
  310. package/dist/esm/classes/unrecoverable-error.d.ts +10 -0
  311. package/dist/esm/classes/unrecoverable-error.js +15 -0
  312. package/dist/esm/classes/unrecoverable-error.js.map +1 -0
  313. package/dist/esm/classes/waiting-children-error.d.ts +10 -0
  314. package/dist/esm/classes/waiting-children-error.js +15 -0
  315. package/dist/esm/classes/waiting-children-error.js.map +1 -0
  316. package/dist/esm/classes/worker.d.ts +215 -0
  317. package/dist/esm/classes/worker.js +573 -0
  318. package/dist/esm/classes/worker.js.map +1 -0
  319. package/dist/esm/commands/addJob-9.lua +170 -0
  320. package/dist/esm/commands/changeDelay-3.lua +40 -0
  321. package/dist/esm/commands/changePriority-5.lua +52 -0
  322. package/dist/esm/commands/cleanJobsInSet-2.lua +48 -0
  323. package/dist/esm/commands/drain-4.lua +26 -0
  324. package/{src → dist/esm}/commands/extendLock-2.lua +1 -0
  325. package/dist/esm/commands/getCounts-1.lua +35 -0
  326. package/dist/esm/commands/getRanges-1.lua +69 -0
  327. package/dist/esm/commands/getState-8.lua +66 -0
  328. package/dist/esm/commands/getStateV2-8.lua +59 -0
  329. package/dist/esm/commands/includes/addDelayMarkerIfNeeded.lua +15 -0
  330. package/dist/esm/commands/includes/addJobWithPriority.lua +15 -0
  331. package/dist/esm/commands/includes/addPriorityMarkerIfNeeded.lua +12 -0
  332. package/dist/esm/commands/includes/batches.lua +18 -0
  333. package/dist/esm/commands/includes/checkItemInList.lua +12 -0
  334. package/dist/esm/commands/includes/checkStalledJobs.lua +139 -0
  335. package/dist/esm/commands/includes/cleanList.lua +47 -0
  336. package/dist/esm/commands/includes/cleanSet.lua +39 -0
  337. package/dist/esm/commands/includes/collectMetrics.lua +46 -0
  338. package/dist/esm/commands/includes/destructureJobKey.lua +12 -0
  339. package/dist/esm/commands/includes/getJobsInZset.lua +12 -0
  340. package/dist/esm/commands/includes/getNextDelayedTimestamp.lua +13 -0
  341. package/dist/esm/commands/includes/getRateLimitTTL.lua +17 -0
  342. package/dist/esm/commands/includes/getTargetQueueList.lua +12 -0
  343. package/dist/esm/commands/includes/getTimestamp.lua +19 -0
  344. package/dist/esm/commands/includes/getZSetItems.lua +7 -0
  345. package/dist/esm/commands/includes/isLocked.lua +31 -0
  346. package/dist/esm/commands/includes/moveJobFromPriorityToActive.lua +14 -0
  347. package/dist/esm/commands/includes/moveParentFromWaitingChildrenToFailed.lua +28 -0
  348. package/dist/esm/commands/includes/prepareJobForProcessing.lua +74 -0
  349. package/dist/esm/commands/includes/promoteDelayedJobs.lua +39 -0
  350. package/dist/esm/commands/includes/pushBackJobWithPriority.lua +9 -0
  351. package/dist/esm/commands/includes/removeJob.lua +13 -0
  352. package/dist/esm/commands/includes/removeJobFromAnyState.lua +35 -0
  353. package/dist/esm/commands/includes/removeJobs.lua +25 -0
  354. package/dist/esm/commands/includes/removeJobsByMaxAge.lua +15 -0
  355. package/dist/esm/commands/includes/removeJobsByMaxCount.lua +15 -0
  356. package/dist/esm/commands/includes/removeParentDependencyKey.lua +77 -0
  357. package/dist/esm/commands/includes/removeZSetJobs.lua +15 -0
  358. package/dist/esm/commands/includes/trimEvents.lua +12 -0
  359. package/dist/esm/commands/includes/updateParentDepsIfNeeded.lua +40 -0
  360. package/dist/esm/commands/index.d.ts +4 -0
  361. package/dist/esm/commands/index.js +5 -0
  362. package/dist/esm/commands/index.js.map +1 -0
  363. package/dist/esm/commands/isFinished-3.lua +48 -0
  364. package/dist/esm/commands/isJobInList-1.lua +16 -0
  365. package/dist/esm/commands/moveJobFromActiveToWait-9.lua +53 -0
  366. package/dist/esm/commands/moveStalledJobsToWait-8.lua +24 -0
  367. package/dist/esm/commands/moveToActive-10.lua +116 -0
  368. package/dist/esm/commands/moveToDelayed-8.lua +66 -0
  369. package/dist/esm/commands/moveToFinished-13.lua +250 -0
  370. package/dist/esm/commands/moveToWaitingChildren-4.lua +62 -0
  371. package/dist/esm/commands/obliterate-2.lua +102 -0
  372. package/dist/esm/commands/pause-5.lua +36 -0
  373. package/dist/esm/commands/promote-7.lua +57 -0
  374. package/dist/esm/commands/releaseLock-1.lua +19 -0
  375. package/dist/esm/commands/removeJob-1.lua +71 -0
  376. package/dist/{commands → esm/commands}/removeRepeatable-2.lua +13 -1
  377. package/dist/esm/commands/reprocessJob-6.lua +43 -0
  378. package/dist/esm/commands/retryJob-9.lua +69 -0
  379. package/dist/esm/commands/retryJobs-6.lua +53 -0
  380. package/dist/esm/commands/saveStacktrace-1.lua +22 -0
  381. package/dist/esm/commands/script-loader.d.ts +119 -0
  382. package/dist/esm/commands/script-loader.js +403 -0
  383. package/dist/esm/commands/script-loader.js.map +1 -0
  384. package/dist/esm/commands/updateData-1.lua +20 -0
  385. package/dist/esm/commands/updateProgress-2.lua +26 -0
  386. package/dist/esm/enums/error-code.enum.d.ts +8 -0
  387. package/dist/esm/enums/error-code.enum.js +10 -0
  388. package/dist/esm/enums/error-code.enum.js.map +1 -0
  389. package/dist/esm/enums/index.d.ts +2 -0
  390. package/dist/esm/enums/index.js +3 -0
  391. package/dist/esm/enums/index.js.map +1 -0
  392. package/dist/esm/enums/metrics-time.d.ts +10 -0
  393. package/dist/esm/enums/metrics-time.js +12 -0
  394. package/dist/esm/enums/metrics-time.js.map +1 -0
  395. package/dist/{index.d.ts → esm/index.d.ts} +2 -0
  396. package/{src/index.ts → dist/esm/index.js} +7 -4
  397. package/dist/esm/index.js.map +1 -0
  398. package/dist/esm/interfaces/advanced-options.d.ts +13 -0
  399. package/dist/esm/interfaces/advanced-options.js +2 -0
  400. package/dist/esm/interfaces/advanced-options.js.map +1 -0
  401. package/dist/esm/interfaces/backoff-options.d.ts +15 -0
  402. package/dist/esm/interfaces/backoff-options.js +2 -0
  403. package/dist/esm/interfaces/backoff-options.js.map +1 -0
  404. package/dist/esm/interfaces/base-job-options.d.ts +97 -0
  405. package/dist/esm/interfaces/base-job-options.js +2 -0
  406. package/dist/esm/interfaces/base-job-options.js.map +1 -0
  407. package/dist/esm/interfaces/child-command.d.ts +5 -0
  408. package/dist/esm/interfaces/child-command.js +7 -0
  409. package/dist/esm/interfaces/child-command.js.map +1 -0
  410. package/dist/esm/interfaces/child-message.d.ts +6 -0
  411. package/dist/esm/interfaces/child-message.js +2 -0
  412. package/dist/esm/interfaces/child-message.js.map +1 -0
  413. package/dist/esm/interfaces/connection.d.ts +8 -0
  414. package/dist/esm/interfaces/connection.js +2 -0
  415. package/dist/esm/interfaces/connection.js.map +1 -0
  416. package/dist/esm/interfaces/flow-job.d.ts +19 -0
  417. package/dist/esm/interfaces/flow-job.js +2 -0
  418. package/dist/esm/interfaces/flow-job.js.map +1 -0
  419. package/dist/esm/interfaces/index.d.ts +24 -0
  420. package/dist/esm/interfaces/index.js +25 -0
  421. package/dist/esm/interfaces/index.js.map +1 -0
  422. package/dist/esm/interfaces/ioredis-events.d.ts +8 -0
  423. package/dist/esm/interfaces/ioredis-events.js +2 -0
  424. package/dist/esm/interfaces/ioredis-events.js.map +1 -0
  425. package/dist/esm/interfaces/job-json.d.ts +37 -0
  426. package/dist/esm/interfaces/job-json.js +2 -0
  427. package/dist/esm/interfaces/job-json.js.map +1 -0
  428. package/dist/esm/interfaces/keep-jobs.d.ts +17 -0
  429. package/dist/esm/interfaces/keep-jobs.js +2 -0
  430. package/dist/esm/interfaces/keep-jobs.js.map +1 -0
  431. package/dist/esm/interfaces/metrics-options.d.ts +12 -0
  432. package/dist/esm/interfaces/metrics-options.js +2 -0
  433. package/dist/esm/interfaces/metrics-options.js.map +1 -0
  434. package/dist/esm/interfaces/metrics.d.ts +9 -0
  435. package/dist/esm/interfaces/metrics.js +2 -0
  436. package/dist/esm/interfaces/metrics.js.map +1 -0
  437. package/dist/esm/interfaces/minimal-job.d.ts +129 -0
  438. package/dist/esm/interfaces/minimal-job.js +2 -0
  439. package/dist/esm/interfaces/minimal-job.js.map +1 -0
  440. package/dist/esm/interfaces/parent-command.d.ts +10 -0
  441. package/dist/esm/interfaces/parent-command.js +12 -0
  442. package/dist/esm/interfaces/parent-command.js.map +1 -0
  443. package/dist/esm/interfaces/parent-message.d.ts +8 -0
  444. package/dist/esm/interfaces/parent-message.js +2 -0
  445. package/dist/esm/interfaces/parent-message.js.map +1 -0
  446. package/dist/esm/interfaces/parent.d.ts +20 -0
  447. package/dist/esm/interfaces/parent.js +2 -0
  448. package/dist/esm/interfaces/parent.js.map +1 -0
  449. package/dist/esm/interfaces/queue-options.d.ts +74 -0
  450. package/dist/esm/interfaces/queue-options.js +6 -0
  451. package/dist/esm/interfaces/queue-options.js.map +1 -0
  452. package/dist/esm/interfaces/rate-limiter-options.d.ts +12 -0
  453. package/dist/esm/interfaces/rate-limiter-options.js +2 -0
  454. package/dist/esm/interfaces/rate-limiter-options.js.map +1 -0
  455. package/dist/esm/interfaces/redis-options.d.ts +7 -0
  456. package/dist/esm/interfaces/redis-options.js +2 -0
  457. package/dist/esm/interfaces/redis-options.js.map +1 -0
  458. package/dist/esm/interfaces/redis-streams.d.ts +4 -0
  459. package/dist/esm/interfaces/redis-streams.js +2 -0
  460. package/dist/esm/interfaces/redis-streams.js.map +1 -0
  461. package/dist/esm/interfaces/repeat-options.d.ts +33 -0
  462. package/dist/esm/interfaces/repeat-options.js +2 -0
  463. package/dist/esm/interfaces/repeat-options.js.map +1 -0
  464. package/dist/esm/interfaces/sandboxed-job-processor.d.ts +5 -0
  465. package/dist/esm/interfaces/sandboxed-job-processor.js +2 -0
  466. package/dist/esm/interfaces/sandboxed-job-processor.js.map +1 -0
  467. package/dist/esm/interfaces/sandboxed-job.d.ts +13 -0
  468. package/dist/esm/interfaces/sandboxed-job.js +2 -0
  469. package/dist/esm/interfaces/sandboxed-job.js.map +1 -0
  470. package/dist/esm/interfaces/worker-options.d.ts +123 -0
  471. package/dist/esm/interfaces/worker-options.js +2 -0
  472. package/dist/esm/interfaces/worker-options.js.map +1 -0
  473. package/dist/esm/scripts/addJob-9.d.ts +5 -0
  474. package/dist/esm/scripts/addJob-9.js +249 -0
  475. package/dist/esm/scripts/addJob-9.js.map +1 -0
  476. package/dist/esm/scripts/changeDelay-3.d.ts +5 -0
  477. package/dist/esm/scripts/changeDelay-3.js +38 -0
  478. package/dist/esm/scripts/changeDelay-3.js.map +1 -0
  479. package/dist/esm/scripts/changePriority-5.d.ts +5 -0
  480. package/dist/esm/scripts/changePriority-5.js +84 -0
  481. package/dist/esm/scripts/changePriority-5.js.map +1 -0
  482. package/dist/esm/scripts/cleanJobsInSet-2.d.ts +5 -0
  483. package/dist/esm/scripts/cleanJobsInSet-2.js +256 -0
  484. package/dist/esm/scripts/cleanJobsInSet-2.js.map +1 -0
  485. package/dist/esm/scripts/drain-4.d.ts +5 -0
  486. package/dist/esm/scripts/drain-4.js +175 -0
  487. package/dist/esm/scripts/drain-4.js.map +1 -0
  488. package/dist/esm/scripts/extendLock-2.d.ts +5 -0
  489. package/dist/esm/scripts/extendLock-2.js +27 -0
  490. package/dist/esm/scripts/extendLock-2.js.map +1 -0
  491. package/dist/esm/scripts/getCounts-1.d.ts +5 -0
  492. package/dist/esm/scripts/getCounts-1.js +38 -0
  493. package/dist/esm/scripts/getCounts-1.js.map +1 -0
  494. package/dist/esm/scripts/getRanges-1.d.ts +5 -0
  495. package/dist/esm/scripts/getRanges-1.js +69 -0
  496. package/dist/esm/scripts/getRanges-1.js.map +1 -0
  497. package/dist/esm/scripts/getState-8.d.ts +5 -0
  498. package/dist/esm/scripts/getState-8.js +71 -0
  499. package/dist/esm/scripts/getState-8.js.map +1 -0
  500. package/dist/esm/scripts/getStateV2-8.d.ts +5 -0
  501. package/dist/esm/scripts/getStateV2-8.js +55 -0
  502. package/dist/esm/scripts/getStateV2-8.js.map +1 -0
  503. package/dist/esm/scripts/index.d.ts +30 -0
  504. package/dist/esm/scripts/index.js +31 -0
  505. package/dist/esm/scripts/index.js.map +1 -0
  506. package/dist/esm/scripts/isFinished-3.d.ts +5 -0
  507. package/dist/esm/scripts/isFinished-3.js +46 -0
  508. package/dist/esm/scripts/isFinished-3.js.map +1 -0
  509. package/dist/esm/scripts/isJobInList-1.d.ts +5 -0
  510. package/dist/esm/scripts/isJobInList-1.js +29 -0
  511. package/dist/esm/scripts/isJobInList-1.js.map +1 -0
  512. package/dist/esm/scripts/moveJobFromActiveToWait-9.d.ts +5 -0
  513. package/dist/esm/scripts/moveJobFromActiveToWait-9.js +67 -0
  514. package/dist/esm/scripts/moveJobFromActiveToWait-9.js.map +1 -0
  515. package/dist/esm/scripts/moveStalledJobsToWait-8.d.ts +5 -0
  516. package/dist/esm/scripts/moveStalledJobsToWait-8.js +286 -0
  517. package/dist/esm/scripts/moveStalledJobsToWait-8.js.map +1 -0
  518. package/dist/esm/scripts/moveToActive-10.d.ts +5 -0
  519. package/dist/esm/scripts/moveToActive-10.js +266 -0
  520. package/dist/esm/scripts/moveToActive-10.js.map +1 -0
  521. package/dist/esm/scripts/moveToDelayed-8.d.ts +5 -0
  522. package/dist/esm/scripts/moveToDelayed-8.js +149 -0
  523. package/dist/esm/scripts/moveToDelayed-8.js.map +1 -0
  524. package/dist/esm/scripts/moveToFinished-13.d.ts +5 -0
  525. package/dist/esm/scripts/moveToFinished-13.js +621 -0
  526. package/dist/esm/scripts/moveToFinished-13.js.map +1 -0
  527. package/dist/esm/scripts/moveToWaitingChildren-4.d.ts +5 -0
  528. package/dist/esm/scripts/moveToWaitingChildren-4.js +56 -0
  529. package/dist/esm/scripts/moveToWaitingChildren-4.js.map +1 -0
  530. package/dist/esm/scripts/obliterate-2.d.ts +5 -0
  531. package/dist/esm/scripts/obliterate-2.js +241 -0
  532. package/dist/esm/scripts/obliterate-2.js.map +1 -0
  533. package/dist/esm/scripts/pause-5.d.ts +5 -0
  534. package/dist/esm/scripts/pause-5.js +45 -0
  535. package/dist/esm/scripts/pause-5.js.map +1 -0
  536. package/dist/esm/scripts/promote-7.d.ts +5 -0
  537. package/dist/esm/scripts/promote-7.js +84 -0
  538. package/dist/esm/scripts/promote-7.js.map +1 -0
  539. package/dist/esm/scripts/releaseLock-1.d.ts +5 -0
  540. package/dist/esm/scripts/releaseLock-1.js +22 -0
  541. package/dist/esm/scripts/releaseLock-1.js.map +1 -0
  542. package/dist/esm/scripts/removeJob-1.d.ts +5 -0
  543. package/dist/esm/scripts/removeJob-1.js +207 -0
  544. package/dist/esm/scripts/removeJob-1.js.map +1 -0
  545. package/dist/esm/scripts/removeRepeatable-2.d.ts +5 -0
  546. package/dist/esm/scripts/removeRepeatable-2.js +35 -0
  547. package/dist/esm/scripts/removeRepeatable-2.js.map +1 -0
  548. package/dist/esm/scripts/reprocessJob-6.d.ts +5 -0
  549. package/dist/esm/scripts/reprocessJob-6.js +53 -0
  550. package/dist/esm/scripts/reprocessJob-6.js.map +1 -0
  551. package/dist/esm/scripts/retryJob-9.d.ts +5 -0
  552. package/dist/esm/scripts/retryJob-9.js +125 -0
  553. package/dist/esm/scripts/retryJob-9.js.map +1 -0
  554. package/dist/esm/scripts/retryJobs-6.d.ts +5 -0
  555. package/dist/esm/scripts/retryJobs-6.js +73 -0
  556. package/dist/esm/scripts/retryJobs-6.js.map +1 -0
  557. package/dist/esm/scripts/saveStacktrace-1.d.ts +5 -0
  558. package/dist/esm/scripts/saveStacktrace-1.js +24 -0
  559. package/dist/esm/scripts/saveStacktrace-1.js.map +1 -0
  560. package/dist/esm/scripts/updateData-1.d.ts +5 -0
  561. package/dist/esm/scripts/updateData-1.js +23 -0
  562. package/dist/esm/scripts/updateData-1.js.map +1 -0
  563. package/dist/esm/scripts/updateProgress-2.d.ts +5 -0
  564. package/dist/esm/scripts/updateProgress-2.js +28 -0
  565. package/dist/esm/scripts/updateProgress-2.js.map +1 -0
  566. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  567. package/dist/esm/types/backoff-strategy.d.ts +2 -0
  568. package/dist/esm/types/backoff-strategy.js +2 -0
  569. package/dist/esm/types/backoff-strategy.js.map +1 -0
  570. package/dist/esm/types/finished-status.d.ts +2 -0
  571. package/dist/esm/types/finished-status.js +2 -0
  572. package/dist/esm/types/finished-status.js.map +1 -0
  573. package/dist/esm/types/index.d.ts +7 -0
  574. package/dist/esm/types/index.js +8 -0
  575. package/dist/esm/types/index.js.map +1 -0
  576. package/dist/esm/types/job-json-sandbox.d.ts +5 -0
  577. package/dist/esm/types/job-json-sandbox.js +2 -0
  578. package/dist/esm/types/job-json-sandbox.js.map +1 -0
  579. package/dist/esm/types/job-options.d.ts +20 -0
  580. package/dist/esm/types/job-options.js +2 -0
  581. package/dist/esm/types/job-options.js.map +1 -0
  582. package/dist/esm/types/job-type.d.ts +3 -0
  583. package/dist/esm/types/job-type.js +2 -0
  584. package/dist/esm/types/job-type.js.map +1 -0
  585. package/dist/esm/types/minimal-queue.d.ts +2 -0
  586. package/dist/esm/types/minimal-queue.js +2 -0
  587. package/dist/esm/types/minimal-queue.js.map +1 -0
  588. package/dist/esm/types/repeat-strategy.d.ts +2 -0
  589. package/dist/esm/types/repeat-strategy.js +2 -0
  590. package/dist/esm/types/repeat-strategy.js.map +1 -0
  591. package/dist/esm/utils.d.ts +42 -0
  592. package/dist/esm/utils.js +134 -0
  593. package/dist/esm/utils.js.map +1 -0
  594. package/package.json +180 -60
  595. package/.travis.yml +0 -32
  596. package/SUMMARY.md +0 -4
  597. package/commitlint.config.js +0 -1
  598. package/dist/classes/backoffs.d.ts +0 -14
  599. package/dist/classes/backoffs.js.map +0 -1
  600. package/dist/classes/child-pool.d.ts +0 -22
  601. package/dist/classes/child-pool.js +0 -98
  602. package/dist/classes/child-pool.js.map +0 -1
  603. package/dist/classes/compat.d.ts +0 -315
  604. package/dist/classes/compat.js +0 -671
  605. package/dist/classes/compat.js.map +0 -1
  606. package/dist/classes/index.js.map +0 -1
  607. package/dist/classes/job.d.ts +0 -93
  608. package/dist/classes/job.js +0 -353
  609. package/dist/classes/job.js.map +0 -1
  610. package/dist/classes/master.js +0 -112
  611. package/dist/classes/master.js.map +0 -1
  612. package/dist/classes/queue-base.d.ts +0 -22
  613. package/dist/classes/queue-base.js +0 -66
  614. package/dist/classes/queue-base.js.map +0 -1
  615. package/dist/classes/queue-events.d.ts +0 -8
  616. package/dist/classes/queue-events.js +0 -59
  617. package/dist/classes/queue-events.js.map +0 -1
  618. package/dist/classes/queue-getters.d.ts +0 -38
  619. package/dist/classes/queue-getters.js +0 -183
  620. package/dist/classes/queue-getters.js.map +0 -1
  621. package/dist/classes/queue-scheduler.d.ts +0 -25
  622. package/dist/classes/queue-scheduler.js +0 -97
  623. package/dist/classes/queue-scheduler.js.map +0 -1
  624. package/dist/classes/queue.d.ts +0 -56
  625. package/dist/classes/queue.js +0 -130
  626. package/dist/classes/queue.js.map +0 -1
  627. package/dist/classes/redis-connection.d.ts +0 -22
  628. package/dist/classes/redis-connection.js +0 -108
  629. package/dist/classes/redis-connection.js.map +0 -1
  630. package/dist/classes/repeat.d.ts +0 -26
  631. package/dist/classes/repeat.js +0 -129
  632. package/dist/classes/repeat.js.map +0 -1
  633. package/dist/classes/sandbox.d.ts +0 -2
  634. package/dist/classes/sandbox.js.map +0 -1
  635. package/dist/classes/scripts.d.ts +0 -43
  636. package/dist/classes/scripts.js +0 -307
  637. package/dist/classes/scripts.js.map +0 -1
  638. package/dist/classes/worker.d.ts +0 -40
  639. package/dist/classes/worker.js +0 -246
  640. package/dist/classes/worker.js.map +0 -1
  641. package/dist/commands/addJob-8.lua +0 -106
  642. package/dist/commands/cleanJobsInSet-1.lua +0 -48
  643. package/dist/commands/index.d.ts +0 -2
  644. package/dist/commands/index.js +0 -42
  645. package/dist/commands/index.js.map +0 -1
  646. package/dist/commands/isFinished-2.lua +0 -22
  647. package/dist/commands/isJobInList-1.lua +0 -20
  648. package/dist/commands/moveStalledJobsToWait-8.lua +0 -91
  649. package/dist/commands/moveToActive-8.lua +0 -79
  650. package/dist/commands/moveToDelayed-5.lua +0 -39
  651. package/dist/commands/moveToFinished-7.lua +0 -92
  652. package/dist/commands/pause-4.lua +0 -27
  653. package/dist/commands/promote-4.lua +0 -49
  654. package/dist/commands/releaseLock-1.lua +0 -19
  655. package/dist/commands/removeJob-10.lua +0 -37
  656. package/dist/commands/reprocessJob-4.lua +0 -36
  657. package/dist/commands/retryJob-4.lua +0 -34
  658. package/dist/commands/takeLock-1.lua +0 -17
  659. package/dist/commands/updateDelaySet-7.lua +0 -71
  660. package/dist/commands/updateProgress-2.lua +0 -15
  661. package/dist/enums/index.d.ts +0 -1
  662. package/dist/enums/index.js +0 -5
  663. package/dist/enums/index.js.map +0 -1
  664. package/dist/enums/retry-errors.enum.d.ts +0 -5
  665. package/dist/enums/retry-errors.enum.js +0 -9
  666. package/dist/enums/retry-errors.enum.js.map +0 -1
  667. package/dist/index.js.map +0 -1
  668. package/dist/interfaces/advanced-options.d.ts +0 -9
  669. package/dist/interfaces/advanced-options.js +0 -11
  670. package/dist/interfaces/advanced-options.js.map +0 -1
  671. package/dist/interfaces/backoff-options.d.ts +0 -4
  672. package/dist/interfaces/backoff-options.js.map +0 -1
  673. package/dist/interfaces/index.d.ts +0 -9
  674. package/dist/interfaces/index.js +0 -6
  675. package/dist/interfaces/index.js.map +0 -1
  676. package/dist/interfaces/jobs-options.d.ts +0 -16
  677. package/dist/interfaces/jobs-options.js.map +0 -1
  678. package/dist/interfaces/queue-options.d.ts +0 -24
  679. package/dist/interfaces/queue-options.js.map +0 -1
  680. package/dist/interfaces/queue-scheduler-options.d.ts +0 -5
  681. package/dist/interfaces/queue-scheduler-options.js.map +0 -1
  682. package/dist/interfaces/rate-limiter-options.d.ts +0 -4
  683. package/dist/interfaces/rate-limiter-options.js.map +0 -1
  684. package/dist/interfaces/redis-options.d.ts +0 -5
  685. package/dist/interfaces/redis-options.js.map +0 -1
  686. package/dist/interfaces/repeat-options.d.ts +0 -11
  687. package/dist/interfaces/repeat-options.js.map +0 -1
  688. package/dist/interfaces/worker-options.d.ts +0 -11
  689. package/dist/interfaces/worker-options.js.map +0 -1
  690. package/dist/test/test_bulk.js +0 -55
  691. package/dist/test/test_bulk.js.map +0 -1
  692. package/dist/test/test_child-pool.js +0 -81
  693. package/dist/test/test_child-pool.js.map +0 -1
  694. package/dist/test/test_clean.js +0 -124
  695. package/dist/test/test_clean.js.map +0 -1
  696. package/dist/test/test_compat.d.ts +0 -1
  697. package/dist/test/test_compat.js +0 -533
  698. package/dist/test/test_compat.js.map +0 -1
  699. package/dist/test/test_connection.d.ts +0 -1
  700. package/dist/test/test_connection.js +0 -142
  701. package/dist/test/test_connection.js.map +0 -1
  702. package/dist/test/test_delay.d.ts +0 -1
  703. package/dist/test/test_delay.js +0 -188
  704. package/dist/test/test_delay.js.map +0 -1
  705. package/dist/test/test_events.d.ts +0 -1
  706. package/dist/test/test_events.js +0 -148
  707. package/dist/test/test_events.js.map +0 -1
  708. package/dist/test/test_getters.d.ts +0 -1
  709. package/dist/test/test_getters.js +0 -293
  710. package/dist/test/test_getters.js.map +0 -1
  711. package/dist/test/test_job.d.ts +0 -1
  712. package/dist/test/test_job.js +0 -419
  713. package/dist/test/test_job.js.map +0 -1
  714. package/dist/test/test_pause.d.ts +0 -1
  715. package/dist/test/test_pause.js +0 -254
  716. package/dist/test/test_pause.js.map +0 -1
  717. package/dist/test/test_queue.d.ts +0 -0
  718. package/dist/test/test_queue.js +0 -72
  719. package/dist/test/test_queue.js.map +0 -1
  720. package/dist/test/test_rate_limiter.d.ts +0 -1
  721. package/dist/test/test_rate_limiter.js +0 -98
  722. package/dist/test/test_rate_limiter.js.map +0 -1
  723. package/dist/test/test_repeat.d.ts +0 -1
  724. package/dist/test/test_repeat.js +0 -604
  725. package/dist/test/test_repeat.js.map +0 -1
  726. package/dist/test/test_sandboxed_process.d.ts +0 -1
  727. package/dist/test/test_sandboxed_process.js +0 -319
  728. package/dist/test/test_sandboxed_process.js.map +0 -1
  729. package/dist/test/test_stalled_jobs.d.ts +0 -1
  730. package/dist/test/test_stalled_jobs.js +0 -107
  731. package/dist/test/test_stalled_jobs.js.map +0 -1
  732. package/dist/test/test_worker.d.ts +0 -1
  733. package/dist/test/test_worker.js +0 -1182
  734. package/dist/test/test_worker.js.map +0 -1
  735. package/dist/utils.d.ts +0 -8
  736. package/dist/utils.js +0 -31
  737. package/dist/utils.js.map +0 -1
  738. package/release.txt +0 -21
  739. package/src/classes/backoffs.ts +0 -67
  740. package/src/classes/child-pool.ts +0 -119
  741. package/src/classes/compat.ts +0 -889
  742. package/src/classes/index.ts +0 -13
  743. package/src/classes/job.ts +0 -492
  744. package/src/classes/master.ts +0 -113
  745. package/src/classes/queue-base.ts +0 -80
  746. package/src/classes/queue-events.ts +0 -78
  747. package/src/classes/queue-getters.ts +0 -213
  748. package/src/classes/queue-scheduler.ts +0 -127
  749. package/src/classes/queue.ts +0 -194
  750. package/src/classes/redis-connection.ts +0 -127
  751. package/src/classes/repeat.ts +0 -212
  752. package/src/classes/sandbox.ts +0 -60
  753. package/src/classes/scripts.ts +0 -482
  754. package/src/classes/worker.ts +0 -313
  755. package/src/commands/addJob-8.lua +0 -106
  756. package/src/commands/cleanJobsInSet-1.lua +0 -48
  757. package/src/commands/index.ts +0 -62
  758. package/src/commands/isFinished-2.lua +0 -22
  759. package/src/commands/isJobInList-1.lua +0 -20
  760. package/src/commands/moveStalledJobsToWait-8.lua +0 -91
  761. package/src/commands/moveToActive-8.lua +0 -79
  762. package/src/commands/moveToDelayed-5.lua +0 -39
  763. package/src/commands/moveToFinished-7.lua +0 -92
  764. package/src/commands/pause-4.lua +0 -27
  765. package/src/commands/promote-4.lua +0 -49
  766. package/src/commands/releaseLock-1.lua +0 -19
  767. package/src/commands/removeJob-10.lua +0 -37
  768. package/src/commands/reprocessJob-4.lua +0 -36
  769. package/src/commands/retryJob-4.lua +0 -34
  770. package/src/commands/takeLock-1.lua +0 -17
  771. package/src/commands/updateDelaySet-7.lua +0 -71
  772. package/src/commands/updateProgress-2.lua +0 -15
  773. package/src/enums/index.ts +0 -1
  774. package/src/enums/retry-errors.enum.ts +0 -5
  775. package/src/interfaces/advanced-options.ts +0 -28
  776. package/src/interfaces/backoff-options.ts +0 -4
  777. package/src/interfaces/index.ts +0 -9
  778. package/src/interfaces/jobs-options.ts +0 -53
  779. package/src/interfaces/queue-options.ts +0 -30
  780. package/src/interfaces/queue-scheduler-options.ts +0 -6
  781. package/src/interfaces/rate-limiter-options.ts +0 -7
  782. package/src/interfaces/redis-options.ts +0 -7
  783. package/src/interfaces/repeat-options.ts +0 -19
  784. package/src/interfaces/worker-options.ts +0 -13
  785. package/src/test/fixtures/fixture_processor.js +0 -13
  786. package/src/test/fixtures/fixture_processor_bar.js +0 -13
  787. package/src/test/fixtures/fixture_processor_crash.js +0 -16
  788. package/src/test/fixtures/fixture_processor_exit.js +0 -15
  789. package/src/test/fixtures/fixture_processor_fail.js +0 -13
  790. package/src/test/fixtures/fixture_processor_foo.js +0 -13
  791. package/src/test/fixtures/fixture_processor_progress.js +0 -29
  792. package/src/test/fixtures/fixture_processor_slow.js +0 -13
  793. package/src/test/test_bulk.ts +0 -59
  794. package/src/test/test_child-pool.ts +0 -88
  795. package/src/test/test_clean.ts +0 -148
  796. package/src/test/test_compat.ts +0 -640
  797. package/src/test/test_connection.ts +0 -161
  798. package/src/test/test_delay.ts +0 -221
  799. package/src/test/test_events.ts +0 -198
  800. package/src/test/test_getters.ts +0 -348
  801. package/src/test/test_job.ts +0 -524
  802. package/src/test/test_pause.ts +0 -312
  803. package/src/test/test_queue.ts +0 -70
  804. package/src/test/test_rate_limiter.ts +0 -113
  805. package/src/test/test_repeat.ts +0 -787
  806. package/src/test/test_sandboxed_process.ts +0 -380
  807. package/src/test/test_stalled_jobs.ts +0 -146
  808. package/src/test/test_worker.ts +0 -1503
  809. package/src/utils.ts +0 -28
  810. package/tsconfig.json +0 -25
  811. package/tslint.json +0 -23
  812. /package/dist/{classes/master.d.ts → cjs/classes/main-worker.d.ts} +0 -0
  813. /package/dist/{test/test_bulk.d.ts → cjs/classes/main.d.ts} +0 -0
  814. /package/dist/{interfaces → cjs/interfaces}/backoff-options.js +0 -0
  815. /package/dist/{interfaces → cjs/interfaces}/rate-limiter-options.js +0 -0
  816. /package/dist/{interfaces → cjs/interfaces}/redis-options.js +0 -0
  817. /package/dist/{interfaces → cjs/interfaces}/repeat-options.js +0 -0
  818. /package/dist/{interfaces → cjs/interfaces}/worker-options.js +0 -0
  819. /package/dist/{test/test_child-pool.d.ts → esm/classes/main-worker.d.ts} +0 -0
  820. /package/dist/{test/test_clean.d.ts → esm/classes/main.d.ts} +0 -0
@@ -0,0 +1,69 @@
1
+ --[[
2
+ Retries a failed job by moving it back to the wait queue.
3
+
4
+ Input:
5
+ KEYS[1] 'active',
6
+ KEYS[2] 'wait'
7
+ KEYS[3] 'paused'
8
+ KEYS[4] job key
9
+ KEYS[5] 'meta'
10
+ KEYS[6] events stream
11
+ KEYS[7] delayed key
12
+ KEYS[8] prioritized key
13
+ KEYS[9] 'pc' priority counter
14
+
15
+ ARGV[1] key prefix
16
+ ARGV[2] timestamp
17
+ ARGV[3] pushCmd
18
+ ARGV[4] jobId
19
+ ARGV[5] token
20
+
21
+ Events:
22
+ 'waiting'
23
+
24
+ Output:
25
+ 0 - OK
26
+ -1 - Missing key
27
+ -2 - Missing lock
28
+ ]]
29
+ local rcall = redis.call
30
+
31
+ -- Includes
32
+ --- @include "includes/addJobWithPriority"
33
+ --- @include "includes/getTargetQueueList"
34
+ --- @include "includes/promoteDelayedJobs"
35
+
36
+ local target, paused = getTargetQueueList(KEYS[5], KEYS[2], KEYS[3])
37
+ -- Check if there are delayed jobs that we can move to wait.
38
+ -- test example: when there are delayed jobs between retries
39
+ promoteDelayedJobs(KEYS[7], KEYS[2], target, KEYS[8], KEYS[6], ARGV[1], ARGV[2], paused, KEYS[9])
40
+
41
+ if rcall("EXISTS", KEYS[4]) == 1 then
42
+
43
+ if ARGV[5] ~= "0" then
44
+ local lockKey = KEYS[4] .. ':lock'
45
+ if rcall("GET", lockKey) == ARGV[5] then
46
+ rcall("DEL", lockKey)
47
+ else
48
+ return -2
49
+ end
50
+ end
51
+
52
+ rcall("LREM", KEYS[1], 0, ARGV[4])
53
+
54
+ local priority = tonumber(rcall("HGET", KEYS[4], "priority")) or 0
55
+
56
+ -- Standard or priority add
57
+ if priority == 0 then
58
+ rcall(ARGV[3], target, ARGV[4])
59
+ else
60
+ addJobWithPriority(KEYS[2], KEYS[8], priority, paused, ARGV[4], KEYS[9])
61
+ end
62
+
63
+ -- Emit waiting event
64
+ rcall("XADD", KEYS[6], "*", "event", "waiting", "jobId", ARGV[4], "prev", "failed")
65
+
66
+ return 0
67
+ else
68
+ return -1
69
+ end
@@ -0,0 +1,53 @@
1
+ --[[
2
+ Attempts to retry all failed jobs
3
+
4
+ Input:
5
+ KEYS[1] base key
6
+ KEYS[2] events stream
7
+ KEYS[3] state key (failed, completed)
8
+ KEYS[4] 'wait'
9
+ KEYS[5] 'paused'
10
+ KEYS[6] 'meta'
11
+
12
+ ARGV[1] count
13
+ ARGV[2] timestamp
14
+ ARGV[3] prev state
15
+
16
+ Output:
17
+ 1 means the operation is not completed
18
+ 0 means the operation is completed
19
+ ]]
20
+ local maxCount = tonumber(ARGV[1])
21
+ local timestamp = tonumber(ARGV[2])
22
+
23
+ local rcall = redis.call;
24
+
25
+ -- Includes
26
+ --- @include "includes/batches"
27
+ --- @include "includes/getTargetQueueList"
28
+
29
+ local target = getTargetQueueList(KEYS[6], KEYS[4], KEYS[5])
30
+
31
+ local jobs = rcall('ZRANGEBYSCORE', KEYS[3], 0, timestamp, 'LIMIT', 0, maxCount)
32
+ if (#jobs > 0) then
33
+ for i, key in ipairs(jobs) do
34
+ local jobKey = KEYS[1] .. key
35
+ rcall("HDEL", jobKey, "finishedOn", "processedOn", "failedReason", "returnvalue")
36
+
37
+ -- Emit waiting event
38
+ rcall("XADD", KEYS[2], "*", "event", "waiting", "jobId", key, "prev", ARGV[3]);
39
+ end
40
+
41
+ for from, to in batches(#jobs, 7000) do
42
+ rcall("ZREM", KEYS[3], unpack(jobs, from, to))
43
+ rcall("LPUSH", target, unpack(jobs, from, to))
44
+ end
45
+ end
46
+
47
+ maxCount = maxCount - #jobs
48
+
49
+ if(maxCount <= 0) then
50
+ return 1
51
+ end
52
+
53
+ return 0
@@ -0,0 +1,22 @@
1
+ --[[
2
+ Save stacktrace and failedReason.
3
+
4
+ Input:
5
+ KEYS[1] job key
6
+
7
+ ARGV[1] stacktrace
8
+ ARGV[2] failedReason
9
+
10
+ Output:
11
+ 0 - OK
12
+ -1 - Missing key
13
+ ]]
14
+ local rcall = redis.call
15
+
16
+ if rcall("EXISTS", KEYS[1]) == 1 then
17
+ rcall("HMSET", KEYS[1], "stacktrace", ARGV[1], "failedReason", ARGV[2])
18
+
19
+ return 0
20
+ else
21
+ return -1
22
+ end
@@ -0,0 +1,408 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScriptLoader = exports.ScriptLoaderError = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const glob_1 = require("glob");
6
+ const path = require("path");
7
+ const fs = require("fs");
8
+ const util_1 = require("util");
9
+ const readFile = (0, util_1.promisify)(fs.readFile);
10
+ const readdir = (0, util_1.promisify)(fs.readdir);
11
+ const GlobOptions = { dot: true, silent: false };
12
+ const IncludeRegex = /^[-]{2,3}[ \t]*@include[ \t]+(["'])(.+?)\1[; \t\n]*$/m;
13
+ const EmptyLineRegex = /^\s*[\r\n]/gm;
14
+ class ScriptLoaderError extends Error {
15
+ constructor(message, path, stack = [], line, position = 0) {
16
+ super(message);
17
+ // Ensure the name of this error is the same as the class name
18
+ this.name = this.constructor.name;
19
+ Error.captureStackTrace(this, this.constructor);
20
+ this.includes = stack;
21
+ this.line = line !== null && line !== void 0 ? line : 0;
22
+ this.position = position;
23
+ }
24
+ }
25
+ exports.ScriptLoaderError = ScriptLoaderError;
26
+ const isPossiblyMappedPath = (path) => path && ['~', '<'].includes(path[0]);
27
+ const hasFilenamePattern = (path) => (0, glob_1.hasMagic)(path, GlobOptions);
28
+ /**
29
+ * Lua script loader with include support
30
+ */
31
+ class ScriptLoader {
32
+ constructor() {
33
+ /**
34
+ * Map an alias to a path
35
+ */
36
+ this.pathMapper = new Map();
37
+ this.clientScripts = new WeakMap();
38
+ /**
39
+ * Cache commands by dir
40
+ */
41
+ this.commandCache = new Map();
42
+ this.rootPath = getPkgJsonDir();
43
+ this.pathMapper.set('~', this.rootPath);
44
+ this.pathMapper.set('rootDir', this.rootPath);
45
+ this.pathMapper.set('base', __dirname);
46
+ }
47
+ /**
48
+ * Add a script path mapping. Allows includes of the form "<includes>/utils.lua" where `includes` is a user
49
+ * defined path
50
+ * @param name - the name of the mapping. Note: do not include angle brackets
51
+ * @param mappedPath - if a relative path is passed, it's relative to the *caller* of this function.
52
+ * Mapped paths are also accepted, e.g. "~/server/scripts/lua" or "<base>/includes"
53
+ */
54
+ addPathMapping(name, mappedPath) {
55
+ let resolved;
56
+ if (isPossiblyMappedPath(mappedPath)) {
57
+ resolved = this.resolvePath(mappedPath);
58
+ }
59
+ else {
60
+ const caller = getCallerFile();
61
+ const callerPath = path.dirname(caller);
62
+ resolved = path.normalize(path.resolve(callerPath, mappedPath));
63
+ }
64
+ const last = resolved.length - 1;
65
+ if (resolved[last] === path.sep) {
66
+ resolved = resolved.substr(0, last);
67
+ }
68
+ this.pathMapper.set(name, resolved);
69
+ }
70
+ /**
71
+ * Resolve the script path considering path mappings
72
+ * @param scriptName - the name of the script
73
+ * @param stack - the include stack, for nicer errors
74
+ */
75
+ resolvePath(scriptName, stack = []) {
76
+ const first = scriptName[0];
77
+ if (first === '~') {
78
+ scriptName = path.join(this.rootPath, scriptName.substr(2));
79
+ }
80
+ else if (first === '<') {
81
+ const p = scriptName.indexOf('>');
82
+ if (p > 0) {
83
+ const name = scriptName.substring(1, p);
84
+ const mappedPath = this.pathMapper.get(name);
85
+ if (!mappedPath) {
86
+ throw new ScriptLoaderError(`No path mapping found for "${name}"`, scriptName, stack);
87
+ }
88
+ scriptName = path.join(mappedPath, scriptName.substring(p + 1));
89
+ }
90
+ }
91
+ return path.normalize(scriptName);
92
+ }
93
+ /**
94
+ * Recursively collect all scripts included in a file
95
+ * @param file - the parent file
96
+ * @param cache - a cache for file metadata to increase efficiency. Since a file can be included
97
+ * multiple times, we make sure to load it only once.
98
+ * @param stack - internal stack to prevent circular references
99
+ */
100
+ async resolveDependencies(file, cache, isInclude = false, stack = []) {
101
+ cache = cache !== null && cache !== void 0 ? cache : new Map();
102
+ if (stack.includes(file.path)) {
103
+ throw new ScriptLoaderError(`circular reference: "${file.path}"`, file.path, stack);
104
+ }
105
+ stack.push(file.path);
106
+ function findPos(content, match) {
107
+ const pos = content.indexOf(match);
108
+ const arr = content.slice(0, pos).split('\n');
109
+ return {
110
+ line: arr.length,
111
+ column: arr[arr.length - 1].length + match.indexOf('@include') + 1,
112
+ };
113
+ }
114
+ function raiseError(msg, match) {
115
+ const pos = findPos(file.content, match);
116
+ throw new ScriptLoaderError(msg, file.path, stack, pos.line, pos.column);
117
+ }
118
+ let res;
119
+ let content = file.content;
120
+ while ((res = IncludeRegex.exec(content)) !== null) {
121
+ const [match, , reference] = res;
122
+ const includeFilename = isPossiblyMappedPath(reference)
123
+ ? // mapped paths imply absolute reference
124
+ this.resolvePath(ensureExt(reference), stack)
125
+ : // include path is relative to the file being processed
126
+ path.resolve(path.dirname(file.path), ensureExt(reference));
127
+ let includePaths;
128
+ if (hasFilenamePattern(includeFilename)) {
129
+ const filesMatched = await getFilenamesByPattern(includeFilename);
130
+ includePaths = filesMatched.map((x) => path.resolve(x));
131
+ }
132
+ else {
133
+ includePaths = [includeFilename];
134
+ }
135
+ includePaths = includePaths.filter((file) => path.extname(file) === '.lua');
136
+ if (includePaths.length === 0) {
137
+ raiseError(`include not found: "${reference}"`, match);
138
+ }
139
+ const tokens = [];
140
+ for (let i = 0; i < includePaths.length; i++) {
141
+ const includePath = includePaths[i];
142
+ const hasInclude = file.includes.find((x) => x.path === includePath);
143
+ if (hasInclude) {
144
+ /**
145
+ * We have something like
146
+ * --- \@include "a"
147
+ * ...
148
+ * --- \@include "a"
149
+ */
150
+ raiseError(`file "${reference}" already included in "${file.path}"`, match);
151
+ }
152
+ let includeMetadata = cache.get(includePath);
153
+ let token;
154
+ if (!includeMetadata) {
155
+ const { name, numberOfKeys } = splitFilename(includePath);
156
+ let childContent = '';
157
+ try {
158
+ const buf = await readFile(includePath, { flag: 'r' });
159
+ childContent = buf.toString();
160
+ }
161
+ catch (err) {
162
+ if (err.code === 'ENOENT') {
163
+ raiseError(`include not found: "${reference}"`, match);
164
+ }
165
+ else {
166
+ throw err;
167
+ }
168
+ }
169
+ // this represents a normalized version of the path to make replacement easy
170
+ token = getPathHash(includePath);
171
+ includeMetadata = {
172
+ name,
173
+ numberOfKeys,
174
+ path: includePath,
175
+ content: childContent,
176
+ token,
177
+ includes: [],
178
+ };
179
+ cache.set(includePath, includeMetadata);
180
+ }
181
+ else {
182
+ token = includeMetadata.token;
183
+ }
184
+ tokens.push(token);
185
+ file.includes.push(includeMetadata);
186
+ await this.resolveDependencies(includeMetadata, cache, true, stack);
187
+ }
188
+ // Replace @includes with normalized path hashes
189
+ const substitution = tokens.join('\n');
190
+ content = content.replace(match, substitution);
191
+ }
192
+ file.content = content;
193
+ if (isInclude) {
194
+ cache.set(file.path, file);
195
+ }
196
+ else {
197
+ cache.set(file.name, file);
198
+ }
199
+ stack.pop();
200
+ }
201
+ /**
202
+ * Parse a (top-level) lua script
203
+ * @param filename - the full path to the script
204
+ * @param content - the content of the script
205
+ * @param cache - cache
206
+ */
207
+ async parseScript(filename, content, cache) {
208
+ const { name, numberOfKeys } = splitFilename(filename);
209
+ const meta = cache === null || cache === void 0 ? void 0 : cache.get(name);
210
+ if ((meta === null || meta === void 0 ? void 0 : meta.content) === content) {
211
+ return meta;
212
+ }
213
+ const fileInfo = {
214
+ path: filename,
215
+ token: getPathHash(filename),
216
+ content,
217
+ name,
218
+ numberOfKeys,
219
+ includes: [],
220
+ };
221
+ await this.resolveDependencies(fileInfo, cache);
222
+ return fileInfo;
223
+ }
224
+ /**
225
+ * Construct the final version of a file by interpolating its includes in dependency order.
226
+ * @param file - the file whose content we want to construct
227
+ * @param processed - a cache to keep track of which includes have already been processed
228
+ */
229
+ interpolate(file, processed) {
230
+ processed = processed || new Set();
231
+ let content = file.content;
232
+ file.includes.forEach((child) => {
233
+ const emitted = processed.has(child.path);
234
+ const fragment = this.interpolate(child, processed);
235
+ const replacement = emitted ? '' : fragment;
236
+ if (!replacement) {
237
+ content = replaceAll(content, child.token, '');
238
+ }
239
+ else {
240
+ // replace the first instance with the dependency
241
+ content = content.replace(child.token, replacement);
242
+ // remove the rest
243
+ content = replaceAll(content, child.token, '');
244
+ }
245
+ processed.add(child.path);
246
+ });
247
+ return content;
248
+ }
249
+ async loadCommand(filename, cache) {
250
+ filename = path.resolve(filename);
251
+ const { name: scriptName } = splitFilename(filename);
252
+ let script = cache === null || cache === void 0 ? void 0 : cache.get(scriptName);
253
+ if (!script) {
254
+ const content = (await readFile(filename)).toString();
255
+ script = await this.parseScript(filename, content, cache);
256
+ }
257
+ const lua = removeEmptyLines(this.interpolate(script));
258
+ const { name, numberOfKeys } = script;
259
+ return {
260
+ name,
261
+ options: { numberOfKeys: numberOfKeys, lua },
262
+ };
263
+ }
264
+ /**
265
+ * Load redis lua scripts.
266
+ * The name of the script must have the following format:
267
+ *
268
+ * cmdName-numKeys.lua
269
+ *
270
+ * cmdName must be in camel case format.
271
+ *
272
+ * For example:
273
+ * moveToFinish-3.lua
274
+ *
275
+ */
276
+ async loadScripts(dir, cache) {
277
+ dir = path.normalize(dir || __dirname);
278
+ let commands = this.commandCache.get(dir);
279
+ if (commands) {
280
+ return commands;
281
+ }
282
+ const files = await readdir(dir);
283
+ const luaFiles = files.filter((file) => path.extname(file) === '.lua');
284
+ if (luaFiles.length === 0) {
285
+ /**
286
+ * To prevent unclarified runtime error "updateDelayset is not a function
287
+ * @see https://github.com/OptimalBits/bull/issues/920
288
+ */
289
+ throw new ScriptLoaderError('No .lua files found!', dir, []);
290
+ }
291
+ commands = [];
292
+ cache = cache !== null && cache !== void 0 ? cache : new Map();
293
+ for (let i = 0; i < luaFiles.length; i++) {
294
+ const file = path.join(dir, luaFiles[i]);
295
+ const command = await this.loadCommand(file, cache);
296
+ commands.push(command);
297
+ }
298
+ this.commandCache.set(dir, commands);
299
+ return commands;
300
+ }
301
+ /**
302
+ * Attach all lua scripts in a given directory to a client instance
303
+ * @param client - redis client to attach script to
304
+ * @param pathname - the path to the directory containing the scripts
305
+ */
306
+ async load(client, pathname, cache) {
307
+ let paths = this.clientScripts.get(client);
308
+ if (!paths) {
309
+ paths = new Set();
310
+ this.clientScripts.set(client, paths);
311
+ }
312
+ if (!paths.has(pathname)) {
313
+ paths.add(pathname);
314
+ const scripts = await this.loadScripts(pathname, cache !== null && cache !== void 0 ? cache : new Map());
315
+ scripts.forEach((command) => {
316
+ // Only define the command if not already defined
317
+ if (!client[command.name]) {
318
+ client.defineCommand(command.name, command.options);
319
+ }
320
+ });
321
+ }
322
+ }
323
+ /**
324
+ * Clears the command cache
325
+ */
326
+ clearCache() {
327
+ this.commandCache.clear();
328
+ }
329
+ }
330
+ exports.ScriptLoader = ScriptLoader;
331
+ function ensureExt(filename, ext = 'lua') {
332
+ const foundExt = path.extname(filename);
333
+ if (foundExt && foundExt !== '.') {
334
+ return filename;
335
+ }
336
+ if (ext && ext[0] !== '.') {
337
+ ext = `.${ext}`;
338
+ }
339
+ return `${filename}${ext}`;
340
+ }
341
+ function splitFilename(filePath) {
342
+ const longName = path.basename(filePath, '.lua');
343
+ const [name, num] = longName.split('-');
344
+ const numberOfKeys = num ? parseInt(num, 10) : undefined;
345
+ return { name, numberOfKeys };
346
+ }
347
+ async function getFilenamesByPattern(pattern) {
348
+ return new Promise((resolve, reject) => {
349
+ (0, glob_1.glob)(pattern, GlobOptions, (err, files) => {
350
+ return err ? reject(err) : resolve(files);
351
+ });
352
+ });
353
+ }
354
+ // Determine the project root
355
+ // https://stackoverflow.com/a/18721515
356
+ function getPkgJsonDir() {
357
+ for (const modPath of module.paths || []) {
358
+ try {
359
+ const prospectivePkgJsonDir = path.dirname(modPath);
360
+ fs.accessSync(modPath, fs.constants.F_OK);
361
+ return prospectivePkgJsonDir;
362
+ // eslint-disable-next-line no-empty
363
+ }
364
+ catch (e) { }
365
+ }
366
+ return '';
367
+ }
368
+ // https://stackoverflow.com/a/66842927
369
+ // some dark magic here :-)
370
+ // this version is preferred to the simpler version because of
371
+ // https://github.com/facebook/jest/issues/5303 -
372
+ // tldr: dont assume you're the only one with the doing something like this
373
+ function getCallerFile() {
374
+ var _a, _b, _c;
375
+ const originalFunc = Error.prepareStackTrace;
376
+ let callerFile = '';
377
+ try {
378
+ Error.prepareStackTrace = (_, stack) => stack;
379
+ const sites = new Error().stack;
380
+ const currentFile = (_a = sites.shift()) === null || _a === void 0 ? void 0 : _a.getFileName();
381
+ while (sites.length) {
382
+ callerFile = (_c = (_b = sites.shift()) === null || _b === void 0 ? void 0 : _b.getFileName()) !== null && _c !== void 0 ? _c : '';
383
+ if (currentFile !== callerFile) {
384
+ break;
385
+ }
386
+ }
387
+ // eslint-disable-next-line no-empty
388
+ }
389
+ catch (e) {
390
+ }
391
+ finally {
392
+ Error.prepareStackTrace = originalFunc;
393
+ }
394
+ return callerFile;
395
+ }
396
+ function sha1(data) {
397
+ return (0, crypto_1.createHash)('sha1').update(data).digest('hex');
398
+ }
399
+ function getPathHash(normalizedPath) {
400
+ return `@@${sha1(normalizedPath)}`;
401
+ }
402
+ function replaceAll(str, find, replace) {
403
+ return str.replace(new RegExp(find, 'g'), replace);
404
+ }
405
+ function removeEmptyLines(str) {
406
+ return str.replace(EmptyLineRegex, '');
407
+ }
408
+ //# sourceMappingURL=script-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-loader.js","sourceRoot":"","sources":["../../../src/commands/script-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ --[[
2
+ Update job data
3
+
4
+ Input:
5
+ KEYS[1] Job id key
6
+
7
+ ARGV[1] data
8
+
9
+ Output:
10
+ 0 - OK
11
+ -1 - Missing job.
12
+ ]]
13
+ local rcall = redis.call
14
+
15
+ if rcall("EXISTS",KEYS[1]) == 1 then -- // Make sure job exists
16
+ rcall("HSET", KEYS[1], "data", ARGV[1])
17
+ return 0
18
+ else
19
+ return -1
20
+ end
@@ -0,0 +1,26 @@
1
+ --[[
2
+ Update job progress
3
+
4
+ Input:
5
+ KEYS[1] Job id key
6
+ KEYS[2] event stream key
7
+
8
+ ARGV[1] id
9
+ ARGV[2] progress
10
+
11
+ Output:
12
+ 0 - OK
13
+ -1 - Missing job.
14
+
15
+ Event:
16
+ progress(jobId, progress)
17
+ ]]
18
+ local rcall = redis.call
19
+
20
+ if rcall("EXISTS",KEYS[1]) == 1 then -- // Make sure job exists
21
+ rcall("HSET", KEYS[1], "progress", ARGV[2])
22
+ rcall("XADD", KEYS[2], "*", "event", "progress", "jobId", ARGV[1], "data", ARGV[2]);
23
+ return 0
24
+ else
25
+ return -1
26
+ end
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorCode = void 0;
4
+ var ErrorCode;
5
+ (function (ErrorCode) {
6
+ ErrorCode[ErrorCode["JobNotExist"] = -1] = "JobNotExist";
7
+ ErrorCode[ErrorCode["JobLockNotExist"] = -2] = "JobLockNotExist";
8
+ ErrorCode[ErrorCode["JobNotInState"] = -3] = "JobNotInState";
9
+ ErrorCode[ErrorCode["JobPendingDependencies"] = -4] = "JobPendingDependencies";
10
+ ErrorCode[ErrorCode["ParentJobNotExist"] = -5] = "ParentJobNotExist";
11
+ ErrorCode[ErrorCode["JobLockMismatch"] = -6] = "JobLockMismatch";
12
+ })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {}));
13
+ //# sourceMappingURL=error-code.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-code.enum.js","sourceRoot":"","sources":["../../../src/enums/error-code.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,wDAAgB,CAAA;IAChB,gEAAoB,CAAA;IACpB,4DAAkB,CAAA;IAClB,8EAA2B,CAAA;IAC3B,oEAAsB,CAAA;IACtB,gEAAoB,CAAA;AACtB,CAAC,EAPW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAOpB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./error-code.enum"), exports);
5
+ tslib_1.__exportStar(require("./metrics-time"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,yDAA+B"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsTime = void 0;
4
+ var MetricsTime;
5
+ (function (MetricsTime) {
6
+ MetricsTime[MetricsTime["ONE_MINUTE"] = 1] = "ONE_MINUTE";
7
+ MetricsTime[MetricsTime["FIVE_MINUTES"] = 5] = "FIVE_MINUTES";
8
+ MetricsTime[MetricsTime["FIFTEEN_MINUTES"] = 15] = "FIFTEEN_MINUTES";
9
+ MetricsTime[MetricsTime["THIRTY_MINUTES"] = 30] = "THIRTY_MINUTES";
10
+ MetricsTime[MetricsTime["ONE_HOUR"] = 60] = "ONE_HOUR";
11
+ MetricsTime[MetricsTime["ONE_WEEK"] = 10080] = "ONE_WEEK";
12
+ MetricsTime[MetricsTime["TWO_WEEKS"] = 20160] = "TWO_WEEKS";
13
+ MetricsTime[MetricsTime["ONE_MONTH"] = 80640] = "ONE_MONTH";
14
+ })(MetricsTime = exports.MetricsTime || (exports.MetricsTime = {}));
15
+ //# sourceMappingURL=metrics-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-time.js","sourceRoot":"","sources":["../../../src/enums/metrics-time.ts"],"names":[],"mappings":";;;AAAA,IAAY,WASX;AATD,WAAY,WAAW;IACrB,yDAAc,CAAA;IACd,6DAAgB,CAAA;IAChB,oEAAoB,CAAA;IACpB,kEAAmB,CAAA;IACnB,sDAAa,CAAA;IACb,yDAAsB,CAAA;IACtB,2DAA2B,CAAA;IAC3B,2DAA+B,CAAA;AACjC,CAAC,EATW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAStB"}