effect-mq 0.2.0 → 0.3.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.
- package/README.md +153 -18
- package/dist/Job.d.ts +51 -1
- package/dist/Job.d.ts.map +1 -1
- package/dist/Job.js +44 -2
- package/dist/Job.js.map +1 -1
- package/dist/JobStore.d.ts +86 -6
- package/dist/JobStore.d.ts.map +1 -1
- package/dist/JobStore.js +27 -1
- package/dist/JobStore.js.map +1 -1
- package/dist/MemoryJobStore.d.ts +6 -5
- package/dist/MemoryJobStore.d.ts.map +1 -1
- package/dist/MemoryJobStore.js +160 -32
- package/dist/MemoryJobStore.js.map +1 -1
- package/dist/Worker.d.ts.map +1 -1
- package/dist/Worker.js +1 -0
- package/dist/Worker.js.map +1 -1
- package/dist/drizzle-postgres/DrizzleJobStore.d.ts +20 -3
- package/dist/drizzle-postgres/DrizzleJobStore.d.ts.map +1 -1
- package/dist/drizzle-postgres/DrizzleJobStore.js +352 -84
- package/dist/drizzle-postgres/DrizzleJobStore.js.map +1 -1
- package/dist/drizzle-postgres/schema.d.ts +255 -351
- package/dist/drizzle-postgres/schema.d.ts.map +1 -1
- package/dist/drizzle-postgres/schema.js +75 -27
- package/dist/drizzle-postgres/schema.js.map +1 -1
- package/dist/redis/RedisJobStore.d.ts +4 -2
- package/dist/redis/RedisJobStore.d.ts.map +1 -1
- package/dist/redis/RedisJobStore.js +67 -28
- package/dist/redis/RedisJobStore.js.map +1 -1
- package/dist/redis/scripts.d.ts +19 -6
- package/dist/redis/scripts.d.ts.map +1 -1
- package/dist/redis/scripts.js +208 -23
- package/dist/redis/scripts.js.map +1 -1
- package/dist/testing/conformance.d.ts.map +1 -1
- package/dist/testing/conformance.js +172 -7
- package/dist/testing/conformance.js.map +1 -1
- package/package.json +1 -1
- package/src/Job.ts +113 -6
- package/src/JobStore.ts +122 -6
- package/src/MemoryJobStore.ts +184 -44
- package/src/Worker.ts +1 -0
- package/src/drizzle-postgres/DrizzleJobStore.ts +431 -91
- package/src/drizzle-postgres/schema.ts +177 -63
- package/src/redis/RedisJobStore.ts +90 -35
- package/src/redis/scripts.ts +217 -24
- package/src/testing/conformance.ts +246 -7
package/README.md
CHANGED
|
@@ -85,6 +85,8 @@ What you get out of the box:
|
|
|
85
85
|
can't do to a running processor.
|
|
86
86
|
- **Unrecoverable errors** — `Job.unrecoverable(error)` or a `retryable`
|
|
87
87
|
predicate skips the remaining retry budget when retrying can't help.
|
|
88
|
+
- **Deduplication** — pending-dedup, throttle, debounce, and
|
|
89
|
+
replace-while-delayed via a dedup key that never touches your job ids.
|
|
88
90
|
|
|
89
91
|
## Repeatable jobs
|
|
90
92
|
|
|
@@ -146,18 +148,29 @@ treats it as a defect (`JobCancelledError`), not a typed failure.
|
|
|
146
148
|
|
|
147
149
|
## History retention
|
|
148
150
|
|
|
149
|
-
Two layers of control
|
|
151
|
+
Two layers of control, both splittable by terminal state (completed jobs are
|
|
152
|
+
usually noise, failed ones evidence):
|
|
150
153
|
|
|
151
|
-
- **Per job**: `keep
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
154
|
+
- **Per job**: `keep` prunes terminal records per name+state — flat
|
|
155
|
+
`{ count, age }` applies to all states, or split per state:
|
|
156
|
+
|
|
157
|
+
```ts
|
|
158
|
+
keep: { count: 100 } // all states
|
|
159
|
+
keep: { completed: { age: "1 day" }, failed: { age: "30 days" } } // split
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
- **Per store**: a retention ceiling swept periodically in the background —
|
|
163
|
+
one duration or a per-state split (an absent state has no ceiling; the
|
|
164
|
+
timer touches its rows only when they carry their own `keep.age`):
|
|
155
165
|
|
|
156
166
|
```ts
|
|
157
167
|
MemoryJobStore.layerWith({ historyTtl: "7 days" })
|
|
158
|
-
DrizzleJobStore.layer({
|
|
168
|
+
DrizzleJobStore.layer({ ...tables, historyTtl: { completed: "1 day", failed: "90 days" } })
|
|
159
169
|
```
|
|
160
170
|
|
|
171
|
+
The sweep honours `min(per-row keep.age, ceiling)`, so a job name that goes
|
|
172
|
+
quiet is still pruned on the timer, not only when its group is next acked.
|
|
173
|
+
|
|
161
174
|
## Custom job ids
|
|
162
175
|
|
|
163
176
|
Store-assigned ids default to a compact sequence (`j-<n>`). Bring your own
|
|
@@ -177,6 +190,41 @@ repeatable-schedule tick ids stay deterministic (exactly-once depends on
|
|
|
177
190
|
them). Collisions are retried a bounded number of times, then the enqueue
|
|
178
191
|
fails; bring real entropy.
|
|
179
192
|
|
|
193
|
+
## Deduplication
|
|
194
|
+
|
|
195
|
+
Dedup is a **separate key**, not id derivation — your ids (explicit,
|
|
196
|
+
`idGenerator`, or store-assigned) are never rewritten. Keys are scoped per
|
|
197
|
+
job name and picked per definition or per enqueue:
|
|
198
|
+
|
|
199
|
+
```ts
|
|
200
|
+
class SyncBenefits extends Job.make("sync-benefits", {
|
|
201
|
+
payload: { employerId: Schema.String },
|
|
202
|
+
dedupe: ({ employerId }) => employerId // string shorthand = { key }
|
|
203
|
+
}) {}
|
|
204
|
+
|
|
205
|
+
// Per-enqueue, with modes:
|
|
206
|
+
yield* SyncBenefits.enqueue(payload, { dedupe: { key: "emp-1", ttl: "1 minute" } })
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Four behaviors, composable from three fields:
|
|
210
|
+
|
|
211
|
+
| Options | Behavior |
|
|
212
|
+
| --- | --- |
|
|
213
|
+
| `{ key }` | dedupe while the keyed job is pending; finishing frees the key |
|
|
214
|
+
| `{ key, ttl }` | throttle: at most one job per window, even after completion |
|
|
215
|
+
| `{ key, ttl, extend: true }` | debounce: every dropped enqueue pushes the window out |
|
|
216
|
+
| `{ key, replace: true }` | while the keyed job is still delayed, the newest payload/metadata/priority/attempts/backoff/keep/timeout/delay replace it (same id; a `ttl` window re-arms) |
|
|
217
|
+
|
|
218
|
+
A deduplicated enqueue returns the keyed job's id (`duplicate: true` at the
|
|
219
|
+
store level). `idempotencyKey` still exists and is different on purpose: it
|
|
220
|
+
makes the job id *itself* deterministic (permanent identity, joinable from
|
|
221
|
+
your domain tables), while `dedupe` is temporal policy with its own lifecycle.
|
|
222
|
+
|
|
223
|
+
Postgres users: dedup adds one table and one jobs column — add
|
|
224
|
+
`export const jobDedupe = mqDedupe()` to your schema and `drizzle-kit
|
|
225
|
+
generate` diffs both (the table and the new `dedupe_key` column) into one
|
|
226
|
+
migration. Memory and Redis need nothing.
|
|
227
|
+
|
|
180
228
|
## Postgres through drizzle
|
|
181
229
|
|
|
182
230
|
The Postgres store runs on drizzle v1's Effect driver
|
|
@@ -196,7 +244,7 @@ migrations** — no library-run DDL, no parallel migration system:
|
|
|
196
244
|
|
|
197
245
|
```ts
|
|
198
246
|
// db/schema.ts
|
|
199
|
-
import { mqJobAttempts, mqJobs, mqQueueControl, mqSchedules } from "effect-mq/drizzle-postgres"
|
|
247
|
+
import { mqDedupe, mqJobAttempts, mqJobs, mqQueueControl, mqSchedules } from "effect-mq/drizzle-postgres"
|
|
200
248
|
|
|
201
249
|
// The `name` column is typed to your job tags (derived, not hand-written):
|
|
202
250
|
type JobNames = typeof GenerateInvoice._tag | typeof SendEmail._tag
|
|
@@ -205,8 +253,53 @@ export const jobs = mqJobs<JobNames>() // default table: effect_mq_jobs
|
|
|
205
253
|
export const jobAttempts = mqJobAttempts(jobs) // default: effect_mq_job_attempts
|
|
206
254
|
export const jobSchedules = mqSchedules() // default: effect_mq_schedules
|
|
207
255
|
export const jobQueues = mqQueueControl() // default: effect_mq_queue_control
|
|
256
|
+
export const jobDedupe = mqDedupe() // default: effect_mq_dedupe
|
|
208
257
|
```
|
|
209
258
|
|
|
259
|
+
Need more indexes (the built-ins cover claiming, listing, metadata
|
|
260
|
+
containment, and `name`/`state`/`finishedAt` history)? Every factory takes an
|
|
261
|
+
`extraConfig` callback — the same shape as drizzle's third `pgTable` argument —
|
|
262
|
+
appended after the built-in indexes and owned by your migrations like
|
|
263
|
+
everything else:
|
|
264
|
+
|
|
265
|
+
```ts
|
|
266
|
+
export const jobs = mqJobs<JobNames>("effect_mq_jobs", {
|
|
267
|
+
extraConfig: (t) => [index("jobs_name_recent_idx").on(t.name, t.enqueuedAt.desc())]
|
|
268
|
+
})
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Custom columns
|
|
272
|
+
|
|
273
|
+
Need real columns — a tenant id you can FK, RLS-scope, and join — populated
|
|
274
|
+
at job creation instead of patched in from job logic? `extend` the jobs
|
|
275
|
+
table; at enqueue the store fills each extended column from the job's
|
|
276
|
+
`metadata` entry with the same TS key (the definition's
|
|
277
|
+
`metadata: (payload) => ...` is your creation-time hook), NULL when absent:
|
|
278
|
+
|
|
279
|
+
```ts
|
|
280
|
+
class SyncBenefits extends Job.make("sync-benefits", {
|
|
281
|
+
payload: { companyId: Schema.String, objectId: Schema.String },
|
|
282
|
+
metadata: ({ companyId, objectId }) => ({ companyId, objectId })
|
|
283
|
+
}) {}
|
|
284
|
+
|
|
285
|
+
export const jobs = mqJobs<JobNames>("effect_mq_jobs", {
|
|
286
|
+
extend: {
|
|
287
|
+
companyId: text("company_id").notNull(),
|
|
288
|
+
objectId: text("object_id")
|
|
289
|
+
},
|
|
290
|
+
extraConfig: (t) => [index("jobs_company_idx").on(t.companyId, t.state)]
|
|
291
|
+
})
|
|
292
|
+
|
|
293
|
+
// Coercion/renames when the metadata convention isn't enough:
|
|
294
|
+
DrizzleJobStore.layer({ ...tables, extraValues: ({ metadata }) => ({ companyId: metadata.companyId }) })
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
`db.select().from(jobs).where(eq(jobs.companyId, tenant))` is fully typed; a
|
|
298
|
+
dedupe `replace` rewrites the extended columns with the latest values; a
|
|
299
|
+
missing metadata key on a `NOT NULL` column fails the enqueue loudly. Memory
|
|
300
|
+
and Redis need nothing — there the metadata projection is already the
|
|
301
|
+
queryable surface (`store.list({ metadata: { companyId } })`).
|
|
302
|
+
|
|
210
303
|
```
|
|
211
304
|
drizzle-kit generate # emits the CREATE TABLE migration next to your others
|
|
212
305
|
drizzle-kit migrate
|
|
@@ -221,13 +314,14 @@ When a future effect-mq version changes the layout, the factory changes and
|
|
|
221
314
|
import { DrizzleJobStore } from "effect-mq/drizzle-postgres"
|
|
222
315
|
import { PgClient } from "@effect/sql-pg"
|
|
223
316
|
import { Layer, Redacted } from "effect"
|
|
224
|
-
import { jobAttempts, jobQueues, jobs, jobSchedules } from "./db/schema.ts"
|
|
317
|
+
import { jobAttempts, jobDedupe, jobQueues, jobs, jobSchedules } from "./db/schema.ts"
|
|
225
318
|
|
|
226
319
|
const JobStoreLive = DrizzleJobStore.layer({
|
|
227
320
|
jobs,
|
|
228
321
|
attempts: jobAttempts,
|
|
229
322
|
schedules: jobSchedules,
|
|
230
|
-
queues: jobQueues
|
|
323
|
+
queues: jobQueues,
|
|
324
|
+
dedupe: jobDedupe
|
|
231
325
|
}).pipe(
|
|
232
326
|
Layer.provide(PgClient.layer({ url: Redacted.make(process.env.DATABASE_URL!) }))
|
|
233
327
|
)
|
|
@@ -255,9 +349,10 @@ db.select().from(jobAttempts)
|
|
|
255
349
|
`MyJob.retry(id)`, `store.remove(id)` — so lock tokens, attempt accounting,
|
|
256
350
|
and wake-up notifications stay coherent.
|
|
257
351
|
|
|
258
|
-
Worker tip: `awaitWake` is LISTEN/NOTIFY-driven
|
|
259
|
-
|
|
260
|
-
|
|
352
|
+
Worker tip: `awaitWake` is LISTEN/NOTIFY-driven and **queue-filtered** (the
|
|
353
|
+
NOTIFY payload names the queue, so an enqueue wakes only the takers watching
|
|
354
|
+
that queue — many queues don't amplify into many claims). The worker's
|
|
355
|
+
`pollInterval` is just the fallback; the 5s default is fine.
|
|
261
356
|
|
|
262
357
|
## Redis store
|
|
263
358
|
|
|
@@ -280,8 +375,10 @@ const JobStoreLive = RedisJobStore.layer({
|
|
|
280
375
|
)
|
|
281
376
|
```
|
|
282
377
|
|
|
283
|
-
Wake-ups ride pub/sub (`<prefix>:wake`)
|
|
284
|
-
pick new jobs up promptly
|
|
378
|
+
Wake-ups ride pub/sub (`<prefix>:wake`) with queue-filtered messages, so
|
|
379
|
+
idle workers in other processes pick new jobs up promptly and an enqueue
|
|
380
|
+
wakes only the takers watching its queue; the worker's `pollInterval` is the
|
|
381
|
+
fallback. Notes:
|
|
285
382
|
|
|
286
383
|
- Keys are plain-prefixed (no hash tags) — point it at a single Redis /
|
|
287
384
|
Valkey node or a cluster-unaware proxy, not Redis Cluster.
|
|
@@ -347,6 +444,43 @@ store un-encoded. For `Schema.Redacted` fields, Effect's semantics apply:
|
|
|
347
444
|
|
|
348
445
|
Both behaviors are pinned by tests.
|
|
349
446
|
|
|
447
|
+
## Reference: knobs at a glance
|
|
448
|
+
|
|
449
|
+
Everything a job definition, an enqueue, and a worker can be tuned with:
|
|
450
|
+
|
|
451
|
+
**`Job.make(name, options)`** — `payload` (schema or struct fields),
|
|
452
|
+
`success`/`error` schemas, `idempotencyKey(payload)`, `dedupe(payload)`,
|
|
453
|
+
`metadata(payload)`, `retryable(error)`, `queue`, `store`, and `defaults`
|
|
454
|
+
(any per-enqueue option below).
|
|
455
|
+
|
|
456
|
+
**Per enqueue** (`enqueue`/`execute` options) — `jobId`, `queue`,
|
|
457
|
+
`metadata`, `dedupe`, `delay`, `priority` (higher first), `attempts`,
|
|
458
|
+
`backoff` (`fixed`/`exponential`), `keep` (`count`/`age`), `timeout`.
|
|
459
|
+
|
|
460
|
+
**Job verbs** — `enqueue`, `execute` (enqueue + await the typed result),
|
|
461
|
+
`poll`, `awaitResult`, `attempts` (the decoded run ledger), `retry`,
|
|
462
|
+
`cancel`, `promote`, `schedule`/`unschedule`, `toLayer` (register the
|
|
463
|
+
handler).
|
|
464
|
+
|
|
465
|
+
**`Worker.layer(options)`** — all durations take `Duration.Input`:
|
|
466
|
+
|
|
467
|
+
| Option | Default | Meaning |
|
|
468
|
+
| --- | --- | --- |
|
|
469
|
+
| `store` | default `JobStore` | which named store this worker claims from |
|
|
470
|
+
| `concurrency` | 1 | taker fibers per queue |
|
|
471
|
+
| `queues` | — | per-queue overrides: `{ email: { concurrency: 5 } }` |
|
|
472
|
+
| `lockDuration` | 30s | how long a claim's lock lasts before it counts as stalled |
|
|
473
|
+
| `lockRenewInterval` | half of `lockDuration` | heartbeat cadence (also delivers cross-process cancels) |
|
|
474
|
+
| `stalledInterval` | 30s | how often to sweep for stalled jobs |
|
|
475
|
+
| `maxStalledCount` | 1 | stalls tolerated before a job is failed outright |
|
|
476
|
+
| `pollInterval` | 5s | idle fallback when no wake-up arrives (wake-ups are queue-filtered and push-based, so the default is fine even on Postgres) |
|
|
477
|
+
| `scheduleSweepInterval` | 15s | how often to tick due repeatable-job schedules |
|
|
478
|
+
| `id` | random | identifier used in lock tokens |
|
|
479
|
+
|
|
480
|
+
**Store construction** — every driver accepts `idGenerator`, `historyTtl`,
|
|
481
|
+
and `historySweepInterval`; drizzle-postgres additionally takes the table
|
|
482
|
+
instances (+ `validate`), Redis a key `prefix`.
|
|
483
|
+
|
|
350
484
|
## Writing a storage driver
|
|
351
485
|
|
|
352
486
|
Implement the `JobStore` service (one atomic seam: `enqueue`, `claim`, `ack`,
|
|
@@ -370,10 +504,11 @@ suite in this repo runs the same conformance tests against a real database.
|
|
|
370
504
|
|
|
371
505
|
## Roadmap
|
|
372
506
|
|
|
373
|
-
Next up:
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
507
|
+
Next up: trace propagation, a cross-process event stream, batch enqueue,
|
|
508
|
+
custom drizzle columns, and parent-child fan-out. Full prioritized list:
|
|
509
|
+
[ROADMAP.md](https://github.com/TeamWarp/effect-mq/blob/main/ROADMAP.md);
|
|
510
|
+
release history:
|
|
511
|
+
[CHANGELOG.md](https://github.com/TeamWarp/effect-mq/blob/main/CHANGELOG.md).
|
|
377
512
|
|
|
378
513
|
## License
|
|
379
514
|
|
package/dist/Job.d.ts
CHANGED
|
@@ -66,12 +66,30 @@ export interface BackoffInput {
|
|
|
66
66
|
*
|
|
67
67
|
* @since 0.1.0
|
|
68
68
|
*/
|
|
69
|
-
export interface
|
|
69
|
+
export interface KeepStateInput {
|
|
70
70
|
/** Keep at most this many terminal records (per name + state). */
|
|
71
71
|
readonly count?: number | undefined;
|
|
72
72
|
/** Remove terminal records older than this. */
|
|
73
73
|
readonly age?: Duration.Input | undefined;
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Retention input: a flat `{ count, age }` applies to all terminal states;
|
|
77
|
+
* the split form sets independent rules per state (completed jobs are
|
|
78
|
+
* usually noise, failed ones evidence) — an absent state keeps its records
|
|
79
|
+
* until the store's `historyTtl` ceiling:
|
|
80
|
+
*
|
|
81
|
+
* ```ts
|
|
82
|
+
* keep: { count: 100 } // all states
|
|
83
|
+
* keep: { completed: { age: "1 day" }, failed: { age: "30 days" } }
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* @since 0.1.0
|
|
87
|
+
*/
|
|
88
|
+
export type KeepInput = KeepStateInput | {
|
|
89
|
+
readonly completed?: KeepStateInput | undefined;
|
|
90
|
+
readonly failed?: KeepStateInput | undefined;
|
|
91
|
+
readonly cancelled?: KeepStateInput | undefined;
|
|
92
|
+
};
|
|
75
93
|
/**
|
|
76
94
|
* Options shared between job defaults and per-enqueue overrides.
|
|
77
95
|
*
|
|
@@ -93,6 +111,29 @@ export interface JobOptions {
|
|
|
93
111
|
*/
|
|
94
112
|
readonly timeout?: Duration.Input | undefined;
|
|
95
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* @since 0.1.0
|
|
116
|
+
*/
|
|
117
|
+
/**
|
|
118
|
+
* Deduplication input for `Job.make({ dedupe })` and per-enqueue overrides.
|
|
119
|
+
* A bare string is shorthand for `{ key }`. Dedup never changes the job id —
|
|
120
|
+
* it is a separate, name-scoped key:
|
|
121
|
+
*
|
|
122
|
+
* - `{ key }`: dedupe while the keyed job is pending; done jobs free the key.
|
|
123
|
+
* - `{ key, ttl }`: throttle — at most one job per window.
|
|
124
|
+
* - `{ key, ttl, extend: true }`: debounce — dropped enqueues push the
|
|
125
|
+
* window out.
|
|
126
|
+
* - `{ key, replace: true }`: while the keyed job is still delayed, the new
|
|
127
|
+
* enqueue's content replaces it (latest wins).
|
|
128
|
+
*
|
|
129
|
+
* @since 0.3.0
|
|
130
|
+
*/
|
|
131
|
+
export type DedupeInput = string | {
|
|
132
|
+
readonly key: string;
|
|
133
|
+
readonly ttl?: Duration.Input | undefined;
|
|
134
|
+
readonly extend?: boolean | undefined;
|
|
135
|
+
readonly replace?: boolean | undefined;
|
|
136
|
+
};
|
|
96
137
|
/**
|
|
97
138
|
* @since 0.1.0
|
|
98
139
|
*/
|
|
@@ -107,6 +148,8 @@ export interface EnqueueOptions extends JobOptions {
|
|
|
107
148
|
readonly queue?: string | undefined;
|
|
108
149
|
/** Queryable business context, merged over the definition's `metadata`. */
|
|
109
150
|
readonly metadata?: Readonly<Record<string, string>> | undefined;
|
|
151
|
+
/** Deduplicate by key (see `DedupeInput`); overrides the definition's `dedupe`. */
|
|
152
|
+
readonly dedupe?: DedupeInput | undefined;
|
|
110
153
|
}
|
|
111
154
|
interface ResolvedDefaults {
|
|
112
155
|
readonly delayMs: number;
|
|
@@ -185,6 +228,7 @@ export interface Job<Name extends string, Payload extends AnyStructSchema, Succe
|
|
|
185
228
|
/** JSON codec for handler exits — what is actually persisted. */
|
|
186
229
|
readonly exitSchema: Schema.toCodecJson<Schema.Exit<Schema.toCodecJson<Success>, Schema.toCodecJson<Error>, Schema.Defect>>;
|
|
187
230
|
readonly idempotencyKey: ((payload: Payload["Type"]) => string) | undefined;
|
|
231
|
+
readonly dedupe: ((payload: Payload["Type"]) => DedupeInput) | undefined;
|
|
188
232
|
readonly metadata: ((payload: Payload["Type"]) => Readonly<Record<string, string>>) | undefined;
|
|
189
233
|
readonly retryable: ((error: Error["Type"]) => boolean) | undefined;
|
|
190
234
|
readonly defaults: ResolvedDefaults;
|
|
@@ -263,6 +307,12 @@ export declare const make: <const Name extends string, Payload extends Schema.St
|
|
|
263
307
|
* while the first job still exists is a no-op (returns the existing id).
|
|
264
308
|
*/
|
|
265
309
|
readonly idempotencyKey?: ((payload: Payload extends Schema.Struct.Fields ? Schema.Struct.Type<Payload> : Payload["Type"]) => string) | undefined;
|
|
310
|
+
/**
|
|
311
|
+
* Derive a dedup key (and optional throttle/debounce/replace behavior)
|
|
312
|
+
* from the payload. Unlike `idempotencyKey`, this never changes the job
|
|
313
|
+
* id — see `DedupeInput` for the mode semantics.
|
|
314
|
+
*/
|
|
315
|
+
readonly dedupe?: ((payload: Payload extends Schema.Struct.Fields ? Schema.Struct.Type<Payload> : Payload["Type"]) => DedupeInput) | undefined;
|
|
266
316
|
/**
|
|
267
317
|
* Derive queryable business context from the payload (flat string map, so
|
|
268
318
|
* every driver can index it). Merged with per-enqueue `metadata`.
|
package/dist/Job.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Job.d.ts","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAS,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Job.d.ts","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
|
package/dist/Job.js
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
*
|
|
31
31
|
* @since 0.1.0
|
|
32
32
|
*/
|
|
33
|
-
import { Clock, Duration, Effect, Layer, Option, Schedule, Schema } from "effect";
|
|
33
|
+
import { Clock, Duration, Effect, Layer, Option, Predicate, Schedule, Schema } from "effect";
|
|
34
34
|
import { JobCancelledError, JobId, JobNotFoundError, JobStore, nextOccurrence, QueueName, ScheduleKey, unrecoverable } from "./JobStore.js";
|
|
35
35
|
export {
|
|
36
36
|
/**
|
|
@@ -42,6 +42,23 @@ export {
|
|
|
42
42
|
unrecoverable };
|
|
43
43
|
import { Worker } from "./Worker.js";
|
|
44
44
|
const TypeId = "~effect-mq/Job";
|
|
45
|
+
const normalizeDedupe = (input) => {
|
|
46
|
+
if (input === undefined)
|
|
47
|
+
return undefined;
|
|
48
|
+
const config = Predicate.isString(input) ? { key: input } : input;
|
|
49
|
+
if (config.key === "") {
|
|
50
|
+
throw new Error("effect-mq: dedupe `key` must be non-empty");
|
|
51
|
+
}
|
|
52
|
+
if (config.extend === true && config.ttl === undefined) {
|
|
53
|
+
throw new Error("effect-mq: dedupe `extend` requires a `ttl`");
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
key: config.key,
|
|
57
|
+
ttlMs: config.ttl !== undefined ? Duration.toMillis(config.ttl) : undefined,
|
|
58
|
+
extend: config.extend === true,
|
|
59
|
+
replace: config.replace === true
|
|
60
|
+
};
|
|
61
|
+
};
|
|
45
62
|
const defaultPollSchedule = Schedule.min([
|
|
46
63
|
Schedule.exponential(10, 2),
|
|
47
64
|
Schedule.spaced("1 second")
|
|
@@ -51,9 +68,31 @@ const normalizeBackoff = (input) => input === undefined ? undefined : {
|
|
|
51
68
|
delayMs: Duration.toMillis(input.delay),
|
|
52
69
|
factor: input.factor
|
|
53
70
|
};
|
|
54
|
-
const
|
|
71
|
+
const normalizeKeepState = (input) => ({
|
|
55
72
|
count: input.count,
|
|
56
73
|
ageMs: input.age !== undefined ? Duration.toMillis(input.age) : undefined
|
|
74
|
+
});
|
|
75
|
+
const normalizeKeep = (input) => {
|
|
76
|
+
if (input === undefined)
|
|
77
|
+
return undefined;
|
|
78
|
+
const split = "completed" in input || "failed" in input || "cancelled" in input;
|
|
79
|
+
const flat = "count" in input || "age" in input;
|
|
80
|
+
if (split && flat) {
|
|
81
|
+
throw new Error("effect-mq: `keep` must be either flat { count, age } or split per state, not both");
|
|
82
|
+
}
|
|
83
|
+
if (split) {
|
|
84
|
+
// SAFETY: the flat branch was excluded above, so the state keys carry
|
|
85
|
+
// KeepStateInput values.
|
|
86
|
+
const perState = input;
|
|
87
|
+
return {
|
|
88
|
+
completed: perState.completed !== undefined ? normalizeKeepState(perState.completed) : undefined,
|
|
89
|
+
failed: perState.failed !== undefined ? normalizeKeepState(perState.failed) : undefined,
|
|
90
|
+
cancelled: perState.cancelled !== undefined ? normalizeKeepState(perState.cancelled) : undefined
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
// SAFETY: the split branch was excluded above, so this is the flat form.
|
|
94
|
+
const policy = normalizeKeepState(input);
|
|
95
|
+
return { completed: policy, failed: policy, cancelled: policy };
|
|
57
96
|
};
|
|
58
97
|
const Proto = {
|
|
59
98
|
[TypeId]: TypeId,
|
|
@@ -69,6 +108,7 @@ const Proto = {
|
|
|
69
108
|
...this.metadata?.(payload),
|
|
70
109
|
...options?.metadata
|
|
71
110
|
};
|
|
111
|
+
const dedupe = normalizeDedupe(options?.dedupe ?? this.dedupe?.(payload));
|
|
72
112
|
return Schema.encodeEffect(this.payloadJsonSchema)(payload).pipe(Effect.orDie, Effect.flatMap((encoded) => Effect.flatMap(this.store, (store) => store.enqueue({
|
|
73
113
|
id,
|
|
74
114
|
name: this._tag,
|
|
@@ -88,6 +128,7 @@ const Proto = {
|
|
|
88
128
|
timeoutMs: options?.timeout !== undefined
|
|
89
129
|
? Duration.toMillis(options.timeout)
|
|
90
130
|
: this.defaults.timeoutMs,
|
|
131
|
+
dedupe,
|
|
91
132
|
delayMs: options?.delay !== undefined
|
|
92
133
|
? Duration.toMillis(options.delay)
|
|
93
134
|
: this.defaults.delayMs
|
|
@@ -272,6 +313,7 @@ export const make = (name, options) => {
|
|
|
272
313
|
errorSchema,
|
|
273
314
|
exitSchema,
|
|
274
315
|
idempotencyKey: options.idempotencyKey,
|
|
316
|
+
dedupe: options.dedupe,
|
|
275
317
|
metadata: options.metadata,
|
|
276
318
|
retryable: options.retryable,
|
|
277
319
|
defaults: {
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,KAAK,EAAgB,QAAQ,EAAE,MAAM,EAAa,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACrH,OAAO,EAIL,iBAAiB,EACjB,KAAK,EAEL,gBAAgB,EAIhB,QAAQ,EAER,cAAc,EACd,SAAS,EACT,WAAW,EAGX,aAAa,EACd,MAAM,eAAe,CAAA;AAEtB,OAAO;AACL;;;;;GAKG;AACH,aAAa,EACd,CAAA;AACD,OAAO,EAAyC,MAAM,EAAE,MAAM,aAAa,CAAA;AAE3E,MAAM,MAAM,GAAG,gBAAyB,CAAA;AAoGxC,MAAM,eAAe,GAAG,CAAC,KAA8B,EAA4B,EAAE;IACnF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IACjE,IAAI,MAAM,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IACD,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3E,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;KACjC,CAAA;AACH,CAAC,CAAA;AAyPD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,GAAG,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;CAC5B,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAA+B,EAA6B,EAAE,CACtF,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAChC,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;IACvC,MAAM,EAAE,KAAK,CAAC,MAAM;CACrB,CAAA;AAEH,MAAM,kBAAkB,GAAG,CAAC,KAAqB,EAAmB,EAAE,CAAC,CAAC;IACtE,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;CAC1E,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,CAAC,KAA4B,EAA0B,EAAE;IAC7E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,KAAK,GAAG,WAAW,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,CAAA;IAC/E,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAA;IAC/C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAA;IACtG,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,sEAAsE;QACtE,yBAAyB;QACzB,MAAM,QAAQ,GAAG,KAIhB,CAAA;QACD,OAAO;YACL,SAAS,EAAE,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YAChG,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YACvF,SAAS,EAAE,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;SACjG,CAAA;IACH,CAAC;IACD,yEAAyE;IACzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAuB,CAAC,CAAA;IAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,KAAK,GAAG;IACZ,CAAC,MAAM,CAAC,EAAE,MAAM;IAEhB,OAAO,CAAqB,MAAW,EAAE,OAAwB;QAC/D,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC/C,MAAM,EAAE,GAAG,OAAO,EAAE,KAAK,KAAK,SAAS;gBACrC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACtB,CAAC,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS;oBACnC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvD,CAAC,CAAC,SAAS,CAAA;YACb,MAAM,QAAQ,GAAG;gBACf,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;gBAC3B,GAAG,OAAO,EAAE,QAAQ;aACrB,CAAA;YACD,MAAM,MAAM,GAAG,eAAe,CAC5B,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAC1C,CAAA;YACD,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9D,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACnC,KAAK,CAAC,OAAO,CAAC;gBACZ,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS;oBACjC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC1B,CAAC,CAAC,IAAI,CAAC,KAAK;gBACd,OAAO,EAAE,OAAO;gBAChB,QAAQ;gBACR,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBACrD,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACrE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,SAAS;oBACrC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;oBACnC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;gBACzB,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,SAAS;oBAC/B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC7B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACtB,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,SAAS;oBACvC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;oBACpC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAC3B,MAAM;gBACN,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,SAAS;oBACnC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;oBAClC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAC,CACN,EACD,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAClC,CAAA;QACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,UAAU,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAC1E,CAAA;IACH,CAAC;IAED,IAAI,CAAqB,KAAY;QACnC,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CACtB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW;YAChC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS;oBACpC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;oBACf,CAAC,CAAC,MAAM,CAAC,IAAI,CACX,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAClE,MAAM,CAAC,KAAK,CACb,CACF,CAAA;gBACH,OAAO,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,IAAI;oBACJ,YAAY,EAAE,MAAM,CAAC,YAAY;iBAClC,CAAC,CAAA;YACJ,CAAC,CAAC;SACL,CAAC,CAAC,CACJ,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAC9F,CAAA;IACL,CAAC;IAED,QAAQ,CAAqB,KAAY;QACvC,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACxC,MAAM,CAAC,GAAG,CACR,OAAO,CAAC,IAAI,KAAK,SAAS;YACxB,CAAC,CAAC,MAAM,CAAC,WAAW;YACpB,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAC9D,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CACxB,EACH,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACT,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI;SACL,CAAC,CACH,CACF,CAAC,CACH,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAClG,CAAA;IACL,CAAC;IAED,WAAW,CAET,KAAY,EACZ,OAA4E;QAE5E,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,MAAM,QAAQ,GAAG,OAAO,EAAE,YAAY,IAAI,mBAAmB,CAAA;YAC7D,IAAI,KAAyC,CAAA;YAC7C,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACtC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC3D,CAAC;gBACD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAA;gBAClD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;oBAC1B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC5D,CAAC;gBACD,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAChD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxB,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;oBAC1B,CAAC;oBACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CACP,mBAAmB,KAAK,4BACtB,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,EACrD,EAAE,CACH,CACF,CAAA;gBACH,CAAC;gBACD,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAChE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAChB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,uCAAuC,CAAC,CAChE,CACF,CAAA;gBACD,KAAK,CAAC,CAAC,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,cAAc,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CACrG,CAAA;IACH,CAAC;IAED,OAAO,CAAqB,MAAW,EAAE,OAAwB;QAC/D,OAAO,MAAM,CAAC,OAAO,CACnB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CACnC,CAAA;IACH,CAAC;IAED,KAAK,CAAqB,KAAY;QACpC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CACrB,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAC/D,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAC/F,CAAA;IACL,CAAC;IAED,MAAM,CAAqB,KAAY;QACrC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CACtB,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAC/D,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAChG,CAAA;IACL,CAAC;IAED,OAAO,CAAqB,KAAY;QACtC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACvB,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAC/D,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CACjG,CAAA;IACL,CAAC;IAED,QAAQ,CAAqB,GAAW,EAAE,OAA+B;QACvE,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAA;YAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAA;YAC5C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,wBAAwB,GAAG,iDAAiD,CAAC,CACxF,CAAA;YACH,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC1F,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAA;YAC1C,MAAM,SAAS,GAAG,cAAc,CAC9B,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAC/C,GAAG,EACH,GAAG,CACJ,CAAA;YACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,wBAAwB,GAAG,sCAAsC,OAAO,CAAC,IAAI,GAAG,CAAC,CAC5F,CAAA;YACH,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACxD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC9F,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAA;YACtD,MAAM,MAAM,GAAmB;gBAC7B,GAAG,EAAE,WAAW;gBAChB,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO;gBACP,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE;gBAC9D,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBACpD,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACpE,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,SAAS;oBACpC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;oBACnC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;gBACzB,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACnF,SAAS,EAAE,OAAO,CAAC,OAAO,KAAK,SAAS;oBACtC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;oBACpC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAC3B,SAAS;aACV,CAAA;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;YAC/B,KAAK,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtD,OAAO,WAAW,CAAA;QACpB,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAChG,CAAA;IACH,CAAC;IAED,UAAU,CAAqB,GAAW;QACxC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAC/E,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,aAAa,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAClG,CAAA;IACL,CAAC;IAED,OAAO,CAEL,OAA4E,EAC5E,OAAyB;QAEzB,OAAO,KAAK,CAAC,aAAa,CACxB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAC5E,CAAA;IACH,CAAC;CACF,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,SAAS;IACT,MAAM;IACN,UAAU;IACV,aAAa;IACb,SAAS;IACT,OAAO;IACP,QAAQ;IACR,SAAS;IACT,UAAU;IACV,YAAY;IACZ,SAAS;CACD,CAAA;AAEV,MAAM,SAAS,GAAG,CAAC,OAclB,EAAO,EAAE;IACR,SAAS,aAAa,KAAI,CAAC;IAC3B,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;IAC3C,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACrC,2EAA2E;IAC3E,+BAA+B;IAC/B,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IACzF,kEAAkE;IAClE,uDAAuD;IACvD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,0EAA0E;QAC1E,uEAAuE;QACvE,6CAA6C;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAA8C,CAAA;QACtE,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE;YACxC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YACjC,YAAY,EAAE,IAAI;SACnB,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAOlB,IAAU,EACV,OAoDC,EAOD,EAAE;IACF,0EAA0E;IAC1E,yEAAyE;IACzE,kCAAkC;IAClC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QACpD,CAAC,CAAC,OAAO,CAAC,OAA0B;QACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAA+B,CAAC,CAAA;IAC1D,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAA;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAA;IACjD,4EAA4E;IAC5E,uEAAuE;IACvE,gCAAgC;IAChC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAC/C,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,EACjC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,EAC/B,MAAM,CAAC,MAAM,EAAE,CAChB,CAAC,CAAA;IACF,OAAO,SAAS,CAAC;QACf,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ;QAChC,aAAa;QACb,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC;QACpD,aAAa;QACb,WAAW;QACX,UAAU;QACV,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,KAAK,SAAS;gBAC5C,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,CAAC;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC;YACzC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC;YACtD,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;YACpD,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC3C,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,KAAK,SAAS;gBAChD,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC7C,CAAC,CAAC,SAAS;SACd;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|