@shivaedev/jobs 0.30.0 → 0.32.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 (447) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +88 -24
  3. package/dist/display.d.ts +14 -0
  4. package/dist/display.d.ts.map +1 -0
  5. package/dist/display.js +2 -0
  6. package/dist/display.js.map +1 -0
  7. package/dist/server/ClientDatabase.d.ts +21 -0
  8. package/dist/server/ClientDatabase.d.ts.map +1 -0
  9. package/dist/server/ClientDatabase.js +2 -0
  10. package/dist/server/ClientDatabase.js.map +1 -0
  11. package/dist/server/PgBoss.d.ts +2 -2
  12. package/dist/server/PgBoss.d.ts.map +1 -1
  13. package/dist/server/adapters/batchClockOffset.d.ts +2 -2
  14. package/dist/server/adapters/batchClockOffset.d.ts.map +1 -1
  15. package/dist/server/adapters/batchClockOffset.js +5 -4
  16. package/dist/server/adapters/batchClockOffset.js.map +1 -1
  17. package/dist/server/adapters/batchHandler.d.ts +5 -0
  18. package/dist/server/adapters/batchHandler.d.ts.map +1 -0
  19. package/dist/server/{internal → adapters}/batchHandler.js +6 -6
  20. package/dist/server/adapters/batchHandler.js.map +1 -0
  21. package/dist/server/adapters/clientCache.d.ts +10 -0
  22. package/dist/server/adapters/clientCache.d.ts.map +1 -0
  23. package/dist/server/{internal → adapters}/clientCache.js +5 -19
  24. package/dist/server/adapters/clientCache.js.map +1 -0
  25. package/dist/server/adapters/clientErrorLogger.js +1 -1
  26. package/dist/server/adapters/clientErrorLogger.js.map +1 -1
  27. package/dist/server/adapters/defaultClientFactory.d.ts +4 -0
  28. package/dist/server/adapters/defaultClientFactory.d.ts.map +1 -0
  29. package/dist/server/adapters/defaultClientFactory.js.map +1 -0
  30. package/dist/server/adapters/deferralCount.d.ts +3 -3
  31. package/dist/server/adapters/deferralCount.d.ts.map +1 -1
  32. package/dist/server/adapters/deferralCount.js +2 -2
  33. package/dist/server/adapters/deferralCount.js.map +1 -1
  34. package/dist/server/adapters/expireAttempt.d.ts +4 -0
  35. package/dist/server/adapters/expireAttempt.d.ts.map +1 -0
  36. package/dist/server/{internal → adapters}/expireAttempt.js +1 -1
  37. package/dist/server/{internal → adapters}/expireAttempt.js.map +1 -1
  38. package/dist/server/adapters/inspection.d.ts +5 -0
  39. package/dist/server/adapters/inspection.d.ts.map +1 -0
  40. package/dist/server/adapters/inspection.js +25 -0
  41. package/dist/server/adapters/inspection.js.map +1 -0
  42. package/dist/server/adapters/inspectionChanges.d.ts +7 -0
  43. package/dist/server/adapters/inspectionChanges.d.ts.map +1 -0
  44. package/dist/server/adapters/inspectionChanges.js +23 -0
  45. package/dist/server/adapters/inspectionChanges.js.map +1 -0
  46. package/dist/server/adapters/inspectionDeferrals.d.ts +10 -0
  47. package/dist/server/adapters/inspectionDeferrals.d.ts.map +1 -0
  48. package/dist/server/adapters/inspectionDeferrals.js +13 -0
  49. package/dist/server/adapters/inspectionDeferrals.js.map +1 -0
  50. package/dist/server/adapters/inspectionJobs.d.ts +50 -0
  51. package/dist/server/adapters/inspectionJobs.d.ts.map +1 -0
  52. package/dist/server/adapters/inspectionJobs.js +21 -0
  53. package/dist/server/adapters/inspectionJobs.js.map +1 -0
  54. package/dist/server/adapters/inspectionOperation.d.ts +3 -0
  55. package/dist/server/adapters/inspectionOperation.d.ts.map +1 -0
  56. package/dist/server/adapters/inspectionOperation.js +6 -0
  57. package/dist/server/adapters/inspectionOperation.js.map +1 -0
  58. package/dist/server/adapters/inspectionPlan.d.ts +3 -0
  59. package/dist/server/adapters/inspectionPlan.d.ts.map +1 -0
  60. package/dist/server/adapters/inspectionPlan.js +20 -0
  61. package/dist/server/adapters/inspectionPlan.js.map +1 -0
  62. package/dist/server/adapters/inspectionReads.d.ts +59 -0
  63. package/dist/server/adapters/inspectionReads.d.ts.map +1 -0
  64. package/dist/server/adapters/inspectionReads.js +44 -0
  65. package/dist/server/adapters/inspectionReads.js.map +1 -0
  66. package/dist/server/adapters/inspectionSnapshot.d.ts +6 -0
  67. package/dist/server/adapters/inspectionSnapshot.d.ts.map +1 -0
  68. package/dist/server/{internal/testingSnapshot.js → adapters/inspectionSnapshot.js} +10 -8
  69. package/dist/server/adapters/inspectionSnapshot.js.map +1 -0
  70. package/dist/server/adapters/installSchema.d.ts +1 -1
  71. package/dist/server/adapters/installSchema.d.ts.map +1 -1
  72. package/dist/server/adapters/installSchema.js +1 -1
  73. package/dist/server/adapters/installSchema.js.map +1 -1
  74. package/dist/server/adapters/jobEngine.d.ts +5 -0
  75. package/dist/server/adapters/jobEngine.d.ts.map +1 -0
  76. package/dist/server/adapters/jobEngine.js +46 -0
  77. package/dist/server/adapters/jobEngine.js.map +1 -0
  78. package/dist/server/adapters/lifecycle.d.ts +11 -0
  79. package/dist/server/adapters/lifecycle.d.ts.map +1 -0
  80. package/dist/server/adapters/lifecycle.js +48 -0
  81. package/dist/server/adapters/lifecycle.js.map +1 -0
  82. package/dist/server/adapters/listJobs.d.ts +5 -0
  83. package/dist/server/adapters/listJobs.d.ts.map +1 -0
  84. package/dist/server/adapters/listJobs.js +37 -0
  85. package/dist/server/adapters/listJobs.js.map +1 -0
  86. package/dist/server/adapters/payloadIdentity.d.ts +3 -0
  87. package/dist/server/adapters/payloadIdentity.d.ts.map +1 -0
  88. package/dist/server/adapters/payloadIdentity.js +14 -0
  89. package/dist/server/adapters/payloadIdentity.js.map +1 -0
  90. package/dist/server/adapters/queueAdministration.d.ts +4 -0
  91. package/dist/server/adapters/queueAdministration.d.ts.map +1 -0
  92. package/dist/server/adapters/queueAdministration.js +42 -0
  93. package/dist/server/adapters/queueAdministration.js.map +1 -0
  94. package/dist/server/{internal/testingSignal.d.ts → adapters/queueSignal.d.ts} +2 -2
  95. package/dist/server/adapters/queueSignal.d.ts.map +1 -0
  96. package/dist/server/{internal/testingSignal.js → adapters/queueSignal.js} +2 -2
  97. package/dist/server/adapters/queueSignal.js.map +1 -0
  98. package/dist/server/adapters/registerWorker.d.ts +5 -3
  99. package/dist/server/adapters/registerWorker.d.ts.map +1 -1
  100. package/dist/server/adapters/registerWorker.js +9 -6
  101. package/dist/server/adapters/registerWorker.js.map +1 -1
  102. package/dist/server/adapters/retireJobs.d.ts +3 -3
  103. package/dist/server/adapters/retireJobs.d.ts.map +1 -1
  104. package/dist/server/adapters/retireJobs.js +3 -3
  105. package/dist/server/adapters/retireJobs.js.map +1 -1
  106. package/dist/server/adapters/schemaIndexBuilds.d.ts +2 -2
  107. package/dist/server/adapters/schemaIndexBuilds.d.ts.map +1 -1
  108. package/dist/server/adapters/schemaIndexBuilds.js.map +1 -1
  109. package/dist/server/adapters/settleDeferral.d.ts +7 -0
  110. package/dist/server/adapters/settleDeferral.d.ts.map +1 -0
  111. package/dist/server/{internal → adapters}/settleDeferral.js +2 -2
  112. package/dist/server/adapters/settleDeferral.js.map +1 -0
  113. package/dist/server/adapters/testingClient.d.ts +13 -0
  114. package/dist/server/adapters/testingClient.d.ts.map +1 -0
  115. package/dist/server/{internal → adapters}/testingClient.js +27 -48
  116. package/dist/server/adapters/testingClient.js.map +1 -0
  117. package/dist/server/adapters/testingController.d.ts +79 -0
  118. package/dist/server/adapters/testingController.d.ts.map +1 -0
  119. package/dist/server/adapters/testingController.js +108 -0
  120. package/dist/server/adapters/testingController.js.map +1 -0
  121. package/dist/server/adapters/testingDueNow.d.ts +3 -3
  122. package/dist/server/adapters/testingDueNow.d.ts.map +1 -1
  123. package/dist/server/adapters/testingDueNow.js +2 -2
  124. package/dist/server/adapters/testingDueNow.js.map +1 -1
  125. package/dist/server/adapters/testingEngine.d.ts +5 -0
  126. package/dist/server/adapters/testingEngine.d.ts.map +1 -0
  127. package/dist/server/adapters/testingEngine.js +12 -0
  128. package/dist/server/adapters/testingEngine.js.map +1 -0
  129. package/dist/server/adapters/testingExpirations.d.ts +6 -4
  130. package/dist/server/adapters/testingExpirations.d.ts.map +1 -1
  131. package/dist/server/adapters/testingExpirations.js.map +1 -1
  132. package/dist/server/adapters/testingInspectionClient.d.ts +5 -0
  133. package/dist/server/adapters/testingInspectionClient.d.ts.map +1 -0
  134. package/dist/server/adapters/testingInspectionClient.js +52 -0
  135. package/dist/server/adapters/testingInspectionClient.js.map +1 -0
  136. package/dist/server/adapters/transactionDb.d.ts +2 -2
  137. package/dist/server/adapters/transactionDb.d.ts.map +1 -1
  138. package/dist/server/adapters/transactionDb.js.map +1 -1
  139. package/dist/server/client.d.ts +95 -18
  140. package/dist/server/client.d.ts.map +1 -1
  141. package/dist/server/clientOptions.d.ts +74 -0
  142. package/dist/server/clientOptions.d.ts.map +1 -0
  143. package/dist/server/clientOptions.js +2 -0
  144. package/dist/server/clientOptions.js.map +1 -0
  145. package/dist/server/defineSchedule.d.ts +1 -1
  146. package/dist/server/defineSchedule.d.ts.map +1 -1
  147. package/dist/server/defineSchedule.js +2 -1
  148. package/dist/server/defineSchedule.js.map +1 -1
  149. package/dist/server/definition.d.ts +29 -26
  150. package/dist/server/definition.d.ts.map +1 -1
  151. package/dist/server/definition.js +5 -2
  152. package/dist/server/definition.js.map +1 -1
  153. package/dist/server/engineClient.d.ts +21 -0
  154. package/dist/server/engineClient.d.ts.map +1 -0
  155. package/dist/server/engineClient.js +2 -0
  156. package/dist/server/engineClient.js.map +1 -0
  157. package/dist/server/enqueueOptions.d.ts +28 -0
  158. package/dist/server/enqueueOptions.d.ts.map +1 -0
  159. package/dist/server/enqueueOptions.js +2 -0
  160. package/dist/server/enqueueOptions.js.map +1 -0
  161. package/dist/server/error.d.ts +11 -1
  162. package/dist/server/error.d.ts.map +1 -1
  163. package/dist/server/error.js +8 -1
  164. package/dist/server/error.js.map +1 -1
  165. package/dist/server/health.d.ts +2 -2
  166. package/dist/server/health.d.ts.map +1 -1
  167. package/dist/server/inspection.d.ts +102 -0
  168. package/dist/server/inspection.d.ts.map +1 -0
  169. package/dist/server/inspection.js +30 -0
  170. package/dist/server/inspection.js.map +1 -0
  171. package/dist/server/internal/acquireClient.d.ts +11 -0
  172. package/dist/server/internal/acquireClient.d.ts.map +1 -0
  173. package/dist/server/internal/acquireClient.js +21 -0
  174. package/dist/server/internal/acquireClient.js.map +1 -0
  175. package/dist/server/internal/adapters/testingFetches.d.ts +2 -2
  176. package/dist/server/internal/adapters/testingFetches.d.ts.map +1 -1
  177. package/dist/server/internal/adapters/testingFetches.js.map +1 -1
  178. package/dist/server/internal/clientErrors.d.ts +1 -1
  179. package/dist/server/internal/clientErrors.d.ts.map +1 -1
  180. package/dist/server/internal/countsFor.d.ts +3 -3
  181. package/dist/server/internal/countsFor.d.ts.map +1 -1
  182. package/dist/server/internal/countsFor.js +2 -2
  183. package/dist/server/internal/countsFor.js.map +1 -1
  184. package/dist/server/internal/deadLetterResolutionPlan.js +1 -1
  185. package/dist/server/internal/deadLetterResolutionPlan.js.map +1 -1
  186. package/dist/server/internal/deadlineOf.d.ts +2 -2
  187. package/dist/server/internal/deadlineOf.d.ts.map +1 -1
  188. package/dist/server/internal/deadlineOf.js.map +1 -1
  189. package/dist/server/internal/deferrableAttempt.d.ts +4 -5
  190. package/dist/server/internal/deferrableAttempt.d.ts.map +1 -1
  191. package/dist/server/internal/deferrableAttempt.js +5 -14
  192. package/dist/server/internal/deferrableAttempt.js.map +1 -1
  193. package/dist/server/internal/deferral.d.ts +2 -4
  194. package/dist/server/internal/deferral.d.ts.map +1 -1
  195. package/dist/server/internal/deferral.js +0 -1
  196. package/dist/server/internal/deferral.js.map +1 -1
  197. package/dist/server/internal/deferralStorePlan.js +2 -2
  198. package/dist/server/internal/deferralStorePlan.js.map +1 -1
  199. package/dist/server/internal/definitionOptions.d.ts +7 -7
  200. package/dist/server/internal/definitionOptions.d.ts.map +1 -1
  201. package/dist/server/internal/engine.d.ts +25 -0
  202. package/dist/server/internal/engine.d.ts.map +1 -0
  203. package/dist/server/internal/engine.js +6 -0
  204. package/dist/server/internal/engine.js.map +1 -0
  205. package/dist/server/internal/enqueueFor.d.ts +2 -2
  206. package/dist/server/internal/enqueueFor.d.ts.map +1 -1
  207. package/dist/server/internal/enqueueFor.js +14 -4
  208. package/dist/server/internal/enqueueFor.js.map +1 -1
  209. package/dist/server/internal/ensureQueue.d.ts +2 -3
  210. package/dist/server/internal/ensureQueue.d.ts.map +1 -1
  211. package/dist/server/internal/ensureQueue.js +2 -2
  212. package/dist/server/internal/ensureQueue.js.map +1 -1
  213. package/dist/server/internal/healthFor.d.ts +3 -3
  214. package/dist/server/internal/healthFor.d.ts.map +1 -1
  215. package/dist/server/internal/healthFor.js +2 -2
  216. package/dist/server/internal/healthFor.js.map +1 -1
  217. package/dist/server/internal/jobControl.d.ts +9 -4
  218. package/dist/server/internal/jobControl.d.ts.map +1 -1
  219. package/dist/server/internal/jobControl.js +13 -40
  220. package/dist/server/internal/jobControl.js.map +1 -1
  221. package/dist/server/internal/jobListings.d.ts +16 -0
  222. package/dist/server/internal/jobListings.d.ts.map +1 -0
  223. package/dist/server/internal/jobListings.js +52 -0
  224. package/dist/server/internal/jobListings.js.map +1 -0
  225. package/dist/server/internal/jobStorePlans.d.ts.map +1 -1
  226. package/dist/server/internal/jobStorePlans.js +4 -3
  227. package/dist/server/internal/jobStorePlans.js.map +1 -1
  228. package/dist/server/internal/lifecycle.d.ts +11 -7
  229. package/dist/server/internal/lifecycle.d.ts.map +1 -1
  230. package/dist/server/internal/lifecycle.js +2 -49
  231. package/dist/server/internal/lifecycle.js.map +1 -1
  232. package/dist/server/internal/makeService.d.ts +5 -3
  233. package/dist/server/internal/makeService.d.ts.map +1 -1
  234. package/dist/server/internal/makeService.js +18 -13
  235. package/dist/server/internal/makeService.js.map +1 -1
  236. package/dist/server/internal/register.d.ts +5 -5
  237. package/dist/server/internal/register.d.ts.map +1 -1
  238. package/dist/server/internal/register.js +5 -9
  239. package/dist/server/internal/register.js.map +1 -1
  240. package/dist/server/internal/registerReleasedJobs.d.ts +4 -4
  241. package/dist/server/internal/registerReleasedJobs.d.ts.map +1 -1
  242. package/dist/server/internal/registerReleasedJobs.js +2 -2
  243. package/dist/server/internal/registerReleasedJobs.js.map +1 -1
  244. package/dist/server/internal/retryWake.d.ts +1 -1
  245. package/dist/server/internal/retryWake.d.ts.map +1 -1
  246. package/dist/server/internal/retryWake.js +2 -2
  247. package/dist/server/internal/retryWake.js.map +1 -1
  248. package/dist/server/internal/runQueueWorker.d.ts +4 -4
  249. package/dist/server/internal/runQueueWorker.d.ts.map +1 -1
  250. package/dist/server/internal/runQueueWorker.js +5 -5
  251. package/dist/server/internal/runQueueWorker.js.map +1 -1
  252. package/dist/server/internal/storedRows.d.ts +2 -2
  253. package/dist/server/internal/storedRows.d.ts.map +1 -1
  254. package/dist/server/internal/storedRows.js +2 -2
  255. package/dist/server/internal/storedRows.js.map +1 -1
  256. package/dist/server/internal/testingIdle.d.ts +4 -3
  257. package/dist/server/internal/testingIdle.d.ts.map +1 -1
  258. package/dist/server/internal/testingIdle.js +5 -25
  259. package/dist/server/internal/testingIdle.js.map +1 -1
  260. package/dist/server/internal/testingOperation.d.ts +5 -0
  261. package/dist/server/internal/testingOperation.d.ts.map +1 -0
  262. package/dist/server/internal/testingOperation.js +12 -0
  263. package/dist/server/internal/testingOperation.js.map +1 -0
  264. package/dist/server/internal/testingSchedules.d.ts +9 -6
  265. package/dist/server/internal/testingSchedules.d.ts.map +1 -1
  266. package/dist/server/internal/testingSchedules.js +14 -9
  267. package/dist/server/internal/testingSchedules.js.map +1 -1
  268. package/dist/server/internal/testingWaits.d.ts +12 -8
  269. package/dist/server/internal/testingWaits.d.ts.map +1 -1
  270. package/dist/server/internal/testingWaits.js +6 -7
  271. package/dist/server/internal/testingWaits.js.map +1 -1
  272. package/dist/server/internal/tracing.d.ts +2 -2
  273. package/dist/server/internal/tracing.d.ts.map +1 -1
  274. package/dist/server/internal/tracing.js.map +1 -1
  275. package/dist/server/internal/validateQueueNames.d.ts +2 -2
  276. package/dist/server/internal/validateQueueNames.d.ts.map +1 -1
  277. package/dist/server/internal/validateQueueNames.js +1 -1
  278. package/dist/server/internal/validateQueueNames.js.map +1 -1
  279. package/dist/server/internal/waitForBatchExpiry.d.ts +4 -4
  280. package/dist/server/internal/waitForBatchExpiry.d.ts.map +1 -1
  281. package/dist/server/internal/waitForBatchExpiry.js +1 -1
  282. package/dist/server/internal/waitForBatchExpiry.js.map +1 -1
  283. package/dist/server/job.d.ts +42 -0
  284. package/dist/server/job.d.ts.map +1 -0
  285. package/dist/server/job.js +2 -0
  286. package/dist/server/job.js.map +1 -0
  287. package/dist/server/jobModule.d.ts +6 -4
  288. package/dist/server/jobModule.d.ts.map +1 -1
  289. package/dist/server/jobModule.js +7 -5
  290. package/dist/server/jobModule.js.map +1 -1
  291. package/dist/server/queueOptions.d.ts +19 -0
  292. package/dist/server/queueOptions.d.ts.map +1 -0
  293. package/dist/server/queueOptions.js +2 -0
  294. package/dist/server/queueOptions.js.map +1 -0
  295. package/dist/server/readJobFailure.d.ts +5 -0
  296. package/dist/server/readJobFailure.d.ts.map +1 -0
  297. package/dist/server/readJobFailure.js +8 -0
  298. package/dist/server/readJobFailure.js.map +1 -0
  299. package/dist/server/schema.d.ts +1 -1
  300. package/dist/server/schema.d.ts.map +1 -1
  301. package/dist/server/schema.js +23 -7
  302. package/dist/server/schema.js.map +1 -1
  303. package/dist/server/service.d.ts +17 -12
  304. package/dist/server/service.d.ts.map +1 -1
  305. package/dist/server/service.js +19 -27
  306. package/dist/server/service.js.map +1 -1
  307. package/dist/server/testing.d.ts +63 -67
  308. package/dist/server/testing.d.ts.map +1 -1
  309. package/dist/server/testing.js +5 -97
  310. package/dist/server/testing.js.map +1 -1
  311. package/dist/server/workerOptions.d.ts +25 -0
  312. package/dist/server/workerOptions.d.ts.map +1 -0
  313. package/dist/server/workerOptions.js +2 -0
  314. package/dist/server/workerOptions.js.map +1 -0
  315. package/package.json +11 -16
  316. package/src/display.ts +12 -0
  317. package/src/server/ClientDatabase.ts +7 -0
  318. package/src/server/PgBoss.ts +2 -2
  319. package/src/server/adapters/batchClockOffset.ts +8 -5
  320. package/src/server/{internal → adapters}/batchHandler.ts +13 -13
  321. package/src/server/{internal → adapters}/clientCache.ts +10 -22
  322. package/src/server/adapters/clientErrorLogger.ts +1 -1
  323. package/src/server/{defaultClientFactory.ts → adapters/defaultClientFactory.ts} +4 -2
  324. package/src/server/adapters/deferralCount.ts +5 -5
  325. package/src/server/{internal → adapters}/expireAttempt.ts +4 -3
  326. package/src/server/adapters/inspection.ts +31 -0
  327. package/src/server/adapters/inspectionChanges.ts +31 -0
  328. package/src/server/adapters/inspectionDeferrals.ts +20 -0
  329. package/src/server/adapters/inspectionJobs.ts +28 -0
  330. package/src/server/adapters/inspectionOperation.ts +6 -0
  331. package/src/server/adapters/inspectionPlan.ts +21 -0
  332. package/src/server/adapters/inspectionReads.ts +55 -0
  333. package/src/server/{internal/testingSnapshot.ts → adapters/inspectionSnapshot.ts} +16 -18
  334. package/src/server/adapters/installSchema.ts +2 -2
  335. package/src/server/adapters/jobEngine.ts +55 -0
  336. package/src/server/adapters/lifecycle.ts +67 -0
  337. package/src/server/adapters/listJobs.ts +43 -0
  338. package/src/server/adapters/payloadIdentity.ts +15 -0
  339. package/src/server/adapters/queueAdministration.ts +47 -0
  340. package/src/server/{internal/testingSignal.ts → adapters/queueSignal.ts} +1 -1
  341. package/src/server/adapters/registerWorker.ts +17 -12
  342. package/src/server/adapters/retireJobs.ts +5 -5
  343. package/src/server/adapters/schemaIndexBuilds.ts +2 -2
  344. package/src/server/{internal → adapters}/settleDeferral.ts +5 -5
  345. package/src/server/{internal → adapters}/testingClient.ts +24 -40
  346. package/src/server/adapters/testingController.ts +125 -0
  347. package/src/server/adapters/testingDueNow.ts +5 -5
  348. package/src/server/adapters/testingEngine.ts +15 -0
  349. package/src/server/adapters/testingExpirations.ts +6 -4
  350. package/src/server/adapters/testingInspectionClient.ts +70 -0
  351. package/src/server/adapters/transactionDb.ts +2 -2
  352. package/src/server/client.ts +86 -30
  353. package/src/server/clientOptions.ts +80 -0
  354. package/src/server/defineSchedule.ts +3 -2
  355. package/src/server/definition.ts +38 -29
  356. package/src/server/engineClient.ts +22 -0
  357. package/src/server/enqueueOptions.ts +25 -0
  358. package/src/server/error.ts +18 -2
  359. package/src/server/health.ts +2 -2
  360. package/src/server/inspection.ts +50 -0
  361. package/src/server/internal/acquireClient.ts +26 -0
  362. package/src/server/internal/adapters/testingFetches.ts +2 -2
  363. package/src/server/internal/clientErrors.ts +1 -1
  364. package/src/server/internal/countsFor.ts +5 -5
  365. package/src/server/internal/deadLetterResolutionPlan.ts +1 -1
  366. package/src/server/internal/deadlineOf.ts +2 -2
  367. package/src/server/internal/deferrableAttempt.ts +5 -22
  368. package/src/server/internal/deferral.ts +2 -4
  369. package/src/server/internal/deferralStorePlan.ts +2 -2
  370. package/src/server/internal/definitionOptions.ts +1 -1
  371. package/src/server/internal/engine.ts +35 -0
  372. package/src/server/internal/enqueueFor.ts +19 -6
  373. package/src/server/internal/ensureQueue.ts +5 -6
  374. package/src/server/internal/healthFor.ts +4 -4
  375. package/src/server/internal/jobControl.ts +15 -50
  376. package/src/server/internal/jobListings.ts +85 -0
  377. package/src/server/internal/jobStorePlans.ts +4 -3
  378. package/src/server/internal/lifecycle.ts +14 -55
  379. package/src/server/internal/makeService.ts +24 -15
  380. package/src/server/internal/register.ts +8 -12
  381. package/src/server/internal/registerReleasedJobs.ts +5 -5
  382. package/src/server/internal/retryWake.ts +3 -3
  383. package/src/server/internal/runQueueWorker.ts +8 -8
  384. package/src/server/internal/storedRows.ts +3 -3
  385. package/src/server/internal/testingIdle.ts +8 -31
  386. package/src/server/internal/testingOperation.ts +18 -0
  387. package/src/server/internal/testingSchedules.ts +29 -17
  388. package/src/server/internal/testingWaits.ts +16 -16
  389. package/src/server/internal/tracing.ts +2 -2
  390. package/src/server/internal/validateQueueNames.ts +2 -2
  391. package/src/server/internal/waitForBatchExpiry.ts +4 -4
  392. package/src/server/job.ts +42 -0
  393. package/src/server/jobModule.ts +19 -7
  394. package/src/server/queueOptions.ts +20 -0
  395. package/src/server/readJobFailure.ts +12 -0
  396. package/src/server/schema.ts +23 -7
  397. package/src/server/service.ts +43 -44
  398. package/src/server/testing.ts +4 -117
  399. package/src/server/workerOptions.ts +28 -0
  400. package/dist/server/defaultClientFactory.d.ts +0 -3
  401. package/dist/server/defaultClientFactory.d.ts.map +0 -1
  402. package/dist/server/defaultClientFactory.js.map +0 -1
  403. package/dist/server/internal/batchHandler.d.ts +0 -5
  404. package/dist/server/internal/batchHandler.d.ts.map +0 -1
  405. package/dist/server/internal/batchHandler.js.map +0 -1
  406. package/dist/server/internal/clientCache.d.ts +0 -8
  407. package/dist/server/internal/clientCache.d.ts.map +0 -1
  408. package/dist/server/internal/clientCache.js.map +0 -1
  409. package/dist/server/internal/expireAttempt.d.ts +0 -3
  410. package/dist/server/internal/expireAttempt.d.ts.map +0 -1
  411. package/dist/server/internal/listJobs.d.ts +0 -5
  412. package/dist/server/internal/listJobs.d.ts.map +0 -1
  413. package/dist/server/internal/listJobs.js +0 -75
  414. package/dist/server/internal/listJobs.js.map +0 -1
  415. package/dist/server/internal/observeTestingSettlements.d.ts +0 -6
  416. package/dist/server/internal/observeTestingSettlements.d.ts.map +0 -1
  417. package/dist/server/internal/observeTestingSettlements.js +0 -35
  418. package/dist/server/internal/observeTestingSettlements.js.map +0 -1
  419. package/dist/server/internal/settleDeferral.d.ts +0 -7
  420. package/dist/server/internal/settleDeferral.d.ts.map +0 -1
  421. package/dist/server/internal/settleDeferral.js.map +0 -1
  422. package/dist/server/internal/testingClient.d.ts +0 -13
  423. package/dist/server/internal/testingClient.d.ts.map +0 -1
  424. package/dist/server/internal/testingClient.js.map +0 -1
  425. package/dist/server/internal/testingDeferrals.d.ts +0 -10
  426. package/dist/server/internal/testingDeferrals.d.ts.map +0 -1
  427. package/dist/server/internal/testingDeferrals.js +0 -15
  428. package/dist/server/internal/testingDeferrals.js.map +0 -1
  429. package/dist/server/internal/testingReadout.d.ts +0 -44
  430. package/dist/server/internal/testingReadout.d.ts.map +0 -1
  431. package/dist/server/internal/testingReadout.js +0 -13
  432. package/dist/server/internal/testingReadout.js.map +0 -1
  433. package/dist/server/internal/testingRegistrations.d.ts +0 -4
  434. package/dist/server/internal/testingRegistrations.d.ts.map +0 -1
  435. package/dist/server/internal/testingRegistrations.js +0 -8
  436. package/dist/server/internal/testingRegistrations.js.map +0 -1
  437. package/dist/server/internal/testingSignal.d.ts.map +0 -1
  438. package/dist/server/internal/testingSignal.js.map +0 -1
  439. package/dist/server/internal/testingSnapshot.d.ts +0 -6
  440. package/dist/server/internal/testingSnapshot.d.ts.map +0 -1
  441. package/dist/server/internal/testingSnapshot.js.map +0 -1
  442. package/src/server/internal/listJobs.ts +0 -116
  443. package/src/server/internal/observeTestingSettlements.ts +0 -36
  444. package/src/server/internal/testingDeferrals.ts +0 -22
  445. package/src/server/internal/testingReadout.ts +0 -19
  446. package/src/server/internal/testingRegistrations.ts +0 -10
  447. /package/dist/server/{defaultClientFactory.js → adapters/defaultClientFactory.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"testingFetches.js","sourceRoot":"","sources":["../../../../src/server/internal/adapters/testingFetches.ts"],"names":[],"mappings":"AAEA,2IAA2I;AAC3I,MAAM,KAAK,GAAG,gDAAgD,CAAC;AAC/D,MAAM,YAAY,GAAG,oCAAoC,CAAC;AAO1D,MAAM,UAAU,cAAc,CAAC,EAA+B,EAAE,OAAmB;IAClF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,EAAE,CAAC,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,MAAkB,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC;YACJ,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACV,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC,CAAC;IACF,OAAO;QACN,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACvC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM;KAClG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"testingFetches.js","sourceRoot":"","sources":["../../../../src/server/internal/adapters/testingFetches.ts"],"names":[],"mappings":"AAEA,2IAA2I;AAC3I,MAAM,KAAK,GAAG,gDAAgD,CAAC;AAC/D,MAAM,YAAY,GAAG,oCAAoC,CAAC;AAO1D,MAAM,UAAU,cAAc,CAAC,EAAkB,EAAE,OAAmB;IACrE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1C,EAAE,CAAC,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,MAAkB,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5C,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC;YACJ,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACV,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5B,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC,CAAC;IACF,OAAO;QACN,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACvC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM;KAClG,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- import type { PgBossClient } from "#client.ts";
2
+ import type { PgBossClient } from "#server/client.ts";
3
3
  type Listener = (error: Error) => void;
4
4
  export declare function logClientError(error: Error): Effect.Effect<void>;
5
5
  export declare function observeClientErrors(client: PgBossClient, fallback: Listener): void;
@@ -1 +1 @@
1
- {"version":3,"file":"clientErrors.d.ts","sourceRoot":"","sources":["../../../src/server/internal/clientErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAYvC,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAGhE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAelF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAO1F"}
1
+ {"version":3,"file":"clientErrors.d.ts","sourceRoot":"","sources":["../../../src/server/internal/clientErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAYvC,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAGhE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAelF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CAO1F"}
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- import type { PgBossClient } from "#client.ts";
3
- import type { QueueCounts } from "#health.ts";
4
- export declare function countsFor(client: PgBossClient, schema: string, name: string): Effect.Effect<QueueCounts, import("#error.ts").PgBossError>;
2
+ import type { PgBossClient } from "#server/client.ts";
3
+ import type { QueueCounts } from "#server/health.ts";
4
+ export declare function countsFor(client: PgBossClient, schema: string, name: string): Effect.Effect<QueueCounts, import("#server/error.ts").PgBossError>;
5
5
  //# sourceMappingURL=countsFor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"countsFor.d.ts","sourceRoot":"","sources":["../../../src/server/internal/countsFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAU9C,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,WAAW,EAAE,WAAW,CAAC,CAoBzI"}
1
+ {"version":3,"file":"countsFor.d.ts","sourceRoot":"","sources":["../../../src/server/internal/countsFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUrD,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,kBAAkB,EAAE,WAAW,CAAC,CAoBhJ"}
@@ -1,6 +1,6 @@
1
1
  import { Effect, Schema } from "effect";
2
- import { toPgBossError } from "#error.ts";
3
- import { quotedSchema } from "#internal/storedRows.ts";
2
+ import { toPgBossError } from "#server/error.ts";
3
+ import { quotedSchema } from "#server/internal/storedRows.ts";
4
4
  const Counts = Schema.Struct({
5
5
  activeCount: Schema.Number,
6
6
  failedCount: Schema.Number,
@@ -1 +1 @@
1
- {"version":3,"file":"countsFor.js","sourceRoot":"","sources":["../../../src/server/internal/countsFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM;CACzB,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,MAAc,EAAE,IAAY;IAC3E,OAAO,MAAM,CAAC,UAAU,CAAC;QACxB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;QACtD,GAAG,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,UAAU,CAC/C;;;;;WAKO,MAAM,sBAAsB,EACnC,CAAC,IAAI,CAAC,CACN,CAAC;YACF,OAAO,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"countsFor.js","sourceRoot":"","sources":["../../../src/server/internal/countsFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM;CACzB,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,MAAc,EAAE,IAAY;IAC3E,OAAO,MAAM,CAAC,UAAU,CAAC;QACxB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;QACtD,GAAG,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,UAAU,CAC/C;;;;;WAKO,MAAM,sBAAsB,EACnC,CAAC,IAAI,CAAC,CACN,CAAC;YACF,OAAO,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import { quotedSchema } from "#internal/storedRows.ts";
1
+ import { quotedSchema } from "#server/internal/storedRows.ts";
2
2
  export function deadLetterResolutionPlan(schema) {
3
3
  const quoted = quotedSchema(schema);
4
4
  const jobTable = `${quoted}.job`.replaceAll("'", "''");
@@ -1 +1 @@
1
- {"version":3,"file":"deadLetterResolutionPlan.js","sourceRoot":"","sources":["../../../src/server/internal/deadLetterResolutionPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG;oDACsC,QAAQ;+BAC7B,MAAM;;iBAEpB,MAAM;;;;;;;+CAOwB,QAAQ;;2EAEoB,MAAM;;sBAE3D,MAAM;iBACX,MAAM,sBAAsB,MAAM;;;;KAI9C,CAAC;IACL,OAAO,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"deadLetterResolutionPlan.js","sourceRoot":"","sources":["../../../src/server/internal/deadLetterResolutionPlan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACtD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG;oDACsC,QAAQ;+BAC7B,MAAM;;iBAEpB,MAAM;;;;;;;+CAOwB,QAAQ;;2EAEoB,MAAM;;sBAE3D,MAAM;iBACX,MAAM,sBAAsB,MAAM;;;;KAI9C,CAAC;IACL,OAAO,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7C,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { Job } from "pg-boss";
2
- export declare function deadlineOf(job: Job<unknown>): number;
1
+ import type { WorkerJob } from "#server/job.ts";
2
+ export declare function deadlineOf(job: WorkerJob<unknown>): number;
3
3
  //# sourceMappingURL=deadlineOf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deadlineOf.d.ts","sourceRoot":"","sources":["../../../src/server/internal/deadlineOf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAEnC,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,CAKpD"}
1
+ {"version":3,"file":"deadlineOf.d.ts","sourceRoot":"","sources":["../../../src/server/internal/deadlineOf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAK1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"deadlineOf.js","sourceRoot":"","sources":["../../../src/server/internal/deadlineOf.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,GAAiB;IAC3C,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,YAAY,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;QACxG,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"deadlineOf.js","sourceRoot":"","sources":["../../../src/server/internal/deadlineOf.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,GAAuB;IACjD,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,YAAY,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC;QACxG,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;AAC7D,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { Effect } from "effect";
2
- import type { Job } from "pg-boss";
3
- import type { PgBossClient } from "#client.ts";
4
- import { RetryAt } from "#definition.ts";
5
- import { deferredAttempt } from "#internal/deferral.ts";
6
- export declare function deferrableAttempt<A, E, R>(effect: Effect.Effect<A, E, R>, client: PgBossClient, schema: string, job: Job<unknown>, maxDeferrals: number): Effect.Effect<typeof deferredAttempt | A, import("#error.ts").PgBossError | Exclude<E, import("effect/Types").NoInfer<E> & RetryAt> | (import("effect/Types").NoInfer<E> & RetryAt), R>;
2
+ import { RetryAt } from "#server/definition.ts";
3
+ import { deferredAttempt } from "#server/internal/deferral.ts";
4
+ import { type JobAttempt, JobEngine } from "#server/internal/engine.ts";
5
+ export declare function deferrableAttempt<A, E, R>(effect: Effect.Effect<A, E, R>, job: JobAttempt, maxDeferrals: number): Effect.Effect<typeof deferredAttempt | A, import("../error.ts").PgBossError | Exclude<E, import("effect/Types").NoInfer<E> & RetryAt> | (import("effect/Types").NoInfer<E> & RetryAt), R | JobEngine>;
7
6
  //# sourceMappingURL=deferrableAttempt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deferrableAttempt.d.ts","sourceRoot":"","sources":["../../../src/server/internal/deferrableAttempt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAU,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAqB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQ3E,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACxC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,EACjB,YAAY,EAAE,MAAM,2LA0BpB"}
1
+ {"version":3,"file":"deferrableAttempt.d.ts","sourceRoot":"","sources":["../../../src/server/internal/deferrableAttempt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAU,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAOxE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yMAiB/G"}
@@ -1,30 +1,21 @@
1
1
  import { Clock, DateTime, Effect, Schema } from "effect";
2
- import { RetryAt } from "#definition.ts";
3
- import { toPgBossError } from "#error.ts";
4
- import { deferralObservers, deferredAttempt } from "#internal/deferral.ts";
5
- import { settleDeferral } from "#internal/settleDeferral.ts";
2
+ import { RetryAt } from "#server/definition.ts";
3
+ import { deferredAttempt } from "#server/internal/deferral.ts";
4
+ import { JobEngine } from "#server/internal/engine.ts";
6
5
  const recordDeferral = Effect.fnUntraced(function* (at, reason) {
7
6
  const span = yield* Effect.currentSpan.pipe(Effect.orDie);
8
7
  span.event("job.deferred", yield* Clock.currentTimeNanos, { at, reason });
9
8
  });
10
- export function deferrableAttempt(effect, client, schema, job, maxDeferrals) {
9
+ export function deferrableAttempt(effect, job, maxDeferrals) {
11
10
  return effect.pipe(Effect.catchIf(Schema.is(RetryAt), (error) => {
12
11
  if (maxDeferrals === 0) {
13
12
  return Effect.fail(error);
14
13
  }
15
14
  const at = DateTime.formatIso(error.at);
16
- return Effect.tryPromise({
17
- catch: (failure) => toPgBossError("settle", failure, job.name),
18
- try: () => settleDeferral(client, schema, job, at, error.reason, maxDeferrals),
19
- }).pipe(Effect.flatMap((settled) => {
15
+ return Effect.flatMap(JobEngine, (engine) => engine.settleDeferral(job, at, error.reason, maxDeferrals)).pipe(Effect.flatMap((settled) => {
20
16
  if (settled.claimed && !settled.deferred) {
21
17
  return Effect.fail(error);
22
18
  }
23
- // Native batch settlement must not match a sibling's new claim at the unchanged retry count.
24
- job.retryCount = Number.MAX_SAFE_INTEGER;
25
- if (settled.deferred) {
26
- deferralObservers.get(client)?.();
27
- }
28
19
  return (settled.deferred ? recordDeferral(at, error.reason) : Effect.void).pipe(Effect.as(deferredAttempt));
29
20
  }));
30
21
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"deferrableAttempt.js","sourceRoot":"","sources":["../../../src/server/internal/deferrableAttempt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAU,EAAE,MAAc;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAChC,MAA8B,EAC9B,MAAoB,EACpB,MAAc,EACd,GAAiB,EACjB,YAAoB;IAEpB,OAAO,MAAM,CAAC,IAAI,CACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5C,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,UAAU,CAAC;YACxB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC;YAC9D,GAAG,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;SAC9E,CAAC,CAAC,IAAI,CACN,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,6FAA6F;YAC7F,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;YACzC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7G,CAAC,CAAC,CACF,CAAC;IACH,CAAC,CAAC,CACF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"deferrableAttempt.js","sourceRoot":"","sources":["../../../src/server/internal/deferrableAttempt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAmB,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAU,EAAE,MAAc;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAU,MAA8B,EAAE,GAAe,EAAE,YAAoB;IAC/G,OAAO,MAAM,CAAC,IAAI,CACjB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5C,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAC5G,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7G,CAAC,CAAC,CACF,CAAC;IACH,CAAC,CAAC,CACF,CAAC;AACH,CAAC"}
@@ -1,14 +1,12 @@
1
1
  import { Schema } from "effect";
2
- import type { Job } from "pg-boss";
3
- import type { PgBossClient } from "#client.ts";
2
+ import type { WorkerJob } from "#server/job.ts";
4
3
  export declare const deferredAttempt: unique symbol;
5
- export declare const deferralObservers: WeakMap<PgBossClient, () => void>;
6
4
  export declare const STATELY_DEFERRAL_POLICY = "effect-stately-deferred";
7
5
  export declare const Deferral: Schema.Struct<{
8
6
  readonly at: Schema.String;
9
7
  readonly reason: Schema.String;
10
8
  }>;
11
- export declare function deferralOf(job: Job<unknown>): {
9
+ export declare function deferralOf(job: WorkerJob<unknown>): {
12
10
  readonly at: string;
13
11
  readonly reason: string;
14
12
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"deferral.d.ts","sourceRoot":"","sources":["../../../src/server/internal/deferral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,eAAe,eAA4B,CAAC;AACzD,eAAO,MAAM,iBAAiB,8BAAmC,IAAI,CAAG,CAAC;AACzE,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,eAAO,MAAM,QAAQ;;;EAGnB,CAAC;AAIH,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;;;cAG3C"}
1
+ {"version":3,"file":"deferral.d.ts","sourceRoot":"","sources":["../../../src/server/internal/deferral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,eAAO,MAAM,eAAe,eAA4B,CAAC;AACzD,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,eAAO,MAAM,QAAQ;;;EAGnB,CAAC;AAIH,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC;;;cAGjD"}
@@ -1,6 +1,5 @@
1
1
  import { Schema } from "effect";
2
2
  export const deferredAttempt = Symbol("deferredAttempt");
3
- export const deferralObservers = new WeakMap();
4
3
  export const STATELY_DEFERRAL_POLICY = "effect-stately-deferred";
5
4
  export const Deferral = Schema.Struct({
6
5
  at: Schema.String,
@@ -1 +1 @@
1
- {"version":3,"file":"deferral.js","sourceRoot":"","sources":["../../../src/server/internal/deferral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA4B,CAAC;AACzE,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;AAExD,MAAM,UAAU,UAAU,CAAC,GAAiB;IAC3C,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"deferral.js","sourceRoot":"","sources":["../../../src/server/internal/deferral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;AAExD,MAAM,UAAU,UAAU,CAAC,GAAuB;IACjD,MAAM,MAAM,GAAY,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC"}
@@ -1,5 +1,5 @@
1
- import { STATELY_DEFERRAL_POLICY } from "#internal/deferral.ts";
2
- import { quotedSchema } from "#internal/storedRows.ts";
1
+ import { STATELY_DEFERRAL_POLICY } from "#server/internal/deferral.ts";
2
+ import { quotedSchema } from "#server/internal/storedRows.ts";
3
3
  export function deferralStorePlan(schema) {
4
4
  const quoted = quotedSchema(schema);
5
5
  const jobTable = `${quoted}.job`.replaceAll("'", "''");
@@ -1 +1 @@
1
- {"version":3,"file":"deferralStorePlan.js","sourceRoot":"","sources":["../../../src/server/internal/deferralStorePlan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG;oDACsC,GAAG;+BACxB,MAAM;;;;;;;;iEAQ4B,MAAM;+BACxC,MAAM;;sBAEf,uBAAuB;;;;;;;+CAOE,QAAQ;;8EAEuB,MAAM;mCACjD,MAAM;;KAEpC,CAAC;IACL,OAAO,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"deferralStorePlan.js","sourceRoot":"","sources":["../../../src/server/internal/deferralStorePlan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG;oDACsC,GAAG;+BACxB,MAAM;;;;;;;;iEAQ4B,MAAM;+BACxC,MAAM;;sBAEf,uBAAuB;;;;;;;+CAOE,QAAQ;;8EAEuB,MAAM;mCACjD,MAAM;;KAEpC,CAAC;IACL,OAAO,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC7C,CAAC"}
@@ -1,17 +1,17 @@
1
- import type { QueueOptions } from "#definition.ts";
1
+ import type { QueueOptions } from "#server/queueOptions.ts";
2
2
  export declare function maxDeferrals(options: QueueOptions | undefined): number;
3
3
  export declare function nativeQueueOptions(options: QueueOptions | undefined): Readonly<{
4
+ deleteAfterSeconds?: number;
4
5
  expireInSeconds?: number;
6
+ heartbeatSeconds?: number;
5
7
  retentionSeconds?: number;
6
- deleteAfterSeconds?: number;
7
- retryLimit?: number;
8
- retryDelay?: number;
9
8
  retryBackoff?: boolean;
9
+ retryDelay?: number;
10
10
  retryDelayMax?: number;
11
+ retryLimit?: number;
12
+ notify?: boolean;
11
13
  partition?: boolean;
14
+ policy?: import("#server/queueOptions.ts").QueuePolicy;
12
15
  warningQueueSize?: number;
13
- heartbeatSeconds?: number;
14
- notify?: boolean;
15
- policy?: import("#definition.ts").QueuePolicy;
16
16
  }>;
17
17
  //# sourceMappingURL=definitionOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitionOptions.d.ts","sourceRoot":"","sources":["../../../src/server/internal/definitionOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAMtE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS;;;;;;;;;;;;;GAGnE"}
1
+ {"version":3,"file":"definitionOptions.d.ts","sourceRoot":"","sources":["../../../src/server/internal/definitionOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAMtE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS;;;;;;;;;;;;;GAGnE"}
@@ -0,0 +1,25 @@
1
+ import { Context, type Effect } from "effect";
2
+ import type { PgBossClient } from "#server/client.ts";
3
+ import type { PgBossError, PgBossTestingError } from "#server/error.ts";
4
+ import type { PgBossService } from "#server/service.ts";
5
+ export type StoredJob = Awaited<ReturnType<NonNullable<PgBossClient["findJobs"]>>>[number];
6
+ export type JobAttempt = Pick<StoredJob, "name" | "id" | "retryCount">;
7
+ export type Listing = "deadLetteredJobs" | "failedJobs";
8
+ declare const JobEngine_base: Context.ServiceClass<JobEngine, "@shivaedev/jobs/JobEngine", Pick<PgBossService, "deleteQueue" | "refreshQueueStats" | "unschedule"> & {
9
+ readonly getJob: (queue: string, id: string) => Effect.Effect<StoredJob | undefined, PgBossError>;
10
+ readonly retry: (queue: string, id: string) => Effect.Effect<void, PgBossError>;
11
+ readonly listJobs: (listing: Listing, queue: string, after: readonly [string, string] | undefined, limit: number) => Effect.Effect<readonly unknown[], PgBossError>;
12
+ readonly settleDeferral: (job: JobAttempt, at: string, reason: string, maxDeferrals: number) => Effect.Effect<{
13
+ readonly claimed: boolean;
14
+ readonly deferred: boolean;
15
+ }, PgBossError>;
16
+ }>;
17
+ export declare class JobEngine extends JobEngine_base {
18
+ }
19
+ declare const TestingEngine_base: Context.ServiceClass<TestingEngine, "@shivaedev/jobs/TestingEngine", {
20
+ readonly expireAttempt: (job: JobAttempt, cause?: "expiry" | "heartbeat") => Effect.Effect<void, PgBossTestingError>;
21
+ }>;
22
+ export declare class TestingEngine extends TestingEngine_base {
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/server/internal/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3F,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC,CAAC;AACvE,MAAM,MAAM,OAAO,GAAG,kBAAkB,GAAG,YAAY,CAAC;;qBAKrC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,EAAE,WAAW,CAAC;oBACjF,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC;uBAC5D,CAClB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC5C,KAAK,EAAE,MAAM,KACT,MAAM,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,WAAW,CAAC;6BAC1B,CACxB,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,KAChB,MAAM,CAAC,MAAM,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,WAAW,CAAC;;AAhB5F,qBAAa,SAAU,SAAQ,cAkBC;CAAG;;4BAKT,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC;;AAHtH,qBAAa,aAAc,SAAQ,kBAKC;CAAG"}
@@ -0,0 +1,6 @@
1
+ import { Context } from "effect";
2
+ export class JobEngine extends Context.Service()("@shivaedev/jobs/JobEngine") {
3
+ }
4
+ export class TestingEngine extends Context.Service()("@shivaedev/jobs/TestingEngine") {
5
+ }
6
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/server/internal/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,QAAQ,CAAC;AAS9C,MAAM,OAAO,SAAU,SAAQ,OAAO,CAAC,OAAO,EAkB3C,CAAC,2BAA2B,CAAC;CAAG;AAEnC,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,OAAO,EAK/C,CAAC,+BAA+B,CAAC;CAAG"}
@@ -1,4 +1,4 @@
1
- import type { PgBossClient } from "#client.ts";
2
- import type { PgBossService } from "#service.ts";
1
+ import type { PgBossClient } from "#server/client.ts";
2
+ import type { PgBossService } from "#server/service.ts";
3
3
  export declare function enqueueFor(client: PgBossClient): PgBossService["enqueue"];
4
4
  //# sourceMappingURL=enqueueFor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enqueueFor.d.ts","sourceRoot":"","sources":["../../../src/server/internal/enqueueFor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,CAuBzE"}
1
+ {"version":3,"file":"enqueueFor.d.ts","sourceRoot":"","sources":["../../../src/server/internal/enqueueFor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYxD,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,CAuBzE"}
@@ -1,7 +1,17 @@
1
1
  import { Effect, Option, Redacted, Schema } from "effect";
2
- import { transactionDb } from "#adapters/transactionDb.ts";
3
- import { PgBossPayloadError, toPgBossError } from "#error.ts";
4
- import { capturePayload } from "#internal/tracing.ts";
2
+ import { payloadJobId, payloadKey } from "#server/adapters/payloadIdentity.ts";
3
+ import { transactionDb } from "#server/adapters/transactionDb.ts";
4
+ import { PgBossPayloadError, toPgBossError } from "#server/error.ts";
5
+ import { capturePayload } from "#server/internal/tracing.ts";
6
+ function identityOptions(queue, payload, options) {
7
+ return queue.id === undefined && queue.key === undefined
8
+ ? options
9
+ : {
10
+ ...options,
11
+ ...(queue.id === undefined ? {} : { id: payloadJobId(queue.name, queue.id, payload) }),
12
+ ...(queue.key === undefined ? {} : { singletonKey: payloadKey(queue.key, payload) }),
13
+ };
14
+ }
5
15
  export function enqueueFor(client) {
6
16
  return (queue, payload, options) => Effect.gen(function* () {
7
17
  const encoded = yield* Schema.encodeUnknownEffect(Schema.toCodecJson(queue.schema))(payload).pipe(Effect.mapError((error) => new PgBossPayloadError({ direction: "encode", original: Redacted.make(error), queue: queue.name })));
@@ -14,7 +24,7 @@ export function enqueueFor(client) {
14
24
  }
15
25
  const data = yield* capturePayload(encoded);
16
26
  const db = yield* transactionDb;
17
- const sendOptions = queue.key === undefined ? options : { ...options, singletonKey: queue.key(payload) };
27
+ const sendOptions = identityOptions(queue, payload, options);
18
28
  const send = Effect.tryPromise({
19
29
  catch: (error) => toPgBossError("enqueue", error, queue.name),
20
30
  try: () => client.send(queue.name, data, db === undefined ? sendOptions : { ...sendOptions, db }),
@@ -1 +1 @@
1
- {"version":3,"file":"enqueueFor.js","sourceRoot":"","sources":["../../../src/server/internal/enqueueFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC9C,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAClC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAChG,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAC9H,CAAC;QACF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC,CAAC,IAAI,kBAAkB,CAAC;gBACpC,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;gBACjF,KAAK,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC;QAChC,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACzG,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;YAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;YAC7D,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC;SACjG,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"enqueueFor.js","sourceRoot":"","sources":["../../../src/server/internal/enqueueFor.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { Effect } from "effect";
2
- import type { Queue } from "pg-boss";
3
- import type { PgBossClient } from "#client.ts";
4
- export declare const ensureQueue: (client: PgBossClient, name: string, options: Omit<Queue, "deadLetter" | "name">) => Effect.Effect<undefined, unknown, never>;
2
+ import type { ClientQueueOptions, PgBossClient } from "#server/client.ts";
3
+ export declare const ensureQueue: (client: PgBossClient, name: string, options: Omit<ClientQueueOptions, "deadLetter">) => Effect.Effect<undefined, unknown, never>;
5
4
  //# sourceMappingURL=ensureQueue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ensureQueue.d.ts","sourceRoot":"","sources":["../../../src/server/internal/ensureQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB/C,eAAO,MAAM,WAAW,+HAwBtB,CAAC"}
1
+ {"version":3,"file":"ensureQueue.d.ts","sourceRoot":"","sources":["../../../src/server/internal/ensureQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAkB1E,eAAO,MAAM,WAAW,mIAwBtB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Effect, Schedule } from "effect";
2
- import { PgBossQueueOptionsError } from "#error.ts";
3
- import { deadLetterQueueName } from "#health.ts";
2
+ import { PgBossQueueOptionsError } from "#server/error.ts";
3
+ import { deadLetterQueueName } from "#server/health.ts";
4
4
  const DEADLOCK_DETECTED = "40P01";
5
5
  const CREATE_QUEUE_ATTEMPTS = 6;
6
6
  // A partitioned queue attaches its table to pg-boss's job table, which can deadlock with job traffic on other queues.
@@ -1 +1 @@
1
- {"version":3,"file":"ensureQueue.js","sourceRoot":"","sources":["../../../src/server/internal/ensureQueue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensureQueue.js","sourceRoot":"","sources":["../../../src/server/internal/ensureQueue.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- import type { PgBossClient } from "#client.ts";
3
- import { type JobsHealth } from "#health.ts";
4
- export declare function healthFor(client: PgBossClient, names: readonly string[]): Effect.Effect<JobsHealth, import("#error.ts").PgBossError>;
2
+ import type { PgBossClient } from "#server/client.ts";
3
+ import { type JobsHealth } from "#server/health.ts";
4
+ export declare function healthFor(client: PgBossClient, names: readonly string[]): Effect.Effect<JobsHealth, import("#server/error.ts").PgBossError>;
5
5
  //# sourceMappingURL=healthFor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"healthFor.d.ts","sourceRoot":"","sources":["../../../src/server/internal/healthFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAuB,KAAK,UAAU,EAAoB,MAAM,YAAY,CAAC;AAEpF,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,WAAW,EAAE,WAAW,CAAC,CA6BpI"}
1
+ {"version":3,"file":"healthFor.d.ts","sourceRoot":"","sources":["../../../src/server/internal/healthFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAuB,KAAK,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AAE3F,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,kBAAkB,EAAE,WAAW,CAAC,CA6B3I"}
@@ -1,6 +1,6 @@
1
1
  import { Effect } from "effect";
2
- import { toPgBossError } from "#error.ts";
3
- import { deadLetterQueueName } from "#health.ts";
2
+ import { toPgBossError } from "#server/error.ts";
3
+ import { deadLetterQueueName } from "#server/health.ts";
4
4
  export function healthFor(client, names) {
5
5
  return Effect.forEach(names, (name) => Effect.tryPromise({
6
6
  catch: (error) => toPgBossError("health", error, name),
@@ -1 +1 @@
1
- {"version":3,"file":"healthFor.js","sourceRoot":"","sources":["../../../src/server/internal/healthFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAqC,MAAM,YAAY,CAAC;AAEpF,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,KAAwB;IACvE,OAAO,MAAM,CAAC,OAAO,CACpB,KAAK,EACL,CAAC,IAAI,EAAE,EAAE,CACR,MAAM,CAAC,UAAU,CAAC;QACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;QACtD,GAAG,EAAE,KAAK,IAA0B,EAAE;YACrC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACnH,OAAO;gBACN,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;gBACpC,iBAAiB,EAAE,UAAU,EAAE,WAAW,IAAI,CAAC;gBAC/C,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;gBACpC,IAAI;gBACJ,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;gBACpC,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC;aAClC,CAAC;QACH,CAAC;KACD,CAAC,EACH,EAAE,WAAW,EAAE,WAAW,EAAE,CAC5B,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC5E,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;KAC9D,CAAC,CAAC,CACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"healthFor.js","sourceRoot":"","sources":["../../../src/server/internal/healthFor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAqC,MAAM,mBAAmB,CAAC;AAE3F,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,KAAwB;IACvE,OAAO,MAAM,CAAC,OAAO,CACpB,KAAK,EACL,CAAC,IAAI,EAAE,EAAE,CACR,MAAM,CAAC,UAAU,CAAC;QACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;QACtD,GAAG,EAAE,KAAK,IAA0B,EAAE;YACrC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACnH,OAAO;gBACN,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;gBACpC,iBAAiB,EAAE,UAAU,EAAE,WAAW,IAAI,CAAC;gBAC/C,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;gBACpC,IAAI;gBACJ,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,CAAC;gBACpC,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC;aAClC,CAAC;QACH,CAAC;KACD,CAAC,EACH,EAAE,WAAW,EAAE,WAAW,EAAE,CAC5B,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC5E,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAChE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;KAC9D,CAAC,CAAC,CACH,CAAC;AACH,CAAC"}
@@ -1,5 +1,10 @@
1
- import type { PgBossClient } from "#client.ts";
2
- import type { PgBossService } from "#service.ts";
3
- export declare function getJobFor(client: PgBossClient): PgBossService["getJob"];
4
- export declare function retryFor(client: PgBossClient): PgBossService["retry"];
1
+ import { Effect, Option } from "effect";
2
+ import { JobEngine } from "#server/internal/engine.ts";
3
+ export declare const jobControl: Effect.Effect<{
4
+ getJob: <const TName extends string, const TPayload extends import("../definition.ts").JobPayloadSchema | typeof import("effect/Schema").Null>(queue: {
5
+ readonly name: TName;
6
+ readonly schema: TPayload;
7
+ }, id: string) => Effect.Effect<Option.Option<import("../job.ts").Job<unknown>>, import("../error.ts").PgBossError | import("../error.ts").PgBossPayloadError, TPayload["DecodingServices"]>;
8
+ retry: (queue: Pick<import("../definition.ts").QueueDefinition, "name">, id: string) => Effect.Effect<void, import("../error.ts").PgBossError>;
9
+ }, never, JobEngine>;
5
10
  //# sourceMappingURL=jobControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jobControl.d.ts","sourceRoot":"","sources":["../../../src/server/internal/jobControl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWjD,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,CAuBvE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,CAkBrE"}
1
+ {"version":3,"file":"jobControl.d.ts","sourceRoot":"","sources":["../../../src/server/internal/jobControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAKvD,eAAO,MAAM,UAAU;;;;;;oBAkBrB,CAAC"}
@@ -1,48 +1,21 @@
1
- import { Effect, Option, Redacted, Schema } from "effect";
1
+ import { Effect, Option } from "effect";
2
2
  import { redact } from "@shivaedev/errors/redact.ts";
3
- import { PgBossPayloadError, toPgBossError } from "#error.ts";
4
- import { deferralOf } from "#internal/deferral.ts";
5
- import { decodeStoredData } from "#internal/storedRows.ts";
6
- import { JobFailure } from "#JobFailure.ts";
7
- const StoredFailure = Schema.Union([JobFailure, Schema.Struct({ value: JobFailure })]);
8
- function decodeFailure(queue, output) {
9
- return Schema.decodeUnknownEffect(StoredFailure)(output).pipe(Effect.map((failure) => ("value" in failure ? failure.value : failure)), Effect.mapError((error) => new PgBossPayloadError({ direction: "decode", original: Redacted.make(error), queue })));
10
- }
11
- export function getJobFor(client) {
12
- return (queue, id) => Effect.tryPromise({
13
- catch: (error) => toPgBossError("getJob", error, queue.name),
14
- try: async () => {
15
- if (client.findJobs === undefined) {
16
- throw new TypeError("This pg-boss client does not support findJobs");
17
- }
18
- return (await client.findJobs(queue.name, { id }))[0];
19
- },
20
- }).pipe(Effect.flatMap(Effect.fnUntraced(function* (job) {
3
+ import { deferralOf } from "#server/internal/deferral.ts";
4
+ import { JobEngine } from "#server/internal/engine.ts";
5
+ import { decodeStoredData } from "#server/internal/storedRows.ts";
6
+ import { readJobFailure } from "#server/readJobFailure.ts";
7
+ export const jobControl = Effect.gen(function* () {
8
+ const engine = yield* JobEngine;
9
+ const getJob = (queue, id) => engine.getJob(queue.name, id).pipe(Effect.flatMap(Effect.fnUntraced(function* (job) {
21
10
  if (job === undefined) {
22
11
  return Option.none();
23
12
  }
24
13
  const data = yield* decodeStoredData(queue, job.data);
25
- const output = job.output === null || deferralOf(job) !== undefined ? job.output : yield* decodeFailure(queue.name, job.output);
26
- const sourceOutput = job.sourceOutput === null ? null : yield* decodeFailure(queue.name, job.sourceOutput);
14
+ const output = deferralOf(job) === undefined ? yield* readJobFailure(queue.name, job.output) : job.output;
15
+ const sourceOutput = yield* readJobFailure(queue.name, job.sourceOutput);
27
16
  return Option.some({ ...job, data: redact(data), output, sourceOutput });
28
17
  })));
29
- }
30
- export function retryFor(client) {
31
- return (queue, id) => Effect.tryPromise({
32
- catch: (error) => toPgBossError("retry", error, queue.name),
33
- try: async () => {
34
- if (client.findJobs === undefined || client.retry === undefined || client.update === undefined) {
35
- throw new TypeError("This pg-boss client does not support findJobs, retry and update");
36
- }
37
- const job = (await client.findJobs(queue.name, { id }))[0];
38
- if (job?.state !== "failed" && job?.state !== "retry") {
39
- return;
40
- }
41
- if (job.state === "failed") {
42
- await client.retry(queue.name, id);
43
- }
44
- await client.update(queue.name, undefined, { id, startAfter: 0 });
45
- },
46
- });
47
- }
18
+ const retry = (queue, id) => engine.retry(queue.name, id);
19
+ return { getJob, retry };
20
+ });
48
21
  //# sourceMappingURL=jobControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jobControl.js","sourceRoot":"","sources":["../../../src/server/internal/jobControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvF,SAAS,aAAa,CAAC,KAAa,EAAE,MAAe;IACpD,OAAO,MAAM,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAClH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAoB;IAC7C,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CACpB,MAAM,CAAC,UAAU,CAAC;QACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;QAC5D,GAAG,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;KACD,CAAC,CAAC,IAAI,CACN,MAAM,CAAC,OAAO,CACb,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG;QAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAChI,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3G,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CACF,CACD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAoB;IAC5C,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CACpB,MAAM,CAAC,UAAU,CAAC;QACjB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;QAC3D,GAAG,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChG,MAAM,IAAI,SAAS,CAAC,iEAAiE,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,IAAI,GAAG,EAAE,KAAK,KAAK,QAAQ,IAAI,GAAG,EAAE,KAAK,KAAK,OAAO,EAAE,CAAC;gBACvD,OAAO;YACR,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;KACD,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"jobControl.js","sourceRoot":"","sources":["../../../src/server/internal/jobControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;IAChC,MAAM,MAAM,GAA4B,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CACrD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CACjC,MAAM,CAAC,OAAO,CACb,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,GAAG;QAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1G,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CACF,CACD,CAAC;IACH,MAAM,KAAK,GAA2B,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Effect, Schema } from "effect";
2
+ import type { JobPayloadSchema } from "#server/definition.ts";
3
+ import { type PgBossError, PgBossPayloadError } from "#server/error.ts";
4
+ import type { DeadLetteredJob, JobPage, JobPageOptions } from "#server/health.ts";
5
+ import { JobEngine } from "#server/internal/engine.ts";
6
+ export declare const jobListings: Effect.Effect<{
7
+ deadLetteredJobs: <const TName extends string, const TPayload extends JobPayloadSchema | typeof Schema.Null>(queue: {
8
+ readonly name: TName;
9
+ readonly schema: TPayload;
10
+ }, options: JobPageOptions) => Effect.Effect<JobPage<DeadLetteredJob<unknown>>, PgBossError | PgBossPayloadError | Schema.SchemaError, TPayload["DecodingServices"]>;
11
+ failedJobs: <const TName extends string, const TPayload extends JobPayloadSchema | typeof Schema.Null>(queue: {
12
+ readonly name: TName;
13
+ readonly schema: TPayload;
14
+ }, options: JobPageOptions) => Effect.Effect<JobPage<import("#server/health.ts").ListedJob<unknown>>, PgBossError | PgBossPayloadError | Schema.SchemaError, TPayload["DecodingServices"]>;
15
+ }, never, JobEngine>;
16
+ //# sourceMappingURL=jobListings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobListings.d.ts","sourceRoot":"","sources":["../../../src/server/internal/jobListings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAoB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,KAAK,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,SAAS,EAAgB,MAAM,4BAA4B,CAAC;AAsCrE,eAAO,MAAM,WAAW;;;;;;;;;oBAWtB,CAAC"}