effect-jobs 0.1.0-alpha.1 → 0.1.0-alpha.2

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 (93) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +76 -46
  3. package/dist/FailureCode.d.ts +2 -2
  4. package/dist/FailureCode.d.ts.map +1 -1
  5. package/dist/FailureCode.js.map +1 -1
  6. package/dist/Job.d.ts +45 -16
  7. package/dist/Job.d.ts.map +1 -1
  8. package/dist/Job.js +20 -11
  9. package/dist/Job.js.map +1 -1
  10. package/dist/JobConsumer.d.ts +1 -1
  11. package/dist/JobConsumer.d.ts.map +1 -1
  12. package/dist/JobConsumer.js.map +1 -1
  13. package/dist/JobContract.d.ts +12 -4
  14. package/dist/JobContract.d.ts.map +1 -1
  15. package/dist/JobContract.js.map +1 -1
  16. package/dist/JobFailure.d.ts +6 -6
  17. package/dist/JobFailure.d.ts.map +1 -1
  18. package/dist/JobFailure.js +1 -1
  19. package/dist/JobFailure.js.map +1 -1
  20. package/dist/JobId.d.ts +6 -6
  21. package/dist/JobId.d.ts.map +1 -1
  22. package/dist/JobId.js.map +1 -1
  23. package/dist/JobIdentity.d.ts +12 -8
  24. package/dist/JobIdentity.d.ts.map +1 -1
  25. package/dist/JobIdentity.js +6 -8
  26. package/dist/JobIdentity.js.map +1 -1
  27. package/dist/JobLifecycle.d.ts +96 -14
  28. package/dist/JobLifecycle.d.ts.map +1 -1
  29. package/dist/JobLifecycle.js +50 -8
  30. package/dist/JobLifecycle.js.map +1 -1
  31. package/dist/JobOperators.d.ts +123 -0
  32. package/dist/JobOperators.d.ts.map +1 -0
  33. package/dist/JobOperators.js +48 -0
  34. package/dist/JobOperators.js.map +1 -0
  35. package/dist/JobPolicy.d.ts +12 -12
  36. package/dist/JobPolicy.d.ts.map +1 -1
  37. package/dist/JobPolicy.js.map +1 -1
  38. package/dist/JobProducer.d.ts +39 -16
  39. package/dist/JobProducer.d.ts.map +1 -1
  40. package/dist/JobProducer.js +55 -27
  41. package/dist/JobProducer.js.map +1 -1
  42. package/dist/JobRegistry.d.ts +5 -5
  43. package/dist/JobRegistry.js +8 -8
  44. package/dist/JobWorker.js +2 -2
  45. package/dist/JobWorkerRuntime.d.ts +1 -1
  46. package/dist/JobWorkerRuntime.js +1 -1
  47. package/dist/PostgreSqlDrizzleSchema.d.ts +50 -2
  48. package/dist/PostgreSqlDrizzleSchema.d.ts.map +1 -1
  49. package/dist/PostgreSqlDrizzleSchema.js +22 -6
  50. package/dist/PostgreSqlDrizzleSchema.js.map +1 -1
  51. package/dist/PostgreSqlJobs.d.ts +7 -2
  52. package/dist/PostgreSqlJobs.d.ts.map +1 -1
  53. package/dist/PostgreSqlJobs.js +45 -14
  54. package/dist/PostgreSqlJobs.js.map +1 -1
  55. package/dist/PostgreSqlNative.d.ts +1 -1
  56. package/dist/PostgreSqlNative.js +1 -1
  57. package/dist/PostgreSqlSchema.d.ts +11 -0
  58. package/dist/PostgreSqlSchema.d.ts.map +1 -1
  59. package/dist/PostgreSqlSchema.js +65 -3
  60. package/dist/PostgreSqlSchema.js.map +1 -1
  61. package/dist/internal/JobTransaction.js +2 -2
  62. package/dist/internal/JobTransaction.js.map +1 -1
  63. package/dist/internal/lifecycle/Artifacts.d.ts +34 -1
  64. package/dist/internal/lifecycle/Artifacts.d.ts.map +1 -1
  65. package/dist/internal/lifecycle/Artifacts.js +2 -2
  66. package/dist/internal/lifecycle/Artifacts.js.map +1 -1
  67. package/dist/internal/postgresql/Operators.d.ts +5 -0
  68. package/dist/internal/postgresql/Operators.d.ts.map +1 -0
  69. package/dist/internal/postgresql/Operators.js +150 -0
  70. package/dist/internal/postgresql/Operators.js.map +1 -0
  71. package/dist/internal/postgresql/Producer.d.ts +9 -0
  72. package/dist/internal/postgresql/Producer.d.ts.map +1 -1
  73. package/dist/internal/postgresql/Producer.js +29 -8
  74. package/dist/internal/postgresql/Producer.js.map +1 -1
  75. package/dist/internal/postgresql/Readiness.d.ts.map +1 -1
  76. package/dist/internal/postgresql/Readiness.js +30 -4
  77. package/dist/internal/postgresql/Readiness.js.map +1 -1
  78. package/dist/internal/postgresql/Rows.d.ts +9 -1
  79. package/dist/internal/postgresql/Rows.d.ts.map +1 -1
  80. package/dist/internal/postgresql/Rows.js +23 -3
  81. package/dist/internal/postgresql/Rows.js.map +1 -1
  82. package/dist/internal/postgresql/Store.js +5 -3
  83. package/dist/internal/postgresql/Store.js.map +1 -1
  84. package/dist/internal/worker/Execution.js +2 -2
  85. package/dist/internal/worker/Execution.js.map +1 -1
  86. package/package.json +48 -10
  87. package/specs/api-refinements.md +65 -4
  88. package/specs/architecture-decisions.md +50 -16
  89. package/specs/core-contract.md +11 -6
  90. package/specs/drizzle-compatibility.md +63 -20
  91. package/specs/operator-contract.md +104 -0
  92. package/specs/postgresql-backend.md +7 -0
  93. package/specs/release-qualification.md +118 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,48 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.2 (unpublished candidate)
4
+
5
+ Breaking prerelease changes since alpha.1:
6
+
7
+ - Rename public `Job.make({ kind })` to `{ name }`, definition/catalog and handler
8
+ context access from `.kind` to `.name`, and `JobIdentity.JobKind` to
9
+ `JobIdentity.JobName`. The public Drizzle jobs-column property also becomes
10
+ `.name`, including `extraIndexes` callbacks. Keep existing name values and
11
+ catalog versions: the physical PostgreSQL column is still `kind`, so this
12
+ rename alone needs no column rename, data rewrite/reset or migration. See
13
+ [the API migration contract](./specs/api-refinements.md).
14
+ - Require exact Effect `4.0.5`; the qualified native PostgreSQL companion is
15
+ `@effect/sql-pg@4.0.5`. Optional Drizzle peers are the exact snapshots
16
+ `1.0.0-rc.5-ab785fc` and `1.0.0-rc.5-169397b`.
17
+ - Bind producer slots to definitions with inferred enqueue inputs and explicit
18
+ application-owned transaction/service composition.
19
+ - Extend the PostgreSQL schema/readiness contract for Cancelled jobs, guarded
20
+ operators, corrected redrive and durable repair lineage. Applications own
21
+ migration review and execution; runtime does not migrate old installations.
22
+
23
+ Also included:
24
+
25
+ - Focused `JobOperators` support for guarded retry acceleration, cancellation and
26
+ redrive; corrected redrive creates a new job and preserves source evidence.
27
+ - Current Astro documentation, runnable application examples and the local
28
+ playground. The npm package excludes the website/playground implementation.
29
+ - PostgreSQL Node/Bun CI, real-process crash/recovery tests, and a bounded manual
30
+ soak harness. These are scoped synthetic qualification, not production or
31
+ exactly-once guarantees.
32
+
33
+ Completed retention remains 90 days by default. Upstream Drizzle full-declaration
34
+ checks retain their documented known-failure exceptions; successful own-code
35
+ checks do not mean upstream full strict PASS. Publication, registry installation
36
+ and deployment remain separate owner actions.
37
+
38
+ ## 0.1.0-alpha.1-effect.4.0.5.local.2 (local only)
39
+
40
+ - Qualify exact Drizzle snapshots `1.0.0-rc.5-ab785fc` and `1.0.0-rc.5-169397b`
41
+ with Effect/sql-pg 4.0.5; use `ab785fc` for the Alchemy beta.83 peer graph.
42
+ - Preserve native PgClient transaction ownership and production runtime bytes.
43
+ - Keep the narrowly approved seven upstream declaration diagnostics as separate
44
+ C FAIL; require independent A+B source and negative controls for both snapshots.
45
+
3
46
  ## 0.1.0-alpha.1
4
47
 
5
48
  Breaking prerelease API changes since alpha.0:
package/README.md CHANGED
@@ -11,13 +11,14 @@ then handle delivery in a separate worker.
11
11
  ```ts
12
12
  const SendReceipt = Job.make({
13
13
  queue: JobQueue.make("billing"),
14
- kind: "invoice.receipt",
15
- payload: Schema.Struct({ invoiceId: Schema.String })
14
+ name: "invoice.receipt",
15
+ payload: Schema.Struct({ invoiceId: Schema.String }),
16
+ defaultPolicy: JobPolicy.defaultPolicy
16
17
  })
17
18
 
18
19
  const IssueInvoice = JobProducer.make({
19
20
  operation: "billing.issue-invoice",
20
- slots: ["receipt"]
21
+ slots: { receipt: SendReceipt }
21
22
  })
22
23
 
23
24
  // App setup: its Layer supplies a qualified PostgreSqlApplication adapter.
@@ -29,11 +30,7 @@ const jobsStorage = yield* PostgreSqlJobs.make({
29
30
  yield* jobsStorage.withTransaction(() =>
30
31
  Effect.gen(function* () {
31
32
  yield* invoices.create({ id: invoiceId }) // Uses this same application transaction.
32
- yield* SendReceipt.enqueue({
33
- producer: IssueInvoice.identity({ operationId, slot: "receipt" }),
34
- payload: { invoiceId },
35
- policy: JobPolicy.defaultPolicy
36
- })
33
+ yield* IssueInvoice.enqueue("receipt", { operationId, payload: { invoiceId } })
37
34
  })
38
35
  )
39
36
 
@@ -56,11 +53,15 @@ const ReceiptHandler = SendReceipt.handlerLayer(
56
53
 
57
54
  ## Install
58
55
 
59
- Examples target `0.1.0-alpha.1`. This prerelease changes the alpha.0 enqueue,
60
- policy, failure-code and encrypted-payload APIs; update callers before upgrading.
56
+ Examples target the `0.1.0-alpha.2` release candidate. It is not yet published;
57
+ install the supplied qualified tarball rather than the older registry alpha.
58
+ Compared with alpha.1, this candidate requires Effect `4.0.5` and the current
59
+ application-owned PostgreSQL schema, including operator/repair lineage support.
60
+ Review the [changelog](./CHANGELOG.md) before upgrading. Alpha.0 callers must also
61
+ adapt the enqueue, policy, failure-code and encrypted-payload APIs.
61
62
 
62
63
  ```sh
63
- npm install effect-jobs@0.1.0-alpha.1 effect@4.0.0
64
+ npm install ./effect-jobs-0.1.0-alpha.2.tgz effect@4.0.5
64
65
  ```
65
66
 
66
67
  Imports are omitted below. Use package subpaths (`effect-jobs/Job`, `effect-jobs/JobPolicy`, …); the root export is empty. `Codec` refers to `JobPayloadCodec`; `Consumer`, `Worker`, `Runtime`, `Polling` and `Registry` refer to the corresponding `JobConsumer`, `JobWorker`, `JobWorkerRuntime`, `PollingJobWorker` and `JobRegistry` modules.
@@ -86,28 +87,24 @@ export const BillingQueue = JobQueue.make("billing")
86
87
 
87
88
  export const SendReceipt = Job.make({
88
89
  queue: BillingQueue,
89
- kind: "invoice.receipt",
90
- payload: Schema.Struct({ invoiceId: Schema.String })
91
- })
92
-
93
- export const IssueInvoice = JobProducer.make({
94
- operation: "billing.issue-invoice",
95
- slots: ["receipt"]
90
+ name: "invoice.receipt",
91
+ payload: Schema.Struct({ invoiceId: Schema.String }),
92
+ defaultPolicy: JobPolicy.defaultPolicy
96
93
  })
97
94
  ```
98
95
 
99
96
  ```ts
100
- // apps/api — owns invoice writes; does not import the email provider
97
+ // apps/api — owns invoice writes and its producer; does not import the email provider
98
+ const IssueInvoice = JobProducer.make({
99
+ operation: "billing.issue-invoice",
100
+ slots: { receipt: SendReceipt }
101
+ })
101
102
  const issueInvoice = (operationId: string, invoiceId: string) =>
102
103
  jobsStorage.withTransaction(() =>
103
104
  Effect.gen(function* () {
104
105
  yield* invoices.createOnce({ operationId, invoiceId })
105
106
 
106
- return yield* SendReceipt.enqueue({
107
- producer: IssueInvoice.identity({ operationId, slot: "receipt" }),
108
- payload: { invoiceId },
109
- policy: receiptPolicy
110
- })
107
+ return yield* IssueInvoice.enqueue("receipt", { operationId, payload: { invoiceId } })
111
108
  })
112
109
  )
113
110
  ```
@@ -139,28 +136,44 @@ colliding:
139
136
  ```ts
140
137
  const IssueInvoiceWithPdf = JobProducer.make({
141
138
  operation: "billing.issue-invoice-with-pdf",
142
- slots: ["send-receipt", "generate-pdf"]
139
+ slots: { "send-receipt": SendReceipt, "generate-pdf": GeneratePdf }
143
140
  })
144
141
 
145
142
  // Inside the application's transaction; GeneratePdf is another job definition.
146
- yield* SendReceipt.enqueue({
147
- producer: IssueInvoiceWithPdf.identity({ operationId, slot: "send-receipt" }),
148
- payload: { invoiceId },
149
- policy: JobPolicy.defaultPolicy
150
- })
143
+ yield* IssueInvoiceWithPdf.enqueue("send-receipt", { operationId, payload: { invoiceId } })
151
144
 
152
- yield* GeneratePdf.enqueue({
153
- producer: IssueInvoiceWithPdf.identity({ operationId, slot: "generate-pdf" }),
145
+ yield* IssueInvoiceWithPdf.enqueue("generate-pdf", {
146
+ operationId,
154
147
  payload: { invoiceId },
155
148
  policy: JobPolicy.defaultPolicy
156
149
  })
157
150
  ```
158
151
 
159
152
  Retrying with the same operation ID and slots returns the existing matching jobs.
160
- Declared slots are checked by TypeScript. A slot names the consequence, not the
161
- job kind: two slots can enqueue the same job kind. Slots do not impose execution
153
+ Slot bindings check the selected payload, policy and Schema services in TypeScript. Low-level `identity` remains structural, without that binding proof. A slot names the consequence, not the
154
+ job name: two slots can enqueue the same job name. Slots do not impose execution
162
155
  order or dependencies between jobs.
163
156
 
157
+ A contract name answers which handler runs; an operation answers why the work
158
+ exists. Initial invoice delivery and a deliberate resend can use the same job
159
+ name with different operations/operation IDs. Two recipient slots can also bind
160
+ the same job with different payloads. See the [checked invoice recipes](apps/website/examples/docs/orders/apps/api/src/orders/application/InvoiceDelivery.ts).
161
+
162
+ | Field | Meaning |
163
+ | ------------- | ----------------------------------------------------------------- |
164
+ | `name` | Stable job contract and handler. |
165
+ | `queue` | Logical processing/routing group. |
166
+ | `operation` | Business action that caused work. |
167
+ | `operationId` | Stable instance across business retries, not an automatic job ID. |
168
+ | `slot` | Named consequence, not chronological stage. |
169
+
170
+ A complete definition `defaultPolicy` makes ordinary enqueue policy optional.
171
+ A complete override replaces it; without a definite default, policy is required.
172
+ Matching duplicates retain the first stored policy/availability across deployment
173
+ changes; workers read stored policy only. No version bump is needed for a default
174
+ change alone. Public `name` maps to physical PostgreSQL `jobs.kind`; this field
175
+ rename requires no migration or data rewrite. Identifier value changes are separate.
176
+
164
177
  ## Long-running Node.js worker
165
178
 
166
179
  Producer and consumer connect to the same PostgreSQL jobs tables.
@@ -215,19 +228,21 @@ yield* Runtime.drain(billing).pipe(Effect.provide(WorkerLayer))
215
228
  The backend exposes its producer service as `jobsStorage.producer`.
216
229
  Provide it as `JobEnqueue` to effects that call `enqueue` or `enqueueStandalone`.
217
230
  `PostgreSqlNative.layer({ client, operationTimeoutMillis })` bridges the exact
218
- application-owned `PgClient@4.0.0`, including its active `transactionService`.
219
- Native `drizzle-orm/effect-postgres` transactions on that same client support
220
- ambient enqueue; missing or foreign-client transactions fail before preparation.
231
+ application-owned `PgClient@4.0.5`, including its active `transactionService`.
232
+ Use public `PgClient.withTransaction` on that same client with Drizzle queries
233
+ inside its Effect body. Missing or foreign-client transactions fail before preparation.
221
234
  Pools, keys, timeouts and transaction ownership remain application-owned.
222
235
 
223
236
  ```ts
224
- // nativeDrizzle is drizzle-orm/effect-postgres; invoiceTable is app-owned.
237
+ // PgClient is @effect/sql-pg/PgClient; nativeDrizzle is drizzle-orm/effect-postgres.
238
+ // invoiceTable is app-owned. This must be the client passed to PostgreSqlNative.
239
+ const client = yield* PgClient.PgClient
225
240
  const db = yield* nativeDrizzle.makeWithDefaults()
226
241
 
227
- yield* db
228
- .transaction((tx) =>
242
+ yield* client
243
+ .withTransaction(
229
244
  Effect.gen(function* () {
230
- yield* tx.insert(invoiceTable).values({ id: invoiceId })
245
+ yield* db.insert(invoiceTable).values({ id: invoiceId })
231
246
 
232
247
  return yield* SendReceipt.enqueue({
233
248
  producer: IssueInvoice.identity({ operationId, slot: "receipt" }),
@@ -243,6 +258,20 @@ Alternatively, `jobsStorage.withTransaction` delegates to the same client manage
243
258
  and supplies `JobEnqueue`, as used by `issueInvoice`. Provide the scoped native
244
259
  PgClient Layer around the whole application; defining a Layer alone starts no work.
245
260
 
261
+ Joined results remain provisional until the outer owner acknowledges COMMIT.
262
+ Keep business, receipt and enqueue writes in one Effect/Context; do not run an
263
+ independent `runPromise` inside the transaction. The qualified route supports
264
+ ordinary outer transactions and jobs joining them without a savepoint. Nested
265
+ transactions, Drizzle transaction options and isolation settings are not qualified
266
+ as equivalent. `db.transaction` retains an upstream error-type limitation and is
267
+ excluded from this route; no local type correction is used. Strict/exactOptional
268
+ checks of our sources (A+B) remain required with dependency `skipLibCheck:true`.
269
+ The full foreign declaration audit (C) remains known upstream FAIL, separately
270
+ reported and nonblocking. Outer provider errors can also occur as defects: the
271
+ application must sanitize them without losing caller errors/interruption, preserve
272
+ Unknown COMMIT knowledge and reconcile its exact receipt read-only. Missing
273
+ receipts or lost responses never authorize automatic replay or prove NotCommitted.
274
+
246
275
  `enqueue` requires an active transaction. For a job with no accompanying domain
247
276
  write, `enqueueStandalone` opens its own transaction and rejects active ones:
248
277
 
@@ -365,7 +394,7 @@ const ReceiptDocument = Schema.Struct({
365
394
 
366
395
  const SendPrivateReceipt = Job.make({
367
396
  queue: BillingQueue,
368
- kind: "invoice.private-receipt",
397
+ name: "invoice.private-receipt",
369
398
 
370
399
  payload: Schema.Struct({
371
400
  invoiceId: Schema.String,
@@ -379,7 +408,7 @@ const SendPrivateReceipt = Job.make({
379
408
 
380
409
  const PrivateReceiptProducer = JobProducer.make({
381
410
  operation: "billing.private-receipt",
382
- slots: ["receipt"]
411
+ slots: { receipt: SendPrivateReceipt }
383
412
  })
384
413
 
385
414
  const receipt = yield* Schema.decodeUnknownEffect(ReceiptDocument)({
@@ -442,13 +471,13 @@ invoice PDF. Each consequence has its own producer slot.
442
471
  // Shared definitions: reuse SendReceipt and BillingQueue from above.
443
472
  const GeneratePdf = Job.make({
444
473
  queue: BillingQueue,
445
- kind: "invoice.generate-pdf",
474
+ name: "invoice.generate-pdf",
446
475
  payload: Schema.Struct({ invoiceId: Schema.String })
447
476
  })
448
477
 
449
478
  const CloudInvoiceProducer = JobProducer.make({
450
479
  operation: "billing.cloudflare.issue-invoice",
451
- slots: ["send-receipt", "generate-pdf"]
480
+ slots: { "send-receipt": SendReceipt, "generate-pdf": GeneratePdf }
452
481
  })
453
482
 
454
483
  // Consumer composition: application mailer/PDF services own external effects.
@@ -580,7 +609,8 @@ Start with one DO and concurrency `2`; add named consumers only after measuring
580
609
  ## Alpha boundaries
581
610
 
582
611
  PostgreSQL only. Application-owned adapters, pools, migrations and cleanup. No recurring scheduler or admin API. Every TypeScript fence is extracted and declaration-checked against source and
583
- the packed alpha.1 artifact. Node/Bun composition, handler, codec and encryption
612
+ the historical packed alpha.1 artifact. The current local Effect 4.0.5 candidate
613
+ requires its own receipts; see `specs/release-qualification.md`. Node/Bun composition, handler, codec and encryption
584
614
  checks use explicit application fixtures. Real native PostgreSQL transaction
585
615
  gates are separate. Cloudflare external PostgreSQL, deployment, server crashes
586
616
  and arbitrary network faults are NotTested; upstream full strict Drizzle
@@ -1,13 +1,13 @@
1
1
  /** Validated application-owned diagnostic identifiers. */
2
2
  import { Result, Schema } from "effect";
3
+ /** @category models */
4
+ export type FailureCode = typeof FailureCode.Type;
3
5
  /** 1–128 ASCII identifier characters. Catalog membership is not a storage requirement.
4
6
  * Codes must never contain provider messages, secrets or private identifiers.
5
7
  * Validation checks syntax, not whether a valid identifier contains sensitive data.
6
8
  * @category schemas
7
9
  */
8
10
  export declare const FailureCode: Schema.brand<Schema.String, "effect-jobs/FailureCode">;
9
- /** @category models */
10
- export type FailureCode = typeof FailureCode.Type;
11
11
  declare const InvalidFailureCode_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
12
12
  readonly _tag: "InvalidFailureCode";
13
13
  } & Readonly<A>;
@@ -1 +1 @@
1
- {"version":3,"file":"FailureCode.d.ts","sourceRoot":"","sources":["../src/FailureCode.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C;;;;GAIG;AACH,eAAO,MAAM,WAAW,wDAOvB,CAAA;AACD,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;;;;AAEjD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,UAAW,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAShF,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,SAClE,KAAK,KACX,EAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,GAcvD,CAAA"}
1
+ {"version":3,"file":"FailureCode.d.ts","sourceRoot":"","sources":["../src/FailureCode.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AACjD;;;;GAIG;AACH,eAAO,MAAM,WAAW,wDAOvB,CAAA;;;;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,UAAW,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAShF,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,SAClE,KAAK,KACX,EAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,GAcvD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"FailureCode.js","sourceRoot":"","sources":["../src/FailureCode.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC3C,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EACrB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EACvB,MAAM,CAAC,SAAS,CAAC,kCAAkC,CAAC,CACrD,EACD,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CACxC,CAAA;AAID;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAG3E;IACA,IAAa,OAAO;QAClB,OAAO,8BAA8B,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAA;IAC9E,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAkD,EAAE,CACrF,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,QAAQ,CACb,GAAG,EAAE,CACH,IAAI,kBAAkB,CAAC;IACrB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,iDAAiD;CAC5D,CAAC,CACL,CACF,CAAA;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,KAAY,EAC6C,EAAE;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5E,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC,CAAC,CACH,CAAA;IACD,qFAAqF;IACrF,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAE7B,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"FailureCode.js","sourceRoot":"","sources":["../src/FailureCode.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC3C,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EACrB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EACvB,MAAM,CAAC,SAAS,CAAC,kCAAkC,CAAC,CACrD,EACD,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CACxC,CAAA;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAG3E;IACA,IAAa,OAAO;QAClB,OAAO,8BAA8B,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAA;IAC9E,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAkD,EAAE,CACrF,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,QAAQ,CACb,GAAG,EAAE,CACH,IAAI,kBAAkB,CAAC;IACrB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,iDAAiD;CAC5D,CAAC,CACL,CACF,CAAA;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,KAAY,EAC6C,EAAE;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5E,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC,CAAC,CACH,CAAA;IACD,qFAAqF;IACrF,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAE7B,CAAA;AACH,CAAC,CAAA"}
package/dist/Job.d.ts CHANGED
@@ -6,6 +6,7 @@ import type { EnqueueInput, EnqueueResult, HandlerInput, JobPayloadDecoder, JobP
6
6
  import type { JobFailure } from "./JobFailure.js";
7
7
  import { CatalogIdentity } from "./JobIdentity.js";
8
8
  import type { JobQueue } from "./JobQueue.js";
9
+ import { type JobPolicy } from "./JobPolicy.js";
9
10
  import { JobRegistry, type DuplicateJobHandler } from "./JobRegistry.js";
10
11
  import type { JobEnqueueError, JobsTransaction } from "./JobTransaction.js";
11
12
  import { JobEnqueue, type JobBackendError } from "./JobEnqueue.js";
@@ -26,22 +27,23 @@ export declare class InvalidJobDefinition extends InvalidJobDefinition_base<{
26
27
  *
27
28
  * @category models
28
29
  */
29
- export interface JobDefinition<Payload extends Schema.Top = Schema.Top, Kind extends string = string, Version extends number = number, Queue extends string = string> {
30
- readonly kind: Kind;
30
+ export interface JobDefinition<Payload extends Schema.Top = Schema.Top, Name extends string = string, Version extends number = number, Queue extends string = string, Default extends JobPolicy | undefined = JobPolicy | undefined> {
31
+ readonly name: Name;
31
32
  readonly version: Version;
32
33
  readonly queue: JobQueue<Queue>;
33
34
  readonly payload: Payload;
34
- readonly catalog: CatalogIdentity<Queue, Kind, Version>;
35
+ readonly defaultPolicy: Default;
36
+ readonly catalog: CatalogIdentity<Queue, Name, Version>;
35
37
  /** Enqueues in the active configured backend transaction; runs no commit or replay.
36
38
  * Same producer tuple compares catalog and semantic payload, returning the first ID
37
39
  * for a match or JobIntegrityConflict for changed content. Results are provisional
38
40
  * until outer commit; encoding services and backend E/R remain explicit. */
39
- readonly enqueue: (input: EnqueueInput<Payload["Type"]>) => Effect.Effect<EnqueueResult, JobEnqueueError | JobBackendError, JobEnqueue | Payload["EncodingServices"]>;
41
+ readonly enqueue: (input: EnqueueInput<Payload["Type"], Default>) => Effect.Effect<EnqueueResult, JobEnqueueError | JobBackendError, JobEnqueue | Payload["EncodingServices"]>;
40
42
  /** Owns an atomic transaction; rejects an active configured-client transaction.
41
43
  * Success follows acknowledged commit; uncertain outcomes stay unknown. */
42
- readonly enqueueStandalone: (input: EnqueueInput<Payload["Type"]>) => Effect.Effect<EnqueueResult, JobEnqueueError | JobBackendError, JobEnqueue | Payload["EncodingServices"]>;
44
+ readonly enqueueStandalone: (input: EnqueueInput<Payload["Type"], Default>) => Effect.Effect<EnqueueResult, JobEnqueueError | JobBackendError, JobEnqueue | Payload["EncodingServices"]>;
43
45
  /** Explicit invocation-scoped primitive for qualified custom adapters. */
44
- readonly enqueueInTransaction: <E, R>(tx: JobsTransaction<E, R>, input: EnqueueInput<Payload["Type"]>) => Effect.Effect<EnqueueResult, E | JobEnqueueError, R | Payload["EncodingServices"]>;
46
+ readonly enqueueInTransaction: <E, R>(tx: JobsTransaction<E, R>, input: EnqueueInput<Payload["Type"], Default>) => Effect.Effect<EnqueueResult, E | JobEnqueueError, R | Payload["EncodingServices"]>;
45
47
  /** Installs one decoder/handler in JobRegistry and captures its Effect services.
46
48
  * Requires JobRegistry plus decoding and execute requirements; duplicate installation
47
49
  * fails with DuplicateJobHandler. Receives payload/context, with no SQL authority. */
@@ -62,7 +64,7 @@ export interface JobDefinition<Payload extends Schema.Top = Schema.Top, Kind ext
62
64
  *
63
65
  * const definition = Job.make({
64
66
  * queue: Queue.make("billing"),
65
- * kind: "invoice.generate",
67
+ * name: "invoice.generate",
66
68
  * payload: Schema.Struct({ invoiceId: Schema.String })
67
69
  * })
68
70
  * // Provide JobRegistry when building this Layer. Add application services as needed.
@@ -75,26 +77,53 @@ export interface JobDefinition<Payload extends Schema.Top = Schema.Top, Kind ext
75
77
  *
76
78
  * @category constructors
77
79
  */
78
- export declare function make<Payload extends Schema.Top, const Kind extends string, const Queue extends string, const Version extends number>(options: {
79
- readonly kind: Kind;
80
+ export declare function make<Payload extends Schema.Top, const Name extends string, const Queue extends string, const Version extends number>(options: {
81
+ readonly name: Name;
80
82
  readonly version: Version;
81
83
  readonly queue: JobQueue<Queue>;
82
84
  readonly payload: Payload;
85
+ readonly defaultPolicy: JobPolicy;
83
86
  readonly encodePayload?: JobPayloadEncoder;
84
- }): JobDefinition<Payload, Kind, Version, Queue>;
85
- export declare function make<Payload extends Schema.Top, const Kind extends string, const Queue extends string>(options: {
86
- readonly kind: Kind;
87
+ }): JobDefinition<Payload, Name, Version, Queue, JobPolicy>;
88
+ export declare function make<Payload extends Schema.Top, const Name extends string, const Queue extends string>(options: {
89
+ readonly name: Name;
87
90
  readonly version?: undefined;
88
91
  readonly queue: JobQueue<Queue>;
89
92
  readonly payload: Payload;
93
+ readonly defaultPolicy: JobPolicy;
90
94
  readonly encodePayload?: JobPayloadEncoder;
91
- }): JobDefinition<Payload, Kind, 1, Queue>;
92
- export declare function make<Payload extends Schema.Top, const Kind extends string, const Queue extends string, const Version extends number = 1>(options: {
93
- readonly kind: Kind;
95
+ }): JobDefinition<Payload, Name, 1, Queue, JobPolicy>;
96
+ export declare function make<Payload extends Schema.Top, const Name extends string, const Queue extends string, const Version extends number = 1>(options: {
97
+ readonly name: Name;
94
98
  readonly version?: Version | undefined;
95
99
  readonly queue: JobQueue<Queue>;
96
100
  readonly payload: Payload;
101
+ readonly defaultPolicy: JobPolicy;
97
102
  readonly encodePayload?: JobPayloadEncoder;
98
- }): JobDefinition<Payload, Kind, Version | 1, Queue>;
103
+ }): JobDefinition<Payload, Name, Version | 1, Queue, JobPolicy>;
104
+ export declare function make<Payload extends Schema.Top, const Name extends string, const Queue extends string, const Version extends number>(options: {
105
+ readonly name: Name;
106
+ readonly version: Version;
107
+ readonly queue: JobQueue<Queue>;
108
+ readonly payload: Payload;
109
+ readonly defaultPolicy?: JobPolicy | undefined;
110
+ readonly encodePayload?: JobPayloadEncoder;
111
+ }): JobDefinition<Payload, Name, Version, Queue, JobPolicy | undefined>;
112
+ export declare function make<Payload extends Schema.Top, const Name extends string, const Queue extends string>(options: {
113
+ readonly name: Name;
114
+ readonly version?: undefined;
115
+ readonly queue: JobQueue<Queue>;
116
+ readonly payload: Payload;
117
+ readonly defaultPolicy?: JobPolicy | undefined;
118
+ readonly encodePayload?: JobPayloadEncoder;
119
+ }): JobDefinition<Payload, Name, 1, Queue, JobPolicy | undefined>;
120
+ export declare function make<Payload extends Schema.Top, const Name extends string, const Queue extends string, const Version extends number = 1>(options: {
121
+ readonly name: Name;
122
+ readonly version?: Version | undefined;
123
+ readonly queue: JobQueue<Queue>;
124
+ readonly payload: Payload;
125
+ readonly defaultPolicy?: JobPolicy | undefined;
126
+ readonly encodePayload?: JobPayloadEncoder;
127
+ }): JobDefinition<Payload, Name, Version | 1, Queue, JobPolicy | undefined>;
99
128
  export {};
100
129
  //# sourceMappingURL=Job.d.ts.map
package/dist/Job.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Job.d.ts","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Job.d.ts","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
package/dist/Job.js CHANGED
@@ -17,20 +17,33 @@ import { insertPrepared } from "./internal/JobTransaction.js";
17
17
  export class InvalidJobDefinition extends Data.TaggedError("InvalidJobDefinition") {
18
18
  }
19
19
  export function make(options) {
20
- const { kind, queue, payload } = options;
20
+ const { name, queue, payload } = options;
21
21
  const version = options.version === undefined ? 1 : options.version;
22
22
  const encodePayload = options.encodePayload ?? encodeJobPayload;
23
- const catalog = Object.freeze({ queue: queue.name, kind, version });
23
+ const catalog = Object.freeze({ queue: queue.name, name, version });
24
24
  if (!Schema.is(CatalogIdentity)(catalog) || !Schema.isSchema(payload)) {
25
25
  throw new InvalidJobDefinition({
26
- expected: "valid queue/kind/version and payload Schema"
26
+ expected: "valid queue/name/version and payload Schema"
27
27
  });
28
28
  }
29
+ const configuredPolicy = options.defaultPolicy;
30
+ if (configuredPolicy !== undefined &&
31
+ !Schema.is(PersistedJobPolicy)(configuredPolicy)) {
32
+ throw new InvalidJobDefinition({ expected: "complete valid defaultPolicy" });
33
+ }
34
+ const snapshotPolicy = (policy) => Object.freeze({
35
+ ...policy,
36
+ retrySchedule: Object.freeze({ ...policy.retrySchedule }),
37
+ completedRetention: Object.freeze({ ...policy.completedRetention }),
38
+ deadRetention: Object.freeze({ ...policy.deadRetention })
39
+ });
40
+ const defaultPolicy = configuredPolicy === undefined ? undefined : snapshotPolicy(configuredPolicy);
29
41
  const prepare = Effect.fnUntraced(function* (input) {
30
42
  if (!Schema.is(ProducerIdentity)(input.producer)) {
31
43
  return yield* new InvalidJobInput({ field: "producer" });
32
44
  }
33
- if (!Schema.is(PersistedJobPolicy)(input.policy)) {
45
+ const selectedPolicy = input.policy === undefined ? defaultPolicy : input.policy;
46
+ if (!Schema.is(PersistedJobPolicy)(selectedPolicy)) {
34
47
  return yield* new InvalidJobInput({ field: "policy" });
35
48
  }
36
49
  if (input.availableAt !== undefined && !Schema.is(EpochMillis)(input.availableAt)) {
@@ -41,12 +54,7 @@ export function make(options) {
41
54
  operationId: input.producer.operationId,
42
55
  slot: input.producer.slot
43
56
  });
44
- const policy = Object.freeze({
45
- ...input.policy,
46
- retrySchedule: Object.freeze({ ...input.policy.retrySchedule }),
47
- completedRetention: Object.freeze({ ...input.policy.completedRetention }),
48
- deadRetention: Object.freeze({ ...input.policy.deadRetention })
49
- });
57
+ const policy = snapshotPolicy(selectedPolicy);
50
58
  const availableAt = input.availableAt;
51
59
  const encoded = yield* encodePayload(payload, input.payload);
52
60
  return Object.freeze({
@@ -58,10 +66,11 @@ export function make(options) {
58
66
  });
59
67
  });
60
68
  return Object.freeze({
61
- kind,
69
+ name,
62
70
  version,
63
71
  queue,
64
72
  payload,
73
+ defaultPolicy,
65
74
  catalog,
66
75
  enqueue: Effect.fnUntraced(function* (input) {
67
76
  const backend = yield* JobEnqueue;
package/dist/Job.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { Effect, Schema } from "effect";
5
5
  import type { JobQueue } from "./JobQueue.js";
6
+ type ConsumerOptions = typeof ConsumerOptions.Type;
6
7
  declare const ConsumerOptions: Schema.Struct<{
7
8
  /** Shared per-worker queue permits, acquired before claim; integer 1–64. */
8
9
  readonly localConcurrency: Schema.Int;
@@ -19,7 +20,6 @@ declare const ConsumerOptions: Schema.Struct<{
19
20
  export interface JobConsumer<Q extends JobQueue = JobQueue> extends ConsumerOptions {
20
21
  readonly queue: Q;
21
22
  }
22
- type ConsumerOptions = typeof ConsumerOptions.Type;
23
23
  declare const InvalidJobConsumer_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
24
24
  readonly _tag: "InvalidJobConsumer";
25
25
  } & Readonly<A>;
@@ -1 +1 @@
1
- {"version":3,"file":"JobConsumer.d.ts","sourceRoot":"","sources":["../src/JobConsumer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,QAAA,MAAM,eAAe;IACnB,4EAA4E;;IAI5E,oEAAoE;;IAIpE,+EAA+E;;EAI/E,CAAA;AAEF;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,eAAe;IACjF,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAClB;AACD,KAAK,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;;;;AAElD;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CACnC,CAAC;CAAG;;;;AACL;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,0BAAyC;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,QAAQ,SAC9B,CAAC,WACC,eAAe,KACvB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAIhD,CAAA;AAEH;;;;GAIG;AACH,MAAM,WAAW,OAAO,CACtB,SAAS,SAAS,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC;IAEzE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CACxC;AAED;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,SAAS,SAAS,aAAa,CAAC,WAAW,CAAC,gBACvD,SAAS,KACtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAcrD,CAAA"}
1
+ {"version":3,"file":"JobConsumer.d.ts","sourceRoot":"","sources":["../src/JobConsumer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,KAAK,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAClD,QAAA,MAAM,eAAe;IACnB,4EAA4E;;IAI5E,oEAAoE;;IAIpE,+EAA+E;;EAI/E,CAAA;AAEF;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,eAAe;IACjF,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAClB;;;;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CACnC,CAAC;CAAG;;;;AACL;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,0BAAyC;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,QAAQ,SAC9B,CAAC,WACC,eAAe,KACvB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAIhD,CAAA;AAEH;;;;GAIG;AACH,MAAM,WAAW,OAAO,CACtB,SAAS,SAAS,aAAa,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC;IAEzE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CACxC;AAED;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,SAAS,SAAS,aAAa,CAAC,WAAW,CAAC,gBACvD,SAAS,KACtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAcrD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"JobConsumer.js","sourceRoot":"","sources":["../src/JobConsumer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG7C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAC5D;IACD,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAChE;IACD,+EAA+E;IAC/E,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAClC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAChE;CACF,CAAC,CAAA;AAYF;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAE3E;CAAG;AACL;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAE/E;IACA,IAAa,OAAO;QAClB,OAAO,0BAA0B,IAAI,CAAC,KAAK,4CAA4C,CAAA;IACzF,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,KAAQ,EACR,OAAwB,EAC2B,EAAE,CACrD,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAC/E,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,EAC7D,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAC7E,CAAA;AAaH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,GAAG,SAAoB,EACkC,EAAE,CAC3D,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC9E,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CACnB,MAAM,CAAC,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,CAAmC;KAC3E,CAAC,CACH,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"JobConsumer.js","sourceRoot":"","sources":["../src/JobConsumer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI7C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAC5D;IACD,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAChE;IACD,+EAA+E;IAC/E,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAClC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAChE;CACF,CAAC,CAAA;AAWF;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAE3E;CAAG;AACL;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAE/E;IACA,IAAa,OAAO;QAClB,OAAO,0BAA0B,IAAI,CAAC,KAAK,4CAA4C,CAAA;IACzF,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,KAAQ,EACR,OAAwB,EAC2B,EAAE,CACrD,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAC/E,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,EAC7D,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAC7E,CAAA;AAaH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,GAAG,SAAoB,EACkC,EAAE,CAC3D,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAChC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC9E,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CACnB,MAAM,CAAC,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,CAAmC;KAC3E,CAAC,CACH,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -34,13 +34,21 @@ export interface HandlerInput<Payload> {
34
34
  *
35
35
  * @category models
36
36
  */
37
- export interface EnqueueInput<Payload> {
38
- readonly producer: ProducerIdentity;
37
+ export type EnqueueOptions<Payload, Default extends JobPolicy | undefined = undefined> = {
39
38
  readonly payload: Payload;
40
- readonly policy: JobPolicy;
41
39
  /** Omitted means database time on first insertion, never on matching duplicate. */
42
40
  readonly availableAt?: number;
43
- }
41
+ } & ([Default] extends [JobPolicy] ? {
42
+ readonly policy?: JobPolicy;
43
+ } : {
44
+ readonly policy: JobPolicy;
45
+ });
46
+ /** Decoded enqueue options plus the explicit producer identity.
47
+ * @category models
48
+ */
49
+ export type EnqueueInput<Payload, Default extends JobPolicy | undefined = undefined> = EnqueueOptions<Payload, Default> & {
50
+ readonly producer: ProducerIdentity;
51
+ };
44
52
  /**
45
53
  * Inserted or AlreadyPresent with the durable job ID. Success inside a joined
46
54
  * transaction is provisional until the application owner commits.
@@ -1 +1 @@
1
- {"version":3,"file":"JobContract.d.ts","sourceRoot":"","sources":["../src/JobContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JobContract.d.ts","sourceRoot":"","sources":["../src/JobContract.ts"],"names":[],"mappings":"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"}