effect-mq 0.6.0 → 0.7.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/dist/JobStore.d.ts +41 -3
- package/dist/JobStore.d.ts.map +1 -1
- package/dist/JobStore.js +10 -0
- package/dist/JobStore.js.map +1 -1
- package/dist/MemoryJobStore.d.ts.map +1 -1
- package/dist/MemoryJobStore.js +27 -14
- package/dist/MemoryJobStore.js.map +1 -1
- package/dist/drizzle-postgres/DrizzleJobStore.d.ts.map +1 -1
- package/dist/drizzle-postgres/DrizzleJobStore.js +25 -3
- package/dist/drizzle-postgres/DrizzleJobStore.js.map +1 -1
- package/dist/redis/RedisJobStore.d.ts +53 -0
- package/dist/redis/RedisJobStore.d.ts.map +1 -1
- package/dist/redis/RedisJobStore.js +188 -37
- package/dist/redis/RedisJobStore.js.map +1 -1
- package/dist/redis/scripts.d.ts +101 -30
- package/dist/redis/scripts.d.ts.map +1 -1
- package/dist/redis/scripts.js +204 -55
- package/dist/redis/scripts.js.map +1 -1
- package/dist/testing/conformance.d.ts.map +1 -1
- package/dist/testing/conformance.js +127 -11
- package/dist/testing/conformance.js.map +1 -1
- package/package.json +1 -1
- package/src/JobStore.ts +38 -3
- package/src/MemoryJobStore.ts +26 -18
- package/src/drizzle-postgres/DrizzleJobStore.ts +27 -3
- package/src/redis/RedisJobStore.ts +256 -36
- package/src/redis/scripts.ts +232 -59
- package/src/testing/conformance.ts +143 -11
package/dist/redis/scripts.js
CHANGED
|
@@ -21,6 +21,19 @@
|
|
|
21
21
|
* - `p:delayed:<queue>` ZSET, score `runAt`
|
|
22
22
|
* - `p:active` ZSET, score `lockExpiresAt`
|
|
23
23
|
* - `p:all` ZSET, score `enqueuedAt` (list pagination)
|
|
24
|
+
* - `p:byname:<name>` ZSET, score `enqueuedAt` (list name index;
|
|
25
|
+
* optional, `RedisJobStoreOptions.indexes.name`)
|
|
26
|
+
* - `p:byqueue:<queue>` ZSET, score `enqueuedAt` (list queue index;
|
|
27
|
+
* optional, `RedisJobStoreOptions.indexes.queue`)
|
|
28
|
+
* - `p:index:<kind>:ready` STRING, millis timestamp of the last index
|
|
29
|
+
* reconcile's start for `<kind>` (name |
|
|
30
|
+
* queue). Absent: the next enabled boot does a
|
|
31
|
+
* full ZSCAN rebuild. Present: enabled boots
|
|
32
|
+
* heal the tail (rows enqueued since the value
|
|
33
|
+
* minus a safety margin) and re-stamp it —
|
|
34
|
+
* closing the rolling-deploy window where
|
|
35
|
+
* index-less writers inserted rows after the
|
|
36
|
+
* marker landed
|
|
24
37
|
* - `p:finished:<state>` ZSET, score `finishedAt` (history TTL)
|
|
25
38
|
* - `p:terminal:<name>:<state>` ZSET, score `finishedAt` (keep pruning)
|
|
26
39
|
* - `p:counts` HASH `<queue>|<state>` -> integer
|
|
@@ -52,8 +65,12 @@ import { Redis } from "effect/unstable/persistence";
|
|
|
52
65
|
/**
|
|
53
66
|
* Shared helpers textually prepended to every script (the `Redis.script`
|
|
54
67
|
* runner has no include mechanism). `ARGV[1]` is always the key prefix.
|
|
68
|
+
* Built once per store instance: `insertJobRow` writes only the list indexes
|
|
69
|
+
* enabled by `IndexConfig` (`deleteJob` clears both unconditionally — a ZREM
|
|
70
|
+
* on a missing key is free, and stray entries from an earlier configuration
|
|
71
|
+
* must never outlive their job).
|
|
55
72
|
*/
|
|
56
|
-
const
|
|
73
|
+
export const helpers = (indexes) => `
|
|
57
74
|
local prefix = ARGV[1]
|
|
58
75
|
local function fmt(x) return string.format("%.0f", x) end
|
|
59
76
|
local function jobKey(id) return prefix .. ":job:" .. id end
|
|
@@ -61,6 +78,8 @@ local function attemptsKey(id) return prefix .. ":attempts:" .. id end
|
|
|
61
78
|
local function waitingKey(queue) return prefix .. ":waiting:" .. queue end
|
|
62
79
|
local function delayedKey(queue) return prefix .. ":delayed:" .. queue end
|
|
63
80
|
local function terminalKey(name, state) return prefix .. ":terminal:" .. name .. ":" .. state end
|
|
81
|
+
local function bynameKey(name) return prefix .. ":byname:" .. name end
|
|
82
|
+
local function byqueueKey(queue) return prefix .. ":byqueue:" .. queue end
|
|
64
83
|
-- Waiting order: score = -priority (higher priority first, full number range);
|
|
65
84
|
-- FIFO within a priority via lexicographic members "<seq %016d>:<id>". A
|
|
66
85
|
-- composite numeric score would clip either priority or seq past float53.
|
|
@@ -168,6 +187,8 @@ local function deleteJob(id)
|
|
|
168
187
|
local name = redis.call("HGET", jk, "name")
|
|
169
188
|
countsAdd(queue, state, -1)
|
|
170
189
|
redis.call("ZREM", prefix .. ":all", id)
|
|
190
|
+
redis.call("ZREM", bynameKey(name), id)
|
|
191
|
+
redis.call("ZREM", byqueueKey(queue), id)
|
|
171
192
|
redis.call("ZREM", prefix .. ":finished:" .. state, id)
|
|
172
193
|
redis.call("ZREM", prefix .. ":active", id)
|
|
173
194
|
redis.call("ZREM", terminalKey(name, state), id)
|
|
@@ -261,6 +282,20 @@ local function finishCancelled(id, queue, name, startedAt, now, nowStr)
|
|
|
261
282
|
releaseDedupe(name, redis.call("HGET", jk, "dedupeKey"), id, now)
|
|
262
283
|
applyKeep(name, "cancelled", redis.call("HGET", jk, "keep"), now)
|
|
263
284
|
end
|
|
285
|
+
-- Index one EXISTING job row into a list index (backfill and tail heal;
|
|
286
|
+
-- insertJobRow covers live writes). A missing row is skipped — nothing to
|
|
287
|
+
-- index, and the read path self-heals whatever stale member pointed here.
|
|
288
|
+
local function indexInto(kind, id)
|
|
289
|
+
local row = redis.call("HMGET", jobKey(id), "name", "queue", "enqueuedAt")
|
|
290
|
+
if row[1] then
|
|
291
|
+
local enqueuedAt = tonumber(row[3]) or 0
|
|
292
|
+
if kind == "name" then
|
|
293
|
+
redis.call("ZADD", bynameKey(row[1]), enqueuedAt, id)
|
|
294
|
+
else
|
|
295
|
+
redis.call("ZADD", byqueueKey(row[2]), enqueuedAt, id)
|
|
296
|
+
end
|
|
297
|
+
end
|
|
298
|
+
end
|
|
264
299
|
-- Insert one fresh job row plus every index entry. String params are stored
|
|
265
300
|
-- verbatim (payload/metadata/backoff/keep/trace/parent are pre-encoded JSON,
|
|
266
301
|
-- "" = absent); priority/delayMs/now numeric-coercible. New jobs never carry
|
|
@@ -280,7 +315,7 @@ local function insertJobRow(id, name, queue, payloadJson, metadataJson, priority
|
|
|
280
315
|
"processedAt", "", "finishedAt", "", "exit", "", "failedReason", "",
|
|
281
316
|
"lockToken", "", "lockExpiresAt", "", "seq", fmt(seq))
|
|
282
317
|
redis.call("ZADD", prefix .. ":all", now, id)
|
|
283
|
-
if state == "waiting" then
|
|
318
|
+
${indexes.name ? ` redis.call("ZADD", bynameKey(name), now, id)\n` : ""}${indexes.queue ? ` redis.call("ZADD", byqueueKey(queue), now, id)\n` : ""} if state == "waiting" then
|
|
284
319
|
addWaiting(queue, tonumber(priority), seq, id)
|
|
285
320
|
else
|
|
286
321
|
redis.call("ZADD", delayedKey(queue), runAt, id)
|
|
@@ -295,7 +330,7 @@ end
|
|
|
295
330
|
* idMode: "user" (dedup no-op), "generated" (collision -> retry sentinel),
|
|
296
331
|
* "auto" (j-<seq>, in-script collision loop).
|
|
297
332
|
*/
|
|
298
|
-
export const enqueue = Redis.script((prefix, idMode, id, name, queue, payloadJson, metadataJson, priority, attemptsMax, backoffJson, keepJson, timeoutMs, delayMs, now, dedupeKey, dedupeTtlMs, dedupeExtend, dedupeReplace, traceJson, parentJson) => [
|
|
333
|
+
export const enqueue = (HELPERS) => Redis.script((prefix, idMode, id, name, queue, payloadJson, metadataJson, priority, attemptsMax, backoffJson, keepJson, timeoutMs, delayMs, now, dedupeKey, dedupeTtlMs, dedupeExtend, dedupeReplace, traceJson, parentJson) => [
|
|
299
334
|
prefix,
|
|
300
335
|
idMode,
|
|
301
336
|
id,
|
|
@@ -408,7 +443,7 @@ return '{"id":' .. cjson.encode(id) .. ',"duplicate":false,"wake":true}'
|
|
|
408
443
|
* waiting job whose name matches. Returns the claimed record (HGETALL pairs)
|
|
409
444
|
* or an Empty result with the earliest matching delayed runAt.
|
|
410
445
|
*/
|
|
411
|
-
export const claim = Redis.script((prefix, queue, namesJson, token, lockDurationMs, now) => [
|
|
446
|
+
export const claim = (HELPERS) => Redis.script((prefix, queue, namesJson, token, lockDurationMs, now) => [
|
|
412
447
|
prefix,
|
|
413
448
|
queue,
|
|
414
449
|
namesJson,
|
|
@@ -481,7 +516,7 @@ return cjson.encode({ empty = true, nextRunAt = nextRunAt })
|
|
|
481
516
|
* Token-guarded. Retry on a cancel-requested job finishes it as cancelled
|
|
482
517
|
* (cancellation wins over revival, mirroring release/recoverStalled).
|
|
483
518
|
*/
|
|
484
|
-
export const ack = Redis.script((prefix, id, token, outcomeTag, exitJson, delayMs, now) => [
|
|
519
|
+
export const ack = (HELPERS) => Redis.script((prefix, id, token, outcomeTag, exitJson, delayMs, now) => [
|
|
485
520
|
prefix,
|
|
486
521
|
id,
|
|
487
522
|
token,
|
|
@@ -557,7 +592,7 @@ return '{"ok":true}'
|
|
|
557
592
|
* release(prefix, id, token, now) — hand the job back without consuming an
|
|
558
593
|
* attempt; a pending cancel wins and finishes the job instead.
|
|
559
594
|
*/
|
|
560
|
-
export const release = Redis.script((prefix, id, token, now) => [prefix, id, token, now], {
|
|
595
|
+
export const release = (HELPERS) => Redis.script((prefix, id, token, now) => [prefix, id, token, now], {
|
|
561
596
|
numberOfKeys: 0,
|
|
562
597
|
lua: `${HELPERS}
|
|
563
598
|
local id = ARGV[2]
|
|
@@ -587,7 +622,7 @@ return '{"ok":true,"wake":true,"queue":' .. cjson.encode(queue) .. '}'
|
|
|
587
622
|
* extendLocks(prefix, locksJson, durationMs, now) -> { lost, cancel }
|
|
588
623
|
* Cancel-requested locks are reported, not extended.
|
|
589
624
|
*/
|
|
590
|
-
export const extendLocks = Redis.script((prefix, locksJson, durationMs, now) => [prefix, locksJson, durationMs, now], {
|
|
625
|
+
export const extendLocks = (HELPERS) => Redis.script((prefix, locksJson, durationMs, now) => [prefix, locksJson, durationMs, now], {
|
|
591
626
|
numberOfKeys: 0,
|
|
592
627
|
lua: `${HELPERS}
|
|
593
628
|
local locks = cjson.decode(ARGV[2])
|
|
@@ -612,7 +647,7 @@ return cjson.encode({ lost = lost, cancel = cancel })
|
|
|
612
647
|
* recoverStalled(prefix, maxStalledCount, now) -> recovered [{id, failed}]
|
|
613
648
|
* A pending cancel finishes the job as cancelled (not reported as recovered).
|
|
614
649
|
*/
|
|
615
|
-
export const recoverStalled = Redis.script((prefix, maxStalledCount, now) => [prefix, maxStalledCount, now], {
|
|
650
|
+
export const recoverStalled = (HELPERS) => Redis.script((prefix, maxStalledCount, now) => [prefix, maxStalledCount, now], {
|
|
616
651
|
numberOfKeys: 0,
|
|
617
652
|
lua: `${HELPERS}
|
|
618
653
|
local maxStalledCount = tonumber(ARGV[2])
|
|
@@ -660,7 +695,7 @@ return cjson.encode(recovered)
|
|
|
660
695
|
`
|
|
661
696
|
}).withReturnType();
|
|
662
697
|
/** getJob(prefix, id) -> HGETALL pairs (empty array when missing). */
|
|
663
|
-
export const getJob = Redis.script((prefix, id) => [prefix, id], {
|
|
698
|
+
export const getJob = (HELPERS) => Redis.script((prefix, id) => [prefix, id], {
|
|
664
699
|
numberOfKeys: 0,
|
|
665
700
|
lua: `${HELPERS}
|
|
666
701
|
local record = redis.call("HGETALL", jobKey(ARGV[2]))
|
|
@@ -669,44 +704,114 @@ return cjson.encode(record)
|
|
|
669
704
|
`
|
|
670
705
|
}).withReturnType();
|
|
671
706
|
/**
|
|
672
|
-
* list(prefix, filtersJson, cursor, limit)
|
|
673
|
-
*
|
|
707
|
+
* list(prefix, sourcesJson, order, filtersJson, cursor, limit)
|
|
708
|
+
*
|
|
709
|
+
* Indexed list. The DRIVER routes the query to the narrowest zset(s) — see
|
|
710
|
+
* `RedisJobStore`'s routing matrix — and this script merges those sorted
|
|
711
|
+
* sources by (score, id) in the requested direction, pages past the
|
|
712
|
+
* exclusive `<orderValue>:<id>` keyset cursor, loads each candidate row, and
|
|
713
|
+
* applies the residual predicates until `limit` matches accumulate. Sources
|
|
714
|
+
* must be plain-id-membered zsets whose score IS the requested order value
|
|
715
|
+
* (`all`/`byname:`/`byqueue:` = enqueuedAt, `delayed:<queue>` = runAt,
|
|
716
|
+
* `finished:`/`terminal:` = finishedAt) and must be pairwise disjoint; the
|
|
717
|
+
* waiting zsets (seq-prefixed members, priority scores) are never routed
|
|
718
|
+
* here. A member whose job hash is gone is an orphan: it is ZREM'd from the
|
|
719
|
+
* source being scanned (self-heal) and skipped.
|
|
674
720
|
*/
|
|
675
|
-
export const list = Redis.script((prefix, filtersJson, cursor, limit) => [
|
|
721
|
+
export const list = (HELPERS) => Redis.script((prefix, sourcesJson, order, filtersJson, cursor, limit) => [
|
|
722
|
+
prefix,
|
|
723
|
+
sourcesJson,
|
|
724
|
+
order,
|
|
725
|
+
filtersJson,
|
|
726
|
+
cursor,
|
|
727
|
+
limit
|
|
728
|
+
], {
|
|
676
729
|
numberOfKeys: 0,
|
|
677
730
|
lua: `${HELPERS}
|
|
678
|
-
--
|
|
679
|
-
-- degrades to an empty page instead of a script error.
|
|
680
|
-
local
|
|
681
|
-
|
|
731
|
+
-- Input that Redis's cjson cannot decode (e.g. lone-surrogate escapes in a
|
|
732
|
+
-- filter or key name) degrades to an empty page instead of a script error.
|
|
733
|
+
local okSources, sources = pcall(cjson.decode, ARGV[2])
|
|
734
|
+
local okFilters, filters = pcall(cjson.decode, ARGV[4])
|
|
735
|
+
if not okSources or not okFilters then return '{"items":[],"more":false}' end
|
|
736
|
+
local desc = ARGV[3] == "desc"
|
|
682
737
|
local stateSet = nil
|
|
683
738
|
if filters.states ~= nil then
|
|
684
739
|
stateSet = {}
|
|
685
740
|
for _, s in ipairs(filters.states) do stateSet[s] = true end
|
|
686
741
|
end
|
|
687
742
|
local cursorAt, cursorId = nil, nil
|
|
688
|
-
if ARGV[
|
|
689
|
-
local split = string.find(ARGV[
|
|
743
|
+
if ARGV[5] ~= "" then
|
|
744
|
+
local split = string.find(ARGV[5], ":", 1, true)
|
|
690
745
|
if split ~= nil then
|
|
691
|
-
cursorAt = tonumber(string.sub(ARGV[
|
|
692
|
-
cursorId = string.sub(ARGV[
|
|
746
|
+
cursorAt = tonumber(string.sub(ARGV[5], 1, split - 1))
|
|
747
|
+
cursorId = string.sub(ARGV[5], split + 1)
|
|
693
748
|
end
|
|
694
749
|
if cursorAt == nil then cursorId = nil end
|
|
695
750
|
end
|
|
696
|
-
local limit = tonumber(ARGV[
|
|
751
|
+
local limit = tonumber(ARGV[6])
|
|
752
|
+
-- One buffered iterator per source. offset counts consumed members still in
|
|
753
|
+
-- the zset — a self-healed orphan decrements it, because its ZREM shifts
|
|
754
|
+
-- every later rank down by one — so refills stay exact under in-script
|
|
755
|
+
-- removals. The score bound is the cursor score (inclusive; the per-item
|
|
756
|
+
-- check below excludes ids at or before the cursor within that score).
|
|
757
|
+
local iters = {}
|
|
758
|
+
for i = 1, #sources do
|
|
759
|
+
iters[i] = { key = sources[i], offset = 0, buf = {}, pos = 1, exhausted = false }
|
|
760
|
+
end
|
|
761
|
+
local function head(it)
|
|
762
|
+
if it.pos > #it.buf then
|
|
763
|
+
if it.exhausted then return nil end
|
|
764
|
+
if desc then
|
|
765
|
+
it.buf = redis.call("ZREVRANGEBYSCORE", it.key, cursorAt == nil and "+inf" or fmt(cursorAt), "-inf",
|
|
766
|
+
"WITHSCORES", "LIMIT", it.offset, 100)
|
|
767
|
+
else
|
|
768
|
+
it.buf = redis.call("ZRANGEBYSCORE", it.key, cursorAt == nil and "-inf" or fmt(cursorAt), "+inf",
|
|
769
|
+
"WITHSCORES", "LIMIT", it.offset, 100)
|
|
770
|
+
end
|
|
771
|
+
it.pos = 1
|
|
772
|
+
if #it.buf == 0 then
|
|
773
|
+
it.exhausted = true
|
|
774
|
+
return nil
|
|
775
|
+
end
|
|
776
|
+
end
|
|
777
|
+
return it.buf[it.pos], tonumber(it.buf[it.pos + 1])
|
|
778
|
+
end
|
|
697
779
|
local items = {}
|
|
698
|
-
local
|
|
699
|
-
local max = cursorAt == nil and "+inf" or fmt(cursorAt)
|
|
700
|
-
local offset = 0
|
|
780
|
+
local more = false
|
|
701
781
|
while true do
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
local at =
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
782
|
+
-- The best head across sources: (score, id) in the requested direction (a
|
|
783
|
+
-- score-tied range comes back in member-lex order, so ids line up too).
|
|
784
|
+
local best, bestId, bestAt = nil, nil, nil
|
|
785
|
+
for i = 1, #iters do
|
|
786
|
+
local id, at = head(iters[i])
|
|
787
|
+
if id ~= nil then
|
|
788
|
+
local wins = best == nil
|
|
789
|
+
if not wins then
|
|
790
|
+
if at ~= bestAt then
|
|
791
|
+
wins = (desc and at > bestAt) or (not desc and at < bestAt)
|
|
792
|
+
else
|
|
793
|
+
wins = (desc and id > bestId) or (not desc and id < bestId)
|
|
794
|
+
end
|
|
795
|
+
end
|
|
796
|
+
if wins then
|
|
797
|
+
best, bestId, bestAt = iters[i], id, at
|
|
798
|
+
end
|
|
799
|
+
end
|
|
800
|
+
end
|
|
801
|
+
if best == nil then break end
|
|
802
|
+
best.pos = best.pos + 2
|
|
803
|
+
best.offset = best.offset + 1
|
|
804
|
+
-- Exclusive keyset cursor: skip up to and including the cursor position.
|
|
805
|
+
local past = cursorAt == nil
|
|
806
|
+
or (desc and (bestAt < cursorAt or (bestAt == cursorAt and bestId < cursorId)))
|
|
807
|
+
or (not desc and (bestAt > cursorAt or (bestAt == cursorAt and bestId > cursorId)))
|
|
808
|
+
if past then
|
|
809
|
+
local jk = jobKey(bestId)
|
|
810
|
+
if redis.call("EXISTS", jk) == 0 then
|
|
811
|
+
-- Orphaned index member (hash removed out of band): self-heal.
|
|
812
|
+
redis.call("ZREM", best.key, bestId)
|
|
813
|
+
best.offset = best.offset - 1
|
|
814
|
+
else
|
|
710
815
|
local matches = true
|
|
711
816
|
if filters.queue ~= nil and redis.call("HGET", jk, "queue") ~= filters.queue then matches = false end
|
|
712
817
|
if matches and filters.name ~= nil and redis.call("HGET", jk, "name") ~= filters.name then matches = false end
|
|
@@ -726,22 +831,66 @@ while true do
|
|
|
726
831
|
end
|
|
727
832
|
if matches then
|
|
728
833
|
if #items >= limit then
|
|
729
|
-
|
|
834
|
+
more = true
|
|
730
835
|
break
|
|
731
836
|
end
|
|
732
837
|
items[#items + 1] = redis.call("HGETALL", jk)
|
|
733
838
|
end
|
|
734
839
|
end
|
|
735
840
|
end
|
|
736
|
-
if moreMatches then break end
|
|
737
|
-
offset = offset + 100
|
|
738
841
|
end
|
|
739
842
|
if #items == 0 then return '{"items":[],"more":false}' end
|
|
740
|
-
return cjson.encode({ items = items, more =
|
|
843
|
+
return cjson.encode({ items = items, more = more })
|
|
844
|
+
`
|
|
845
|
+
}).withReturnType();
|
|
846
|
+
/**
|
|
847
|
+
* indexMembers(prefix, kind, idsJson) -> "1"
|
|
848
|
+
*
|
|
849
|
+
* Index one ZSCAN chunk of `p:all` members during a full rebuild. The driver
|
|
850
|
+
* owns the ZSCAN cursor loop (linear, tie-immune, guaranteed to terminate,
|
|
851
|
+
* and guaranteed to return every element present for the whole scan); this
|
|
852
|
+
* script only does the per-chunk work, so the single-threaded server is
|
|
853
|
+
* never held for the whole keyspace. Re-visited members and rows indexed
|
|
854
|
+
* live by insertJobRow mid-scan are idempotent ZADDs.
|
|
855
|
+
*/
|
|
856
|
+
export const indexMembers = (HELPERS) => Redis.script((prefix, kind, idsJson) => [prefix, kind, idsJson], {
|
|
857
|
+
numberOfKeys: 0,
|
|
858
|
+
lua: `${HELPERS}
|
|
859
|
+
local kind = ARGV[2]
|
|
860
|
+
for _, id in ipairs(cjson.decode(ARGV[3])) do
|
|
861
|
+
indexInto(kind, id)
|
|
862
|
+
end
|
|
863
|
+
return "1"
|
|
864
|
+
`
|
|
865
|
+
}).withReturnType();
|
|
866
|
+
/**
|
|
867
|
+
* indexTailPage(prefix, kind, min, offset, pageSize) -> scanned count
|
|
868
|
+
*
|
|
869
|
+
* One bounded page of the boot-time tail heal: index every `p:all` member
|
|
870
|
+
* with score >= min (the previous marker minus a safety margin). Plain
|
|
871
|
+
* LIMIT offset paging — tails are small, and a rank-shift skip from a
|
|
872
|
+
* concurrent delete is covered by the margin plus the next boot's heal.
|
|
873
|
+
*/
|
|
874
|
+
export const indexTailPage = (HELPERS) => Redis.script((prefix, kind, min, offset, pageSize) => [
|
|
875
|
+
prefix,
|
|
876
|
+
kind,
|
|
877
|
+
min,
|
|
878
|
+
offset,
|
|
879
|
+
pageSize
|
|
880
|
+
], {
|
|
881
|
+
numberOfKeys: 0,
|
|
882
|
+
lua: `${HELPERS}
|
|
883
|
+
local kind = ARGV[2]
|
|
884
|
+
local batch = redis.call("ZRANGEBYSCORE", prefix .. ":all", ARGV[3], "+inf",
|
|
885
|
+
"LIMIT", tonumber(ARGV[4]), tonumber(ARGV[5]))
|
|
886
|
+
for _, id in ipairs(batch) do
|
|
887
|
+
indexInto(kind, id)
|
|
888
|
+
end
|
|
889
|
+
return tostring(#batch)
|
|
741
890
|
`
|
|
742
891
|
}).withReturnType();
|
|
743
892
|
/** counts(prefix) -> HGETALL pairs of p:counts. */
|
|
744
|
-
export const counts = Redis.script((prefix) => [prefix], {
|
|
893
|
+
export const counts = (HELPERS) => Redis.script((prefix) => [prefix], {
|
|
745
894
|
numberOfKeys: 0,
|
|
746
895
|
lua: `${HELPERS}
|
|
747
896
|
local pairs_ = redis.call("HGETALL", prefix .. ":counts")
|
|
@@ -750,7 +899,7 @@ return cjson.encode(pairs_)
|
|
|
750
899
|
`
|
|
751
900
|
}).withReturnType();
|
|
752
901
|
/** remove(prefix, id) -> removed boolean (active/waiting-children refused). */
|
|
753
|
-
export const remove = Redis.script((prefix, id) => [prefix, id], {
|
|
902
|
+
export const remove = (HELPERS) => Redis.script((prefix, id) => [prefix, id], {
|
|
754
903
|
numberOfKeys: 0,
|
|
755
904
|
lua: `${HELPERS}
|
|
756
905
|
local id = ARGV[2]
|
|
@@ -764,7 +913,7 @@ return "1"
|
|
|
764
913
|
`
|
|
765
914
|
}).withReturnType();
|
|
766
915
|
/** retry(prefix, id, now) — failed -> waiting with a fresh budget. */
|
|
767
|
-
export const retry = Redis.script((prefix, id, now) => [prefix, id, now], {
|
|
916
|
+
export const retry = (HELPERS) => Redis.script((prefix, id, now) => [prefix, id, now], {
|
|
768
917
|
numberOfKeys: 0,
|
|
769
918
|
lua: `${HELPERS}
|
|
770
919
|
local id = ARGV[2]
|
|
@@ -795,7 +944,7 @@ return '{"ok":true,"queue":' .. cjson.encode(queue) .. '}'
|
|
|
795
944
|
* handing them to the cascade sweep); active gets the cancel-request flag;
|
|
796
945
|
* terminal states are refused.
|
|
797
946
|
*/
|
|
798
|
-
export const cancel = Redis.script((prefix, id, now) => [prefix, id, now], {
|
|
947
|
+
export const cancel = (HELPERS) => Redis.script((prefix, id, now) => [prefix, id, now], {
|
|
799
948
|
numberOfKeys: 0,
|
|
800
949
|
lua: `${HELPERS}
|
|
801
950
|
local id = ARGV[2]
|
|
@@ -831,7 +980,7 @@ return '{"ok":true}'
|
|
|
831
980
|
`
|
|
832
981
|
}).withReturnType();
|
|
833
982
|
/** promote(prefix, id, now) — delayed -> waiting now. */
|
|
834
|
-
export const promote = Redis.script((prefix, id, now) => [prefix, id, now], {
|
|
983
|
+
export const promote = (HELPERS) => Redis.script((prefix, id, now) => [prefix, id, now], {
|
|
835
984
|
numberOfKeys: 0,
|
|
836
985
|
lua: `${HELPERS}
|
|
837
986
|
local id = ARGV[2]
|
|
@@ -859,7 +1008,7 @@ return '{"ok":true,"queue":' .. cjson.encode(queue) .. '}'
|
|
|
859
1008
|
* digits) and empty arrays ({}). An unchanged cadence (cron/tz/everyMs)
|
|
860
1009
|
* preserves the stored nextRunAt.
|
|
861
1010
|
*/
|
|
862
|
-
export const upsertSchedule = Redis.script((prefix, key, jobName, queue, cron, tz, everyMs, payloadJson, metadataJson, priority, attemptsMax, backoffJson, keepJson, timeoutMs, group, nextRunAt) => [
|
|
1011
|
+
export const upsertSchedule = (HELPERS) => Redis.script((prefix, key, jobName, queue, cron, tz, everyMs, payloadJson, metadataJson, priority, attemptsMax, backoffJson, keepJson, timeoutMs, group, nextRunAt) => [
|
|
863
1012
|
prefix,
|
|
864
1013
|
key,
|
|
865
1014
|
jobName,
|
|
@@ -903,7 +1052,7 @@ return '{"ok":true}'
|
|
|
903
1052
|
`
|
|
904
1053
|
}).withReturnType();
|
|
905
1054
|
/** removeSchedule(prefix, key) -> existed boolean. */
|
|
906
|
-
export const removeSchedule = Redis.script((prefix, key) => [prefix, key], {
|
|
1055
|
+
export const removeSchedule = (HELPERS) => Redis.script((prefix, key) => [prefix, key], {
|
|
907
1056
|
numberOfKeys: 0,
|
|
908
1057
|
lua: `${HELPERS}
|
|
909
1058
|
local removed = redis.call("ZREM", prefix .. ":schedules", ARGV[2])
|
|
@@ -912,7 +1061,7 @@ return tostring(removed)
|
|
|
912
1061
|
`
|
|
913
1062
|
}).withReturnType();
|
|
914
1063
|
/** listSchedules(prefix, filtersJson) ordered by nextRunAt ascending. */
|
|
915
|
-
export const listSchedules = Redis.script((prefix, filtersJson) => [prefix, filtersJson], {
|
|
1064
|
+
export const listSchedules = (HELPERS) => Redis.script((prefix, filtersJson) => [prefix, filtersJson], {
|
|
916
1065
|
numberOfKeys: 0,
|
|
917
1066
|
lua: `${HELPERS}
|
|
918
1067
|
local filters = cjson.decode(ARGV[2])
|
|
@@ -933,7 +1082,7 @@ return cjson.encode(out)
|
|
|
933
1082
|
`
|
|
934
1083
|
}).withReturnType();
|
|
935
1084
|
/** dueSchedules(prefix, now) ordered by nextRunAt ascending. */
|
|
936
|
-
export const dueSchedules = Redis.script((prefix, now) => [prefix, now], {
|
|
1085
|
+
export const dueSchedules = (HELPERS) => Redis.script((prefix, now) => [prefix, now], {
|
|
937
1086
|
numberOfKeys: 0,
|
|
938
1087
|
lua: `${HELPERS}
|
|
939
1088
|
local keys = redis.call("ZRANGEBYSCORE", prefix .. ":schedules", "-inf", tonumber(ARGV[2]))
|
|
@@ -946,7 +1095,7 @@ return cjson.encode(out)
|
|
|
946
1095
|
`
|
|
947
1096
|
}).withReturnType();
|
|
948
1097
|
/** advanceSchedule(prefix, key, expectedRunAt, nextRunAt) — conditional CAS. */
|
|
949
|
-
export const advanceSchedule = Redis.script((prefix, key, expectedRunAt, nextRunAt) => [prefix, key, expectedRunAt, nextRunAt], {
|
|
1098
|
+
export const advanceSchedule = (HELPERS) => Redis.script((prefix, key, expectedRunAt, nextRunAt) => [prefix, key, expectedRunAt, nextRunAt], {
|
|
950
1099
|
numberOfKeys: 0,
|
|
951
1100
|
lua: `${HELPERS}
|
|
952
1101
|
local key = ARGV[2]
|
|
@@ -966,7 +1115,7 @@ return "1"
|
|
|
966
1115
|
* in one script, so a stale sweeper can never re-fire a slot — even after
|
|
967
1116
|
* retention pruned the previous slot's job row.
|
|
968
1117
|
*/
|
|
969
|
-
export const tickSchedule = Redis.script((prefix, key, expectedRunAt, nextRunAt, id, name, queue, payloadJson, metadataJson, priority, attemptsMax, backoffJson, keepJson, timeoutMs, traceJson, parentJson, delayMs, now) => [
|
|
1118
|
+
export const tickSchedule = (HELPERS) => Redis.script((prefix, key, expectedRunAt, nextRunAt, id, name, queue, payloadJson, metadataJson, priority, attemptsMax, backoffJson, keepJson, timeoutMs, traceJson, parentJson, delayMs, now) => [
|
|
970
1119
|
prefix,
|
|
971
1120
|
key,
|
|
972
1121
|
expectedRunAt,
|
|
@@ -1010,7 +1159,7 @@ return "1"
|
|
|
1010
1159
|
* backoffJson, keepJson, timeoutMs, traceJson, parentJson, delayMs. Plain
|
|
1011
1160
|
* (non-dedup) items only — the caller routes dedup items through \`enqueue\`.
|
|
1012
1161
|
*/
|
|
1013
|
-
export const enqueueMany = Redis.script((prefix, now, count, items) => [prefix, now, count, ...items], {
|
|
1162
|
+
export const enqueueMany = (HELPERS) => Redis.script((prefix, now, count, items) => [prefix, now, count, ...items], {
|
|
1014
1163
|
numberOfKeys: 0,
|
|
1015
1164
|
lua: `${HELPERS}
|
|
1016
1165
|
local now = tonumber(ARGV[2])
|
|
@@ -1061,7 +1210,7 @@ return "[" .. table.concat(out, ",") .. "]"
|
|
|
1061
1210
|
* min(store ceiling, per-row keep.age). The caller advances the offset by
|
|
1062
1211
|
* (scanned - deleted) and stops when a page comes back short.
|
|
1063
1212
|
*/
|
|
1064
|
-
export const sweepState = Redis.script((prefix, state, ttlMs, limit, offset, now) => [
|
|
1213
|
+
export const sweepState = (HELPERS) => Redis.script((prefix, state, ttlMs, limit, offset, now) => [
|
|
1065
1214
|
prefix,
|
|
1066
1215
|
state,
|
|
1067
1216
|
ttlMs,
|
|
@@ -1124,7 +1273,7 @@ return cjson.encode({ scanned = scanned, deleted = deleted })
|
|
|
1124
1273
|
* caller loops until 0): expired windows, then pending pointers (+inf)
|
|
1125
1274
|
* whose job is gone or terminal.
|
|
1126
1275
|
*/
|
|
1127
|
-
export const sweepDedupes = Redis.script((prefix, limit, now) => [prefix, limit, now], {
|
|
1276
|
+
export const sweepDedupes = (HELPERS) => Redis.script((prefix, limit, now) => [prefix, limit, now], {
|
|
1128
1277
|
numberOfKeys: 0,
|
|
1129
1278
|
lua: `${HELPERS}
|
|
1130
1279
|
local limit = tonumber(ARGV[2])
|
|
@@ -1182,7 +1331,7 @@ return tostring(migrated + #expired + removedPending)
|
|
|
1182
1331
|
* raced cancelRequested wins: the parent settles cancelled and its pending
|
|
1183
1332
|
* rows flip to cancelled (cascade work for the flow sweeper).
|
|
1184
1333
|
*/
|
|
1185
|
-
export const fanOut = Redis.script((prefix, id, token, final, clearStaged, failFast, total, now, count, items) => [prefix, id, token, final, clearStaged, failFast, total, now, count, ...items], {
|
|
1334
|
+
export const fanOut = (HELPERS) => Redis.script((prefix, id, token, final, clearStaged, failFast, total, now, count, items) => [prefix, id, token, final, clearStaged, failFast, total, now, count, ...items], {
|
|
1186
1335
|
numberOfKeys: 0,
|
|
1187
1336
|
lua: `${HELPERS}
|
|
1188
1337
|
local id = ARGV[2]
|
|
@@ -1281,7 +1430,7 @@ return '{"ok":true,"wake":true,"queue":' .. cjson.encode(queue) .. '}'
|
|
|
1281
1430
|
* transition, so its own report goes to the outbox here), else pending==0
|
|
1282
1431
|
* resumes the parent runnable at the flow's LAST applied report's index.
|
|
1283
1432
|
*/
|
|
1284
|
-
export const recordChildResults = Redis.script((prefix, now, count, items) => [prefix, now, count, ...items], {
|
|
1433
|
+
export const recordChildResults = (HELPERS) => Redis.script((prefix, now, count, items) => [prefix, now, count, ...items], {
|
|
1285
1434
|
numberOfKeys: 0,
|
|
1286
1435
|
lua: `${HELPERS}
|
|
1287
1436
|
local nowStr = ARGV[2]
|
|
@@ -1384,7 +1533,7 @@ return '{"results":[' .. table.concat(out, ",") .. '],"wakes":' .. wakesJson ..
|
|
|
1384
1533
|
* Items are positional HMGET tuples (the field list must stay in lockstep
|
|
1385
1534
|
* with the driver's `toChildRecord`) — the full spec JSON stays server-side.
|
|
1386
1535
|
*/
|
|
1387
|
-
export const listChildResults = Redis.script((prefix, flowId, cursor, limit) => [prefix, flowId, cursor, limit], {
|
|
1536
|
+
export const listChildResults = (HELPERS) => Redis.script((prefix, flowId, cursor, limit) => [prefix, flowId, cursor, limit], {
|
|
1388
1537
|
numberOfKeys: 0,
|
|
1389
1538
|
lua: `${HELPERS}
|
|
1390
1539
|
local flowId = ARGV[2]
|
|
@@ -1421,7 +1570,7 @@ return cjson.encode({ items = items, more = #keys > limit })
|
|
|
1421
1570
|
* Spec JSON strings pass through untouched — the script never cjson-decodes
|
|
1422
1571
|
* stored payloads (precision, lone surrogates).
|
|
1423
1572
|
*/
|
|
1424
|
-
export const flowSweepWork = Redis.script((prefix, pendingAgeMs, limit, now) => [prefix, pendingAgeMs, limit, now], {
|
|
1573
|
+
export const flowSweepWork = (HELPERS) => Redis.script((prefix, pendingAgeMs, limit, now) => [prefix, pendingAgeMs, limit, now], {
|
|
1425
1574
|
numberOfKeys: 0,
|
|
1426
1575
|
lua: `${HELPERS}
|
|
1427
1576
|
local pendingAgeMs = tonumber(ARGV[2])
|
|
@@ -1497,7 +1646,7 @@ return cjson.encode({ reconcile = reconcile, cascade = cascade })
|
|
|
1497
1646
|
* markChildrenCascaded(prefix, flowId, childKeysJson) — idempotent; unknown
|
|
1498
1647
|
* keys are ignored (their index members are still cleared).
|
|
1499
1648
|
*/
|
|
1500
|
-
export const markChildrenCascaded = Redis.script((prefix, flowId, childKeysJson) => [prefix, flowId, childKeysJson], {
|
|
1649
|
+
export const markChildrenCascaded = (HELPERS) => Redis.script((prefix, flowId, childKeysJson) => [prefix, flowId, childKeysJson], {
|
|
1501
1650
|
numberOfKeys: 0,
|
|
1502
1651
|
lua: `${HELPERS}
|
|
1503
1652
|
local flowId = ARGV[2]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/redis/scripts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/redis/scripts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAenD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAoB,EAAU,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqPvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,EAAE,GACtE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,EACzE;;;;;;;CAOC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACtD,CACE,MAAc,EACd,MAAc,EACd,EAAU,EACV,IAAY,EACZ,KAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,QAAgB,EAChB,WAAmB,EACnB,WAAmB,EACnB,QAAgB,EAChB,SAAiB,EACjB,OAAe,EACf,GAAW,EACX,SAAiB,EACjB,WAAmB,EACnB,YAAoB,EACpB,aAAqB,EACrB,SAAiB,EACjB,UAAkB,EAClB,EAAE,CAAC;IACH,MAAM;IACN,MAAM;IACN,EAAE;IACF,IAAI;IACJ,KAAK;IACL,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,WAAW;IACX,WAAW;IACX,QAAQ;IACR,SAAS;IACT,OAAO;IACP,GAAG;IACH,SAAS;IACT,WAAW;IACX,YAAY;IACZ,aAAa;IACb,SAAS;IACT,UAAU;CACX,EACD;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACpD,CAAC,MAAc,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAa,EAAE,cAAsB,EAAE,GAAW,EAAE,EAAE,CAAC;IACxG,MAAM;IACN,KAAK;IACL,SAAS;IACT,KAAK;IACL,cAAc;IACd,GAAG;CACJ,EACD;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAClD,CAAC,MAAc,EAAE,EAAU,EAAE,KAAa,EAAE,UAAkB,EAAE,QAAgB,EAAE,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC;IACjH,MAAM;IACN,EAAE;IACF,KAAK;IACL,UAAU;IACV,QAAQ;IACR,OAAO;IACP,GAAG;CACJ,EACD;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACtD,CAAC,MAAc,EAAE,EAAU,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EACpF;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;CAsBlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC1D,CAAC,MAAc,EAAE,SAAiB,EAAE,UAAkB,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,EAC5G;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;CAiBlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC7D,CAAC,MAAc,EAAE,eAAuB,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,EACxF;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ClB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B,sEAAsE;AACtE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACrD,CAAC,MAAc,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAC5C;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;CAIlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CACtC,KAAK,CAAC,MAAM,CACV,CAAC,MAAc,EAAE,WAAmB,EAAE,KAAa,EAAE,WAAmB,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE,CAAC;IAC1G,MAAM;IACN,WAAW;IACX,KAAK;IACL,WAAW;IACX,MAAM;IACN,KAAK;CACN,EACD;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHpB;CACI,CACF,CAAC,cAAc,EAAU,CAAA;AAE5B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC3D,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,EAC1E;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;CAMlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC5D,CAAC,MAAc,EAAE,IAAY,EAAE,GAAW,EAAE,MAAc,EAAE,QAAgB,EAAE,EAAE,CAAC;IAC/E,MAAM;IACN,IAAI;IACJ,GAAG;IACH,MAAM;IACN,QAAQ;CACT,EACD;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;CAQlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B,mDAAmD;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACrD,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAC5B;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;CAIlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B,+EAA+E;AAC/E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACrD,CAAC,MAAc,EAAE,EAAU,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAC5C;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;CASlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B,sEAAsE;AACtE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACpD,CAAC,MAAc,EAAE,EAAU,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAC9D;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;CAqBlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACrD,CAAC,MAAc,EAAE,EAAU,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAC9D;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B,yDAAyD;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACtD,CAAC,MAAc,EAAE,EAAU,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAC9D;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;CAelB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC7D,CACE,MAAc,EACd,GAAW,EACX,OAAe,EACf,KAAa,EACb,IAAY,EACZ,EAAU,EACV,OAAe,EACf,WAAmB,EACnB,YAAoB,EACpB,QAAgB,EAChB,WAAmB,EACnB,WAAmB,EACnB,QAAgB,EAChB,SAAiB,EACjB,KAAa,EACb,SAAiB,EACjB,EAAE,CAAC;IACH,MAAM;IACN,GAAG;IACH,OAAO;IACP,KAAK;IACL,IAAI;IACJ,EAAE;IACF,OAAO;IACP,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,WAAW;IACX,WAAW;IACX,QAAQ;IACR,SAAS;IACT,KAAK;IACL,SAAS;CACV,EACD;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;CAsBlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B,sDAAsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC7D,CAAC,MAAc,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9C;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;CAIlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B,yEAAyE;AACzE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC5D,CAAC,MAAc,EAAE,WAAmB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,EAC9D;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;CAgBlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC3D,CAAC,MAAc,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9C;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;CAQlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC9D,CAAC,MAAc,EAAE,GAAW,EAAE,aAAqB,EAAE,SAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,EAClH;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;CAQlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC3D,CACE,MAAc,EACd,GAAW,EACX,aAAqB,EACrB,SAAiB,EACjB,EAAU,EACV,IAAY,EACZ,KAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,QAAgB,EAChB,WAAmB,EACnB,WAAmB,EACnB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,OAAe,EACf,GAAW,EACX,EAAE,CAAC;IACH,MAAM;IACN,GAAG;IACH,aAAa;IACb,SAAS;IACT,EAAE;IACF,IAAI;IACJ,KAAK;IACL,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,WAAW;IACX,WAAW;IACX,QAAQ;IACR,SAAS;IACT,SAAS;IACT,UAAU;IACV,OAAO;IACP,GAAG;CACJ,EACD;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;CAclB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC1D,CAAC,MAAc,EAAE,GAAW,EAAE,KAAa,EAAE,KAA4B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,EAC5G;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyClB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACzD,CAAC,MAAc,EAAE,KAAa,EAAE,KAAa,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,EAAE,CAAC;IAC5F,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,GAAG;CACJ,EACD;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+ClB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC3D,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,EACpE;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmClB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACrD,CACE,MAAc,EACd,EAAU,EACV,KAAa,EACb,KAAa,EACb,WAAmB,EACnB,QAAgB,EAChB,KAAa,EACb,GAAW,EACX,KAAa,EACb,KAA4B,EAC5B,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,EACnF;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ElB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACjE,CAAC,MAAc,EAAE,GAAW,EAAE,KAAa,EAAE,KAA4B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,EAC5G;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6FlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC/D,CAAC,MAAc,EAAE,MAAc,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAClG;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;CAYlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAC5D,CAAC,MAAc,EAAE,YAAoB,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,EACxG;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoElB;CACE,CACF,CAAC,cAAc,EAAU,CAAA;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CACnE,CAAC,MAAc,EAAE,MAAc,EAAE,aAAqB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAC1F;IACE,YAAY,EAAE,CAAC;IACf,GAAG,EAAE,GAAG,OAAO;;;;;;;;;;CAUlB;CACE,CACF,CAAC,cAAc,EAAU,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/testing/conformance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAuB,KAAK,KAAK,EAAU,MAAM,QAAQ,CAAA;AAmChE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,SACxB,MAAM,cACA,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAC/C,
|
|
1
|
+
{"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/testing/conformance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAuB,KAAK,KAAK,EAAU,MAAM,QAAQ,CAAA;AAmChE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,SACxB,MAAM,cACA,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAC/C,IAupFF,CAAA"}
|