@shivaedev/jobs 0.31.0 → 0.34.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 (205) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +75 -30
  3. package/dist/server/adapters/inspection.d.ts +5 -0
  4. package/dist/server/adapters/inspection.d.ts.map +1 -0
  5. package/dist/server/adapters/inspection.js +25 -0
  6. package/dist/server/adapters/inspection.js.map +1 -0
  7. package/dist/server/adapters/inspectionChanges.d.ts +7 -0
  8. package/dist/server/adapters/inspectionChanges.d.ts.map +1 -0
  9. package/dist/server/adapters/inspectionChanges.js +23 -0
  10. package/dist/server/adapters/inspectionChanges.js.map +1 -0
  11. package/dist/server/adapters/inspectionDeferrals.d.ts +10 -0
  12. package/dist/server/adapters/inspectionDeferrals.d.ts.map +1 -0
  13. package/dist/server/adapters/inspectionDeferrals.js +13 -0
  14. package/dist/server/adapters/inspectionDeferrals.js.map +1 -0
  15. package/dist/server/adapters/inspectionJobs.d.ts +50 -0
  16. package/dist/server/adapters/inspectionJobs.d.ts.map +1 -0
  17. package/dist/server/adapters/inspectionJobs.js +21 -0
  18. package/dist/server/adapters/inspectionJobs.js.map +1 -0
  19. package/dist/server/adapters/inspectionOperation.d.ts +3 -0
  20. package/dist/server/adapters/inspectionOperation.d.ts.map +1 -0
  21. package/dist/server/adapters/inspectionOperation.js +6 -0
  22. package/dist/server/adapters/inspectionOperation.js.map +1 -0
  23. package/dist/server/adapters/inspectionPlan.d.ts +3 -0
  24. package/dist/server/adapters/inspectionPlan.d.ts.map +1 -0
  25. package/dist/server/adapters/inspectionPlan.js +20 -0
  26. package/dist/server/adapters/inspectionPlan.js.map +1 -0
  27. package/dist/server/adapters/inspectionReads.d.ts +59 -0
  28. package/dist/server/adapters/inspectionReads.d.ts.map +1 -0
  29. package/dist/server/adapters/inspectionReads.js +44 -0
  30. package/dist/server/adapters/inspectionReads.js.map +1 -0
  31. package/dist/server/adapters/inspectionSnapshot.d.ts +6 -0
  32. package/dist/server/adapters/inspectionSnapshot.d.ts.map +1 -0
  33. package/dist/server/{internal/testingSnapshot.js → adapters/inspectionSnapshot.js} +9 -7
  34. package/dist/server/adapters/inspectionSnapshot.js.map +1 -0
  35. package/dist/server/adapters/jobEngine.d.ts.map +1 -1
  36. package/dist/server/adapters/jobEngine.js +0 -4
  37. package/dist/server/adapters/jobEngine.js.map +1 -1
  38. package/dist/server/adapters/payloadIdentity.d.ts +3 -0
  39. package/dist/server/adapters/payloadIdentity.d.ts.map +1 -0
  40. package/dist/server/adapters/payloadIdentity.js +14 -0
  41. package/dist/server/adapters/payloadIdentity.js.map +1 -0
  42. package/dist/server/{internal/testingSignal.d.ts → adapters/queueSignal.d.ts} +2 -2
  43. package/dist/server/adapters/queueSignal.d.ts.map +1 -0
  44. package/dist/server/{internal/testingSignal.js → adapters/queueSignal.js} +2 -2
  45. package/dist/server/adapters/queueSignal.js.map +1 -0
  46. package/dist/server/adapters/settleDeferral.d.ts.map +1 -1
  47. package/dist/server/adapters/settleDeferral.js +8 -2
  48. package/dist/server/adapters/settleDeferral.js.map +1 -1
  49. package/dist/server/adapters/testingClient.d.ts +1 -2
  50. package/dist/server/adapters/testingClient.d.ts.map +1 -1
  51. package/dist/server/adapters/testingClient.js +25 -45
  52. package/dist/server/adapters/testingClient.js.map +1 -1
  53. package/dist/server/adapters/testingController.d.ts +58 -12
  54. package/dist/server/adapters/testingController.d.ts.map +1 -1
  55. package/dist/server/adapters/testingController.js +40 -18
  56. package/dist/server/adapters/testingController.js.map +1 -1
  57. package/dist/server/adapters/testingDueNow.js +1 -1
  58. package/dist/server/adapters/testingDueNow.js.map +1 -1
  59. package/dist/server/adapters/testingEngine.d.ts.map +1 -1
  60. package/dist/server/adapters/testingEngine.js +0 -11
  61. package/dist/server/adapters/testingEngine.js.map +1 -1
  62. package/dist/server/adapters/testingInspectionClient.d.ts +5 -0
  63. package/dist/server/adapters/testingInspectionClient.d.ts.map +1 -0
  64. package/dist/server/adapters/testingInspectionClient.js +52 -0
  65. package/dist/server/adapters/testingInspectionClient.js.map +1 -0
  66. package/dist/server/adapters/testingTime.d.ts +10 -0
  67. package/dist/server/adapters/testingTime.d.ts.map +1 -0
  68. package/dist/server/adapters/testingTime.js +18 -0
  69. package/dist/server/adapters/testingTime.js.map +1 -0
  70. package/dist/server/client.d.ts +3 -0
  71. package/dist/server/client.d.ts.map +1 -1
  72. package/dist/server/clientOptions.d.ts +0 -1
  73. package/dist/server/clientOptions.d.ts.map +1 -1
  74. package/dist/server/definition.d.ts +12 -11
  75. package/dist/server/definition.d.ts.map +1 -1
  76. package/dist/server/definition.js +2 -1
  77. package/dist/server/definition.js.map +1 -1
  78. package/dist/server/engineClient.d.ts +0 -5
  79. package/dist/server/engineClient.d.ts.map +1 -1
  80. package/dist/server/enqueueOptions.d.ts +6 -0
  81. package/dist/server/enqueueOptions.d.ts.map +1 -1
  82. package/dist/server/error.d.ts +1 -1
  83. package/dist/server/error.d.ts.map +1 -1
  84. package/dist/server/error.js.map +1 -1
  85. package/dist/server/inspection.d.ts +102 -0
  86. package/dist/server/inspection.d.ts.map +1 -0
  87. package/dist/server/inspection.js +30 -0
  88. package/dist/server/inspection.js.map +1 -0
  89. package/dist/server/internal/adapters/deferralChanges.d.ts +3 -0
  90. package/dist/server/internal/adapters/deferralChanges.d.ts.map +1 -0
  91. package/dist/server/internal/adapters/deferralChanges.js +2 -0
  92. package/dist/server/internal/adapters/deferralChanges.js.map +1 -0
  93. package/dist/server/internal/adapters/testingFetches.d.ts +2 -2
  94. package/dist/server/internal/adapters/testingFetches.d.ts.map +1 -1
  95. package/dist/server/internal/adapters/testingFetches.js.map +1 -1
  96. package/dist/server/internal/deferral.d.ts +0 -2
  97. package/dist/server/internal/deferral.d.ts.map +1 -1
  98. package/dist/server/internal/deferral.js +0 -1
  99. package/dist/server/internal/deferral.js.map +1 -1
  100. package/dist/server/internal/engine.d.ts +0 -5
  101. package/dist/server/internal/engine.d.ts.map +1 -1
  102. package/dist/server/internal/engine.js.map +1 -1
  103. package/dist/server/internal/enqueueFor.d.ts.map +1 -1
  104. package/dist/server/internal/enqueueFor.js +11 -1
  105. package/dist/server/internal/enqueueFor.js.map +1 -1
  106. package/dist/server/internal/jobStorePlans.d.ts.map +1 -1
  107. package/dist/server/internal/jobStorePlans.js +2 -1
  108. package/dist/server/internal/jobStorePlans.js.map +1 -1
  109. package/dist/server/internal/makeService.d.ts.map +1 -1
  110. package/dist/server/internal/makeService.js +7 -6
  111. package/dist/server/internal/makeService.js.map +1 -1
  112. package/dist/server/internal/register.d.ts.map +1 -1
  113. package/dist/server/internal/register.js +0 -4
  114. package/dist/server/internal/register.js.map +1 -1
  115. package/dist/server/internal/testingIdle.d.ts +4 -3
  116. package/dist/server/internal/testingIdle.d.ts.map +1 -1
  117. package/dist/server/internal/testingIdle.js +7 -26
  118. package/dist/server/internal/testingIdle.js.map +1 -1
  119. package/dist/server/internal/testingOperation.d.ts +5 -0
  120. package/dist/server/internal/testingOperation.d.ts.map +1 -0
  121. package/dist/server/internal/testingOperation.js +12 -0
  122. package/dist/server/internal/testingOperation.js.map +1 -0
  123. package/dist/server/internal/testingSchedules.d.ts +8 -5
  124. package/dist/server/internal/testingSchedules.d.ts.map +1 -1
  125. package/dist/server/internal/testingSchedules.js +14 -9
  126. package/dist/server/internal/testingSchedules.js.map +1 -1
  127. package/dist/server/internal/testingWaits.d.ts +7 -4
  128. package/dist/server/internal/testingWaits.d.ts.map +1 -1
  129. package/dist/server/internal/testingWaits.js +7 -10
  130. package/dist/server/internal/testingWaits.js.map +1 -1
  131. package/dist/server/schema.d.ts.map +1 -1
  132. package/dist/server/schema.js +5 -0
  133. package/dist/server/schema.js.map +1 -1
  134. package/dist/server/service.d.ts +4 -4
  135. package/dist/server/service.d.ts.map +1 -1
  136. package/dist/server/service.js +1 -0
  137. package/dist/server/service.js.map +1 -1
  138. package/dist/server/testing.d.ts +63 -25
  139. package/dist/server/testing.d.ts.map +1 -1
  140. package/dist/server/testing.js.map +1 -1
  141. package/package.json +7 -7
  142. package/src/server/adapters/inspection.ts +31 -0
  143. package/src/server/adapters/inspectionChanges.ts +31 -0
  144. package/src/server/{internal/testingDeferrals.ts → adapters/inspectionDeferrals.ts} +10 -12
  145. package/src/server/adapters/inspectionJobs.ts +28 -0
  146. package/src/server/adapters/inspectionOperation.ts +6 -0
  147. package/src/server/adapters/inspectionPlan.ts +21 -0
  148. package/src/server/adapters/inspectionReads.ts +55 -0
  149. package/src/server/{internal/testingSnapshot.ts → adapters/inspectionSnapshot.ts} +15 -17
  150. package/src/server/adapters/jobEngine.ts +0 -4
  151. package/src/server/adapters/payloadIdentity.ts +15 -0
  152. package/src/server/{internal/testingSignal.ts → adapters/queueSignal.ts} +1 -1
  153. package/src/server/adapters/settleDeferral.ts +8 -2
  154. package/src/server/adapters/testingClient.ts +11 -30
  155. package/src/server/adapters/testingController.ts +49 -21
  156. package/src/server/adapters/testingDueNow.ts +1 -1
  157. package/src/server/adapters/testingEngine.ts +0 -13
  158. package/src/server/adapters/testingInspectionClient.ts +70 -0
  159. package/src/server/adapters/testingTime.ts +25 -0
  160. package/src/server/client.ts +3 -0
  161. package/src/server/clientOptions.ts +0 -1
  162. package/src/server/definition.ts +18 -12
  163. package/src/server/engineClient.ts +0 -2
  164. package/src/server/enqueueOptions.ts +5 -0
  165. package/src/server/error.ts +1 -0
  166. package/src/server/inspection.ts +50 -0
  167. package/src/server/internal/adapters/deferralChanges.ts +3 -0
  168. package/src/server/internal/adapters/testingFetches.ts +2 -2
  169. package/src/server/internal/deferral.ts +0 -2
  170. package/src/server/internal/engine.ts +0 -6
  171. package/src/server/internal/enqueueFor.ts +14 -1
  172. package/src/server/internal/jobStorePlans.ts +2 -1
  173. package/src/server/internal/makeService.ts +7 -6
  174. package/src/server/internal/register.ts +0 -4
  175. package/src/server/internal/testingIdle.ts +10 -31
  176. package/src/server/internal/testingOperation.ts +18 -0
  177. package/src/server/internal/testingSchedules.ts +28 -16
  178. package/src/server/internal/testingWaits.ts +11 -16
  179. package/src/server/schema.ts +5 -0
  180. package/src/server/service.ts +5 -2
  181. package/src/server/testing.ts +3 -12
  182. package/dist/server/adapters/observeTestingSettlements.d.ts +0 -6
  183. package/dist/server/adapters/observeTestingSettlements.d.ts.map +0 -1
  184. package/dist/server/adapters/observeTestingSettlements.js +0 -35
  185. package/dist/server/adapters/observeTestingSettlements.js.map +0 -1
  186. package/dist/server/internal/testingDeferrals.d.ts +0 -10
  187. package/dist/server/internal/testingDeferrals.d.ts.map +0 -1
  188. package/dist/server/internal/testingDeferrals.js +0 -15
  189. package/dist/server/internal/testingDeferrals.js.map +0 -1
  190. package/dist/server/internal/testingReadout.d.ts +0 -10
  191. package/dist/server/internal/testingReadout.d.ts.map +0 -1
  192. package/dist/server/internal/testingReadout.js +0 -13
  193. package/dist/server/internal/testingReadout.js.map +0 -1
  194. package/dist/server/internal/testingRegistrations.d.ts +0 -4
  195. package/dist/server/internal/testingRegistrations.d.ts.map +0 -1
  196. package/dist/server/internal/testingRegistrations.js +0 -8
  197. package/dist/server/internal/testingRegistrations.js.map +0 -1
  198. package/dist/server/internal/testingSignal.d.ts.map +0 -1
  199. package/dist/server/internal/testingSignal.js.map +0 -1
  200. package/dist/server/internal/testingSnapshot.d.ts +0 -6
  201. package/dist/server/internal/testingSnapshot.d.ts.map +0 -1
  202. package/dist/server/internal/testingSnapshot.js.map +0 -1
  203. package/src/server/adapters/observeTestingSettlements.ts +0 -36
  204. package/src/server/internal/testingReadout.ts +0 -25
  205. package/src/server/internal/testingRegistrations.ts +0 -10
@@ -0,0 +1,44 @@
1
+ import { Schema } from "effect";
2
+ import { inspectionDeferrals } from "#server/adapters/inspectionDeferrals.ts";
3
+ import { inspectionJobs } from "#server/adapters/inspectionJobs.ts";
4
+ import { inspectionOperation } from "#server/adapters/inspectionOperation.ts";
5
+ import { inspectionSnapshot } from "#server/adapters/inspectionSnapshot.ts";
6
+ import { quotedSchema } from "#server/internal/storedRows.ts";
7
+ const Busy = Schema.Struct({ busy: Schema.Boolean });
8
+ export function inspectionReads(client, schema) {
9
+ const quoted = quotedSchema(schema);
10
+ function query(text, values) {
11
+ const db = client.getDb?.();
12
+ if (db === undefined) {
13
+ throw new TypeError("This pg-boss client does not support getDb");
14
+ }
15
+ return db.executeSql(text, values);
16
+ }
17
+ return {
18
+ ...inspectionDeferrals(client),
19
+ busy: (queues) => inspectionOperation(async () => {
20
+ const { rows } = await query(`/* jobs inspection busy */ SELECT EXISTS (
21
+ SELECT 1 FROM ${quoted}.job WHERE name = ANY($1::text[]) AND (
22
+ (state < 'active' AND NOT blocked AND start_after <= ${quoted}.job_now()) OR state = 'active'
23
+ )
24
+ ) AS busy`, [queues.map(({ name }) => name)]);
25
+ return Schema.decodeUnknownSync(Busy)(rows[0]).busy;
26
+ }),
27
+ ...inspectionJobs(client),
28
+ queue: (queue) => inspectionOperation(() => client.getQueue(queue.name), queue.name),
29
+ schedules: (name, key) => inspectionOperation(() => {
30
+ if (client.getSchedules === undefined) {
31
+ throw new TypeError("This pg-boss client does not support getSchedules");
32
+ }
33
+ return client.getSchedules(name, key);
34
+ }),
35
+ schemaVersion: () => inspectionOperation(() => {
36
+ if (client.schemaVersion === undefined) {
37
+ throw new TypeError("This pg-boss client does not support schemaVersion");
38
+ }
39
+ return client.schemaVersion();
40
+ }),
41
+ snapshot: inspectionSnapshot(() => client, () => schema),
42
+ };
43
+ }
44
+ //# sourceMappingURL=inspectionReads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectionReads.js","sourceRoot":"","sources":["../../../src/server/adapters/inspectionReads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AACrD,MAAM,UAAU,eAAe,CAAC,MAAoB,EAAE,MAAc;IACnE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,SAAS,KAAK,CAAC,IAAY,EAAE,MAAkB;QAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,OAAO;QACN,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAC9B,IAAI,EAAE,CAAC,MAAgD,EAAE,EAAE,CAC1D,mBAAmB,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAC3B;oBACe,MAAM;4DACkC,MAAM;;aAErD,EACR,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAChC,CAAC;YACF,OAAO,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,CAAC,CAAC;QACH,GAAG,cAAc,CAAC,MAAM,CAAC;QACzB,KAAK,EAAE,CAAC,KAAoC,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;QACnH,SAAS,EAAE,CAAC,IAAa,EAAE,GAAY,EAAE,EAAE,CAC1C,mBAAmB,CAAC,GAAG,EAAE;YACxB,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACvC,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC;QACH,aAAa,EAAE,GAAG,EAAE,CACnB,mBAAmB,CAAC,GAAG,EAAE;YACxB,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;YAC3E,CAAC;YACD,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC,CAAC;QACH,QAAQ,EAAE,kBAAkB,CAC3B,GAAG,EAAE,CAAC,MAAM,EACZ,GAAG,EAAE,CAAC,MAAM,CACZ;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Effect } from "effect";
2
+ import type { PgBossClient } from "#server/client.ts";
3
+ import type { PgBossError, PgBossPayloadError } from "#server/error.ts";
4
+ import type { SnapshotQueue, UnfinishedJob } from "#server/inspection.ts";
5
+ export declare function inspectionSnapshot(client: () => PgBossClient, schema: () => string): <const TQueues extends readonly SnapshotQueue[]>(queues: TQueues) => Effect.Effect<readonly UnfinishedJob<TQueues[number]>[], PgBossPayloadError | PgBossError, TQueues[number]["schema"]["DecodingServices"]>;
6
+ //# sourceMappingURL=inspectionSnapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectionSnapshot.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/inspectionSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAExC,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,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAa1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,YAAY,EAAE,MAAM,EAAE,MAAM,MAAM,IAC1E,KAAK,CAAC,OAAO,SAAS,SAAS,aAAa,EAAE,UAC7C,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,kBAAkB,GAAG,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAiC5I"}
@@ -1,6 +1,6 @@
1
1
  import { Effect, Schema } from "effect";
2
+ import { inspectionOperation } from "#server/adapters/inspectionOperation.ts";
2
3
  import { decodeStoredData, quotedSchema } from "#server/internal/storedRows.ts";
3
- import { testingOperation } from "#server/internal/testingReadout.ts";
4
4
  const Rows = Schema.Array(Schema.Struct({
5
5
  data: Schema.Unknown,
6
6
  id: Schema.String,
@@ -8,14 +8,16 @@ const Rows = Schema.Array(Schema.Struct({
8
8
  startAfter: Schema.DateTimeUtcFromDate,
9
9
  state: Schema.Literals(["created", "retry", "deferred", "active", "failed"]),
10
10
  }));
11
- export function testingSnapshot(client, schema) {
11
+ export function inspectionSnapshot(client, schema) {
12
12
  return (queues) => {
13
13
  const byName = new Map(queues.map((queue) => [queue.name, queue]));
14
- return testingOperation("snapshot", async () => {
14
+ return inspectionOperation(async () => {
15
15
  const quoted = quotedSchema(schema());
16
- const { rows } = await client()
17
- .getDb()
18
- .executeSql(`SELECT id, name AS queue, data, start_after AS "startAfter",
16
+ const db = client().getDb?.();
17
+ if (db === undefined) {
18
+ throw new TypeError("This pg-boss client does not support getDb");
19
+ }
20
+ const { rows } = await db.executeSql(`SELECT id, name AS queue, data, start_after AS "startAfter",
19
21
  CASE WHEN state = 'retry' AND started_on IS NULL AND start_after > ${quoted}.job_now()
20
22
  AND output ? 'jobDeferral'
21
23
  THEN 'deferred' ELSE state::text END AS state
@@ -32,4 +34,4 @@ export function testingSnapshot(client, schema) {
32
34
  })));
33
35
  };
34
36
  }
35
- //# sourceMappingURL=testingSnapshot.js.map
37
+ //# sourceMappingURL=inspectionSnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectionSnapshot.js","sourceRoot":"","sources":["../../../src/server/adapters/inspectionSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAI9E,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEhF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CACxB,MAAM,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM;IACpB,UAAU,EAAE,MAAM,CAAC,mBAAmB;IACtC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;CAC5E,CAAC,CACF,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,MAA0B,EAAE,MAAoB;IAClF,OAAO,CACN,MAAe,EAC6H,EAAE;QAC9I,MAAM,MAAM,GAAG,IAAI,GAAG,CAA0B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5F,OAAO,mBAAmB,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACtC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YAC9B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,UAAU,CACnC;0EACsE,MAAM;;;YAGpE,MAAM;;6BAEW,EACzB,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CACpB,CAAC;YACF,OAAO,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,IAAI,CACN,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;YACtD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,uDAAuD,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7F,CAAC;YACD,OAAO,gBAAgB,CAAqD,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAC5F,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAkC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CACvG,CAAC;QACH,CAAC,CAAC,CACF,CACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"jobEngine.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/jobEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAK5D,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAiD1G"}
1
+ {"version":3,"file":"jobEngine.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/jobEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAK5D,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CA8C1G"}
@@ -1,6 +1,5 @@
1
1
  import { Effect } from "effect";
2
2
  import { toPgBossError } from "#server/error.ts";
3
- import { deferralObservers } from "#server/internal/deferral.ts";
4
3
  import { listJobs } from "./listJobs.js";
5
4
  import { queueAdministration } from "./queueAdministration.js";
6
5
  import { settleDeferral } from "./settleDeferral.js";
@@ -41,9 +40,6 @@ export function jobEngine(client, schema = "pgboss") {
41
40
  // Native batch settlement must not match a sibling's new claim at the unchanged retry count.
42
41
  job.retryCount = Number.MAX_SAFE_INTEGER;
43
42
  }
44
- if (settled.deferred) {
45
- deferralObservers.get(client)?.();
46
- }
47
43
  }))),
48
44
  };
49
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"jobEngine.js","sourceRoot":"","sources":["../../../src/server/adapters/jobEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobEngine.js","sourceRoot":"","sources":["../../../src/server/adapters/jobEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function payloadKey(parts: readonly string[], payload: object): string;
2
+ export declare function payloadJobId(queue: string, parts: readonly string[], payload: object): string;
3
+ //# sourceMappingURL=payloadIdentity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadIdentity.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/payloadIdentity.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ7F"}
@@ -0,0 +1,14 @@
1
+ import { createHash } from "node:crypto";
2
+ export function payloadKey(parts, payload) {
3
+ return JSON.stringify(parts.map((part) => [part, typeof Reflect.get(payload, part), String(Reflect.get(payload, part))]));
4
+ }
5
+ export function payloadJobId(queue, parts, payload) {
6
+ const bytes = createHash("sha256")
7
+ .update(JSON.stringify([queue, payloadKey(parts, payload)]))
8
+ .digest();
9
+ bytes.writeUInt8((bytes.readUInt8(6) & 0x0f) | 0x80, 6);
10
+ bytes.writeUInt8((bytes.readUInt8(8) & 0x3f) | 0x80, 8);
11
+ const hex = bytes.subarray(0, 16).toString("hex");
12
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
13
+ }
14
+ //# sourceMappingURL=payloadIdentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payloadIdentity.js","sourceRoot":"","sources":["../../../src/server/adapters/payloadIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,UAAU,CAAC,KAAwB,EAAE,OAAe;IACnE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3H,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,KAAwB,EAAE,OAAe;IACpF,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC;SAChC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;SAC3D,MAAM,EAAE,CAAC;IACX,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5G,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Effect } from "effect";
2
- export declare function testingSignal(): {
2
+ export declare function queueSignal(): {
3
3
  changed(): void;
4
4
  revision: Effect.Effect<number, never, never>;
5
5
  waitForChange: (after: number) => Effect.Effect<number>;
6
6
  };
7
- //# sourceMappingURL=testingSignal.d.ts.map
7
+ //# sourceMappingURL=queueSignal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queueSignal.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/queueSignal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,wBAAgB,WAAW;IAIzB,OAAO;IASP,QAAQ;IACR,aAAa,UAAU,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;EAatD"}
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- export function testingSignal() {
2
+ export function queueSignal() {
3
3
  let revision = 0;
4
4
  const listeners = new Set();
5
5
  return {
@@ -26,4 +26,4 @@ export function testingSignal() {
26
26
  }),
27
27
  };
28
28
  }
29
- //# sourceMappingURL=testingSignal.js.map
29
+ //# sourceMappingURL=queueSignal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queueSignal.js","sourceRoot":"","sources":["../../../src/server/adapters/queueSignal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,UAAU,WAAW;IAC1B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IACxD,OAAO;QACN,OAAO;YACN,QAAQ,IAAI,CAAC,CAAC;YACd,iGAAiG;YACjG,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YAC/B,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;gBAChC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACF,CAAC;QACD,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QACrC,aAAa,EAAE,CAAC,KAAa,EAAyB,EAAE,CACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACxB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,OAAO;YACR,CAAC;YACD,SAAS,QAAQ,CAAC,OAAe;gBAChC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;KACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"settleDeferral.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/settleDeferral.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;GA6C3I"}
1
+ {"version":3,"file":"settleDeferral.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/settleDeferral.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;GAkD3I"}
@@ -1,4 +1,5 @@
1
1
  import { Schema } from "effect";
2
+ import { deferralChanges } from "#server/internal/adapters/deferralChanges.ts";
2
3
  import { STATELY_DEFERRAL_POLICY } from "#server/internal/deferral.ts";
3
4
  import { quotedSchema } from "#server/internal/storedRows.ts";
4
5
  const Settlement = Schema.Struct({ claimed: Schema.Boolean, deferred: Schema.Boolean });
@@ -7,8 +8,9 @@ export async function settleDeferral(client, schema, job, at, reason, maxDeferra
7
8
  throw new TypeError("This pg-boss client does not support getDb for RetryAt");
8
9
  }
9
10
  const quoted = quotedSchema(schema);
11
+ const db = client.getDb();
10
12
  // Native failure settlement deletes and reinserts jobs, so a cascading job foreign key would erase the counter.
11
- const { rows } = await client.getDb().executeSql(`WITH claimed AS MATERIALIZED (
13
+ const { rows } = await db.executeSql(`WITH claimed AS MATERIALIZED (
12
14
  SELECT name, id, created_on,
13
15
  GREATEST(keep_until, $4::timestamptz + (keep_until - start_after)) AS keep_until
14
16
  FROM ${quoted}.job
@@ -43,6 +45,10 @@ export async function settleDeferral(client, schema, job, at, reason, maxDeferra
43
45
  )
44
46
  )
45
47
  SELECT EXISTS (SELECT 1 FROM claimed) AS claimed, EXISTS (SELECT 1 FROM deferred) AS deferred`, [job.name, job.id, job.retryCount, at, reason, Reflect.get(job, "startedOn"), maxDeferrals]);
46
- return Schema.decodeUnknownSync(Settlement)(rows[0]);
48
+ const settled = Schema.decodeUnknownSync(Settlement)(rows[0]);
49
+ if (settled.deferred) {
50
+ deferralChanges.get(db)?.();
51
+ }
52
+ return settled;
47
53
  }
48
54
  //# sourceMappingURL=settleDeferral.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settleDeferral.js","sourceRoot":"","sources":["../../../src/server/adapters/settleDeferral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAoB,EAAE,MAAc,EAAE,GAAe,EAAE,EAAU,EAAE,MAAc,EAAE,YAAoB;IAC3I,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,gHAAgH;IAChH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,UAAU,CAC/C;;;UAGQ,MAAM;;;;;iBAKC,MAAM;;;;;;;;YAQX,MAAM;sDACoC,uBAAuB;;;;;;iBAM5D,MAAM;uCACgB,MAAM;kEACqB,MAAM;;;qBAGnD,MAAM;;;;;;gGAMqE,EAC9F,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,CAC3F,CAAC;IACF,OAAO,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"settleDeferral.js","sourceRoot":"","sources":["../../../src/server/adapters/settleDeferral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAExF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAoB,EAAE,MAAc,EAAE,GAAe,EAAE,EAAU,EAAE,MAAc,EAAE,YAAoB;IAC3I,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,gHAAgH;IAChH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,UAAU,CACnC;;;UAGQ,MAAM;;;;;iBAKC,MAAM;;;;;;;;YAQX,MAAM;sDACoC,uBAAuB;;;;;;iBAM5D,MAAM;uCACgB,MAAM;kEACqB,MAAM;;;qBAGnD,MAAM;;;;;;gGAMqE,EAC9F,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,CAC3F,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -1,4 +1,3 @@
1
- import type { PgBossClient } from "#server/client.ts";
2
1
  import type { EngineClient } from "#server/engineClient.ts";
3
2
  import type { EnqueueOptions } from "#server/enqueueOptions.ts";
4
3
  import type { TestingWork } from "#server/internal/testingIdle.ts";
@@ -10,5 +9,5 @@ export interface TestingControls {
10
9
  readonly retryPolicy: Pick<EnqueueOptions, "retryBackoff" | "retryDelay">;
11
10
  readonly work: TestingWork;
12
11
  }
13
- export declare function testingClient(client: EngineClient, schema: string, controls: TestingControls): PgBossClient;
12
+ export declare function testingClient(client: EngineClient, schema: string, controls: TestingControls): EngineClient;
14
13
  //# sourceMappingURL=testingClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testingClient.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/testingClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAIjF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC;IAC1E,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,YAAY,CAyH3G"}
1
+ {"version":3,"file":"testingClient.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/testingClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGjF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,YAAY,CAAC,CAAC;IAC1E,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,YAAY,CAuG3G"}
@@ -1,18 +1,10 @@
1
1
  import { Effect } from "effect";
2
2
  import { testingEngine } from "#server/adapters/testingEngine.ts";
3
3
  import { testingExpirations } from "#server/adapters/testingExpirations.ts";
4
- import { deferralObservers } from "#server/internal/deferral.ts";
5
- import { testingRegistration } from "#server/internal/testingRegistrations.ts";
4
+ import { deferralChanges } from "#server/internal/adapters/deferralChanges.ts";
6
5
  export function testingClient(client, schema, controls) {
7
6
  const engine = testingEngine(client, schema);
8
- const settlements = Effect.runSync(engine.observeSettlements((name) => {
9
- for (const batch of controls.work.batches) {
10
- if (batch.name === name) {
11
- batch.settled = true;
12
- }
13
- }
14
- controls.changed();
15
- }));
7
+ deferralChanges.set(client.getDb(), controls.changed);
16
8
  const expirations = testingExpirations(client);
17
9
  async function update(request, data, options) {
18
10
  const result = typeof request === "string" ? await client.update(request, data, options) : await client.update(request);
@@ -26,6 +18,9 @@ export function testingClient(client, schema, controls) {
26
18
  return result;
27
19
  },
28
20
  createQueue: (name, options) => {
21
+ if (options?.deadLetter !== undefined) {
22
+ controls.work.queues.add(name);
23
+ }
29
24
  const { retryDelayMax, ...rest } = options ?? {};
30
25
  return client.createQueue(name, {
31
26
  ...rest,
@@ -60,53 +55,39 @@ export function testingClient(client, schema, controls) {
60
55
  controls.changed();
61
56
  return id;
62
57
  },
63
- stop: async (options) => {
64
- try {
65
- await client.stop(options);
66
- }
67
- finally {
68
- await Effect.runPromise(settlements.close);
69
- }
70
- },
71
58
  update,
72
59
  updateQueue: (name, options) => client.updateQueue(name, {
73
60
  ...options,
74
61
  ...controls.retryPolicy,
75
62
  ...(controls.retryPolicy.retryBackoff === false ? { retryDelayMax: null } : {}),
76
63
  }),
77
- work: async (name, options, handler) => {
78
- await Effect.runPromise(settlements.watch(name));
79
- return client.work(name, options, async (jobs) => {
80
- const batch = { name, settled: false };
81
- controls.work.batches.add(batch);
82
- controls.changed();
83
- try {
84
- const ready = [];
85
- for (const job of jobs) {
86
- const attempts = await expirations.attemptsFor(job);
87
- if (attempts !== undefined && job.retryCount + 1 >= attempts) {
88
- await Effect.runPromise(engine.expireAttempt(job));
89
- }
90
- else {
91
- ready.push(job);
92
- }
64
+ work: async (name, options, handler) => client.work(name, options, async (jobs) => {
65
+ const batch = { jobs: new Map(jobs.map((job) => [job.id, job.retryCount])), name, settled: false };
66
+ controls.work.batches.add(batch);
67
+ controls.changed();
68
+ try {
69
+ const ready = [];
70
+ for (const job of jobs) {
71
+ const attempts = await expirations.attemptsFor(job);
72
+ if (attempts !== undefined && job.retryCount + 1 >= attempts) {
73
+ await Effect.runPromise(engine.expireAttempt(job));
93
74
  }
94
- if (ready.length > 0) {
95
- await handler(ready);
75
+ else {
76
+ ready.push(job);
96
77
  }
97
78
  }
98
- finally {
99
- controls.work.batches.delete(batch);
100
- controls.changed();
79
+ if (ready.length > 0) {
80
+ await handler(ready);
101
81
  }
102
- });
103
- },
82
+ }
83
+ finally {
84
+ controls.work.batches.delete(batch);
85
+ controls.changed();
86
+ }
87
+ }),
104
88
  };
105
89
  const wrapped = new Proxy(client, {
106
90
  get(target, property) {
107
- if (property === testingRegistration) {
108
- return (name) => controls.work.queues.add(name);
109
- }
110
91
  if (Object.hasOwn(overrides, property)) {
111
92
  const override = Reflect.get(overrides, property);
112
93
  return override;
@@ -115,7 +96,6 @@ export function testingClient(client, schema, controls) {
115
96
  return typeof value === "function" ? value.bind(target) : value;
116
97
  },
117
98
  });
118
- deferralObservers.set(wrapped, controls.changed);
119
99
  return wrapped;
120
100
  }
121
101
  //# sourceMappingURL=testingClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testingClient.js","sourceRoot":"","sources":["../../../src/server/adapters/testingClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testingClient.js","sourceRoot":"","sources":["../../../src/server/adapters/testingClient.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,79 @@
1
- import { Duration, Effect } from "effect";
2
- import type { PgBossClientFactory } from "#server/client.ts";
3
- import type { QueueDefinition } from "#server/definition.ts";
1
+ import { Duration, Effect, type Schema } from "effect";
2
+ import type { JobReadOptions, PgBossClientFactory } from "#server/client.ts";
3
+ import type { JobPayloadSchema, QueueDefinition } from "#server/definition.ts";
4
4
  import { PgBossTestingError } from "#server/error.ts";
5
+ import type { SnapshotQueue } from "#server/inspection.ts";
5
6
  import type { PgBossTestingOptions } from "#server/testing.ts";
6
- export declare function testingController(options?: PgBossTestingOptions): {
7
+ export declare function testingController(settings?: PgBossTestingOptions): {
7
8
  runDeferredNow: (queue: Pick<QueueDefinition, "name">) => Effect.Effect<void, PgBossTestingError, never>;
8
9
  runDueNow: (queue: Pick<QueueDefinition, "name">) => Effect.Effect<void, PgBossTestingError, never>;
9
- deferred: (queue: Pick<QueueDefinition, "name">) => Effect.Effect<{
10
- at: import("effect/DateTime").Utc;
11
- reason: string;
12
- }[], PgBossTestingError, never>;
10
+ timePasses: (duration: Duration.Input) => Effect.Effect<undefined, PgBossTestingError, never>;
13
11
  schedules: () => Effect.Effect<{
14
12
  cron: string;
15
13
  name: string;
16
14
  timezone: string;
17
15
  }[], PgBossTestingError, never>;
18
- trigger: (schedule: Pick<import("#server/definition.ts").ScheduleDefinition, "name" | "scheduleOptions">) => Effect.Effect<void, PgBossTestingError, never>;
16
+ trigger: (schedule: Pick<import("#server/definition.ts").ScheduleDefinition, "name" | "scheduleOptions">) => Effect.Effect<string | null, PgBossTestingError, never>;
19
17
  fetchesPass: (queue: Pick<QueueDefinition, "name">, count: number, options?: import("#server/testing.ts").PgBossTestingWaitOptions) => Effect.Effect<unknown, PgBossTestingError | import("#server/error.ts").PgBossWaitError, never>;
20
- untilJob: <TName extends string, TPayload extends import("#server/definition.ts").JobPayloadSchema>(queue: Pick<QueueDefinition<TName, TPayload>, "name" | "schema">, id: string, state: import("../job.ts").JobState, options?: import("#server/testing.ts").PgBossTestingWaitOptions) => Effect.Effect<import("../job.ts").Job<TPayload["Type"]>, import("#server/error.ts").PgBossPayloadError | PgBossTestingError | import("#server/error.ts").PgBossWaitError, Exclude<TPayload["DecodingServices"], never>>;
18
+ untilJob: <TName extends string, TPayload extends JobPayloadSchema | typeof Schema.Null>(queue: {
19
+ readonly name: TName;
20
+ readonly schema: TPayload;
21
+ }, id: string, state: import("../job.ts").JobState, options?: import("#server/testing.ts").PgBossTestingWaitOptions) => Effect.Effect<import("../job.ts").Job<TPayload["Type"]>, import("#server/error.ts").PgBossPayloadError | PgBossTestingError | import("#server/error.ts").PgBossWaitError, TPayload["DecodingServices"]>;
22
+ deferred: (queue: Pick<QueueDefinition, "name">) => Effect.Effect<{
23
+ at: import("effect/DateTime").Utc;
24
+ reason: string;
25
+ }[], PgBossTestingError, never>;
21
26
  checkBatchWindow: (queue: Pick<QueueDefinition, "name" | "workerOptions">, millisecondsPerJob: number) => Effect.Effect<void, PgBossTestingError, never>;
22
27
  checkSchemaVersion: (expected: number) => Effect.Effect<void, PgBossTestingError, never>;
23
28
  clientFactory: PgBossClientFactory;
24
29
  expireAfter: (queue: Pick<QueueDefinition, "name">, attempts: number) => Effect.Effect<void, PgBossTestingError, never>;
25
30
  expireIn: (queue: Pick<QueueDefinition, "name">, duration: Duration.Input) => Effect.Effect<void, PgBossTestingError, never>;
26
31
  failNextSend: (queue: Pick<QueueDefinition, "name">) => Effect.Effect<void, never, never>;
27
- jobs: <TName extends string, TPayload extends import("#server/definition.ts").JobPayloadSchema>(queue: QueueDefinition<TName, TPayload>, options?: import("#server/client.ts").JobReadOptions) => Effect.Effect<import("../job.ts").Job<TPayload["Type"]>[], PgBossTestingError | import("#server/error.ts").PgBossPayloadError, TPayload["DecodingServices"]>;
32
+ jobs: <TName extends string, TPayload extends JobPayloadSchema | typeof Schema.Null>(queue: {
33
+ readonly name: TName;
34
+ readonly schema: TPayload;
35
+ }, readOptions?: JobReadOptions) => Effect.Effect<{
36
+ expireInSeconds: number;
37
+ groupId?: string | null;
38
+ groupTier?: string | null;
39
+ heartbeatSeconds: number | null;
40
+ id: string;
41
+ name: string;
42
+ retryCount: number;
43
+ signal: AbortSignal;
44
+ blocked: boolean;
45
+ blocking: boolean;
46
+ completedOn: Date | null;
47
+ createdOn: Date;
48
+ deadLetter: string;
49
+ deleteAfterSeconds: number;
50
+ heartbeatOn: Date | null;
51
+ keepUntil: Date;
52
+ output: object | null;
53
+ pendingDependencies: number;
54
+ policy: string;
55
+ priority: number;
56
+ retryBackoff: boolean;
57
+ retryDelay: number;
58
+ retryDelayMax?: number;
59
+ retryLimit: number;
60
+ singletonKey: string | null;
61
+ singletonOn: Date | null;
62
+ sourceCreatedOn: Date | null;
63
+ sourceId: string | null;
64
+ sourceName: string | null;
65
+ sourceOutput: object | null;
66
+ sourceRetryCount: number | null;
67
+ sourceRootId: string | null;
68
+ startAfter: Date;
69
+ startedOn: Date | null;
70
+ state: import("../job.ts").JobState;
71
+ data: TPayload["Type"];
72
+ }[], import("#server/error.ts").PgBossPayloadError | PgBossTestingError, TPayload["DecodingServices"]>;
73
+ refreshQueueStats: (queue?: Pick<QueueDefinition, "name">) => Effect.Effect<void, PgBossTestingError, never>;
28
74
  revision: Effect.Effect<number, never, never>;
29
75
  schemaVersion: Effect.Effect<number | null, PgBossTestingError, never>;
30
- snapshot: <const TQueues extends readonly import("#server/testing.ts").SnapshotQueue[]>(queues: TQueues) => Effect.Effect<readonly import("#server/testing.ts").UnfinishedJob<TQueues[number]>[], import("#server/error.ts").PgBossPayloadError | PgBossTestingError, TQueues[number]["schema"]["DecodingServices"]>;
76
+ snapshot: <const TQueues extends readonly SnapshotQueue[]>(queues: TQueues) => Effect.Effect<readonly import("#server/inspection.ts").UnfinishedJob<TQueues[number]>[], import("#server/error.ts").PgBossPayloadError | PgBossTestingError, TQueues[number]["schema"]["DecodingServices"]>;
31
77
  waitForChange: (after: number) => Effect.Effect<number>;
32
78
  waitForIdle: Effect.Effect<void, PgBossTestingError, never>;
33
79
  };
@@ -1 +1 @@
1
- {"version":3,"file":"testingController.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/testingController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAIpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAStD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,oBAAyB;;;;;;;;;;;;;;;8BAkCxC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe,CAAC,sBAAsB,MAAM;mCAqBtE,MAAM;;yBAOhB,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,MAAM;sBAUlD,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,QAAQ,CAAC,KAAK;0BAWnD,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;;;;;;;EAQpD"}
1
+ {"version":3,"file":"testingController.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/testingController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAY,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMjE,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAA2B,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAMpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,oBAAyB;;;;;;;;;;;;;;;sBAiDjD,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;;;;8BAIrB,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe,CAAC,sBAAsB,MAAM;mCAqBtE,MAAM;;yBAOhB,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,MAAM;sBAUlD,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,QAAQ,CAAC,KAAK;0BAWnD,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;WAC5C,KAAK,SAAS,MAAM,EAAE,QAAQ,SAAS,gBAAgB,GAAG,OAAO,MAAM,CAAC,IAAI,SAC3E;QAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;KAAE,gBAC5C,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAED,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;;;eAI9C,KAAK,CAAC,OAAO,SAAS,SAAS,aAAa,EAAE,UAAU,OAAO;;;EAM3E"}