@shivaedev/jobs 0.39.0 → 0.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +43 -10
  3. package/dist/server/InspectionEngine.d.ts +27 -0
  4. package/dist/server/InspectionEngine.d.ts.map +1 -0
  5. package/dist/server/InspectionEngine.js +4 -0
  6. package/dist/server/InspectionEngine.js.map +1 -0
  7. package/dist/server/JobQueues.d.ts +6 -0
  8. package/dist/server/JobQueues.d.ts.map +1 -0
  9. package/dist/server/JobQueues.js +4 -0
  10. package/dist/server/JobQueues.js.map +1 -0
  11. package/dist/server/SchemaConnection.d.ts +7 -0
  12. package/dist/server/SchemaConnection.d.ts.map +1 -0
  13. package/dist/server/SchemaConnection.js +4 -0
  14. package/dist/server/SchemaConnection.js.map +1 -0
  15. package/dist/server/adapters/countsFor.d.ts.map +1 -0
  16. package/dist/server/adapters/countsFor.js.map +1 -0
  17. package/dist/server/adapters/ensureQueue.d.ts.map +1 -0
  18. package/dist/server/adapters/ensureQueue.js.map +1 -0
  19. package/dist/server/adapters/healthFor.d.ts.map +1 -0
  20. package/dist/server/adapters/healthFor.js.map +1 -0
  21. package/dist/server/adapters/inspection.d.ts +1 -2
  22. package/dist/server/adapters/inspection.d.ts.map +1 -1
  23. package/dist/server/adapters/inspection.js +20 -24
  24. package/dist/server/adapters/inspection.js.map +1 -1
  25. package/dist/server/adapters/inspectionJobs.d.ts +1 -43
  26. package/dist/server/adapters/inspectionJobs.d.ts.map +1 -1
  27. package/dist/server/adapters/inspectionJobs.js +1 -5
  28. package/dist/server/adapters/inspectionJobs.js.map +1 -1
  29. package/dist/server/adapters/inspectionLayer.d.ts +4 -0
  30. package/dist/server/adapters/inspectionLayer.d.ts.map +1 -0
  31. package/dist/server/adapters/inspectionLayer.js +7 -0
  32. package/dist/server/adapters/inspectionLayer.js.map +1 -0
  33. package/dist/server/adapters/inspectionReads.d.ts +12 -46
  34. package/dist/server/adapters/inspectionReads.d.ts.map +1 -1
  35. package/dist/server/adapters/inspectionReads.js +2 -2
  36. package/dist/server/adapters/inspectionReads.js.map +1 -1
  37. package/dist/server/adapters/inspectionSnapshot.d.ts +9 -4
  38. package/dist/server/adapters/inspectionSnapshot.d.ts.map +1 -1
  39. package/dist/server/adapters/inspectionSnapshot.js +17 -26
  40. package/dist/server/adapters/inspectionSnapshot.js.map +1 -1
  41. package/dist/server/adapters/installSchema.d.ts.map +1 -1
  42. package/dist/server/adapters/installSchema.js +4 -3
  43. package/dist/server/adapters/installSchema.js.map +1 -1
  44. package/dist/server/adapters/makeService.d.ts +4 -0
  45. package/dist/server/adapters/makeService.d.ts.map +1 -0
  46. package/dist/server/adapters/makeService.js +26 -0
  47. package/dist/server/adapters/makeService.js.map +1 -0
  48. package/dist/server/adapters/operationsLayer.d.ts +4 -0
  49. package/dist/server/adapters/operationsLayer.d.ts.map +1 -0
  50. package/dist/server/adapters/operationsLayer.js +17 -0
  51. package/dist/server/adapters/operationsLayer.js.map +1 -0
  52. package/dist/server/adapters/pgBossDefinitionLayer.d.ts.map +1 -0
  53. package/dist/server/{pgBossDefinitionLayer.js → adapters/pgBossDefinitionLayer.js} +7 -9
  54. package/dist/server/adapters/pgBossDefinitionLayer.js.map +1 -0
  55. package/dist/server/{register.d.ts → adapters/register.d.ts} +2 -2
  56. package/dist/server/adapters/register.d.ts.map +1 -0
  57. package/dist/server/{register.js → adapters/register.js} +8 -8
  58. package/dist/server/adapters/register.js.map +1 -0
  59. package/dist/server/adapters/registerReleasedJobs.d.ts +7 -0
  60. package/dist/server/adapters/registerReleasedJobs.d.ts.map +1 -0
  61. package/dist/server/{registerReleasedJobs.js → adapters/registerReleasedJobs.js} +5 -4
  62. package/dist/server/adapters/registerReleasedJobs.js.map +1 -0
  63. package/dist/server/adapters/registerWorker.d.ts +1 -1
  64. package/dist/server/adapters/registerWorker.d.ts.map +1 -1
  65. package/dist/server/adapters/registerWorker.js +2 -1
  66. package/dist/server/adapters/registerWorker.js.map +1 -1
  67. package/dist/server/adapters/retireJobs.d.ts.map +1 -1
  68. package/dist/server/adapters/retireJobs.js +1 -1
  69. package/dist/server/adapters/retireJobs.js.map +1 -1
  70. package/dist/server/adapters/runSchemaPlan.d.ts +4 -4
  71. package/dist/server/adapters/runSchemaPlan.d.ts.map +1 -1
  72. package/dist/server/adapters/runSchemaPlan.js +7 -4
  73. package/dist/server/adapters/runSchemaPlan.js.map +1 -1
  74. package/dist/server/enqueuePayload.d.ts +6 -0
  75. package/dist/server/enqueuePayload.d.ts.map +1 -0
  76. package/dist/server/enqueuePayload.js +29 -0
  77. package/dist/server/enqueuePayload.js.map +1 -0
  78. package/dist/server/getJob.d.ts +88 -0
  79. package/dist/server/getJob.d.ts.map +1 -0
  80. package/dist/server/{jobControl.js → getJob.js} +5 -7
  81. package/dist/server/getJob.js.map +1 -0
  82. package/dist/server/inspection.d.ts +13 -80
  83. package/dist/server/inspection.d.ts.map +1 -1
  84. package/dist/server/inspection.js +4 -39
  85. package/dist/server/inspection.js.map +1 -1
  86. package/dist/server/{operations/jobs.d.ts → inspectionJobs.d.ts} +8 -6
  87. package/dist/server/inspectionJobs.d.ts.map +1 -0
  88. package/dist/server/inspectionJobs.js +9 -0
  89. package/dist/server/inspectionJobs.js.map +1 -0
  90. package/dist/server/inspectionSnapshot.d.ts +82 -0
  91. package/dist/server/inspectionSnapshot.d.ts.map +1 -0
  92. package/dist/server/inspectionSnapshot.js +16 -0
  93. package/dist/server/inspectionSnapshot.js.map +1 -0
  94. package/dist/server/jobListings.d.ts +43 -13
  95. package/dist/server/jobListings.d.ts.map +1 -1
  96. package/dist/server/jobListings.js +8 -7
  97. package/dist/server/jobListings.js.map +1 -1
  98. package/dist/server/runQueueWorker.d.ts +3 -3
  99. package/dist/server/runQueueWorker.d.ts.map +1 -1
  100. package/dist/server/runQueueWorker.js +5 -3
  101. package/dist/server/runQueueWorker.js.map +1 -1
  102. package/dist/server/service.d.ts.map +1 -1
  103. package/dist/server/service.js +1 -1
  104. package/dist/server/service.js.map +1 -1
  105. package/dist/server/services/inspection/busy.d.ts +4 -0
  106. package/dist/server/services/inspection/busy.d.ts.map +1 -0
  107. package/dist/server/services/inspection/busy.js +7 -0
  108. package/dist/server/services/inspection/busy.js.map +1 -0
  109. package/dist/server/services/inspection/changes.d.ts +9 -0
  110. package/dist/server/services/inspection/changes.d.ts.map +1 -0
  111. package/dist/server/services/inspection/changes.js +8 -0
  112. package/dist/server/services/inspection/changes.js.map +1 -0
  113. package/dist/server/services/inspection/counts.d.ts +6 -0
  114. package/dist/server/services/inspection/counts.d.ts.map +1 -0
  115. package/dist/server/services/inspection/counts.js +8 -0
  116. package/dist/server/services/inspection/counts.js.map +1 -0
  117. package/dist/server/services/inspection/deferred.d.ts +7 -0
  118. package/dist/server/services/inspection/deferred.d.ts.map +1 -0
  119. package/dist/server/services/inspection/deferred.js +7 -0
  120. package/dist/server/services/inspection/deferred.js.map +1 -0
  121. package/dist/server/services/inspection/health.d.ts +6 -0
  122. package/dist/server/services/inspection/health.d.ts.map +1 -0
  123. package/dist/server/services/inspection/health.js +8 -0
  124. package/dist/server/services/inspection/health.js.map +1 -0
  125. package/dist/server/services/inspection/queue.d.ts +4 -0
  126. package/dist/server/services/inspection/queue.d.ts.map +1 -0
  127. package/dist/server/services/inspection/queue.js +7 -0
  128. package/dist/server/services/inspection/queue.js.map +1 -0
  129. package/dist/server/services/inspection/schedules.d.ts +4 -0
  130. package/dist/server/services/inspection/schedules.d.ts.map +1 -0
  131. package/dist/server/services/inspection/schedules.js +7 -0
  132. package/dist/server/services/inspection/schedules.js.map +1 -0
  133. package/dist/server/services/inspection/schemaVersion.d.ts +4 -0
  134. package/dist/server/services/inspection/schemaVersion.d.ts.map +1 -0
  135. package/dist/server/services/inspection/schemaVersion.js +7 -0
  136. package/dist/server/services/inspection/schemaVersion.js.map +1 -0
  137. package/dist/server/services/inspection/service.d.ts +40 -0
  138. package/dist/server/services/inspection/service.d.ts.map +1 -0
  139. package/dist/server/services/inspection/service.js +21 -0
  140. package/dist/server/services/inspection/service.js.map +1 -0
  141. package/dist/server/services/inspection/snapshot.d.ts +12 -0
  142. package/dist/server/services/inspection/snapshot.d.ts.map +1 -0
  143. package/dist/server/services/inspection/snapshot.js +7 -0
  144. package/dist/server/services/inspection/snapshot.js.map +1 -0
  145. package/dist/server/services/inspection/storedJobs.d.ts +6 -0
  146. package/dist/server/services/inspection/storedJobs.d.ts.map +1 -0
  147. package/dist/server/services/inspection/storedJobs.js +7 -0
  148. package/dist/server/services/inspection/storedJobs.js.map +1 -0
  149. package/dist/server/services/operations/counts.d.ts +6 -0
  150. package/dist/server/services/operations/counts.d.ts.map +1 -0
  151. package/dist/server/services/operations/counts.js +8 -0
  152. package/dist/server/services/operations/counts.js.map +1 -0
  153. package/dist/server/services/operations/deleteQueue.d.ts +4 -0
  154. package/dist/server/services/operations/deleteQueue.d.ts.map +1 -0
  155. package/dist/server/services/operations/deleteQueue.js +7 -0
  156. package/dist/server/services/operations/deleteQueue.js.map +1 -0
  157. package/dist/server/services/operations/enqueue.d.ts +5 -0
  158. package/dist/server/services/operations/enqueue.d.ts.map +1 -0
  159. package/dist/server/services/operations/enqueue.js +12 -0
  160. package/dist/server/services/operations/enqueue.js.map +1 -0
  161. package/dist/server/services/operations/getJob.d.ts +4 -0
  162. package/dist/server/services/operations/getJob.d.ts.map +1 -0
  163. package/dist/server/services/operations/getJob.js +7 -0
  164. package/dist/server/services/operations/getJob.js.map +1 -0
  165. package/dist/server/services/operations/health.d.ts +7 -0
  166. package/dist/server/services/operations/health.d.ts.map +1 -0
  167. package/dist/server/services/operations/health.js +10 -0
  168. package/dist/server/services/operations/health.js.map +1 -0
  169. package/dist/server/services/operations/listJobs.d.ts +6 -0
  170. package/dist/server/services/operations/listJobs.d.ts.map +1 -0
  171. package/dist/server/services/operations/listJobs.js +7 -0
  172. package/dist/server/services/operations/listJobs.js.map +1 -0
  173. package/dist/server/services/operations/refreshQueueStats.d.ts +4 -0
  174. package/dist/server/services/operations/refreshQueueStats.d.ts.map +1 -0
  175. package/dist/server/services/operations/refreshQueueStats.js +7 -0
  176. package/dist/server/services/operations/refreshQueueStats.js.map +1 -0
  177. package/dist/server/services/operations/retry.d.ts +4 -0
  178. package/dist/server/services/operations/retry.d.ts.map +1 -0
  179. package/dist/server/services/operations/retry.js +7 -0
  180. package/dist/server/services/operations/retry.js.map +1 -0
  181. package/dist/server/services/operations/service.d.ts +22 -0
  182. package/dist/server/services/operations/service.d.ts.map +1 -0
  183. package/dist/server/services/operations/service.js +21 -0
  184. package/dist/server/services/operations/service.js.map +1 -0
  185. package/dist/server/services/operations/unschedule.d.ts +4 -0
  186. package/dist/server/services/operations/unschedule.d.ts.map +1 -0
  187. package/dist/server/services/operations/unschedule.js +7 -0
  188. package/dist/server/services/operations/unschedule.js.map +1 -0
  189. package/dist/server/validateQueueNames.d.ts.map +1 -1
  190. package/dist/server/validateQueueNames.js +1 -1
  191. package/dist/server/validateQueueNames.js.map +1 -1
  192. package/package.json +6 -6
  193. package/src/server/InspectionEngine.ts +3 -0
  194. package/src/server/JobQueues.ts +2 -0
  195. package/src/server/SchemaConnection.ts +3 -0
  196. package/src/server/adapters/inspection.ts +24 -29
  197. package/src/server/adapters/inspectionJobs.ts +2 -12
  198. package/src/server/adapters/inspectionLayer.ts +7 -0
  199. package/src/server/adapters/inspectionReads.ts +2 -5
  200. package/src/server/adapters/inspectionSnapshot.ts +15 -33
  201. package/src/server/adapters/installSchema.ts +8 -5
  202. package/src/server/adapters/makeService.ts +31 -0
  203. package/src/server/adapters/operationsLayer.ts +23 -0
  204. package/src/server/{pgBossDefinitionLayer.ts → adapters/pgBossDefinitionLayer.ts} +7 -14
  205. package/src/server/{register.ts → adapters/register.ts} +7 -22
  206. package/src/server/{registerReleasedJobs.ts → adapters/registerReleasedJobs.ts} +6 -5
  207. package/src/server/adapters/registerWorker.ts +1 -1
  208. package/src/server/adapters/retireJobs.ts +1 -1
  209. package/src/server/adapters/runSchemaPlan.ts +7 -11
  210. package/src/server/enqueuePayload.ts +38 -0
  211. package/src/server/getJob.ts +28 -0
  212. package/src/server/inspection.ts +18 -43
  213. package/src/server/inspectionJobs.ts +13 -0
  214. package/src/server/inspectionSnapshot.ts +18 -0
  215. package/src/server/jobListings.ts +20 -16
  216. package/src/server/runQueueWorker.ts +5 -6
  217. package/src/server/service.ts +1 -1
  218. package/src/server/services/inspection/busy.ts +6 -0
  219. package/src/server/services/inspection/changes.ts +7 -0
  220. package/src/server/services/inspection/counts.ts +7 -0
  221. package/src/server/services/inspection/deferred.ts +8 -0
  222. package/src/server/services/inspection/health.ts +10 -0
  223. package/src/server/services/inspection/queue.ts +8 -0
  224. package/src/server/services/inspection/schedules.ts +8 -0
  225. package/src/server/services/inspection/schemaVersion.ts +8 -0
  226. package/src/server/services/inspection/service.ts +20 -0
  227. package/src/server/services/inspection/snapshot.ts +8 -0
  228. package/src/server/services/inspection/storedJobs.ts +8 -0
  229. package/src/server/services/operations/counts.ts +7 -0
  230. package/src/server/services/operations/deleteQueue.ts +7 -0
  231. package/src/server/services/operations/enqueue.ts +12 -0
  232. package/src/server/services/operations/getJob.ts +6 -0
  233. package/src/server/services/operations/health.ts +9 -0
  234. package/src/server/services/operations/listJobs.ts +8 -0
  235. package/src/server/services/operations/refreshQueueStats.ts +7 -0
  236. package/src/server/services/operations/retry.ts +6 -0
  237. package/src/server/services/operations/service.ts +20 -0
  238. package/src/server/services/operations/unschedule.ts +7 -0
  239. package/src/server/validateQueueNames.ts +1 -1
  240. package/dist/server/PgBossInitialization.d.ts +0 -9
  241. package/dist/server/PgBossInitialization.d.ts.map +0 -1
  242. package/dist/server/PgBossInitialization.js +0 -4
  243. package/dist/server/PgBossInitialization.js.map +0 -1
  244. package/dist/server/PgBossOperations.d.ts +0 -27
  245. package/dist/server/PgBossOperations.d.ts.map +0 -1
  246. package/dist/server/PgBossOperations.js +0 -35
  247. package/dist/server/PgBossOperations.js.map +0 -1
  248. package/dist/server/countsFor.d.ts.map +0 -1
  249. package/dist/server/countsFor.js.map +0 -1
  250. package/dist/server/enqueueFor.d.ts +0 -4
  251. package/dist/server/enqueueFor.d.ts.map +0 -1
  252. package/dist/server/enqueueFor.js +0 -36
  253. package/dist/server/enqueueFor.js.map +0 -1
  254. package/dist/server/ensureQueue.d.ts.map +0 -1
  255. package/dist/server/ensureQueue.js.map +0 -1
  256. package/dist/server/healthFor.d.ts.map +0 -1
  257. package/dist/server/healthFor.js.map +0 -1
  258. package/dist/server/initializeInspection.d.ts +0 -4
  259. package/dist/server/initializeInspection.d.ts.map +0 -1
  260. package/dist/server/initializeInspection.js +0 -8
  261. package/dist/server/initializeInspection.js.map +0 -1
  262. package/dist/server/initializeJobs.d.ts +0 -4
  263. package/dist/server/initializeJobs.d.ts.map +0 -1
  264. package/dist/server/initializeJobs.js +0 -4
  265. package/dist/server/initializeJobs.js.map +0 -1
  266. package/dist/server/jobControl.d.ts +0 -10
  267. package/dist/server/jobControl.d.ts.map +0 -1
  268. package/dist/server/jobControl.js.map +0 -1
  269. package/dist/server/makeService.d.ts +0 -6
  270. package/dist/server/makeService.d.ts.map +0 -1
  271. package/dist/server/makeService.js +0 -22
  272. package/dist/server/makeService.js.map +0 -1
  273. package/dist/server/operations/busy.d.ts +0 -3
  274. package/dist/server/operations/busy.d.ts.map +0 -1
  275. package/dist/server/operations/busy.js +0 -4
  276. package/dist/server/operations/busy.js.map +0 -1
  277. package/dist/server/operations/changes.d.ts +0 -5
  278. package/dist/server/operations/changes.d.ts.map +0 -1
  279. package/dist/server/operations/changes.js +0 -4
  280. package/dist/server/operations/changes.js.map +0 -1
  281. package/dist/server/operations/counts.d.ts +0 -3
  282. package/dist/server/operations/counts.d.ts.map +0 -1
  283. package/dist/server/operations/counts.js +0 -4
  284. package/dist/server/operations/counts.js.map +0 -1
  285. package/dist/server/operations/deadLetteredJobs.d.ts +0 -6
  286. package/dist/server/operations/deadLetteredJobs.d.ts.map +0 -1
  287. package/dist/server/operations/deadLetteredJobs.js +0 -4
  288. package/dist/server/operations/deadLetteredJobs.js.map +0 -1
  289. package/dist/server/operations/deferred.d.ts +0 -6
  290. package/dist/server/operations/deferred.d.ts.map +0 -1
  291. package/dist/server/operations/deferred.js +0 -4
  292. package/dist/server/operations/deferred.js.map +0 -1
  293. package/dist/server/operations/deleteQueue.d.ts +0 -3
  294. package/dist/server/operations/deleteQueue.d.ts.map +0 -1
  295. package/dist/server/operations/deleteQueue.js +0 -4
  296. package/dist/server/operations/deleteQueue.js.map +0 -1
  297. package/dist/server/operations/enqueue.d.ts +0 -3
  298. package/dist/server/operations/enqueue.d.ts.map +0 -1
  299. package/dist/server/operations/enqueue.js +0 -4
  300. package/dist/server/operations/enqueue.js.map +0 -1
  301. package/dist/server/operations/failedJobs.d.ts +0 -6
  302. package/dist/server/operations/failedJobs.d.ts.map +0 -1
  303. package/dist/server/operations/failedJobs.js +0 -4
  304. package/dist/server/operations/failedJobs.js.map +0 -1
  305. package/dist/server/operations/getJob.d.ts +0 -6
  306. package/dist/server/operations/getJob.d.ts.map +0 -1
  307. package/dist/server/operations/getJob.js +0 -4
  308. package/dist/server/operations/getJob.js.map +0 -1
  309. package/dist/server/operations/health.d.ts +0 -3
  310. package/dist/server/operations/health.d.ts.map +0 -1
  311. package/dist/server/operations/health.js +0 -4
  312. package/dist/server/operations/health.js.map +0 -1
  313. package/dist/server/operations/inspection.d.ts +0 -3
  314. package/dist/server/operations/inspection.d.ts.map +0 -1
  315. package/dist/server/operations/inspection.js +0 -4
  316. package/dist/server/operations/inspection.js.map +0 -1
  317. package/dist/server/operations/inspectionHealth.d.ts +0 -5
  318. package/dist/server/operations/inspectionHealth.d.ts.map +0 -1
  319. package/dist/server/operations/inspectionHealth.js +0 -4
  320. package/dist/server/operations/inspectionHealth.js.map +0 -1
  321. package/dist/server/operations/jobs.d.ts.map +0 -1
  322. package/dist/server/operations/jobs.js +0 -4
  323. package/dist/server/operations/jobs.js.map +0 -1
  324. package/dist/server/operations/queue.d.ts +0 -3
  325. package/dist/server/operations/queue.d.ts.map +0 -1
  326. package/dist/server/operations/queue.js +0 -4
  327. package/dist/server/operations/queue.js.map +0 -1
  328. package/dist/server/operations/refreshQueueStats.d.ts +0 -3
  329. package/dist/server/operations/refreshQueueStats.d.ts.map +0 -1
  330. package/dist/server/operations/refreshQueueStats.js +0 -4
  331. package/dist/server/operations/refreshQueueStats.js.map +0 -1
  332. package/dist/server/operations/retry.d.ts +0 -3
  333. package/dist/server/operations/retry.d.ts.map +0 -1
  334. package/dist/server/operations/retry.js +0 -4
  335. package/dist/server/operations/retry.js.map +0 -1
  336. package/dist/server/operations/schedules.d.ts +0 -3
  337. package/dist/server/operations/schedules.d.ts.map +0 -1
  338. package/dist/server/operations/schedules.js +0 -4
  339. package/dist/server/operations/schedules.js.map +0 -1
  340. package/dist/server/operations/schemaVersion.d.ts +0 -3
  341. package/dist/server/operations/schemaVersion.d.ts.map +0 -1
  342. package/dist/server/operations/schemaVersion.js +0 -4
  343. package/dist/server/operations/schemaVersion.js.map +0 -1
  344. package/dist/server/operations/snapshot.d.ts +0 -3
  345. package/dist/server/operations/snapshot.d.ts.map +0 -1
  346. package/dist/server/operations/snapshot.js +0 -4
  347. package/dist/server/operations/snapshot.js.map +0 -1
  348. package/dist/server/operations/storedJobs.d.ts +0 -5
  349. package/dist/server/operations/storedJobs.d.ts.map +0 -1
  350. package/dist/server/operations/storedJobs.js +0 -4
  351. package/dist/server/operations/storedJobs.js.map +0 -1
  352. package/dist/server/operations/unschedule.d.ts +0 -3
  353. package/dist/server/operations/unschedule.d.ts.map +0 -1
  354. package/dist/server/operations/unschedule.js +0 -4
  355. package/dist/server/operations/unschedule.js.map +0 -1
  356. package/dist/server/pgBossDefinitionLayer.d.ts.map +0 -1
  357. package/dist/server/pgBossDefinitionLayer.js.map +0 -1
  358. package/dist/server/register.d.ts.map +0 -1
  359. package/dist/server/register.js.map +0 -1
  360. package/dist/server/registerReleasedJobs.d.ts +0 -6
  361. package/dist/server/registerReleasedJobs.d.ts.map +0 -1
  362. package/dist/server/registerReleasedJobs.js.map +0 -1
  363. package/src/server/PgBossInitialization.ts +0 -9
  364. package/src/server/PgBossOperations.ts +0 -35
  365. package/src/server/enqueueFor.ts +0 -44
  366. package/src/server/initializeInspection.ts +0 -8
  367. package/src/server/initializeJobs.ts +0 -4
  368. package/src/server/jobControl.ts +0 -27
  369. package/src/server/makeService.ts +0 -28
  370. package/src/server/operations/busy.ts +0 -5
  371. package/src/server/operations/changes.ts +0 -5
  372. package/src/server/operations/counts.ts +0 -5
  373. package/src/server/operations/deadLetteredJobs.ts +0 -5
  374. package/src/server/operations/deferred.ts +0 -5
  375. package/src/server/operations/deleteQueue.ts +0 -5
  376. package/src/server/operations/enqueue.ts +0 -5
  377. package/src/server/operations/failedJobs.ts +0 -5
  378. package/src/server/operations/getJob.ts +0 -5
  379. package/src/server/operations/health.ts +0 -5
  380. package/src/server/operations/inspection.ts +0 -5
  381. package/src/server/operations/inspectionHealth.ts +0 -5
  382. package/src/server/operations/jobs.ts +0 -5
  383. package/src/server/operations/queue.ts +0 -5
  384. package/src/server/operations/refreshQueueStats.ts +0 -5
  385. package/src/server/operations/retry.ts +0 -5
  386. package/src/server/operations/schedules.ts +0 -5
  387. package/src/server/operations/schemaVersion.ts +0 -5
  388. package/src/server/operations/snapshot.ts +0 -5
  389. package/src/server/operations/storedJobs.ts +0 -5
  390. package/src/server/operations/unschedule.ts +0 -5
  391. /package/dist/server/{countsFor.d.ts → adapters/countsFor.d.ts} +0 -0
  392. /package/dist/server/{countsFor.js → adapters/countsFor.js} +0 -0
  393. /package/dist/server/{ensureQueue.d.ts → adapters/ensureQueue.d.ts} +0 -0
  394. /package/dist/server/{ensureQueue.js → adapters/ensureQueue.js} +0 -0
  395. /package/dist/server/{healthFor.d.ts → adapters/healthFor.d.ts} +0 -0
  396. /package/dist/server/{healthFor.js → adapters/healthFor.js} +0 -0
  397. /package/dist/server/{pgBossDefinitionLayer.d.ts → adapters/pgBossDefinitionLayer.d.ts} +0 -0
  398. /package/src/server/{countsFor.ts → adapters/countsFor.ts} +0 -0
  399. /package/src/server/{ensureQueue.ts → adapters/ensureQueue.ts} +0 -0
  400. /package/src/server/{healthFor.ts → adapters/healthFor.ts} +0 -0
@@ -0,0 +1,38 @@
1
+ import { Effect, Redacted, Schema } from "effect";
2
+ import { payloadJobId, payloadKey } from "#server/adapters/payloadIdentity.ts";
3
+ import type { JobPayloadSchema, QueueDefinition } from "#server/definition.ts";
4
+ import type { EnqueueOptions, QueueEnqueueOptions } from "#server/enqueueOptions.ts";
5
+ import { PgBossPayloadError } from "#server/error.ts";
6
+ import { PgBossOperations } from "#server/services/operations/service.ts";
7
+ import { capturePayload } from "#server/tracing.ts";
8
+
9
+ function identityOptions(queue: Pick<QueueDefinition, "id" | "key" | "name">, payload: object, options?: EnqueueOptions) {
10
+ return queue.id === undefined && queue.key === undefined
11
+ ? options
12
+ : {
13
+ ...options,
14
+ ...(queue.id === undefined ? {} : { id: payloadJobId(queue.name, queue.id, payload) }),
15
+ ...(queue.key === undefined ? {} : { singletonKey: payloadKey(queue.key, payload) }),
16
+ };
17
+ }
18
+
19
+ export const enqueuePayload = Effect.fnUntraced(function* <
20
+ const TName extends string,
21
+ const TPayload extends JobPayloadSchema,
22
+ const TQueue extends QueueDefinition<TName, TPayload>,
23
+ >(queue: QueueDefinition<TName, TPayload> & TQueue, payload: NoInfer<Schema.Schema.Type<TPayload>>, options?: NoInfer<QueueEnqueueOptions<TQueue>>) {
24
+ const operations = yield* PgBossOperations;
25
+ const encoded = yield* Schema.encodeUnknownEffect(Schema.toCodecJson(queue.schema))(payload).pipe(
26
+ Effect.mapError((error) => new PgBossPayloadError({ direction: "encode", original: Redacted.make(error), queue: queue.name })),
27
+ );
28
+ if (typeof encoded !== "object" || encoded === null) {
29
+ return yield* new PgBossPayloadError({
30
+ direction: "encode",
31
+ original: Redacted.make(new TypeError("pg-boss payloads must encode to objects")),
32
+ queue: queue.name,
33
+ });
34
+ }
35
+ const data = yield* capturePayload(encoded);
36
+ const sendOptions = identityOptions(queue, payload, options);
37
+ return yield* operations.enqueue(queue.name, data, sendOptions);
38
+ });
@@ -0,0 +1,28 @@
1
+ import type { Schema } from "effect";
2
+ import { Effect, Option } from "effect";
3
+ import { redact } from "@shivaedev/errors/redact.ts";
4
+ import { deferralOf } from "#server/deferral.ts";
5
+ import type { JobPayloadSchema } from "#server/definition.ts";
6
+ import { readJobFailure } from "#server/readJobFailure.ts";
7
+ import { PgBossOperations } from "#server/services/operations/service.ts";
8
+ import { decodeStoredData } from "#server/storedRows.ts";
9
+
10
+ export const getJob = Effect.fnUntraced(function* <const TName extends string, const TPayload extends JobPayloadSchema | typeof Schema.Null>(
11
+ queue: { readonly name: TName; readonly schema: TPayload },
12
+ id: string,
13
+ ) {
14
+ const engine = yield* PgBossOperations;
15
+ return yield* engine.getJob(queue.name, id).pipe(
16
+ Effect.flatMap(
17
+ Effect.fnUntraced(function* (job) {
18
+ if (job === undefined) {
19
+ return Option.none();
20
+ }
21
+ const data = yield* decodeStoredData(queue, job.data);
22
+ const output = deferralOf(job) === undefined ? yield* readJobFailure(queue.name, job.output) : job.output;
23
+ const sourceOutput = yield* readJobFailure(queue.name, job.sourceOutput);
24
+ return Option.some({ ...job, data: redact(data), output, sourceOutput });
25
+ }),
26
+ ),
27
+ );
28
+ });
@@ -1,25 +1,12 @@
1
- import type { DateTime } from "effect";
2
- import { defineService } from "@shivaedev/service/defineService.ts";
3
- import { genericMethod } from "@shivaedev/service/genericMethod.ts";
1
+ import type { DateTime, Effect, Schema } from "effect";
2
+ import { Context } from "effect";
4
3
  import type { inspectionChanges } from "#server/adapters/inspectionChanges.ts";
4
+ import { inspectionLayer } from "#server/adapters/inspectionLayer.ts";
5
5
  import type { inspectionReads } from "#server/adapters/inspectionReads.ts";
6
+ import type { JobReadOptions } from "#server/client.ts";
6
7
  import type { JobPayloadSchema, QueueDefinition } from "#server/definition.ts";
7
- import { initializeInspection } from "#server/initializeInspection.ts";
8
- import { busy } from "#server/operations/busy.ts";
9
- import { changes } from "#server/operations/changes.ts";
10
- import { counts } from "#server/operations/counts.ts";
11
- import { deadLetteredJobs } from "#server/operations/deadLetteredJobs.ts";
12
- import { deferred } from "#server/operations/deferred.ts";
13
- import { failedJobs } from "#server/operations/failedJobs.ts";
14
- import { getJob } from "#server/operations/getJob.ts";
15
- import { inspectionHealth } from "#server/operations/inspectionHealth.ts";
16
- import { jobs } from "#server/operations/jobs.ts";
17
- import { queue } from "#server/operations/queue.ts";
18
- import { schedules } from "#server/operations/schedules.ts";
19
- import { schemaVersion } from "#server/operations/schemaVersion.ts";
20
- import { snapshot } from "#server/operations/snapshot.ts";
21
- import { storedJobs } from "#server/operations/storedJobs.ts";
22
- import { PgBoss } from "#server/PgBoss.ts";
8
+ import type { PgBossError, PgBossPayloadError } from "#server/error.ts";
9
+ import type { Job } from "#server/job.ts";
23
10
  import type { PgBossService } from "#server/service.ts";
24
11
 
25
12
  export type SnapshotQueue = Pick<QueueDefinition<string, JobPayloadSchema>, "name" | "schema">;
@@ -32,30 +19,18 @@ export interface UnfinishedJob<TQueue extends SnapshotQueue> {
32
19
  readonly state: "active" | "created" | "deferred" | "failed" | "retry";
33
20
  }
34
21
 
35
- export const PgBossInspection = defineService({
36
- id: "@shivaedev/jobs/PgBossInspection",
37
- initialize: initializeInspection,
38
- methods: (service) => ({
39
- busy: busy(service),
40
- changes: changes(service),
41
- counts: counts(service),
42
- deadLetteredJobs: genericMethod(deadLetteredJobs(service)),
43
- deferred: deferred(service),
44
- failedJobs: genericMethod(failedJobs(service)),
45
- getJob: genericMethod(getJob(service)),
46
- health: inspectionHealth(service),
47
- jobs: genericMethod(jobs(service)),
48
- queue: queue(service),
49
- schedules: schedules(service),
50
- schemaVersion: schemaVersion(service),
51
- snapshot: genericMethod(snapshot(service)),
52
- storedJobs: storedJobs(service),
53
- }),
54
- requires: [PgBoss] as const,
55
- });
56
-
57
- export type PgBossInspectionService = ReturnType<typeof inspectionReads> &
58
- Pick<PgBossService, "counts" | "deadLetteredJobs" | "failedJobs" | "getJob"> & {
22
+ export type PgBossInspectionService = Omit<ReturnType<typeof inspectionReads>, "snapshot"> & {
23
+ readonly jobs: <TName extends string, TPayload extends JobPayloadSchema | typeof Schema.Null>(
24
+ queue: { readonly name: TName; readonly schema: TPayload },
25
+ options?: JobReadOptions,
26
+ ) => Effect.Effect<Job<TPayload["Type"]>[], PgBossError | PgBossPayloadError, TPayload["DecodingServices"]>;
27
+ readonly snapshot: <const TQueues extends readonly SnapshotQueue[]>(
28
+ queues: TQueues,
29
+ ) => Effect.Effect<readonly UnfinishedJob<TQueues[number]>[], PgBossPayloadError | PgBossError, TQueues[number]["schema"]["DecodingServices"]>;
30
+ } & Pick<PgBossService, "counts" | "deadLetteredJobs" | "failedJobs" | "getJob"> & {
59
31
  readonly health: (queues: readonly { readonly name: string }[]) => ReturnType<PgBossService["health"]>;
60
32
  readonly changes: (queue?: { readonly name: string }) => ReturnType<typeof inspectionChanges>;
61
33
  };
34
+
35
+ const Inspection = Context.Service<"@shivaedev/jobs/PgBossInspection", PgBossInspectionService>("@shivaedev/jobs/PgBossInspection");
36
+ export const PgBossInspection = Object.assign(Inspection, { layer: inspectionLayer(Inspection) });
@@ -0,0 +1,13 @@
1
+ import { Effect, type Schema } from "effect";
2
+ import type { JobReadOptions } from "#server/client.ts";
3
+ import type { JobPayloadSchema } from "#server/definition.ts";
4
+ import { PgBossInspectionReads } from "#server/services/inspection/service.ts";
5
+ import { decodeStoredData } from "#server/storedRows.ts";
6
+ export const inspectionJobs = Effect.fnUntraced(function* <TName extends string, TPayload extends JobPayloadSchema | typeof Schema.Null>(
7
+ queue: { readonly name: TName; readonly schema: TPayload },
8
+ options?: JobReadOptions,
9
+ ) {
10
+ const inspection = yield* PgBossInspectionReads;
11
+ const rows = yield* inspection.storedJobs(queue, options);
12
+ return yield* Effect.forEach(rows, (job) => decodeStoredData(queue, job.data).pipe(Effect.map((data) => ({ ...job, data }))));
13
+ });
@@ -0,0 +1,18 @@
1
+ import { Effect } from "effect";
2
+ import type { SnapshotQueue, UnfinishedJob } from "#server/inspection.ts";
3
+ import { PgBossInspectionReads } from "#server/services/inspection/service.ts";
4
+ import { decodeStoredData } from "#server/storedRows.ts";
5
+ export const inspectionSnapshot = Effect.fnUntraced(function* <const TQueues extends readonly SnapshotQueue[]>(queues: TQueues) {
6
+ const inspection = yield* PgBossInspectionReads;
7
+ const byName = new Map<string, TQueues[number]>(queues.map((queue) => [queue.name, queue]));
8
+ const rows = yield* inspection.snapshot(queues);
9
+ return yield* Effect.forEach(rows, ({ data, queue: name, ...row }) => {
10
+ const queue = byName.get(name);
11
+ if (queue === undefined) {
12
+ return Effect.die(new Error(`The snapshot returned a job of an unrequested queue ${name}`));
13
+ }
14
+ return decodeStoredData<TQueues[number]["name"], TQueues[number]["schema"]>(queue, data).pipe(
15
+ Effect.map((decoded): UnfinishedJob<TQueues[number]> => ({ ...row, data: decoded, queue: queue.name })),
16
+ );
17
+ });
18
+ });
@@ -1,12 +1,12 @@
1
- import { type Context, Effect, Option, Redacted, Schema } from "effect";
1
+ import { Effect, Option, Redacted, Schema } from "effect";
2
2
  import { redact } from "@shivaedev/errors/redact.ts";
3
3
  import { keysetPage } from "@shivaedev/sql/keysetPage.ts";
4
4
  import type { JobPayloadSchema } from "#server/definition.ts";
5
- import { JobEngine, type Listing } from "#server/engine.ts";
5
+ import type { Listing } from "#server/engine.ts";
6
6
  import { type PgBossError, PgBossPayloadError } from "#server/error.ts";
7
7
  import type { DeadLetteredJob, JobPage, JobPageOptions } from "#server/health.ts";
8
8
  import { readJobFailure } from "#server/readJobFailure.ts";
9
- import type { PgBossService } from "#server/service.ts";
9
+ import { PgBossOperations } from "#server/services/operations/service.ts";
10
10
  import { decodeStoredData } from "#server/storedRows.ts";
11
11
 
12
12
  const Cursor = Schema.StringFromBase64Url.pipe(
@@ -42,29 +42,33 @@ const Row = Schema.Struct({
42
42
 
43
43
  const Rows = Schema.Array(Row);
44
44
 
45
- export const jobListings = Effect.gen(function* () {
46
- const engine = yield* JobEngine;
47
- const failedJobs: PgBossService["failedJobs"] = (queue, options) =>
48
- listJobs(engine, "failedJobs", queue, options).pipe(
49
- Effect.map(({ jobs, next }) => ({ jobs: jobs.map(({ sourceId: _id, sourceOutput: _output, ...job }) => job), next })),
50
- );
51
- const deadLetteredJobs: PgBossService["deadLetteredJobs"] = (queue, options) =>
52
- listJobs(engine, "deadLetteredJobs", queue, options).pipe(
53
- Effect.map(({ jobs, next }) => ({ jobs: jobs.map((job) => ({ ...job, sourceQueue: queue.name })), next })),
54
- );
55
- return { deadLetteredJobs, failedJobs };
45
+ export const failedJobs = Effect.fnUntraced(function* <const TName extends string, const TPayload extends JobPayloadSchema | typeof Schema.Null>(
46
+ queue: { readonly name: TName; readonly schema: TPayload },
47
+ options: JobPageOptions,
48
+ ) {
49
+ return yield* listJobs("failedJobs", queue, options).pipe(
50
+ Effect.map(({ jobs, next }) => ({ jobs: jobs.map(({ sourceId: _id, sourceOutput: _output, ...job }) => job), next })),
51
+ );
52
+ });
53
+ export const deadLetteredJobs = Effect.fnUntraced(function* <
54
+ const TName extends string,
55
+ const TPayload extends JobPayloadSchema | typeof Schema.Null,
56
+ >(queue: { readonly name: TName; readonly schema: TPayload }, options: JobPageOptions) {
57
+ return yield* listJobs("deadLetteredJobs", queue, options).pipe(
58
+ Effect.map(({ jobs, next }) => ({ jobs: jobs.map((job) => ({ ...job, sourceQueue: queue.name })), next })),
59
+ );
56
60
  });
57
61
 
58
62
  const listJobs = Effect.fnUntraced(function* <const TName extends string, const TPayload extends JobPayloadSchema | typeof Schema.Null>(
59
- engine: Context.Service.Shape<typeof JobEngine>,
60
63
  listing: Listing,
61
64
  queue: { readonly name: TName; readonly schema: TPayload },
62
65
  options: JobPageOptions,
63
66
  ): Effect.fn.Return<
64
67
  JobPage<Omit<DeadLetteredJob<unknown>, "sourceQueue">>,
65
68
  PgBossError | PgBossPayloadError | Schema.SchemaError,
66
- TPayload["DecodingServices"]
69
+ TPayload["DecodingServices"] | "@shivaedev/jobs/PgBossOperations"
67
70
  > {
71
+ const engine = yield* PgBossOperations;
68
72
  const { cursor: after, limit } = yield* Schema.decodeUnknownEffect(PageOptions)(options);
69
73
  const page = yield* keysetPage({
70
74
  after,
@@ -1,20 +1,19 @@
1
1
  import { Effect, Redacted, Schema } from "effect";
2
2
  import { deferralCount } from "#server/adapters/deferralCount.ts";
3
3
  import { workerDiagnostics } from "#server/adapters/workerDiagnostics.ts";
4
- import type { PgBossClient } from "#server/client.ts";
5
4
  import { type JobPayloadSchema, jobContext, type QueueWorker } from "#server/definition.ts";
6
5
  import { PgBossPayloadError } from "#server/error.ts";
7
6
  import type { WorkerJob } from "#server/job.ts";
7
+ import { PgBoss } from "#server/PgBoss.ts";
8
8
  import { payloadOf } from "#server/tracing.ts";
9
9
 
10
- export function runQueueWorker<R>(
10
+ export const runQueueWorker = Effect.fnUntraced(function* <R>(
11
11
  worker: QueueWorker<JobPayloadSchema & { readonly DecodingServices: R }, R>,
12
12
  job: WorkerJob<unknown>,
13
13
  deadline: number,
14
- client: PgBossClient,
15
- schema: string,
16
14
  ) {
17
- return Schema.decodeUnknownEffect(Schema.toCodecJson(worker.queue.schema))(payloadOf(job.data)).pipe(
15
+ const { client, schema = "pgboss" } = yield* PgBoss;
16
+ return yield* Schema.decodeUnknownEffect(Schema.toCodecJson(worker.queue.schema))(payloadOf(job.data)).pipe(
18
17
  Effect.mapError(
19
18
  (error) =>
20
19
  new PgBossPayloadError({
@@ -28,4 +27,4 @@ export function runQueueWorker<R>(
28
27
  ),
29
28
  workerDiagnostics,
30
29
  );
31
- }
30
+ });
@@ -1,6 +1,7 @@
1
1
  import { Context, type Effect, Layer, type Option, type Redacted, type Schema } from "effect";
2
2
  import { acquireClient } from "#server/acquireClient.ts";
3
3
  import { clientEngine } from "#server/adapters/lifecycle.ts";
4
+ import { pgBossDefinitionLayer } from "#server/adapters/pgBossDefinitionLayer.ts";
4
5
  import type { PgBossClientFactory } from "#server/client.ts";
5
6
  import type { ClientOptions, StopOptions } from "#server/clientOptions.ts";
6
7
  import type { JobPayloadSchema, JobRegistration, QueueDefinition, RegistrationRequirements, ScheduleDefinition } from "#server/definition.ts";
@@ -18,7 +19,6 @@ import type { PgBossInspectionService } from "#server/inspection.ts";
18
19
  import type { Job } from "#server/job.ts";
19
20
  import { ClientEngine } from "#server/lifecycle.ts";
20
21
  import { PgBoss } from "#server/PgBoss.ts";
21
- import { pgBossDefinitionLayer } from "#server/pgBossDefinitionLayer.ts";
22
22
 
23
23
  export interface PgBossService {
24
24
  readonly counts: (queue: Pick<QueueDefinition, "name">) => Effect.Effect<QueueCounts, PgBossError>;
@@ -0,0 +1,6 @@
1
+ import { type Context, Effect } from "effect";
2
+ import { InspectionEngine } from "#server/InspectionEngine.ts";
3
+ export const busy = Effect.fn("PgBossInspectionReads.busy")(function* (...args: Parameters<Context.Service.Shape<typeof InspectionEngine>["busy"]>) {
4
+ const engine = yield* InspectionEngine;
5
+ return yield* engine.busy(...args);
6
+ });
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { inspectionChanges } from "#server/adapters/inspectionChanges.ts";
3
+ import { PgBoss } from "#server/PgBoss.ts";
4
+ export const changes = Effect.fn("PgBossInspectionReads.changes")(function* (queue?: { readonly name: string }) {
5
+ const { client, schema } = yield* PgBoss;
6
+ return yield* inspectionChanges(client, schema ?? "pgboss", queue?.name);
7
+ });
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { countsFor } from "#server/adapters/countsFor.ts";
3
+ import { PgBoss } from "#server/PgBoss.ts";
4
+ export const counts = Effect.fn("PgBossInspectionReads.counts")(function* (queue: { readonly name: string }) {
5
+ const { client, schema } = yield* PgBoss;
6
+ return yield* countsFor(client, schema ?? "pgboss", queue.name);
7
+ });
@@ -0,0 +1,8 @@
1
+ import { type Context, Effect } from "effect";
2
+ import { InspectionEngine } from "#server/InspectionEngine.ts";
3
+ export const deferred = Effect.fn("PgBossInspectionReads.deferred")(function* (
4
+ ...args: Parameters<Context.Service.Shape<typeof InspectionEngine>["deferred"]>
5
+ ) {
6
+ const engine = yield* InspectionEngine;
7
+ return yield* engine.deferred(...args);
8
+ });
@@ -0,0 +1,10 @@
1
+ import { Effect } from "effect";
2
+ import { healthFor } from "#server/adapters/healthFor.ts";
3
+ import { PgBoss } from "#server/PgBoss.ts";
4
+ export const health = Effect.fn("PgBossInspectionReads.health")(function* (queues: readonly { readonly name: string }[]) {
5
+ const { client } = yield* PgBoss;
6
+ return yield* healthFor(
7
+ client,
8
+ queues.map(({ name }) => name),
9
+ );
10
+ });
@@ -0,0 +1,8 @@
1
+ import { type Context, Effect } from "effect";
2
+ import { InspectionEngine } from "#server/InspectionEngine.ts";
3
+ export const queue = Effect.fn("PgBossInspectionReads.queue")(function* (
4
+ ...args: Parameters<Context.Service.Shape<typeof InspectionEngine>["queue"]>
5
+ ) {
6
+ const engine = yield* InspectionEngine;
7
+ return yield* engine.queue(...args);
8
+ });
@@ -0,0 +1,8 @@
1
+ import { type Context, Effect } from "effect";
2
+ import { InspectionEngine } from "#server/InspectionEngine.ts";
3
+ export const schedules = Effect.fn("PgBossInspectionReads.schedules")(function* (
4
+ ...args: Parameters<Context.Service.Shape<typeof InspectionEngine>["schedules"]>
5
+ ) {
6
+ const engine = yield* InspectionEngine;
7
+ return yield* engine.schedules(...args);
8
+ });
@@ -0,0 +1,8 @@
1
+ import { type Context, Effect } from "effect";
2
+ import { InspectionEngine } from "#server/InspectionEngine.ts";
3
+ export const schemaVersion = Effect.fn("PgBossInspectionReads.schemaVersion")(function* (
4
+ ...args: Parameters<Context.Service.Shape<typeof InspectionEngine>["schemaVersion"]>
5
+ ) {
6
+ const engine = yield* InspectionEngine;
7
+ return yield* engine.schemaVersion(...args);
8
+ });
@@ -0,0 +1,20 @@
1
+ import { Effect } from "effect";
2
+ import { defineService } from "@shivaedev/service/defineService.ts";
3
+ import { InspectionEngine } from "#server/InspectionEngine.ts";
4
+ import { PgBoss } from "#server/PgBoss.ts";
5
+ import { busy } from "./busy.ts";
6
+ import { changes } from "./changes.ts";
7
+ import { counts } from "./counts.ts";
8
+ import { deferred } from "./deferred.ts";
9
+ import { health } from "./health.ts";
10
+ import { queue } from "./queue.ts";
11
+ import { schedules } from "./schedules.ts";
12
+ import { schemaVersion } from "./schemaVersion.ts";
13
+ import { snapshot } from "./snapshot.ts";
14
+ import { storedJobs } from "./storedJobs.ts";
15
+ export const PgBossInspectionReads = defineService({
16
+ id: "@shivaedev/jobs/PgBossInspectionReads",
17
+ initialize: Effect.void,
18
+ methods: () => ({ busy, changes, counts, deferred, health, queue, schedules, schemaVersion, snapshot, storedJobs }),
19
+ requires: [PgBoss, InspectionEngine],
20
+ });
@@ -0,0 +1,8 @@
1
+ import { type Context, Effect } from "effect";
2
+ import { InspectionEngine } from "#server/InspectionEngine.ts";
3
+ export const snapshot = Effect.fn("PgBossInspectionReads.snapshot")(function* (
4
+ ...args: Parameters<Context.Service.Shape<typeof InspectionEngine>["snapshot"]>
5
+ ) {
6
+ const engine = yield* InspectionEngine;
7
+ return yield* engine.snapshot(...args);
8
+ });
@@ -0,0 +1,8 @@
1
+ import { type Context, Effect } from "effect";
2
+ import { InspectionEngine } from "#server/InspectionEngine.ts";
3
+ export const storedJobs = Effect.fn("PgBossInspectionReads.storedJobs")(function* (
4
+ ...args: Parameters<Context.Service.Shape<typeof InspectionEngine>["storedJobs"]>
5
+ ) {
6
+ const engine = yield* InspectionEngine;
7
+ return yield* engine.storedJobs(...args);
8
+ });
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { countsFor } from "#server/adapters/countsFor.ts";
3
+ import { PgBoss } from "#server/PgBoss.ts";
4
+ export const counts = Effect.fn("PgBossOperations.counts")(function* (queue: { readonly name: string }) {
5
+ const { client, schema } = yield* PgBoss;
6
+ return yield* countsFor(client, schema ?? "pgboss", queue.name);
7
+ });
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { JobEngine } from "#server/engine.ts";
3
+ import type { PgBossService } from "#server/service.ts";
4
+ export const deleteQueue = Effect.fn("PgBossOperations.deleteQueue")(function* (...args: Parameters<PgBossService["deleteQueue"]>) {
5
+ const engine = yield* JobEngine;
6
+ return yield* engine.deleteQueue(...args);
7
+ });
@@ -0,0 +1,12 @@
1
+ import { Effect, Option } from "effect";
2
+ import { transactionDb } from "#server/adapters/transactionDb.ts";
3
+ import type { EnqueueOptions } from "#server/enqueueOptions.ts";
4
+ import { toPgBossError } from "#server/error.ts";
5
+ import { PgBoss } from "#server/PgBoss.ts";
6
+ export const enqueue = Effect.fn("PgBossOperations.enqueue")(function* (name: string, data: object, options?: EnqueueOptions) {
7
+ const { client } = yield* PgBoss;
8
+ const db = yield* transactionDb;
9
+ const sendOptions = db === undefined ? options : { ...options, db };
10
+ const send = Effect.tryPromise({ catch: (error) => toPgBossError("enqueue", error, name), try: () => client.send(name, data, sendOptions) });
11
+ return Option.fromNullishOr(yield* db === undefined ? send : Effect.uninterruptible(send));
12
+ });
@@ -0,0 +1,6 @@
1
+ import { Effect } from "effect";
2
+ import { JobEngine } from "#server/engine.ts";
3
+ export const getJob = Effect.fn("PgBossOperations.getJob")(function* (queue: string, id: string) {
4
+ const engine = yield* JobEngine;
5
+ return yield* engine.getJob(queue, id);
6
+ });
@@ -0,0 +1,9 @@
1
+ import { Effect } from "effect";
2
+ import { healthFor } from "#server/adapters/healthFor.ts";
3
+ import { JobQueues } from "#server/JobQueues.ts";
4
+ import { PgBoss } from "#server/PgBoss.ts";
5
+ export const health = Effect.fn("PgBossOperations.health")(function* (queues?: readonly { readonly name: string }[]) {
6
+ const { client } = yield* PgBoss;
7
+ const names = yield* JobQueues;
8
+ return yield* healthFor(client, queues?.map(({ name }) => name) ?? names);
9
+ });
@@ -0,0 +1,8 @@
1
+ import { Effect } from "effect";
2
+ import type { KeysetPageQuery } from "@shivaedev/sql/keysetPage.ts";
3
+ import type { Listing } from "#server/engine.ts";
4
+ import { JobEngine } from "#server/engine.ts";
5
+ export const listJobs = Effect.fn("PgBossOperations.listJobs")(function* (listing: Listing, queue: string, query: KeysetPageQuery) {
6
+ const engine = yield* JobEngine;
7
+ return yield* engine.listJobs(listing, queue, query);
8
+ });
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { JobEngine } from "#server/engine.ts";
3
+ import type { PgBossService } from "#server/service.ts";
4
+ export const refreshQueueStats = Effect.fn("PgBossOperations.refreshQueueStats")(function* (...args: Parameters<PgBossService["refreshQueueStats"]>) {
5
+ const engine = yield* JobEngine;
6
+ return yield* engine.refreshQueueStats(...args);
7
+ });
@@ -0,0 +1,6 @@
1
+ import { Effect } from "effect";
2
+ import { JobEngine } from "#server/engine.ts";
3
+ export const retry = Effect.fn("PgBossOperations.retry")(function* (queue: string, id: string) {
4
+ const engine = yield* JobEngine;
5
+ return yield* engine.retry(queue, id);
6
+ });
@@ -0,0 +1,20 @@
1
+ import { Effect } from "effect";
2
+ import { defineService } from "@shivaedev/service/defineService.ts";
3
+ import { JobEngine } from "#server/engine.ts";
4
+ import { JobQueues } from "#server/JobQueues.ts";
5
+ import { PgBoss } from "#server/PgBoss.ts";
6
+ import { counts } from "./counts.ts";
7
+ import { deleteQueue } from "./deleteQueue.ts";
8
+ import { enqueue } from "./enqueue.ts";
9
+ import { getJob } from "./getJob.ts";
10
+ import { health } from "./health.ts";
11
+ import { listJobs } from "./listJobs.ts";
12
+ import { refreshQueueStats } from "./refreshQueueStats.ts";
13
+ import { retry } from "./retry.ts";
14
+ import { unschedule } from "./unschedule.ts";
15
+ export const PgBossOperations = defineService({
16
+ id: "@shivaedev/jobs/PgBossOperations",
17
+ initialize: Effect.void,
18
+ methods: () => ({ counts, deleteQueue, enqueue, getJob, health, listJobs, refreshQueueStats, retry, unschedule }),
19
+ requires: [PgBoss, JobEngine, JobQueues],
20
+ });
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { JobEngine } from "#server/engine.ts";
3
+ import type { PgBossService } from "#server/service.ts";
4
+ export const unschedule = Effect.fn("PgBossOperations.unschedule")(function* (...args: Parameters<PgBossService["unschedule"]>) {
5
+ const engine = yield* JobEngine;
6
+ return yield* engine.unschedule(...args);
7
+ });
@@ -1,7 +1,7 @@
1
1
  import { Effect } from "effect";
2
+ import { registrationName } from "#server/adapters/register.ts";
2
3
  import type { JobRegistration } from "#server/definition.ts";
3
4
  import { PgBossQueueNamesError } from "#server/error.ts";
4
- import { registrationName } from "./register.ts";
5
5
 
6
6
  export const validateQueueNames = Effect.fnUntraced(function* (jobs: readonly JobRegistration[], declared: readonly string[] | undefined) {
7
7
  if (declared === undefined) {
@@ -1,9 +0,0 @@
1
- import { Context, type Effect, type Scope } from "effect";
2
- import type { PgBossError, PgBossQueueNamesError, PgBossQueueOptionsError } from "#server/error.ts";
3
- import type { PgBoss } from "#server/PgBoss.ts";
4
- import type { PgBossService } from "#server/service.ts";
5
- declare const PgBossInitialization_base: Context.ServiceClass<PgBossInitialization, "@shivaedev/jobs/PgBossInitialization", Effect.Effect<PgBossService, PgBossError | PgBossQueueNamesError | PgBossQueueOptionsError, PgBoss | Scope.Scope>>;
6
- export declare class PgBossInitialization extends PgBossInitialization_base {
7
- }
8
- export {};
9
- //# sourceMappingURL=PgBossInitialization.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PgBossInitialization.d.ts","sourceRoot":"","sources":["../../src/server/PgBossInitialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;AAExD,qBAAa,oBAAqB,SAAQ,yBAGC;CAAG"}
@@ -1,4 +0,0 @@
1
- import { Context } from "effect";
2
- export class PgBossInitialization extends Context.Service()("@shivaedev/jobs/PgBossInitialization") {
3
- }
4
- //# sourceMappingURL=PgBossInitialization.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PgBossInitialization.js","sourceRoot":"","sources":["../../src/server/PgBossInitialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA2B,MAAM,QAAQ,CAAC;AAK1D,MAAM,OAAO,oBAAqB,SAAQ,OAAO,CAAC,OAAO,EAGtD,CAAC,sCAAsC,CAAC;CAAG"}
@@ -1,27 +0,0 @@
1
- import { PgBoss } from "#server/PgBoss.ts";
2
- import { PgBossInitialization } from "./PgBossInitialization.ts";
3
- export declare const PgBossOperations: import("effect/Context").Service<"@shivaedev/jobs/PgBossOperations", Readonly<{
4
- readonly counts: (queue: Pick<import("./definition.ts").QueueDefinition<string, import("./definition.ts").JobPayloadSchema>, "name">) => import("effect/Effect").Effect<import("./health.ts").QueueCounts, import("./error.ts").PgBossError, never>;
5
- readonly deadLetteredJobs: <const TName extends string, const TPayload extends import("./definition.ts").JobPayloadSchema | typeof import("effect/Schema").Null>(queue: {
6
- readonly name: TName;
7
- readonly schema: TPayload;
8
- }, options: import("./health.ts").JobPageOptions) => import("effect/Effect").Effect<import("./health.ts").JobPage<import("./health.ts").DeadLetteredJob<unknown>>, import("./error.ts").PgBossError | import("./error.ts").PgBossPayloadError | import("effect/Schema").SchemaError, TPayload["DecodingServices"]>;
9
- readonly deleteQueue: (queue: Pick<import("./definition.ts").QueueDefinition<string, import("./definition.ts").JobPayloadSchema>, "name">) => import("effect/Effect").Effect<void, import("./error.ts").PgBossError | import("./error.ts").PgBossNotFoundError, never>;
10
- readonly enqueue: <const TName extends string, const TPayload extends import("./definition.ts").JobPayloadSchema, const TQueue extends import("./definition.ts").QueueDefinition<TName, TPayload>>(queue: import("./definition.ts").QueueDefinition<TName, TPayload> & TQueue, payload: NoInfer<import("effect/Schema").Schema.Type<TPayload>>, options?: NoInfer<import("./enqueueOptions.ts").QueueEnqueueOptions<TQueue>>) => import("effect/Effect").Effect<import("effect/Option").Option<string>, import("./error.ts").PgBossError | import("./error.ts").PgBossPayloadError, TPayload["EncodingServices"]>;
11
- readonly failedJobs: <const TName extends string, const TPayload extends import("./definition.ts").JobPayloadSchema | typeof import("effect/Schema").Null>(queue: {
12
- readonly name: TName;
13
- readonly schema: TPayload;
14
- }, options: import("./health.ts").JobPageOptions) => import("effect/Effect").Effect<import("./health.ts").JobPage<import("./health.ts").ListedJob<unknown>>, import("./error.ts").PgBossError | import("./error.ts").PgBossPayloadError | import("effect/Schema").SchemaError, TPayload["DecodingServices"]>;
15
- readonly getJob: <const TName extends string, const TPayload extends import("./definition.ts").JobPayloadSchema | typeof import("effect/Schema").Null>(queue: {
16
- readonly name: TName;
17
- readonly schema: TPayload;
18
- }, id: string) => import("effect/Effect").Effect<import("effect/Option").Option<import("./job.ts").Job<unknown>>, import("./error.ts").PgBossError | import("./error.ts").PgBossPayloadError, TPayload["DecodingServices"]>;
19
- readonly health: (queues?: readonly Pick<import("./definition.ts").QueueDefinition<string, import("./definition.ts").JobPayloadSchema>, "name">[] | undefined) => import("effect/Effect").Effect<import("./health.ts").JobsHealth, import("./error.ts").PgBossError, never>;
20
- readonly inspection: () => import("effect/Effect").Effect<import("./inspection.ts").PgBossInspectionService, never, never>;
21
- readonly refreshQueueStats: (queue?: Pick<import("./definition.ts").QueueDefinition<string, import("./definition.ts").JobPayloadSchema>, "name"> | undefined) => import("effect/Effect").Effect<void, import("./error.ts").PgBossError, never>;
22
- readonly retry: (queue: Pick<import("./definition.ts").QueueDefinition<string, import("./definition.ts").JobPayloadSchema>, "name">, id: string) => import("effect/Effect").Effect<void, import("./error.ts").PgBossError, never>;
23
- readonly unschedule: (schedule: Pick<import("./definition.ts").ScheduleDefinition<string>, "name" | "scheduleOptions">) => import("effect/Effect").Effect<void, import("./error.ts").PgBossError | import("./error.ts").PgBossNotFoundError, never>;
24
- }>> & {
25
- readonly layer: import("effect/Layer").Layer<"@shivaedev/jobs/PgBossOperations", import("./error.ts").PgBossError | import("./error.ts").PgBossQueueNamesError | import("./error.ts").PgBossQueueOptionsError, PgBoss | PgBossInitialization>;
26
- };
27
- //# sourceMappingURL=PgBossOperations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PgBossOperations.d.ts","sourceRoot":"","sources":["../../src/server/PgBossOperations.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;CAiB3B,CAAC"}