@stackbone/cli 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/main.js +8731 -3556
- package/package.json +2 -1
- package/runtime-deps/@stackbone/workflow-world/index.js +66 -66
- package/stackbone-cli-0.2.1.tgz +0 -0
- package/stackbone-cli-0.1.0.tgz +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createRequire as __sbCreateRequire } from 'module'; const require = __sbCreateRequire(import.meta.url);
|
|
2
|
-
var aE=Object.create;var qi=Object.defineProperty;var oE=Object.getOwnPropertyDescriptor;var lE=Object.getOwnPropertyNames;var cE=Object.getPrototypeOf,dE=Object.prototype.hasOwnProperty;var V=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var uE=(r,e)=>()=>(r&&(e=r(r=0)),e);var h=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),pE=(r,e)=>{for(var t in e)qi(r,t,{get:e[t],enumerable:!0})},Vu=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of lE(e))!dE.call(r,i)&&i!==t&&qi(r,i,{get:()=>e[i],enumerable:!(n=oE(e,i))||n.enumerable});return r};var Gu=(r,e,t)=>(t=r!=null?aE(cE(r)):{},Vu(e||!r||!r.__esModule?qi(t,"default",{value:r,enumerable:!0}):t,r)),it=r=>Vu(qi({},"__esModule",{value:!0}),r);var Yu=h((f_,fE)=>{fE.exports={acl:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},append:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},asking:{arity:1,flags:["fast"],keyStart:0,keyStop:0,step:0},auth:{arity:-2,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},bgrewriteaof:{arity:1,flags:["admin","noscript","no_async_loading"],keyStart:0,keyStop:0,step:0},bgsave:{arity:-1,flags:["admin","noscript","no_async_loading"],keyStart:0,keyStop:0,step:0},bitcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},bitfield:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},bitfield_ro:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},bitop:{arity:-4,flags:["write","denyoom"],keyStart:2,keyStop:-1,step:1},bitpos:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},blmove:{arity:6,flags:["write","denyoom","noscript","blocking"],keyStart:1,keyStop:2,step:1},blmpop:{arity:-5,flags:["write","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},blpop:{arity:-3,flags:["write","noscript","blocking"],keyStart:1,keyStop:-2,step:1},brpop:{arity:-3,flags:["write","noscript","blocking"],keyStart:1,keyStop:-2,step:1},brpoplpush:{arity:4,flags:["write","denyoom","noscript","blocking"],keyStart:1,keyStop:2,step:1},bzmpop:{arity:-5,flags:["write","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},bzpopmax:{arity:-3,flags:["write","noscript","blocking","fast"],keyStart:1,keyStop:-2,step:1},bzpopmin:{arity:-3,flags:["write","noscript","blocking","fast"],keyStart:1,keyStop:-2,step:1},client:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},cluster:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},command:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},config:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},copy:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},dbsize:{arity:1,flags:["readonly","fast"],keyStart:0,keyStop:0,step:0},debug:{arity:-2,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},decr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},decrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},del:{arity:-2,flags:["write"],keyStart:1,keyStop:-1,step:1},discard:{arity:1,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:0,keyStop:0,step:0},dump:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},echo:{arity:2,flags:["fast"],keyStart:0,keyStop:0,step:0},eval:{arity:-3,flags:["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},eval_ro:{arity:-3,flags:["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},evalsha:{arity:-3,flags:["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},evalsha_ro:{arity:-3,flags:["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},exec:{arity:1,flags:["noscript","loading","stale","skip_slowlog"],keyStart:0,keyStop:0,step:0},exists:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},expire:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},expireat:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},expiretime:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},failover:{arity:-1,flags:["admin","noscript","stale"],keyStart:0,keyStop:0,step:0},fcall:{arity:-3,flags:["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},fcall_ro:{arity:-3,flags:["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},flushall:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},flushdb:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},function:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},geoadd:{arity:-5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},geodist:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},geohash:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},geopos:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},georadius:{arity:-6,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},georadius_ro:{arity:-6,flags:["readonly"],keyStart:1,keyStop:1,step:1},georadiusbymember:{arity:-5,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},georadiusbymember_ro:{arity:-5,flags:["readonly"],keyStart:1,keyStop:1,step:1},geosearch:{arity:-7,flags:["readonly"],keyStart:1,keyStop:1,step:1},geosearchstore:{arity:-8,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},get:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getbit:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getdel:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},getex:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},getrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},getset:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hdel:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hello:{arity:-1,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},hexists:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hexpire:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hexpireat:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hexpiretime:{arity:-5,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hget:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hgetall:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hgetdel:{arity:-5,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hgetex:{arity:-5,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hincrbyfloat:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hkeys:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmget:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hpersist:{arity:-5,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hpexpire:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hpexpireat:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hpexpiretime:{arity:-5,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hpttl:{arity:-5,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hrandfield:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hscan:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},hset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hsetex:{arity:-6,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hsetnx:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hstrlen:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},httl:{arity:-5,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hvals:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},incr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrbyfloat:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},info:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},keys:{arity:2,flags:["readonly"],keyStart:0,keyStop:0,step:0},lastsave:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},latency:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},lcs:{arity:-3,flags:["readonly"],keyStart:1,keyStop:2,step:1},lindex:{arity:3,flags:["readonly"],keyStart:1,keyStop:1,step:1},linsert:{arity:5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},llen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},lmove:{arity:5,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},lmpop:{arity:-4,flags:["write","movablekeys"],keyStart:0,keyStop:0,step:0},lolwut:{arity:-1,flags:["readonly","fast"],keyStart:0,keyStop:0,step:0},lpop:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},lpos:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},lpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},lrem:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},lset:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},ltrim:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},memory:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},mget:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},migrate:{arity:-6,flags:["write","movablekeys"],keyStart:3,keyStop:3,step:1},module:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},monitor:{arity:1,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},move:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},mset:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},msetnx:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},multi:{arity:1,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:0,keyStop:0,step:0},object:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},persist:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpire:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpireat:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpiretime:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},pfadd:{arity:-2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},pfcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},pfdebug:{arity:3,flags:["write","denyoom","admin"],keyStart:2,keyStop:2,step:1},pfmerge:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},pfselftest:{arity:1,flags:["admin"],keyStart:0,keyStop:0,step:0},ping:{arity:-1,flags:["fast"],keyStart:0,keyStop:0,step:0},psetex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},psubscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},psync:{arity:-3,flags:["admin","noscript","no_async_loading","no_multi"],keyStart:0,keyStop:0,step:0},pttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},publish:{arity:3,flags:["pubsub","loading","stale","fast"],keyStart:0,keyStop:0,step:0},pubsub:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},punsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},quit:{arity:-1,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},randomkey:{arity:1,flags:["readonly"],keyStart:0,keyStop:0,step:0},readonly:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},readwrite:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},rename:{arity:3,flags:["write"],keyStart:1,keyStop:2,step:1},renamenx:{arity:3,flags:["write","fast"],keyStart:1,keyStop:2,step:1},replconf:{arity:-1,flags:["admin","noscript","loading","stale","allow_busy"],keyStart:0,keyStop:0,step:0},replicaof:{arity:3,flags:["admin","noscript","stale","no_async_loading"],keyStart:0,keyStop:0,step:0},reset:{arity:1,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},restore:{arity:-4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},"restore-asking":{arity:-4,flags:["write","denyoom","asking"],keyStart:1,keyStop:1,step:1},role:{arity:1,flags:["noscript","loading","stale","fast"],keyStart:0,keyStop:0,step:0},rpop:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},rpoplpush:{arity:3,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},rpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},rpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},sadd:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},save:{arity:1,flags:["admin","noscript","no_async_loading","no_multi"],keyStart:0,keyStop:0,step:0},scan:{arity:-2,flags:["readonly"],keyStart:0,keyStop:0,step:0},scard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},script:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},sdiff:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},sdiffstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},select:{arity:2,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},set:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setbit:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setnx:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},setrange:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},shutdown:{arity:-1,flags:["admin","noscript","loading","stale","no_multi","allow_busy"],keyStart:0,keyStop:0,step:0},sinter:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},sintercard:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},sinterstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},sismember:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},slaveof:{arity:3,flags:["admin","noscript","stale","no_async_loading"],keyStart:0,keyStop:0,step:0},slowlog:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},smembers:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},smismember:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},smove:{arity:4,flags:["write","fast"],keyStart:1,keyStop:2,step:1},sort:{arity:-2,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},sort_ro:{arity:-2,flags:["readonly","movablekeys"],keyStart:1,keyStop:1,step:1},spop:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},spublish:{arity:3,flags:["pubsub","loading","stale","fast"],keyStart:1,keyStop:1,step:1},srandmember:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},srem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},sscan:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},ssubscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:1,keyStop:-1,step:1},strlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},subscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},substr:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},sunion:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},sunionstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},sunsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:1,keyStop:-1,step:1},swapdb:{arity:3,flags:["write","fast"],keyStart:0,keyStop:0,step:0},sync:{arity:1,flags:["admin","noscript","no_async_loading","no_multi"],keyStart:0,keyStop:0,step:0},time:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},touch:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},ttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},type:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},unlink:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:-1,step:1},unsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},unwatch:{arity:1,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:0,keyStop:0,step:0},wait:{arity:3,flags:["noscript"],keyStart:0,keyStop:0,step:0},watch:{arity:-2,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:1,keyStop:-1,step:1},xack:{arity:-4,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xadd:{arity:-5,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},xautoclaim:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xclaim:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xdel:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xdelex:{arity:-5,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xgroup:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},xinfo:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},xlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},xpending:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},xrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},xread:{arity:-4,flags:["readonly","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},xreadgroup:{arity:-7,flags:["write","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},xrevrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},xsetid:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},xtrim:{arity:-4,flags:["write"],keyStart:1,keyStop:1,step:1},zadd:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zcard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zdiff:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zdiffstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},zincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zinter:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zintercard:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zinterstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},zlexcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zmpop:{arity:-4,flags:["write","movablekeys"],keyStart:0,keyStop:0,step:0},zmscore:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zpopmax:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zpopmin:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zrandmember:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangestore:{arity:-5,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},zrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zrem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zremrangebylex:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyrank:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyscore:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zrevrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zscan:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},zscore:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zunion:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zunionstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1}}});var Pr=h(ct=>{"use strict";var hE=ct&&ct.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ct,"__esModule",{value:!0});ct.getKeyIndexes=ct.hasFlag=ct.exists=ct.list=void 0;var Ji=hE(Yu());ct.list=Object.keys(Ji.default);var tl={};ct.list.forEach(r=>{tl[r]=Ji.default[r].flags.reduce(function(e,t){return e[t]=!0,e},{})});function yE(r,e){return r=e?.caseInsensitive?String(r).toLowerCase():r,!!Ji.default[r]}ct.exists=yE;function mE(r,e,t){if(r=t?.nameCaseInsensitive?String(r).toLowerCase():r,!tl[r])throw new Error("Unknown command "+r);return!!tl[r][e]}ct.hasFlag=mE;function bE(r,e,t){r=t?.nameCaseInsensitive?String(r).toLowerCase():r;let n=Ji.default[r];if(!n)throw new Error("Unknown command "+r);if(!Array.isArray(e))throw new Error("Expect args to be an array");let i=[],s=!!(t&&t.parseExternalKey),a=(l,c)=>{let d=[],u=Number(l[c]);for(let f=0;f<u;f++)d.push(f+c+1);return d},o=(l,c,d)=>{for(let u=c;u<l.length-1;u+=1)if(String(l[u]).toLowerCase()===d.toLowerCase())return u+1;return null};switch(r){case"zunionstore":case"zinterstore":case"zdiffstore":i.push(0,...a(e,1));break;case"eval":case"evalsha":case"eval_ro":case"evalsha_ro":case"fcall":case"fcall_ro":case"blmpop":case"bzmpop":i.push(...a(e,1));break;case"sintercard":case"lmpop":case"zunion":case"zinter":case"zmpop":case"zintercard":case"zdiff":{i.push(...a(e,0));break}case"georadius":{i.push(0);let l=o(e,5,"STORE");l&&i.push(l);let c=o(e,5,"STOREDIST");c&&i.push(c);break}case"georadiusbymember":{i.push(0);let l=o(e,4,"STORE");l&&i.push(l);let c=o(e,4,"STOREDIST");c&&i.push(c);break}case"sort":case"sort_ro":i.push(0);for(let l=1;l<e.length-1;l++){let c=e[l];if(typeof c!="string")continue;let d=c.toUpperCase();d==="GET"?(l+=1,c=e[l],c!=="#"&&(s?i.push([l,Bu(c)]):i.push(l))):d==="BY"?(l+=1,s?i.push([l,Bu(e[l])]):i.push(l)):d==="STORE"&&(l+=1,i.push(l))}break;case"migrate":if(e[2]==="")for(let l=5;l<e.length-1;l++){let c=e[l];if(typeof c=="string"&&c.toUpperCase()==="KEYS"){for(let d=l+1;d<e.length;d++)i.push(d);break}}else i.push(2);break;case"xreadgroup":case"xread":for(let l=r==="xread"?0:3;l<e.length-1;l++)if(String(e[l]).toUpperCase()==="STREAMS"){for(let c=l+1;c<=l+(e.length-1-l)/2;c++)i.push(c);break}break;default:if(n.step>0){let l=n.keyStart-1,c=n.keyStop>0?n.keyStop:e.length+n.keyStop+1;for(let d=l;d<c;d+=n.step)i.push(d)}break}return i}ct.getKeyIndexes=bE;function Bu(r){typeof r!="string"&&(r=String(r));let e=r.indexOf("->");return e===-1?r.length:e}});var Wu=h(ur=>{"use strict";Object.defineProperty(ur,"__esModule",{value:!0});ur.tryCatch=ur.errorObj=void 0;ur.errorObj={e:{}};var rl;function gE(r,e){try{let t=rl;return rl=null,t.apply(this,arguments)}catch(t){return ur.errorObj.e=t,ur.errorObj}}function vE(r){return rl=r,gE}ur.tryCatch=vE});var pr=h(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var hn=Wu();function Uu(r){setTimeout(function(){throw r},0)}function KE(r,e,t){return typeof e=="function"&&r.then(n=>{let i;t!==void 0&&Object(t).spread&&Array.isArray(n)?i=hn.tryCatch(e).apply(void 0,[null].concat(n)):i=n===void 0?hn.tryCatch(e)(null):hn.tryCatch(e)(null,n),i===hn.errorObj&&Uu(i.e)},n=>{if(!n){let s=new Error(n+"");Object.assign(s,{cause:n}),n=s}let i=hn.tryCatch(e)(n);i===hn.errorObj&&Uu(i.e)}),r}nl.default=KE});var Hu=h((b_,$u)=>{"use strict";var zu=V("assert"),Hn=V("util");function yn(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Hn.inherits(yn,Error);Object.defineProperty(yn.prototype,"name",{value:"RedisError",configurable:!0,writable:!0});function il(r,e,t){zu(e),zu.strictEqual(typeof t,"number"),Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0});let n=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=n,this.offset=t,this.buffer=e}Hn.inherits(il,yn);Object.defineProperty(il.prototype,"name",{value:"ParserError",configurable:!0,writable:!0});function sl(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0});let e=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=e}Hn.inherits(sl,yn);Object.defineProperty(sl.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0});function Li(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Hn.inherits(Li,yn);Object.defineProperty(Li.prototype,"name",{value:"AbortError",configurable:!0,writable:!0});function al(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Hn.inherits(al,Li);Object.defineProperty(al.prototype,"name",{value:"InterruptError",configurable:!0,writable:!0});$u.exports={RedisError:yn,ParserError:il,ReplyError:sl,AbortError:Li,InterruptError:al}});var Xu=h((g_,Zu)=>{"use strict";var Qu=V("assert"),mn=class extends Error{get name(){return this.constructor.name}},ol=class extends mn{constructor(e,t,n){Qu(t),Qu.strictEqual(typeof n,"number");let i=Error.stackTraceLimit;Error.stackTraceLimit=2,super(e),Error.stackTraceLimit=i,this.offset=n,this.buffer=t}get name(){return this.constructor.name}},ll=class extends mn{constructor(e){let t=Error.stackTraceLimit;Error.stackTraceLimit=2,super(e),Error.stackTraceLimit=t}get name(){return this.constructor.name}},Fi=class extends mn{get name(){return this.constructor.name}},cl=class extends Fi{get name(){return this.constructor.name}};Zu.exports={RedisError:mn,ParserError:ol,ReplyError:ll,AbortError:Fi,InterruptError:cl}});var Nr=h((v_,ep)=>{"use strict";var SE=process.version.charCodeAt(1)<55&&process.version.charCodeAt(2)===46?Hu():Xu();ep.exports=SE});var Qn=h((K_,dl)=>{var tp=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920],EE=function(e){for(var t,n=0,i=0,s=[],a=e.length;n<a;n++)t=e.charCodeAt(n),t<128?s[i++]=t:t<2048?(s[i++]=t>>6|192,s[i++]=t&63|128):(t&64512)===55296&&n+1<e.length&&(e.charCodeAt(n+1)&64512)===56320?(t=65536+((t&1023)<<10)+(e.charCodeAt(++n)&1023),s[i++]=t>>18|240,s[i++]=t>>12&63|128,s[i++]=t>>6&63|128,s[i++]=t&63|128):(s[i++]=t>>12|224,s[i++]=t>>6&63|128,s[i++]=t&63|128);return s},rp=dl.exports=function(e){for(var t,n=0,i=-1,s=0,a=0,o=typeof e=="string"?EE(e):e,l=o.length;n<l;){if(t=o[n++],i===-1)t===123&&(i=n);else if(t!==125)a=tp[(t^a>>8)&255]^a<<8;else if(n-1!==i)return a&16383;s=tp[(t^s>>8)&255]^s<<8}return s&16383};dl.exports.generateMulti=function(e){for(var t=1,n=e.length,i=rp(e[0]);t<n;)if(rp(e[t++])!==i)return-1;return i}});var dp=h((S_,cp)=>{var ip=9007199254740991,kE="[object Arguments]",IE="[object Function]",xE="[object GeneratorFunction]",wE=/^(?:0|[1-9]\d*)$/;function sp(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}function jE(r,e){for(var t=-1,n=Array(r);++t<r;)n[t]=e(t);return n}var Zn=Object.prototype,Xn=Zn.hasOwnProperty,ap=Zn.toString,TE=Zn.propertyIsEnumerable,np=Math.max;function AE(r,e){var t=JE(r)||qE(r)?jE(r.length,String):[],n=t.length,i=!!n;for(var s in r)(e||Xn.call(r,s))&&!(i&&(s=="length"||lp(s,n)))&&t.push(s);return t}function DE(r,e,t,n){return r===void 0||ul(r,Zn[t])&&!Xn.call(n,t)?e:r}function OE(r,e,t){var n=r[e];(!(Xn.call(r,e)&&ul(n,t))||t===void 0&&!(e in r))&&(r[e]=t)}function RE(r){if(!fl(r))return NE(r);var e=PE(r),t=[];for(var n in r)n=="constructor"&&(e||!Xn.call(r,n))||t.push(n);return t}function op(r,e){return e=np(e===void 0?r.length-1:e,0),function(){for(var t=arguments,n=-1,i=np(t.length-e,0),s=Array(i);++n<i;)s[n]=t[e+n];n=-1;for(var a=Array(e+1);++n<e;)a[n]=t[n];return a[e]=s,sp(r,this,a)}}function CE(r,e,t,n){t||(t={});for(var i=-1,s=e.length;++i<s;){var a=e[i],o=n?n(t[a],r[a],a,t,r):void 0;OE(t,a,o===void 0?r[a]:o)}return t}function _E(r){return op(function(e,t){var n=-1,i=t.length,s=i>1?t[i-1]:void 0,a=i>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(i--,s):void 0,a&&ME(t[0],t[1],a)&&(s=i<3?void 0:s,i=1),e=Object(e);++n<i;){var o=t[n];o&&r(e,o,n,s)}return e})}function lp(r,e){return e=e??ip,!!e&&(typeof r=="number"||wE.test(r))&&r>-1&&r%1==0&&r<e}function ME(r,e,t){if(!fl(t))return!1;var n=typeof e;return(n=="number"?pl(t)&&lp(e,t.length):n=="string"&&e in t)?ul(t[e],r):!1}function PE(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||Zn;return r===t}function NE(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}function ul(r,e){return r===e||r!==r&&e!==e}function qE(r){return LE(r)&&Xn.call(r,"callee")&&(!TE.call(r,"callee")||ap.call(r)==kE)}var JE=Array.isArray;function pl(r){return r!=null&&VE(r.length)&&!FE(r)}function LE(r){return GE(r)&&pl(r)}function FE(r){var e=fl(r)?ap.call(r):"";return e==IE||e==xE}function VE(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ip}function fl(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function GE(r){return!!r&&typeof r=="object"}var YE=_E(function(r,e,t,n){CE(e,WE(e),r,n)}),BE=op(function(r){return r.push(void 0,DE),sp(YE,void 0,r)});function WE(r){return pl(r)?AE(r,!0):RE(r)}cp.exports=BE});var fp=h((E_,pp)=>{var UE=9007199254740991,zE="[object Arguments]",$E="[object Function]",HE="[object GeneratorFunction]",hl=Object.prototype,QE=hl.hasOwnProperty,up=hl.toString,ZE=hl.propertyIsEnumerable;function XE(r){return tk(r)&&QE.call(r,"callee")&&(!ZE.call(r,"callee")||up.call(r)==zE)}function ek(r){return r!=null&&nk(r.length)&&!rk(r)}function tk(r){return sk(r)&&ek(r)}function rk(r){var e=ik(r)?up.call(r):"";return e==$E||e==HE}function nk(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=UE}function ik(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function sk(r){return!!r&&typeof r=="object"}pp.exports=XE});var Vi=h(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.isArguments=fr.defaults=fr.noop=void 0;var ak=dp();fr.defaults=ak;var ok=fp();fr.isArguments=ok;function lk(){}fr.noop=lk});var yp=h((I_,hp)=>{var bn=1e3,gn=bn*60,vn=gn*60,qr=vn*24,ck=qr*7,dk=qr*365.25;hp.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return uk(r);if(t==="number"&&isFinite(r))return e.long?fk(r):pk(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function uk(r){if(r=String(r),!(r.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(e){var t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*dk;case"weeks":case"week":case"w":return t*ck;case"days":case"day":case"d":return t*qr;case"hours":case"hour":case"hrs":case"hr":case"h":return t*vn;case"minutes":case"minute":case"mins":case"min":case"m":return t*gn;case"seconds":case"second":case"secs":case"sec":case"s":return t*bn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function pk(r){var e=Math.abs(r);return e>=qr?Math.round(r/qr)+"d":e>=vn?Math.round(r/vn)+"h":e>=gn?Math.round(r/gn)+"m":e>=bn?Math.round(r/bn)+"s":r+"ms"}function fk(r){var e=Math.abs(r);return e>=qr?Gi(r,e,qr,"day"):e>=vn?Gi(r,e,vn,"hour"):e>=gn?Gi(r,e,gn,"minute"):e>=bn?Gi(r,e,bn,"second"):r+" ms"}function Gi(r,e,t,n){var i=e>=t*1.5;return Math.round(r/t)+" "+n+(i?"s":"")}});var yl=h((x_,mp)=>{function hk(r){t.debug=t,t.default=t,t.coerce=l,t.disable=a,t.enable=i,t.enabled=o,t.humanize=yp(),t.destroy=c,Object.keys(r).forEach(d=>{t[d]=r[d]}),t.names=[],t.skips=[],t.formatters={};function e(d){let u=0;for(let f=0;f<d.length;f++)u=(u<<5)-u+d.charCodeAt(f),u|=0;return t.colors[Math.abs(u)%t.colors.length]}t.selectColor=e;function t(d){let u,f=null,p,y;function g(...E){if(!g.enabled)return;let S=g,x=Number(new Date),C=x-(u||x);S.diff=C,S.prev=u,S.curr=x,u=x,E[0]=t.coerce(E[0]),typeof E[0]!="string"&&E.unshift("%O");let R=0;E[0]=E[0].replace(/%([a-zA-Z%])/g,(k,N)=>{if(k==="%%")return"%";R++;let F=t.formatters[N];if(typeof F=="function"){let O=E[R];k=F.call(S,O),E.splice(R,1),R--}return k}),t.formatArgs.call(S,E),(S.log||t.log).apply(S,E)}return g.namespace=d,g.useColors=t.useColors(),g.color=t.selectColor(d),g.extend=n,g.destroy=t.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==t.namespaces&&(p=t.namespaces,y=t.enabled(d)),y),set:E=>{f=E}}),typeof t.init=="function"&&t.init(g),g}function n(d,u){let f=t(this.namespace+(typeof u>"u"?":":u)+d);return f.log=this.log,f}function i(d){t.save(d),t.namespaces=d,t.names=[],t.skips=[];let u=(typeof d=="string"?d:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of u)f[0]==="-"?t.skips.push(f.slice(1)):t.names.push(f)}function s(d,u){let f=0,p=0,y=-1,g=0;for(;f<d.length;)if(p<u.length&&(u[p]===d[f]||u[p]==="*"))u[p]==="*"?(y=p,g=f,p++):(f++,p++);else if(y!==-1)p=y+1,g++,f=g;else return!1;for(;p<u.length&&u[p]==="*";)p++;return p===u.length}function a(){let d=[...t.names,...t.skips.map(u=>"-"+u)].join(",");return t.enable(""),d}function o(d){for(let u of t.skips)if(s(d,u))return!1;for(let u of t.names)if(s(d,u))return!0;return!1}function l(d){return d instanceof Error?d.stack||d.message:d}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}mp.exports=hk});var bp=h((st,Yi)=>{st.formatArgs=mk;st.save=bk;st.load=gk;st.useColors=yk;st.storage=vk();st.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();st.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function yk(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let r;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(r=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(r[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function mk(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Yi.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(t++,i==="%c"&&(n=t))}),r.splice(n,0,e)}st.log=console.debug||console.log||(()=>{});function bk(r){try{r?st.storage.setItem("debug",r):st.storage.removeItem("debug")}catch{}}function gk(){let r;try{r=st.storage.getItem("debug")||st.storage.getItem("DEBUG")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function vk(){try{return localStorage}catch{}}Yi.exports=yl()(st);var{formatters:Kk}=Yi.exports;Kk.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var vp=h((w_,gp)=>{"use strict";gp.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",n=e.indexOf(t+r),i=e.indexOf("--");return n!==-1&&(i===-1||n<i)}});var Ep=h((j_,Sp)=>{"use strict";var Sk=V("os"),Kp=V("tty"),Kt=vp(),{env:qe}=process,Bi;Kt("no-color")||Kt("no-colors")||Kt("color=false")||Kt("color=never")?Bi=0:(Kt("color")||Kt("colors")||Kt("color=true")||Kt("color=always"))&&(Bi=1);function Ek(){if("FORCE_COLOR"in qe)return qe.FORCE_COLOR==="true"?1:qe.FORCE_COLOR==="false"?0:qe.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(qe.FORCE_COLOR,10),3)}function kk(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function Ik(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=Ek();n!==void 0&&(Bi=n);let i=t?Bi:n;if(i===0)return 0;if(t){if(Kt("color=16m")||Kt("color=full")||Kt("color=truecolor"))return 3;if(Kt("color=256"))return 2}if(r&&!e&&i===void 0)return 0;let s=i||0;if(qe.TERM==="dumb")return s;if(process.platform==="win32"){let a=Sk.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in qe)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(a=>a in qe)||qe.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in qe)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(qe.TEAMCITY_VERSION)?1:0;if(qe.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in qe){let a=Number.parseInt((qe.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(qe.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(qe.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(qe.TERM)||"COLORTERM"in qe?1:s}function ml(r,e={}){let t=Ik(r,{streamIsTTY:r&&r.isTTY,...e});return kk(t)}Sp.exports={supportsColor:ml,stdout:ml({isTTY:Kp.isatty(1)}),stderr:ml({isTTY:Kp.isatty(2)})}});var Ip=h((Je,Ui)=>{var xk=V("tty"),Wi=V("util");Je.init=Rk;Je.log=Ak;Je.formatArgs=jk;Je.save=Dk;Je.load=Ok;Je.useColors=wk;Je.destroy=Wi.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Je.colors=[6,2,3,4,5,1];try{let r=Ep();r&&(r.stderr||r).level>=2&&(Je.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Je.inspectOpts=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),r[t]=n,r},{});function wk(){return"colors"in Je.inspectOpts?!!Je.inspectOpts.colors:xk.isatty(process.stderr.fd)}function jk(r){let{namespace:e,useColors:t}=this;if(t){let n=this.color,i="\x1B[3"+(n<8?n:"8;5;"+n),s=` ${i};1m${e} \x1B[0m`;r[0]=s+r[0].split(`
|
|
2
|
+
var dE=Object.create;var Li=Object.defineProperty;var pE=Object.getOwnPropertyDescriptor;var fE=Object.getOwnPropertyNames;var hE=Object.getPrototypeOf,yE=Object.prototype.hasOwnProperty;var V=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var mE=(r,e)=>()=>(r&&(e=r(r=0)),e);var h=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),bE=(r,e)=>{for(var t in e)Li(r,t,{get:e[t],enumerable:!0})},Gd=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of fE(e))!yE.call(r,i)&&i!==t&&Li(r,i,{get:()=>e[i],enumerable:!(n=pE(e,i))||n.enumerable});return r};var Yd=(r,e,t)=>(t=r!=null?dE(hE(r)):{},Gd(e||!r||!r.__esModule?Li(t,"default",{value:r,enumerable:!0}):t,r)),it=r=>Gd(Li({},"__esModule",{value:!0}),r);var Bd=h((E_,gE)=>{gE.exports={acl:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},append:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},asking:{arity:1,flags:["fast"],keyStart:0,keyStop:0,step:0},auth:{arity:-2,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},bgrewriteaof:{arity:1,flags:["admin","noscript","no_async_loading"],keyStart:0,keyStop:0,step:0},bgsave:{arity:-1,flags:["admin","noscript","no_async_loading"],keyStart:0,keyStop:0,step:0},bitcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},bitfield:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},bitfield_ro:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},bitop:{arity:-4,flags:["write","denyoom"],keyStart:2,keyStop:-1,step:1},bitpos:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},blmove:{arity:6,flags:["write","denyoom","noscript","blocking"],keyStart:1,keyStop:2,step:1},blmpop:{arity:-5,flags:["write","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},blpop:{arity:-3,flags:["write","noscript","blocking"],keyStart:1,keyStop:-2,step:1},brpop:{arity:-3,flags:["write","noscript","blocking"],keyStart:1,keyStop:-2,step:1},brpoplpush:{arity:4,flags:["write","denyoom","noscript","blocking"],keyStart:1,keyStop:2,step:1},bzmpop:{arity:-5,flags:["write","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},bzpopmax:{arity:-3,flags:["write","noscript","blocking","fast"],keyStart:1,keyStop:-2,step:1},bzpopmin:{arity:-3,flags:["write","noscript","blocking","fast"],keyStart:1,keyStop:-2,step:1},client:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},cluster:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},command:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},config:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},copy:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},dbsize:{arity:1,flags:["readonly","fast"],keyStart:0,keyStop:0,step:0},debug:{arity:-2,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},decr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},decrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},del:{arity:-2,flags:["write"],keyStart:1,keyStop:-1,step:1},discard:{arity:1,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:0,keyStop:0,step:0},dump:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},echo:{arity:2,flags:["fast"],keyStart:0,keyStop:0,step:0},eval:{arity:-3,flags:["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},eval_ro:{arity:-3,flags:["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},evalsha:{arity:-3,flags:["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},evalsha_ro:{arity:-3,flags:["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},exec:{arity:1,flags:["noscript","loading","stale","skip_slowlog"],keyStart:0,keyStop:0,step:0},exists:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},expire:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},expireat:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},expiretime:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},failover:{arity:-1,flags:["admin","noscript","stale"],keyStart:0,keyStop:0,step:0},fcall:{arity:-3,flags:["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},fcall_ro:{arity:-3,flags:["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],keyStart:0,keyStop:0,step:0},flushall:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},flushdb:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},function:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},geoadd:{arity:-5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},geodist:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},geohash:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},geopos:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},georadius:{arity:-6,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},georadius_ro:{arity:-6,flags:["readonly"],keyStart:1,keyStop:1,step:1},georadiusbymember:{arity:-5,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},georadiusbymember_ro:{arity:-5,flags:["readonly"],keyStart:1,keyStop:1,step:1},geosearch:{arity:-7,flags:["readonly"],keyStart:1,keyStop:1,step:1},geosearchstore:{arity:-8,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},get:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getbit:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getdel:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},getex:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},getrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},getset:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hdel:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hello:{arity:-1,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},hexists:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hexpire:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hexpireat:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hexpiretime:{arity:-5,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hget:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hgetall:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hgetdel:{arity:-5,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hgetex:{arity:-5,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hincrbyfloat:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hkeys:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmget:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hpersist:{arity:-5,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hpexpire:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hpexpireat:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hpexpiretime:{arity:-5,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hpttl:{arity:-5,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hrandfield:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hscan:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},hset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hsetex:{arity:-6,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hsetnx:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hstrlen:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},httl:{arity:-5,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hvals:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},incr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrbyfloat:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},info:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},keys:{arity:2,flags:["readonly"],keyStart:0,keyStop:0,step:0},lastsave:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},latency:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},lcs:{arity:-3,flags:["readonly"],keyStart:1,keyStop:2,step:1},lindex:{arity:3,flags:["readonly"],keyStart:1,keyStop:1,step:1},linsert:{arity:5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},llen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},lmove:{arity:5,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},lmpop:{arity:-4,flags:["write","movablekeys"],keyStart:0,keyStop:0,step:0},lolwut:{arity:-1,flags:["readonly","fast"],keyStart:0,keyStop:0,step:0},lpop:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},lpos:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},lpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},lrem:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},lset:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},ltrim:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},memory:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},mget:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},migrate:{arity:-6,flags:["write","movablekeys"],keyStart:3,keyStop:3,step:1},module:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},monitor:{arity:1,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},move:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},mset:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},msetnx:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},multi:{arity:1,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:0,keyStop:0,step:0},object:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},persist:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpire:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpireat:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpiretime:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},pfadd:{arity:-2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},pfcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},pfdebug:{arity:3,flags:["write","denyoom","admin"],keyStart:2,keyStop:2,step:1},pfmerge:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},pfselftest:{arity:1,flags:["admin"],keyStart:0,keyStop:0,step:0},ping:{arity:-1,flags:["fast"],keyStart:0,keyStop:0,step:0},psetex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},psubscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},psync:{arity:-3,flags:["admin","noscript","no_async_loading","no_multi"],keyStart:0,keyStop:0,step:0},pttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},publish:{arity:3,flags:["pubsub","loading","stale","fast"],keyStart:0,keyStop:0,step:0},pubsub:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},punsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},quit:{arity:-1,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},randomkey:{arity:1,flags:["readonly"],keyStart:0,keyStop:0,step:0},readonly:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},readwrite:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},rename:{arity:3,flags:["write"],keyStart:1,keyStop:2,step:1},renamenx:{arity:3,flags:["write","fast"],keyStart:1,keyStop:2,step:1},replconf:{arity:-1,flags:["admin","noscript","loading","stale","allow_busy"],keyStart:0,keyStop:0,step:0},replicaof:{arity:3,flags:["admin","noscript","stale","no_async_loading"],keyStart:0,keyStop:0,step:0},reset:{arity:1,flags:["noscript","loading","stale","fast","no_auth","allow_busy"],keyStart:0,keyStop:0,step:0},restore:{arity:-4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},"restore-asking":{arity:-4,flags:["write","denyoom","asking"],keyStart:1,keyStop:1,step:1},role:{arity:1,flags:["noscript","loading","stale","fast"],keyStart:0,keyStop:0,step:0},rpop:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},rpoplpush:{arity:3,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},rpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},rpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},sadd:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},save:{arity:1,flags:["admin","noscript","no_async_loading","no_multi"],keyStart:0,keyStop:0,step:0},scan:{arity:-2,flags:["readonly"],keyStart:0,keyStop:0,step:0},scard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},script:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},sdiff:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},sdiffstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},select:{arity:2,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},set:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setbit:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setnx:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},setrange:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},shutdown:{arity:-1,flags:["admin","noscript","loading","stale","no_multi","allow_busy"],keyStart:0,keyStop:0,step:0},sinter:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},sintercard:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},sinterstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},sismember:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},slaveof:{arity:3,flags:["admin","noscript","stale","no_async_loading"],keyStart:0,keyStop:0,step:0},slowlog:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},smembers:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},smismember:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},smove:{arity:4,flags:["write","fast"],keyStart:1,keyStop:2,step:1},sort:{arity:-2,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},sort_ro:{arity:-2,flags:["readonly","movablekeys"],keyStart:1,keyStop:1,step:1},spop:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},spublish:{arity:3,flags:["pubsub","loading","stale","fast"],keyStart:1,keyStop:1,step:1},srandmember:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},srem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},sscan:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},ssubscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:1,keyStop:-1,step:1},strlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},subscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},substr:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},sunion:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},sunionstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},sunsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:1,keyStop:-1,step:1},swapdb:{arity:3,flags:["write","fast"],keyStart:0,keyStop:0,step:0},sync:{arity:1,flags:["admin","noscript","no_async_loading","no_multi"],keyStart:0,keyStop:0,step:0},time:{arity:1,flags:["loading","stale","fast"],keyStart:0,keyStop:0,step:0},touch:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},ttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},type:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},unlink:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:-1,step:1},unsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},unwatch:{arity:1,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:0,keyStop:0,step:0},wait:{arity:3,flags:["noscript"],keyStart:0,keyStop:0,step:0},watch:{arity:-2,flags:["noscript","loading","stale","fast","allow_busy"],keyStart:1,keyStop:-1,step:1},xack:{arity:-4,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xadd:{arity:-5,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},xautoclaim:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xclaim:{arity:-6,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xdel:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xdelex:{arity:-5,flags:["write","fast"],keyStart:1,keyStop:1,step:1},xgroup:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},xinfo:{arity:-2,flags:[],keyStart:0,keyStop:0,step:0},xlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},xpending:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},xrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},xread:{arity:-4,flags:["readonly","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},xreadgroup:{arity:-7,flags:["write","blocking","movablekeys"],keyStart:0,keyStop:0,step:0},xrevrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},xsetid:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},xtrim:{arity:-4,flags:["write"],keyStart:1,keyStop:1,step:1},zadd:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zcard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zdiff:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zdiffstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},zincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zinter:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zintercard:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zinterstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},zlexcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zmpop:{arity:-4,flags:["write","movablekeys"],keyStart:0,keyStop:0,step:0},zmscore:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zpopmax:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zpopmin:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zrandmember:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangestore:{arity:-5,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},zrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zrem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zremrangebylex:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyrank:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyscore:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zrevrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zscan:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},zscore:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zunion:{arity:-3,flags:["readonly","movablekeys"],keyStart:0,keyStop:0,step:0},zunionstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1}}});var Pr=h(lt=>{"use strict";var vE=lt&<.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(lt,"__esModule",{value:!0});lt.getKeyIndexes=lt.hasFlag=lt.exists=lt.list=void 0;var qi=vE(Bd());lt.list=Object.keys(qi.default);var tl={};lt.list.forEach(r=>{tl[r]=qi.default[r].flags.reduce(function(e,t){return e[t]=!0,e},{})});function KE(r,e){return r=e?.caseInsensitive?String(r).toLowerCase():r,!!qi.default[r]}lt.exists=KE;function SE(r,e,t){if(r=t?.nameCaseInsensitive?String(r).toLowerCase():r,!tl[r])throw new Error("Unknown command "+r);return!!tl[r][e]}lt.hasFlag=SE;function EE(r,e,t){r=t?.nameCaseInsensitive?String(r).toLowerCase():r;let n=qi.default[r];if(!n)throw new Error("Unknown command "+r);if(!Array.isArray(e))throw new Error("Expect args to be an array");let i=[],s=!!(t&&t.parseExternalKey),a=(l,c)=>{let u=[],d=Number(l[c]);for(let f=0;f<d;f++)u.push(f+c+1);return u},o=(l,c,u)=>{for(let d=c;d<l.length-1;d+=1)if(String(l[d]).toLowerCase()===u.toLowerCase())return d+1;return null};switch(r){case"zunionstore":case"zinterstore":case"zdiffstore":i.push(0,...a(e,1));break;case"eval":case"evalsha":case"eval_ro":case"evalsha_ro":case"fcall":case"fcall_ro":case"blmpop":case"bzmpop":i.push(...a(e,1));break;case"sintercard":case"lmpop":case"zunion":case"zinter":case"zmpop":case"zintercard":case"zdiff":{i.push(...a(e,0));break}case"georadius":{i.push(0);let l=o(e,5,"STORE");l&&i.push(l);let c=o(e,5,"STOREDIST");c&&i.push(c);break}case"georadiusbymember":{i.push(0);let l=o(e,4,"STORE");l&&i.push(l);let c=o(e,4,"STOREDIST");c&&i.push(c);break}case"sort":case"sort_ro":i.push(0);for(let l=1;l<e.length-1;l++){let c=e[l];if(typeof c!="string")continue;let u=c.toUpperCase();u==="GET"?(l+=1,c=e[l],c!=="#"&&(s?i.push([l,Wd(c)]):i.push(l))):u==="BY"?(l+=1,s?i.push([l,Wd(e[l])]):i.push(l)):u==="STORE"&&(l+=1,i.push(l))}break;case"migrate":if(e[2]==="")for(let l=5;l<e.length-1;l++){let c=e[l];if(typeof c=="string"&&c.toUpperCase()==="KEYS"){for(let u=l+1;u<e.length;u++)i.push(u);break}}else i.push(2);break;case"xreadgroup":case"xread":for(let l=r==="xread"?0:3;l<e.length-1;l++)if(String(e[l]).toUpperCase()==="STREAMS"){for(let c=l+1;c<=l+(e.length-1-l)/2;c++)i.push(c);break}break;default:if(n.step>0){let l=n.keyStart-1,c=n.keyStop>0?n.keyStop:e.length+n.keyStop+1;for(let u=l;u<c;u+=n.step)i.push(u)}break}return i}lt.getKeyIndexes=EE;function Wd(r){typeof r!="string"&&(r=String(r));let e=r.indexOf("->");return e===-1?r.length:e}});var Ud=h(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.tryCatch=dr.errorObj=void 0;dr.errorObj={e:{}};var rl;function kE(r,e){try{let t=rl;return rl=null,t.apply(this,arguments)}catch(t){return dr.errorObj.e=t,dr.errorObj}}function IE(r){return rl=r,kE}dr.tryCatch=IE});var pr=h(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});var hn=Ud();function zd(r){setTimeout(function(){throw r},0)}function xE(r,e,t){return typeof e=="function"&&r.then(n=>{let i;t!==void 0&&Object(t).spread&&Array.isArray(n)?i=hn.tryCatch(e).apply(void 0,[null].concat(n)):i=n===void 0?hn.tryCatch(e)(null):hn.tryCatch(e)(null,n),i===hn.errorObj&&zd(i.e)},n=>{if(!n){let s=new Error(n+"");Object.assign(s,{cause:n}),n=s}let i=hn.tryCatch(e)(n);i===hn.errorObj&&zd(i.e)}),r}nl.default=xE});var Qd=h((w_,Hd)=>{"use strict";var $d=V("assert"),Hn=V("util");function yn(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Hn.inherits(yn,Error);Object.defineProperty(yn.prototype,"name",{value:"RedisError",configurable:!0,writable:!0});function il(r,e,t){$d(e),$d.strictEqual(typeof t,"number"),Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0});let n=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=n,this.offset=t,this.buffer=e}Hn.inherits(il,yn);Object.defineProperty(il.prototype,"name",{value:"ParserError",configurable:!0,writable:!0});function sl(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0});let e=Error.stackTraceLimit;Error.stackTraceLimit=2,Error.captureStackTrace(this,this.constructor),Error.stackTraceLimit=e}Hn.inherits(sl,yn);Object.defineProperty(sl.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0});function Ji(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Hn.inherits(Ji,yn);Object.defineProperty(Ji.prototype,"name",{value:"AbortError",configurable:!0,writable:!0});function al(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Hn.inherits(al,Ji);Object.defineProperty(al.prototype,"name",{value:"InterruptError",configurable:!0,writable:!0});Hd.exports={RedisError:yn,ParserError:il,ReplyError:sl,AbortError:Ji,InterruptError:al}});var ep=h((T_,Xd)=>{"use strict";var Zd=V("assert"),mn=class extends Error{get name(){return this.constructor.name}},ol=class extends mn{constructor(e,t,n){Zd(t),Zd.strictEqual(typeof n,"number");let i=Error.stackTraceLimit;Error.stackTraceLimit=2,super(e),Error.stackTraceLimit=i,this.offset=n,this.buffer=t}get name(){return this.constructor.name}},ll=class extends mn{constructor(e){let t=Error.stackTraceLimit;Error.stackTraceLimit=2,super(e),Error.stackTraceLimit=t}get name(){return this.constructor.name}},Fi=class extends mn{get name(){return this.constructor.name}},cl=class extends Fi{get name(){return this.constructor.name}};Xd.exports={RedisError:mn,ParserError:ol,ReplyError:ll,AbortError:Fi,InterruptError:cl}});var Nr=h((j_,tp)=>{"use strict";var wE=process.version.charCodeAt(1)<55&&process.version.charCodeAt(2)===46?Qd():ep();tp.exports=wE});var Qn=h((A_,ul)=>{var rp=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920],TE=function(e){for(var t,n=0,i=0,s=[],a=e.length;n<a;n++)t=e.charCodeAt(n),t<128?s[i++]=t:t<2048?(s[i++]=t>>6|192,s[i++]=t&63|128):(t&64512)===55296&&n+1<e.length&&(e.charCodeAt(n+1)&64512)===56320?(t=65536+((t&1023)<<10)+(e.charCodeAt(++n)&1023),s[i++]=t>>18|240,s[i++]=t>>12&63|128,s[i++]=t>>6&63|128,s[i++]=t&63|128):(s[i++]=t>>12|224,s[i++]=t>>6&63|128,s[i++]=t&63|128);return s},np=ul.exports=function(e){for(var t,n=0,i=-1,s=0,a=0,o=typeof e=="string"?TE(e):e,l=o.length;n<l;){if(t=o[n++],i===-1)t===123&&(i=n);else if(t!==125)a=rp[(t^a>>8)&255]^a<<8;else if(n-1!==i)return a&16383;s=rp[(t^s>>8)&255]^s<<8}return s&16383};ul.exports.generateMulti=function(e){for(var t=1,n=e.length,i=np(e[0]);t<n;)if(np(e[t++])!==i)return-1;return i}});var dp=h((D_,up)=>{var sp=9007199254740991,jE="[object Arguments]",AE="[object Function]",DE="[object GeneratorFunction]",OE=/^(?:0|[1-9]\d*)$/;function ap(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}function RE(r,e){for(var t=-1,n=Array(r);++t<r;)n[t]=e(t);return n}var Zn=Object.prototype,Xn=Zn.hasOwnProperty,op=Zn.toString,CE=Zn.propertyIsEnumerable,ip=Math.max;function _E(r,e){var t=YE(r)||GE(r)?RE(r.length,String):[],n=t.length,i=!!n;for(var s in r)(e||Xn.call(r,s))&&!(i&&(s=="length"||cp(s,n)))&&t.push(s);return t}function ME(r,e,t,n){return r===void 0||dl(r,Zn[t])&&!Xn.call(n,t)?e:r}function PE(r,e,t){var n=r[e];(!(Xn.call(r,e)&&dl(n,t))||t===void 0&&!(e in r))&&(r[e]=t)}function NE(r){if(!fl(r))return VE(r);var e=FE(r),t=[];for(var n in r)n=="constructor"&&(e||!Xn.call(r,n))||t.push(n);return t}function lp(r,e){return e=ip(e===void 0?r.length-1:e,0),function(){for(var t=arguments,n=-1,i=ip(t.length-e,0),s=Array(i);++n<i;)s[n]=t[e+n];n=-1;for(var a=Array(e+1);++n<e;)a[n]=t[n];return a[e]=s,ap(r,this,a)}}function LE(r,e,t,n){t||(t={});for(var i=-1,s=e.length;++i<s;){var a=e[i],o=n?n(t[a],r[a],a,t,r):void 0;PE(t,a,o===void 0?r[a]:o)}return t}function qE(r){return lp(function(e,t){var n=-1,i=t.length,s=i>1?t[i-1]:void 0,a=i>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(i--,s):void 0,a&&JE(t[0],t[1],a)&&(s=i<3?void 0:s,i=1),e=Object(e);++n<i;){var o=t[n];o&&r(e,o,n,s)}return e})}function cp(r,e){return e=e??sp,!!e&&(typeof r=="number"||OE.test(r))&&r>-1&&r%1==0&&r<e}function JE(r,e,t){if(!fl(t))return!1;var n=typeof e;return(n=="number"?pl(t)&&cp(e,t.length):n=="string"&&e in t)?dl(t[e],r):!1}function FE(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||Zn;return r===t}function VE(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}function dl(r,e){return r===e||r!==r&&e!==e}function GE(r){return BE(r)&&Xn.call(r,"callee")&&(!CE.call(r,"callee")||op.call(r)==jE)}var YE=Array.isArray;function pl(r){return r!=null&&UE(r.length)&&!WE(r)}function BE(r){return zE(r)&&pl(r)}function WE(r){var e=fl(r)?op.call(r):"";return e==AE||e==DE}function UE(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=sp}function fl(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function zE(r){return!!r&&typeof r=="object"}var $E=qE(function(r,e,t,n){LE(e,QE(e),r,n)}),HE=lp(function(r){return r.push(void 0,ME),ap($E,void 0,r)});function QE(r){return pl(r)?_E(r,!0):NE(r)}up.exports=HE});var hp=h((O_,fp)=>{var ZE=9007199254740991,XE="[object Arguments]",ek="[object Function]",tk="[object GeneratorFunction]",hl=Object.prototype,rk=hl.hasOwnProperty,pp=hl.toString,nk=hl.propertyIsEnumerable;function ik(r){return ak(r)&&rk.call(r,"callee")&&(!nk.call(r,"callee")||pp.call(r)==XE)}function sk(r){return r!=null&&lk(r.length)&&!ok(r)}function ak(r){return uk(r)&&sk(r)}function ok(r){var e=ck(r)?pp.call(r):"";return e==ek||e==tk}function lk(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ZE}function ck(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function uk(r){return!!r&&typeof r=="object"}fp.exports=ik});var Vi=h(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.isArguments=fr.defaults=fr.noop=void 0;var dk=dp();fr.defaults=dk;var pk=hp();fr.isArguments=pk;function fk(){}fr.noop=fk});var mp=h((C_,yp)=>{var bn=1e3,gn=bn*60,vn=gn*60,Lr=vn*24,hk=Lr*7,yk=Lr*365.25;yp.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return mk(r);if(t==="number"&&isFinite(r))return e.long?gk(r):bk(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function mk(r){if(r=String(r),!(r.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(e){var t=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return t*yk;case"weeks":case"week":case"w":return t*hk;case"days":case"day":case"d":return t*Lr;case"hours":case"hour":case"hrs":case"hr":case"h":return t*vn;case"minutes":case"minute":case"mins":case"min":case"m":return t*gn;case"seconds":case"second":case"secs":case"sec":case"s":return t*bn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function bk(r){var e=Math.abs(r);return e>=Lr?Math.round(r/Lr)+"d":e>=vn?Math.round(r/vn)+"h":e>=gn?Math.round(r/gn)+"m":e>=bn?Math.round(r/bn)+"s":r+"ms"}function gk(r){var e=Math.abs(r);return e>=Lr?Gi(r,e,Lr,"day"):e>=vn?Gi(r,e,vn,"hour"):e>=gn?Gi(r,e,gn,"minute"):e>=bn?Gi(r,e,bn,"second"):r+" ms"}function Gi(r,e,t,n){var i=e>=t*1.5;return Math.round(r/t)+" "+n+(i?"s":"")}});var yl=h((__,bp)=>{function vk(r){t.debug=t,t.default=t,t.coerce=l,t.disable=a,t.enable=i,t.enabled=o,t.humanize=mp(),t.destroy=c,Object.keys(r).forEach(u=>{t[u]=r[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let d=0;for(let f=0;f<u.length;f++)d=(d<<5)-d+u.charCodeAt(f),d|=0;return t.colors[Math.abs(d)%t.colors.length]}t.selectColor=e;function t(u){let d,f=null,p,y;function g(...S){if(!g.enabled)return;let k=g,I=Number(new Date),R=I-(d||I);k.diff=R,k.prev=d,k.curr=I,d=I,S[0]=t.coerce(S[0]),typeof S[0]!="string"&&S.unshift("%O");let O=0;S[0]=S[0].replace(/%([a-zA-Z%])/g,(E,M)=>{if(E==="%%")return"%";O++;let F=t.formatters[M];if(typeof F=="function"){let C=S[O];E=F.call(k,C),S.splice(O,1),O--}return E}),t.formatArgs.call(k,S),(k.log||t.log).apply(k,S)}return g.namespace=u,g.useColors=t.useColors(),g.color=t.selectColor(u),g.extend=n,g.destroy=t.destroy,Object.defineProperty(g,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(p!==t.namespaces&&(p=t.namespaces,y=t.enabled(u)),y),set:S=>{f=S}}),typeof t.init=="function"&&t.init(g),g}function n(u,d){let f=t(this.namespace+(typeof d>"u"?":":d)+u);return f.log=this.log,f}function i(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let d=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of d)f[0]==="-"?t.skips.push(f.slice(1)):t.names.push(f)}function s(u,d){let f=0,p=0,y=-1,g=0;for(;f<u.length;)if(p<d.length&&(d[p]===u[f]||d[p]==="*"))d[p]==="*"?(y=p,g=f,p++):(f++,p++);else if(y!==-1)p=y+1,g++,f=g;else return!1;for(;p<d.length&&d[p]==="*";)p++;return p===d.length}function a(){let u=[...t.names,...t.skips.map(d=>"-"+d)].join(",");return t.enable(""),u}function o(u){for(let d of t.skips)if(s(u,d))return!1;for(let d of t.names)if(s(u,d))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}bp.exports=vk});var gp=h((st,Yi)=>{st.formatArgs=Sk;st.save=Ek;st.load=kk;st.useColors=Kk;st.storage=Ik();st.destroy=(()=>{let r=!1;return()=>{r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();st.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Kk(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let r;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(r=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(r[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Sk(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Yi.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(t++,i==="%c"&&(n=t))}),r.splice(n,0,e)}st.log=console.debug||console.log||(()=>{});function Ek(r){try{r?st.storage.setItem("debug",r):st.storage.removeItem("debug")}catch{}}function kk(){let r;try{r=st.storage.getItem("debug")||st.storage.getItem("DEBUG")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function Ik(){try{return localStorage}catch{}}Yi.exports=yl()(st);var{formatters:xk}=Yi.exports;xk.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Kp=h((M_,vp)=>{"use strict";vp.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",n=e.indexOf(t+r),i=e.indexOf("--");return n!==-1&&(i===-1||n<i)}});var kp=h((P_,Ep)=>{"use strict";var wk=V("os"),Sp=V("tty"),Kt=Kp(),{env:Le}=process,Bi;Kt("no-color")||Kt("no-colors")||Kt("color=false")||Kt("color=never")?Bi=0:(Kt("color")||Kt("colors")||Kt("color=true")||Kt("color=always"))&&(Bi=1);function Tk(){if("FORCE_COLOR"in Le)return Le.FORCE_COLOR==="true"?1:Le.FORCE_COLOR==="false"?0:Le.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Le.FORCE_COLOR,10),3)}function jk(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function Ak(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=Tk();n!==void 0&&(Bi=n);let i=t?Bi:n;if(i===0)return 0;if(t){if(Kt("color=16m")||Kt("color=full")||Kt("color=truecolor"))return 3;if(Kt("color=256"))return 2}if(r&&!e&&i===void 0)return 0;let s=i||0;if(Le.TERM==="dumb")return s;if(process.platform==="win32"){let a=wk.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in Le)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE","DRONE"].some(a=>a in Le)||Le.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in Le)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Le.TEAMCITY_VERSION)?1:0;if(Le.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Le){let a=Number.parseInt((Le.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Le.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Le.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Le.TERM)||"COLORTERM"in Le?1:s}function ml(r,e={}){let t=Ak(r,{streamIsTTY:r&&r.isTTY,...e});return jk(t)}Ep.exports={supportsColor:ml,stdout:ml({isTTY:Sp.isatty(1)}),stderr:ml({isTTY:Sp.isatty(2)})}});var xp=h((qe,Ui)=>{var Dk=V("tty"),Wi=V("util");qe.init=Nk;qe.log=_k;qe.formatArgs=Rk;qe.save=Mk;qe.load=Pk;qe.useColors=Ok;qe.destroy=Wi.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");qe.colors=[6,2,3,4,5,1];try{let r=kp();r&&(r.stderr||r).level>=2&&(qe.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}qe.inspectOpts=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(i,s)=>s.toUpperCase()),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),r[t]=n,r},{});function Ok(){return"colors"in qe.inspectOpts?!!qe.inspectOpts.colors:Dk.isatty(process.stderr.fd)}function Rk(r){let{namespace:e,useColors:t}=this;if(t){let n=this.color,i="\x1B[3"+(n<8?n:"8;5;"+n),s=` ${i};1m${e} \x1B[0m`;r[0]=s+r[0].split(`
|
|
3
3
|
`).join(`
|
|
4
|
-
`+s),r.push(i+"m+"+Ui.exports.humanize(this.diff)+"\x1B[0m")}else r[0]=
|
|
5
|
-
`)}function
|
|
6
|
-
`).map(e=>e.trim()).join(" ")};
|
|
4
|
+
`+s),r.push(i+"m+"+Ui.exports.humanize(this.diff)+"\x1B[0m")}else r[0]=Ck()+e+" "+r[0]}function Ck(){return qe.inspectOpts.hideDate?"":new Date().toISOString()+" "}function _k(...r){return process.stderr.write(Wi.formatWithOptions(qe.inspectOpts,...r)+`
|
|
5
|
+
`)}function Mk(r){r?process.env.DEBUG=r:delete process.env.DEBUG}function Pk(){return process.env.DEBUG}function Nk(r){r.inspectOpts={};let e=Object.keys(qe.inspectOpts);for(let t=0;t<e.length;t++)r.inspectOpts[e[t]]=qe.inspectOpts[e[t]]}Ui.exports=yl()(qe);var{formatters:Ip}=Ui.exports;Ip.o=function(r){return this.inspectOpts.colors=this.useColors,Wi.inspect(r,this.inspectOpts).split(`
|
|
6
|
+
`).map(e=>e.trim()).join(" ")};Ip.O=function(r){return this.inspectOpts.colors=this.useColors,Wi.inspect(r,this.inspectOpts)}});var wp=h((N_,bl)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?bl.exports=gp():bl.exports=xp()});var Ap=h(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.genRedactedString=Ht.getStringValue=Ht.MAX_ARGUMENT_LENGTH=void 0;var Lk=wp(),gl=200;Ht.MAX_ARGUMENT_LENGTH=gl;var qk="ioredis";function Tp(r){if(r!==null)switch(typeof r){case"boolean":return;case"number":return;case"object":if(Buffer.isBuffer(r))return r.toString("hex");if(Array.isArray(r))return r.join(",");try{return JSON.stringify(r)}catch{return}case"string":return r}}Ht.getStringValue=Tp;function jp(r,e){let{length:t}=r;return t<=e?r:r.slice(0,e)+' ... <REDACTED full-length="'+t+'">'}Ht.genRedactedString=jp;function Jk(r){let e=(0,Lk.default)(`${qk}:${r}`);function t(...n){if(e.enabled){for(let i=1;i<n.length;i++){let s=Tp(n[i]);typeof s=="string"&&s.length>gl&&(n[i]=jp(s,gl))}return e.apply(null,n)}}return Object.defineProperties(t,{namespace:{get(){return e.namespace}},enabled:{get(){return e.enabled}},destroy:{get(){return e.destroy}},log:{get(){return e.log},set(n){e.log=n}}}),t}Ht.default=Jk});var Op=h(vl=>{"use strict";Object.defineProperty(vl,"__esModule",{value:!0});var Dp=`-----BEGIN CERTIFICATE-----
|
|
7
7
|
MIIDTzCCAjegAwIBAgIJAKSVpiDswLcwMA0GCSqGSIb3DQEBBQUAMD4xFjAUBgNV
|
|
8
8
|
BAoMDUdhcmFudGlhIERhdGExJDAiBgNVBAMMG1NTTCBDZXJ0aWZpY2F0aW9uIEF1
|
|
9
9
|
dGhvcml0eTAeFw0xMzEwMDExMjE0NTVaFw0yMzA5MjkxMjE0NTVaMD4xFjAUBgNV
|
|
@@ -141,10 +141,10 @@ jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
|
|
|
141
141
|
mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
|
|
142
142
|
Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
|
|
143
143
|
WD9f
|
|
144
|
-
-----END CERTIFICATE-----`,
|
|
144
|
+
-----END CERTIFICATE-----`,Fk={RedisCloudFixed:{ca:Dp},RedisCloudFlexible:{ca:Dp}};vl.default=Fk});var Re=h(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.noop=re.defaults=re.Debug=re.getPackageMeta=re.zipMap=re.CONNECTION_CLOSED_ERROR_MSG=re.shuffle=re.sample=re.resolveTLSProfile=re.parseURL=re.optimizeErrorStack=re.toArg=re.convertMapToArray=re.convertObjectToArray=re.timeout=re.packObject=re.isInt=re.wrapMultiResult=re.convertBufferToString=void 0;var Vk=V("fs"),Gk=V("path"),Rp=V("url"),Kl=Vi();Object.defineProperty(re,"defaults",{enumerable:!0,get:function(){return Kl.defaults}});Object.defineProperty(re,"noop",{enumerable:!0,get:function(){return Kl.noop}});var Yk=Ap();re.Debug=Yk.default;var Bk=Op();function Cp(r,e){if(r instanceof Buffer)return r.toString(e);if(Array.isArray(r)){let t=r.length,n=Array(t);for(let i=0;i<t;++i)n[i]=r[i]instanceof Buffer&&e==="utf8"?r[i].toString():Cp(r[i],e);return n}return r}re.convertBufferToString=Cp;function Wk(r){if(!r)return null;let e=[],t=r.length;for(let n=0;n<t;++n){let i=r[n];i instanceof Error?e.push([i]):e.push([null,i])}return e}re.wrapMultiResult=Wk;function _p(r){let e=parseFloat(r);return!isNaN(r)&&(e|0)===e}re.isInt=_p;function Uk(r){let e={},t=r.length;for(let n=1;n<t;n+=2)e[r[n-1]]=r[n];return e}re.packObject=Uk;function zk(r,e){let t=null,n=function(){t&&(clearTimeout(t),t=null,r.apply(this,arguments))};return t=setTimeout(n,e,new Error("timeout")),n}re.timeout=zk;function $k(r){let e=[],t=Object.keys(r);for(let n=0,i=t.length;n<i;n++)e.push(t[n],r[t[n]]);return e}re.convertObjectToArray=$k;function Hk(r){let e=[],t=0;return r.forEach(function(n,i){e[t]=i,e[t+1]=n,t+=2}),e}re.convertMapToArray=Hk;function Qk(r){return r===null||typeof r>"u"?"":String(r)}re.toArg=Qk;function Zk(r,e,t){let n=e.split(`
|
|
145
145
|
`),i="",s;for(s=1;s<n.length&&n[s].indexOf(t)!==-1;++s);for(let a=s;a<n.length;++a)i+=`
|
|
146
146
|
`+n[a];if(r.stack){let a=r.stack.indexOf(`
|
|
147
|
-
`);r.stack=r.stack.slice(0,a)+i}return r}re.optimizeErrorStack=
|
|
147
|
+
`);r.stack=r.stack.slice(0,a)+i}return r}re.optimizeErrorStack=Zk;function Xk(r){if(_p(r))return{port:r};let e=(0,Rp.parse)(r,!0,!0);!e.slashes&&r[0]!=="/"&&(r="//"+r,e=(0,Rp.parse)(r,!0,!0));let t=e.query||{},n={};if(e.auth){let i=e.auth.indexOf(":");n.username=i===-1?e.auth:e.auth.slice(0,i),n.password=i===-1?"":e.auth.slice(i+1)}if(e.pathname&&(e.protocol==="redis:"||e.protocol==="rediss:"?e.pathname.length>1&&(n.db=e.pathname.slice(1)):n.path=e.pathname),e.host&&(n.host=e.hostname),e.port&&(n.port=e.port),typeof t.family=="string"){let i=Number.parseInt(t.family,10);Number.isNaN(i)||(n.family=i)}return(0,Kl.defaults)(n,t),n}re.parseURL=Xk;function eI(r){let e=r?.tls;typeof e=="string"&&(e={profile:e});let t=Bk.default[e?.profile];return t&&(e=Object.assign({},t,e),delete e.profile,r=Object.assign({},r,{tls:e})),r}re.resolveTLSProfile=eI;function tI(r,e=0){let t=r.length;return e>=t?null:r[e+Math.floor(Math.random()*(t-e))]}re.sample=tI;function rI(r){let e=r.length;for(;e>0;){let t=Math.floor(Math.random()*e);e--,[r[e],r[t]]=[r[t],r[e]]}return r}re.shuffle=rI;re.CONNECTION_CLOSED_ERROR_MSG="Connection is closed.";function nI(r,e){let t=new Map;return r.forEach((n,i)=>{t.set(n,e[i])}),t}re.zipMap=nI;var Kn=null;async function iI(){if(Kn)return Kn;try{let r=(0,Gk.resolve)(__dirname,"..","..","package.json"),e=await Vk.promises.readFile(r,"utf8");return Kn={version:JSON.parse(e).version},Kn}catch{return Kn={version:"error-fetching-version"},Kn}}re.getPackageMeta=iI});var Mp=h(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.parseBlockOption=Sn.parseSecondsArgument=void 0;var Sl=r=>{if(typeof r=="number")return r;if(Buffer.isBuffer(r))return Sl(r.toString());if(typeof r=="string"){let e=Number(r);return Number.isFinite(e)?e:void 0}},sI=r=>{if(typeof r=="string")return r;if(Buffer.isBuffer(r))return r.toString()},aI=r=>{let e=Sl(r);if(e!==void 0)return e<=0?0:e*1e3};Sn.parseSecondsArgument=aI;var oI=r=>{for(let e=0;e<r.length;e++){let t=sI(r[e]);if(t&&t.toLowerCase()==="block"){let n=Sl(r[e+1]);return n===void 0?void 0:n<=0?0:n}}return null};Sn.parseBlockOption=oI});var Qt=h(Il=>{"use strict";Object.defineProperty(Il,"__esModule",{value:!0});var Pp=Pr(),lI=Qn(),cI=pr(),qr=Re(),El=Mp(),Lt=class r{constructor(e,t=[],n={},i){if(this.name=e,this.inTransaction=!1,this.isResolved=!1,this.transformed=!1,this.replyEncoding=n.replyEncoding,this.errorStack=n.errorStack,this.args=t.flat(),this.callback=i,this.initPromise(),n.keyPrefix){let s=n.keyPrefix instanceof Buffer,a=s?n.keyPrefix:null;this._iterateKeys(o=>o instanceof Buffer?(a===null&&(a=Buffer.from(n.keyPrefix)),Buffer.concat([a,o])):s?Buffer.concat([n.keyPrefix,Buffer.from(String(o))]):n.keyPrefix+o)}n.readOnly&&(this.isReadOnly=!0)}static checkFlag(e,t){return t=t.toLowerCase(),!!this.getFlagMap()[e][t]}static setArgumentTransformer(e,t){this._transformer.argument[e]=t}static setReplyTransformer(e,t){this._transformer.reply[e]=t}static getFlagMap(){return this.flagMap||(this.flagMap=Object.keys(r.FLAGS).reduce((e,t)=>(e[t]={},r.FLAGS[t].forEach(n=>{e[t][n]=!0}),e),{})),this.flagMap}getSlot(){if(typeof this.slot>"u"){let e=this.getKeys()[0];this.slot=e==null?null:lI(e)}return this.slot}getKeys(){return this._iterateKeys()}toWritable(e){let t,n="*"+(this.args.length+1)+`\r
|
|
148
148
|
$`+Buffer.byteLength(this.name)+`\r
|
|
149
149
|
`+this.name+`\r
|
|
150
150
|
`;if(this.bufferMode){let i=new kl;i.push(n);for(let s=0;s<this.args.length;++s){let a=this.args[s];a instanceof Buffer?a.length===0?i.push(`$0\r
|
|
@@ -155,14 +155,14 @@ $`+Buffer.byteLength(this.name)+`\r
|
|
|
155
155
|
`+a+`\r
|
|
156
156
|
`)}t=i.toBuffer()}else{t=n;for(let i=0;i<this.args.length;++i){let s=this.args[i];t+="$"+Buffer.byteLength(s)+`\r
|
|
157
157
|
`+s+`\r
|
|
158
|
-
`}}return t}stringifyArguments(){for(let e=0;e<this.args.length;++e){let t=this.args[e];typeof t=="string"||(t instanceof Buffer?this.bufferMode=!0:this.args[e]=(0,Jr.toArg)(t))}}transformReply(e){this.replyEncoding&&(e=(0,Jr.convertBufferToString)(e,this.replyEncoding));let t=r._transformer.reply[this.name];return t&&(e=t(e)),e}setTimeout(e){this._commandTimeoutTimer||(this._commandTimeoutTimer=setTimeout(()=>{this.isResolved||this.reject(new Error("Command timed out"))},e))}setBlockingTimeout(e){if(e<=0)return;this._blockingTimeoutTimer&&(clearTimeout(this._blockingTimeoutTimer),this._blockingTimeoutTimer=void 0);let t=Date.now();this._blockingDeadline===void 0&&(this._blockingDeadline=t+e);let n=this._blockingDeadline-t;if(n<=0){this.resolve(null);return}this._blockingTimeoutTimer=setTimeout(()=>{if(this.isResolved){this._blockingTimeoutTimer=void 0;return}this._blockingTimeoutTimer=void 0,this.resolve(null)},n)}extractBlockingTimeout(){let e=this.args;if(!e||e.length===0)return;let t=this.name.toLowerCase();if(r.checkFlag("LAST_ARG_TIMEOUT_COMMANDS",t))return(0,El.parseSecondsArgument)(e[e.length-1]);if(r.checkFlag("FIRST_ARG_TIMEOUT_COMMANDS",t))return(0,El.parseSecondsArgument)(e[0]);if(r.checkFlag("BLOCK_OPTION_COMMANDS",t))return(0,El.parseBlockOption)(e)}_clearTimers(){let e=this._commandTimeoutTimer;e&&(clearTimeout(e),delete this._commandTimeoutTimer);let t=this._blockingTimeoutTimer;t&&(clearTimeout(t),delete this._blockingTimeoutTimer)}initPromise(){let e=new Promise((t,n)=>{if(!this.transformed){this.transformed=!0;let i=r._transformer.argument[this.name];i&&(this.args=i(this.args)),this.stringifyArguments()}this.resolve=this._convertValue(t),this.reject=i=>{this._clearTimers(),this.errorStack?n((0,Jr.optimizeErrorStack)(i,this.errorStack.stack,__dirname)):n(i)}});this.promise=(0,iI.default)(e,this.callback)}_iterateKeys(e=t=>t){if(typeof this.keys>"u"&&(this.keys=[],(0,Mp.exists)(this.name,{caseInsensitive:!0}))){let t=(0,Mp.getKeyIndexes)(this.name,this.args,{nameCaseInsensitive:!0});for(let n of t)this.args[n]=e(this.args[n]),this.keys.push(this.args[n])}return this.keys}_convertValue(e){return t=>{try{this._clearTimers(),e(this.transformReply(t)),this.isResolved=!0}catch(n){this.reject(n)}return this.promise}}};Il.default=qt;qt.FLAGS={VALID_IN_SUBSCRIBER_MODE:["subscribe","psubscribe","unsubscribe","punsubscribe","ssubscribe","sunsubscribe","ping","quit"],VALID_IN_MONITOR_MODE:["monitor","auth"],ENTER_SUBSCRIBER_MODE:["subscribe","psubscribe","ssubscribe"],EXIT_SUBSCRIBER_MODE:["unsubscribe","punsubscribe","sunsubscribe"],WILL_DISCONNECT:["quit"],HANDSHAKE_COMMANDS:["auth","select","client","readonly","info"],IGNORE_RECONNECT_ON_ERROR:["client"],BLOCKING_COMMANDS:["blpop","brpop","brpoplpush","blmove","bzpopmin","bzpopmax","bzmpop","blmpop","xread","xreadgroup"],LAST_ARG_TIMEOUT_COMMANDS:["blpop","brpop","brpoplpush","blmove","bzpopmin","bzpopmax"],FIRST_ARG_TIMEOUT_COMMANDS:["bzmpop","blmpop"],BLOCK_OPTION_COMMANDS:["xread","xreadgroup"]};qt._transformer={argument:{},reply:{}};var Pp=function(r){if(r.length===1){if(r[0]instanceof Map)return(0,Jr.convertMapToArray)(r[0]);if(typeof r[0]=="object"&&r[0]!==null)return(0,Jr.convertObjectToArray)(r[0])}return r},Np=function(r){if(r.length===2){if(r[1]instanceof Map)return[r[0]].concat((0,Jr.convertMapToArray)(r[1]));if(typeof r[1]=="object"&&r[1]!==null)return[r[0]].concat((0,Jr.convertObjectToArray)(r[1]))}return r};qt.setArgumentTransformer("mset",Pp);qt.setArgumentTransformer("msetnx",Pp);qt.setArgumentTransformer("hset",Np);qt.setArgumentTransformer("hmset",Np);qt.setReplyTransformer("hgetall",function(r){if(Array.isArray(r)){let e={};for(let t=0;t<r.length;t+=2){let n=r[t],i=r[t+1];n in e?Object.defineProperty(e,n,{value:i,configurable:!0,enumerable:!0,writable:!0}):e[n]=i}return e}return r});var kl=class{constructor(){this.length=0,this.items=[]}push(e){this.length+=Buffer.byteLength(e),this.items.push(e)}toBuffer(){let e=Buffer.allocUnsafe(this.length),t=0;for(let n of this.items){let i=Buffer.byteLength(n);Buffer.isBuffer(n)?n.copy(e,t):e.write(n,t,i),t+=i}return e}}});var qp=h(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});var sI=Nr(),zi=class extends sI.RedisError{constructor(e,t){super(e),this.lastNodeError=t,Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}};xl.default=zi;zi.defaultMessage="Failed to refresh slots cache."});var $i=h(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});var aI=V("stream"),wl=class extends aI.Readable{constructor(e){super(e),this.opt=e,this._redisCursor="0",this._redisDrained=!1}_read(){if(this._redisDrained){this.push(null);return}let e=[this._redisCursor];this.opt.key&&e.unshift(this.opt.key),this.opt.match&&e.push("MATCH",this.opt.match),this.opt.type&&e.push("TYPE",this.opt.type),this.opt.count&&e.push("COUNT",String(this.opt.count)),this.opt.noValues&&e.push("NOVALUES"),this.opt.redis[this.opt.command](e,(t,n)=>{if(t){this.emit("error",t);return}this._redisCursor=n[0]instanceof Buffer?n[0].toString():n[0],this._redisCursor==="0"&&(this._redisDrained=!0),this.push(n[1])})}close(){this._redisDrained=!0}};jl.default=wl});var Bp=h(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.executeWithAutoPipelining=Ae.getFirstValueInFlattenedArray=Ae.shouldUseAutoPipelining=Ae.notAllowedAutoPipelineCommands=Ae.kCallbacks=Ae.kExec=void 0;var Fp=Vi(),oI=Qn(),Jp=pr(),Lp=Pr();Ae.kExec=Symbol("exec");Ae.kCallbacks=Symbol("callbacks");Ae.notAllowedAutoPipelineCommands=["auth","info","script","quit","cluster","pipeline","multi","subscribe","psubscribe","unsubscribe","unpsubscribe","select","client"];function Vp(r,e){if(r._runningAutoPipelines.has(e)||!r._autoPipelines.has(e))return;r._runningAutoPipelines.add(e);let t=r._autoPipelines.get(e);r._autoPipelines.delete(e);let n=t[Ae.kCallbacks];t[Ae.kCallbacks]=null,t.exec(function(i,s){if(r._runningAutoPipelines.delete(e),i)for(let a=0;a<n.length;a++)process.nextTick(n[a],i);else for(let a=0;a<n.length;a++)process.nextTick(n[a],...s[a]);r._autoPipelines.has(e)&&Vp(r,e)})}function lI(r,e,t){return e&&r.options.enableAutoPipelining&&!r.isPipeline&&!Ae.notAllowedAutoPipelineCommands.includes(t)&&!r.options.autoPipeliningIgnoredCommands.includes(t)}Ae.shouldUseAutoPipelining=lI;function Gp(r){for(let e=0;e<r.length;e++){let t=r[e];if(typeof t=="string")return t;if(Array.isArray(t)||(0,Fp.isArguments)(t)){if(t.length===0)continue;return t[0]}let n=[t].flat();if(n.length>0)return n[0]}}Ae.getFirstValueInFlattenedArray=Gp;function Yp(r,e,t,n,i){if(r.isCluster&&!r.slots.length)return r.status==="wait"&&r.connect().catch(Fp.noop),(0,Jp.default)(new Promise(function(c,d){r.delayUntilReady(u=>{if(u){d(u);return}Yp(r,e,t,n,null).then(c,d)})}),i);let s=r.options.keyPrefix||"",a=r.isCluster?r.slots[oI(`${s}${Gp(n)}`)].join(","):"main";if(r.isCluster&&r.options.scaleReads!=="master"){let c=(0,Lp.exists)(t)&&(0,Lp.hasFlag)(t,"readonly");a+=c?":read":":write"}if(!r._autoPipelines.has(a)){let c=r.pipeline();c[Ae.kExec]=!1,c[Ae.kCallbacks]=[],r._autoPipelines.set(a,c)}let o=r._autoPipelines.get(a);o[Ae.kExec]||(o[Ae.kExec]=!0,setImmediate(Vp,r,a));let l=new Promise(function(c,d){o[Ae.kCallbacks].push(function(u,f){if(u){d(u);return}c(f)}),e==="call"&&n.unshift(t),o[e](...n)});return(0,Jp.default)(l,i)}Ae.executeWithAutoPipelining=Yp});var Wp=h(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});var cI=V("crypto"),dI=Qt(),uI=pr(),Tl=class{constructor(e,t=null,n="",i=!1){this.lua=e,this.numberOfKeys=t,this.keyPrefix=n,this.readOnly=i,this.sha=(0,cI.createHash)("sha1").update(e).digest("hex");let s=this.sha,a=new WeakSet;this.Command=class extends dI.default{toWritable(l){let c=this.reject;return this.reject=d=>{d.message.indexOf("NOSCRIPT")!==-1&&a.delete(l),c.call(this,d)},a.has(l)?this.name==="eval"&&(this.name="evalsha",this.args[0]=s):(a.add(l),this.name="eval",this.args[0]=e),super.toWritable(l)}}}execute(e,t,n,i){typeof this.numberOfKeys=="number"&&t.unshift(this.numberOfKeys),this.keyPrefix&&(n.keyPrefix=this.keyPrefix),this.readOnly&&(n.readOnly=!0);let s=new this.Command("evalsha",[this.sha,...t],n);return s.promise=s.promise.catch(a=>{if(a.message.indexOf("NOSCRIPT")===-1)throw a;let o=new this.Command("evalsha",[this.sha,...t],n);return(e.isPipeline?e.redis:e).sendCommand(o)}),(0,uI.default)(s.promise,i),e.sendCommand(s)}};Al.default=Tl});var Qi=h(Ol=>{"use strict";Object.defineProperty(Ol,"__esModule",{value:!0});var pI=Pr(),Hi=Bp(),fI=Qt(),hI=Wp(),Zt=class{constructor(){this.options={},this.scriptsSet={},this.addedBuiltinSet=new Set}getBuiltinCommands(){return Dl.slice(0)}createBuiltinCommand(e){return{string:hr(null,e,"utf8"),buffer:hr(null,e,null)}}addBuiltinCommand(e){this.addedBuiltinSet.add(e),this[e]=hr(e,e,"utf8"),this[e+"Buffer"]=hr(e+"Buffer",e,null)}defineCommand(e,t){let n=new hI.default(t.lua,t.numberOfKeys,this.options.keyPrefix,t.readOnly);this.scriptsSet[e]=n,this[e]=Up(e,e,n,"utf8"),this[e+"Buffer"]=Up(e+"Buffer",e,n,null)}sendCommand(e,t,n){throw new Error('"sendCommand" is not implemented')}},Dl=pI.list.filter(r=>r!=="monitor");Dl.push("sentinel");Dl.forEach(function(r){Zt.prototype[r]=hr(r,r,"utf8"),Zt.prototype[r+"Buffer"]=hr(r+"Buffer",r,null)});Zt.prototype.call=hr("call","utf8");Zt.prototype.callBuffer=hr("callBuffer",null);Zt.prototype.send_command=Zt.prototype.call;function hr(r,e,t){return typeof t>"u"&&(t=e,e=null),function(...n){let i=e||n.shift(),s=n[n.length-1];typeof s=="function"?n.pop():s=void 0;let a={errorStack:this.options.showFriendlyErrorStack?new Error:void 0,keyPrefix:this.options.keyPrefix,replyEncoding:t};return(0,Hi.shouldUseAutoPipelining)(this,r,i)?(0,Hi.executeWithAutoPipelining)(this,r,i,n,s):this.sendCommand(new fI.default(i,n,a,s))}}function Up(r,e,t,n){return function(...i){let s=typeof i[i.length-1]=="function"?i.pop():void 0,a={replyEncoding:n};return this.options.showFriendlyErrorStack&&(a.errorStack=new Error),(0,Hi.shouldUseAutoPipelining)(this,r,e)?(0,Hi.executeWithAutoPipelining)(this,r,e,i,s):t.execute(this,i,a,s)}}Ol.default=Zt});var _l=h(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});var Rl=Qn(),zp=Pr(),$p=pr(),yI=V("util"),mI=Qt(),bI=Re(),gI=Qi();function vI(r,e){let t=Rl(e[0]),n=r._groupsBySlot[t];for(let i=1;i<e.length;i++)if(r._groupsBySlot[Rl(e[i])]!==n)return-1;return t}var yr=class extends gI.default{constructor(e){super(),this.redis=e,this.isPipeline=!0,this.replyPending=0,this._queue=[],this._result=[],this._transactions=0,this._shaToScript={},this.isCluster=this.redis.constructor.name==="Cluster"||this.redis.isCluster,this.options=e.options,Object.keys(e.scriptsSet).forEach(n=>{let i=e.scriptsSet[n];this._shaToScript[i.sha]=i,this[n]=e[n],this[n+"Buffer"]=e[n+"Buffer"]}),e.addedBuiltinSet.forEach(n=>{this[n]=e[n],this[n+"Buffer"]=e[n+"Buffer"]}),this.promise=new Promise((n,i)=>{this.resolve=n,this.reject=i});let t=this;Object.defineProperty(this,"length",{get:function(){return t._queue.length}})}fillResult(e,t){if(this._queue[t].name==="exec"&&Array.isArray(e[1])){let i=e[1].length;for(let s=0;s<i;s++){if(e[1][s]instanceof Error)continue;let a=this._queue[t-(i-s)];try{e[1][s]=a.transformReply(e[1][s])}catch(o){e[1][s]=o}}}if(this._result[t]=e,--this.replyPending)return;if(this.isCluster){let i=!0,s;for(let a=0;a<this._result.length;++a){let o=this._result[a][0],l=this._queue[a];if(o){if(l.name==="exec"&&o.message==="EXECABORT Transaction discarded because of previous errors.")continue;if(!s)s={name:o.name,message:o.message};else if(s.name!==o.name||s.message!==o.message){i=!1;break}}else if(!l.inTransaction&&!((0,zp.exists)(l.name,{caseInsensitive:!0})&&(0,zp.hasFlag)(l.name,"readonly",{nameCaseInsensitive:!0}))){i=!1;break}}if(s&&i){let a=this,o=s.message.split(" "),l=this._queue,c=!1;this._queue=[];for(let p=0;p<l.length;++p){if(o[0]==="ASK"&&!c&&l[p].name!=="asking"&&(!l[p-1]||l[p-1].name!=="asking")){let y=new mI.default("asking");y.ignore=!0,this.sendCommand(y)}l[p].initPromise(),this.sendCommand(l[p]),c=l[p].inTransaction}let d=!0;typeof this.leftRedirections>"u"&&(this.leftRedirections={});let u=function(){a.exec()},f=this.redis;if(f.handleError(s,this.leftRedirections,{moved:function(p,y){a.preferKey=y,f.slots[o[1]]?f.slots[o[1]][0]!==y&&(f.slots[o[1]]=[y]):f.slots[o[1]]=[y],f._groupsBySlot[o[1]]=f._groupsIds[f.slots[o[1]].join(";")],f.refreshSlotsCache(),a.exec()},ask:function(p,y){a.preferKey=y,a.exec()},tryagain:u,clusterDown:u,connectionClosed:u,maxRedirections:()=>{d=!1},defaults:()=>{d=!1}}),d)return}}let n=0;for(let i=0;i<this._queue.length-n;++i)this._queue[i+n].ignore&&(n+=1),this._result[i]=this._result[i+n];this.resolve(this._result.slice(0,this._result.length-n))}sendCommand(e){this._transactions>0&&(e.inTransaction=!0);let t=this._queue.length;return e.pipelineIndex=t,e.promise.then(n=>{this.fillResult([null,n],t)}).catch(n=>{this.fillResult([n],t)}),this._queue.push(e),this}addBatch(e){let t,n,i;for(let s=0;s<e.length;++s)t=e[s],n=t[0],i=t.slice(1),this[n].apply(this,i);return this}};Cl.default=yr;var KI=yr.prototype.multi;yr.prototype.multi=function(){return this._transactions+=1,KI.apply(this,arguments)};var Hp=yr.prototype.execBuffer;yr.prototype.execBuffer=(0,yI.deprecate)(function(){return this._transactions>0&&(this._transactions-=1),Hp.apply(this,arguments)},"Pipeline#execBuffer: Use Pipeline#exec instead");yr.prototype.exec=function(r){if(this.isCluster&&!this.redis.slots.length)return this.redis.status==="wait"&&this.redis.connect().catch(bI.noop),r&&!this.nodeifiedPromise&&(this.nodeifiedPromise=!0,(0,$p.default)(this.promise,r)),this.redis.delayUntilReady(i=>{if(i){this.reject(i);return}this.exec(r)}),this.promise;if(this._transactions>0)return this._transactions-=1,Hp.apply(this,arguments);this.nodeifiedPromise||(this.nodeifiedPromise=!0,(0,$p.default)(this.promise,r)),this._queue.length||this.resolve([]);let e;if(this.isCluster){let i=[];for(let s=0;s<this._queue.length;s++){let a=this._queue[s].getKeys();if(a.length&&i.push(a[0]),a.length&&Rl.generateMulti(a)<0)return this.reject(new Error("All the keys in a pipeline command should belong to the same slot")),this.promise}if(i.length){if(e=vI(this.redis,i),e<0)return this.reject(new Error("All keys in the pipeline should belong to the same slots allocation group")),this.promise}else e=Math.random()*16384|0}let t=this;return n(),this.promise;function n(){let i=t.replyPending=t._queue.length,s;t.isCluster&&(s={slot:e,redis:t.redis.connectionPool.nodes.all[t.preferKey]});let a="",o,l={isPipeline:!0,destination:t.isCluster?s:{redis:t.redis},write(c){typeof c!="string"?(o||(o=[]),a&&(o.push(Buffer.from(a,"utf8")),a=""),o.push(c)):a+=c,--i||(o?(a&&o.push(Buffer.from(a,"utf8")),l.destination.redis.stream.write(Buffer.concat(o))):l.destination.redis.stream.write(a),i=t._queue.length,a="",o=void 0)}};for(let c=0;c<t._queue.length;++c)t.redis.sendCommand(t._queue[c],l,s);return t.promise}}});var Nl=h(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.addTransactionSupport=void 0;var Ml=Re(),Pl=pr(),Qp=_l();function SI(r){r.pipeline=function(n){let i=new Qp.default(this);return Array.isArray(n)&&i.addBatch(n),i};let{multi:e}=r;r.multi=function(n,i){if(typeof i>"u"&&!Array.isArray(n)&&(i=n,n=null),i&&i.pipeline===!1)return e.call(this);let s=new Qp.default(this);s.multi(),Array.isArray(n)&&s.addBatch(n);let a=s.exec;s.exec=function(l){if(this.isCluster&&!this.redis.slots.length)return this.redis.status==="wait"&&this.redis.connect().catch(Ml.noop),(0,Pl.default)(new Promise((d,u)=>{this.redis.delayUntilReady(f=>{if(f){u(f);return}this.exec(s).then(d,u)})}),l);if(this._transactions>0&&a.call(s),this.nodeifiedPromise)return a.call(s);let c=a.call(s);return(0,Pl.default)(c.then(function(d){let u=d[d.length-1];if(typeof u>"u")throw new Error("Pipeline cannot be used to send any commands when the `exec()` has been called on it.");if(u[0]){u[0].previousErrors=[];for(let f=0;f<d.length-1;++f)d[f][0]&&u[0].previousErrors.push(d[f][0]);throw u[0]}return(0,Ml.wrapMultiResult)(u[1])}),l)};let{execBuffer:o}=s;return s.execBuffer=function(l){return this._transactions>0&&o.call(s),s.exec(l)},s};let{exec:t}=r;r.exec=function(n){return(0,Pl.default)(t.call(this).then(function(i){return Array.isArray(i)&&(i=(0,Ml.wrapMultiResult)(i)),i}),n)}}Zi.addTransactionSupport=SI});var Jl=h(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});function EI(r,e){Object.getOwnPropertyNames(e.prototype).forEach(t=>{Object.defineProperty(r.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})}ql.default=EI});var Xp=h(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.DEFAULT_CLUSTER_OPTIONS=void 0;var Zp=V("dns");Xi.DEFAULT_CLUSTER_OPTIONS={clusterRetryStrategy:r=>Math.min(100+r*2,2e3),enableOfflineQueue:!0,enableReadyCheck:!0,scaleReads:"master",maxRedirections:16,retryDelayOnMoved:0,retryDelayOnFailover:100,retryDelayOnClusterDown:100,retryDelayOnTryAgain:100,slotsRefreshTimeout:1e3,useSRVRecords:!1,resolveSrv:Zp.resolveSrv,dnsLookup:Zp.lookup,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],shardedSubscribers:!1}});var En=h(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.getConnectionName=Ye.weightSrvRecords=Ye.groupSrvRecords=Ye.getUniqueHostnamesFromOptions=Ye.normalizeNodeOptions=Ye.nodeKeyToRedisOptions=Ye.getNodeKey=void 0;var ef=Re(),kI=V("net");function II(r){return r.port=r.port||6379,r.host=r.host||"127.0.0.1",r.host+":"+r.port}Ye.getNodeKey=II;function xI(r){let e=r.lastIndexOf(":");if(e===-1)throw new Error(`Invalid node key ${r}`);return{host:r.slice(0,e),port:Number(r.slice(e+1))}}Ye.nodeKeyToRedisOptions=xI;function wI(r){return r.map(e=>{let t={};if(typeof e=="object")Object.assign(t,e);else if(typeof e=="string")Object.assign(t,(0,ef.parseURL)(e));else if(typeof e=="number")t.port=e;else throw new Error("Invalid argument "+e);return typeof t.port=="string"&&(t.port=parseInt(t.port,10)),delete t.db,t.port||(t.port=6379),t.host||(t.host="127.0.0.1"),(0,ef.resolveTLSProfile)(t)})}Ye.normalizeNodeOptions=wI;function jI(r){let e={};return r.forEach(t=>{e[t.host]=!0}),Object.keys(e).filter(t=>!(0,kI.isIP)(t))}Ye.getUniqueHostnamesFromOptions=jI;function TI(r){let e={};for(let t of r)e.hasOwnProperty(t.priority)?(e[t.priority].totalWeight+=t.weight,e[t.priority].records.push(t)):e[t.priority]={totalWeight:t.weight,records:[t]};return e}Ye.groupSrvRecords=TI;function AI(r){if(r.records.length===1)return r.totalWeight=0,r.records.shift();let e=Math.floor(Math.random()*(r.totalWeight+r.records.length)),t=0;for(let[n,i]of r.records.entries())if(t+=1+i.weight,t>e)return r.totalWeight-=i.weight,r.records.splice(n,1),i}Ye.weightSrvRecords=AI;function DI(r,e){let t=`ioredis-cluster(${r})`;return e?`${t}:${e}`:t}Ye.getConnectionName=DI});var rf=h(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});var tf=En(),Ll=Re(),OI=Xt(),Jt=(0,Ll.Debug)("cluster:subscriber"),Fl=class{constructor(e,t,n=!1){this.connectionPool=e,this.emitter=t,this.isSharded=n,this.started=!1,this.subscriber=null,this.slotRange=[],this.onSubscriberEnd=()=>{if(!this.started){Jt("subscriber has disconnected, but ClusterSubscriber is not started, so not reconnecting.");return}Jt("subscriber has disconnected, selecting a new one..."),this.selectSubscriber()},this.connectionPool.on("-node",(i,s)=>{!this.started||!this.subscriber||(0,tf.getNodeKey)(this.subscriber.options)===s&&(Jt("subscriber has left, selecting a new one..."),this.selectSubscriber())}),this.connectionPool.on("+node",()=>{!this.started||this.subscriber||(Jt("a new node is discovered and there is no subscriber, selecting a new one..."),this.selectSubscriber())})}getInstance(){return this.subscriber}associateSlotRange(e){return this.isSharded&&(this.slotRange=e),this.slotRange}start(){this.started=!0,this.selectSubscriber(),Jt("started")}stop(){this.started=!1,this.subscriber&&(this.subscriber.disconnect(),this.subscriber=null)}isStarted(){return this.started}selectSubscriber(){let e=this.lastActiveSubscriber;e&&(e.off("end",this.onSubscriberEnd),e.disconnect()),this.subscriber&&(this.subscriber.off("end",this.onSubscriberEnd),this.subscriber.disconnect());let t=(0,Ll.sample)(this.connectionPool.getNodes());if(!t){Jt("selecting subscriber failed since there is no node discovered in the cluster yet"),this.subscriber=null;return}let{options:n}=t;Jt("selected a subscriber %s:%s",n.host,n.port);let i="subscriber";this.isSharded&&(i="ssubscriber"),this.subscriber=new OI.default({port:n.port,host:n.host,username:n.username,password:n.password,enableReadyCheck:!0,connectionName:(0,tf.getConnectionName)(i,n.connectionName),lazyConnect:!0,tls:n.tls,retryStrategy:null}),this.subscriber.on("error",Ll.noop),this.subscriber.on("moved",()=>{this.emitter.emit("forceRefresh")}),this.subscriber.once("end",this.onSubscriberEnd);let s={subscribe:[],psubscribe:[],ssubscribe:[]};if(e){let a=e.condition||e.prevCondition;a&&a.subscriber&&(s.subscribe=a.subscriber.channels("subscribe"),s.psubscribe=a.subscriber.channels("psubscribe"),s.ssubscribe=a.subscriber.channels("ssubscribe"))}if(s.subscribe.length||s.psubscribe.length||s.ssubscribe.length){let a=0;for(let o of["subscribe","psubscribe","ssubscribe"]){let l=s[o];if(l.length!=0)if(Jt("%s %d channels",o,l.length),o==="ssubscribe")for(let c of l)a+=1,this.subscriber[o](c).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{Jt("failed to ssubscribe to channel: %s",c)});else a+=1,this.subscriber[o](l).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{Jt("failed to %s %d channels",o,l.length)})}}else this.lastActiveSubscriber=this.subscriber;for(let a of["message","messageBuffer"])this.subscriber.on(a,(o,l)=>{this.emitter.emit(a,o,l)});for(let a of["pmessage","pmessageBuffer"])this.subscriber.on(a,(o,l,c)=>{this.emitter.emit(a,o,l,c)});if(this.isSharded==!0)for(let a of["smessage","smessageBuffer"])this.subscriber.on(a,(o,l)=>{this.emitter.emit(a,o,l)})}};Vl.default=Fl});var nf=h(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});var RI=V("events"),es=Re(),Gl=En(),CI=Xt(),ei=(0,es.Debug)("cluster:connectionPool"),Yl=class extends RI.EventEmitter{constructor(e){super(),this.redisOptions=e,this.nodes={all:{},master:{},slave:{}},this.specifiedOptions={}}getNodes(e="all"){let t=this.nodes[e];return Object.keys(t).map(n=>t[n])}getInstanceByKey(e){return this.nodes.all[e]}getSampleInstance(e){let t=Object.keys(this.nodes[e]),n=(0,es.sample)(t);return this.nodes[e][n]}addMasterNode(e){let t=(0,Gl.getNodeKey)(e.options),n=this.createRedisFromOptions(e,e.options.readOnly);return e.options.readOnly?!1:(this.nodes.all[t]=n,this.nodes.master[t]=n,!0)}createRedisFromOptions(e,t){return new CI.default((0,es.defaults)({retryStrategy:null,enableOfflineQueue:!0,readOnly:t},e,this.redisOptions,{lazyConnect:!0}))}findOrCreate(e,t=!1){let n=(0,Gl.getNodeKey)(e);t=!!t,this.specifiedOptions[n]?Object.assign(e,this.specifiedOptions[n]):this.specifiedOptions[n]=e;let i;return this.nodes.all[n]?(i=this.nodes.all[n],i.options.readOnly!==t&&(i.options.readOnly=t,ei("Change role of %s to %s",n,t?"slave":"master"),i[t?"readonly":"readwrite"]().catch(es.noop),t?(delete this.nodes.master[n],this.nodes.slave[n]=i):(delete this.nodes.slave[n],this.nodes.master[n]=i))):(ei("Connecting to %s as %s",n,t?"slave":"master"),i=this.createRedisFromOptions(e,t),this.nodes.all[n]=i,this.nodes[t?"slave":"master"][n]=i,i.once("end",()=>{this.removeNode(n),this.emit("-node",i,n),Object.keys(this.nodes.all).length||this.emit("drain")}),this.emit("+node",i,n),i.on("error",function(s){this.emit("nodeError",s,n)})),i}reset(e){ei("Reset with %O",e);let t={};e.forEach(n=>{let i=(0,Gl.getNodeKey)(n);n.readOnly&&t[i]||(t[i]=n)}),Object.keys(this.nodes.all).forEach(n=>{t[n]||(ei("Disconnect %s because the node does not hold any slot",n),this.nodes.all[n].disconnect(),this.removeNode(n))}),Object.keys(t).forEach(n=>{let i=t[n];this.findOrCreate(i,i.readOnly)})}removeNode(e){let{nodes:t}=this;t.all[e]&&(ei("Remove %s from the pool",e),delete t.all[e]),delete t.master[e],delete t.slave[e]}};Bl.default=Yl});var ts=h((U_,sf)=>{"use strict";function we(r,t){var t=t||{};this._capacity=t.capacity,this._head=0,this._tail=0,Array.isArray(r)?this._fromArray(r):(this._capacityMask=3,this._list=new Array(4))}we.prototype.peekAt=function(e){var t=e;if(t===(t|0)){var n=this.size();if(!(t>=n||t<-n))return t<0&&(t+=n),t=this._head+t&this._capacityMask,this._list[t]}};we.prototype.get=function(e){return this.peekAt(e)};we.prototype.peek=function(){if(this._head!==this._tail)return this._list[this._head]};we.prototype.peekFront=function(){return this.peek()};we.prototype.peekBack=function(){return this.peekAt(-1)};Object.defineProperty(we.prototype,"length",{get:function(){return this.size()}});we.prototype.size=function(){return this._head===this._tail?0:this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)};we.prototype.unshift=function(e){if(arguments.length===0)return this.size();var t=this._list.length;return this._head=this._head-1+t&this._capacityMask,this._list[this._head]=e,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.pop(),this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)};we.prototype.shift=function(){var e=this._head;if(e!==this._tail){var t=this._list[e];return this._list[e]=void 0,this._head=e+1&this._capacityMask,e<2&&this._tail>1e4&&this._tail<=this._list.length>>>2&&this._shrinkArray(),t}};we.prototype.push=function(e){if(arguments.length===0)return this.size();var t=this._tail;return this._list[t]=e,this._tail=t+1&this._capacityMask,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.shift(),this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)};we.prototype.pop=function(){var e=this._tail;if(e!==this._head){var t=this._list.length;this._tail=e-1+t&this._capacityMask;var n=this._list[this._tail];return this._list[this._tail]=void 0,this._head<2&&e>1e4&&e<=t>>>2&&this._shrinkArray(),n}};we.prototype.removeOne=function(e){var t=e;if(t===(t|0)&&this._head!==this._tail){var n=this.size(),i=this._list.length;if(!(t>=n||t<-n)){t<0&&(t+=n),t=this._head+t&this._capacityMask;var s=this._list[t],a;if(e<n/2){for(a=e;a>0;a--)this._list[t]=this._list[t=t-1+i&this._capacityMask];this._list[t]=void 0,this._head=this._head+1+i&this._capacityMask}else{for(a=n-1-e;a>0;a--)this._list[t]=this._list[t=t+1+i&this._capacityMask];this._list[t]=void 0,this._tail=this._tail-1+i&this._capacityMask}return s}}};we.prototype.remove=function(e,t){var n=e,i,s=t;if(n===(n|0)&&this._head!==this._tail){var a=this.size(),o=this._list.length;if(!(n>=a||n<-a||t<1)){if(n<0&&(n+=a),t===1||!t)return i=new Array(1),i[0]=this.removeOne(n),i;if(n===0&&n+t>=a)return i=this.toArray(),this.clear(),i;n+t>a&&(t=a-n);var l;for(i=new Array(t),l=0;l<t;l++)i[l]=this._list[this._head+n+l&this._capacityMask];if(n=this._head+n&this._capacityMask,e+t===a){for(this._tail=this._tail-t+o&this._capacityMask,l=t;l>0;l--)this._list[n=n+1+o&this._capacityMask]=void 0;return i}if(e===0){for(this._head=this._head+t+o&this._capacityMask,l=t-1;l>0;l--)this._list[n=n+1+o&this._capacityMask]=void 0;return i}if(n<a/2){for(this._head=this._head+e+t+o&this._capacityMask,l=e;l>0;l--)this.unshift(this._list[n=n-1+o&this._capacityMask]);for(n=this._head-1+o&this._capacityMask;s>0;)this._list[n=n-1+o&this._capacityMask]=void 0,s--;e<0&&(this._tail=n)}else{for(this._tail=n,n=n+t+o&this._capacityMask,l=a-(t+e);l>0;l--)this.push(this._list[n++]);for(n=this._tail;s>0;)this._list[n=n+1+o&this._capacityMask]=void 0,s--}return this._head<2&&this._tail>1e4&&this._tail<=o>>>2&&this._shrinkArray(),i}}};we.prototype.splice=function(e,t){var n=e;if(n===(n|0)){var i=this.size();if(n<0&&(n+=i),!(n>i))if(arguments.length>2){var s,a,o,l=arguments.length,c=this._list.length,d=2;if(!i||n<i/2){for(a=new Array(n),s=0;s<n;s++)a[s]=this._list[this._head+s&this._capacityMask];for(t===0?(o=[],n>0&&(this._head=this._head+n+c&this._capacityMask)):(o=this.remove(n,t),this._head=this._head+n+c&this._capacityMask);l>d;)this.unshift(arguments[--l]);for(s=n;s>0;s--)this.unshift(a[s-1])}else{a=new Array(i-(n+t));var u=a.length;for(s=0;s<u;s++)a[s]=this._list[this._head+n+t+s&this._capacityMask];for(t===0?(o=[],n!=i&&(this._tail=this._head+n+c&this._capacityMask)):(o=this.remove(n,t),this._tail=this._tail-u+c&this._capacityMask);d<l;)this.push(arguments[d++]);for(s=0;s<u;s++)this.push(a[s])}return o}else return this.remove(n,t)}};we.prototype.clear=function(){this._list=new Array(this._list.length),this._head=0,this._tail=0};we.prototype.isEmpty=function(){return this._head===this._tail};we.prototype.toArray=function(){return this._copyArray(!1)};we.prototype._fromArray=function(e){var t=e.length,n=this._nextPowerOf2(t);this._list=new Array(n),this._capacityMask=n-1,this._tail=t;for(var i=0;i<t;i++)this._list[i]=e[i]};we.prototype._copyArray=function(e,t){var n=this._list,i=n.length,s=this.length;if(t=t|s,t==s&&this._head<this._tail)return this._list.slice(this._head,this._tail);var a=new Array(t),o=0,l;if(e||this._head>this._tail){for(l=this._head;l<i;l++)a[o++]=n[l];for(l=0;l<this._tail;l++)a[o++]=n[l]}else for(l=this._head;l<this._tail;l++)a[o++]=n[l];return a};we.prototype._growArray=function(){if(this._head!=0){var e=this._copyArray(!0,this._list.length<<1);this._tail=this._list.length,this._head=0,this._list=e}else this._tail=this._list.length,this._list.length<<=1;this._capacityMask=this._capacityMask<<1|1};we.prototype._shrinkArray=function(){this._list.length>>>=1,this._capacityMask>>>=1};we.prototype._nextPowerOf2=function(e){var t=Math.log(e)/Math.log(2),n=1<<t+1;return Math.max(n,4)};sf.exports=we});var af=h(Ul=>{"use strict";Object.defineProperty(Ul,"__esModule",{value:!0});var _I=Re(),MI=ts(),PI=(0,_I.Debug)("delayqueue"),Wl=class{constructor(){this.queues={},this.timeouts={}}push(e,t,n){let i=n.callback||process.nextTick;this.queues[e]||(this.queues[e]=new MI),this.queues[e].push(t),this.timeouts[e]||(this.timeouts[e]=setTimeout(()=>{i(()=>{this.timeouts[e]=null,this.execute(e)})},n.timeout))}execute(e){let t=this.queues[e];if(!t)return;let{length:n}=t;if(n)for(PI("send %d commands in %s queue",n,e),this.queues[e]=null;t.length>0;)t.shift()()}};Ul.default=Wl});var df=h($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});var of=En(),cf=Re(),NI=Xt(),lf=(0,cf.Debug)("cluster:subscriberGroup:shardedSubscriber"),me={IDLE:"idle",STARTING:"starting",CONNECTED:"connected",STOPPING:"stopping",ENDED:"ended"},qI={[me.IDLE]:[me.STARTING,me.STOPPING,me.ENDED],[me.STARTING]:[me.CONNECTED,me.STOPPING,me.ENDED],[me.CONNECTED]:[me.STOPPING,me.ENDED],[me.STOPPING]:[me.ENDED],[me.ENDED]:[]},zl=class{constructor(e,t,n){var i;this.emitter=e,this.status=me.IDLE,this.instance=null,this.connectPromise=null,this.messageListeners=new Map,this.onEnd=()=>{this.updateStatus(me.ENDED),this.emitter.emit("-node",this.instance,this.nodeKey)},this.onError=s=>{this.emitter.emit("nodeError",s,this.nodeKey)},this.onMoved=()=>{this.emitter.emit("moved")},this.instance=new NI.default((0,cf.defaults)({enableReadyCheck:!1,enableOfflineQueue:!0,connectionName:(0,of.getConnectionName)("ssubscriber",t.connectionName),retryStrategy:null,lazyConnect:!0},t,n)),this.lazyConnect=(i=n?.lazyConnect)!==null&&i!==void 0?i:!0,this.nodeKey=(0,of.getNodeKey)(t),this.instance.on("end",this.onEnd),this.instance.on("error",this.onError),this.instance.on("moved",this.onMoved);for(let s of["smessage","smessageBuffer"]){let a=(...o)=>{this.emitter.emit(s,...o)};this.messageListeners.set(s,a),this.instance.on(s,a)}}async start(){if(this.connectPromise)return this.connectPromise;if(!(this.status===me.STARTING||this.status===me.CONNECTED)){if(this.status===me.ENDED||!this.instance)throw new Error(`Sharded subscriber ${this.nodeKey} cannot be restarted once ended.`);this.updateStatus(me.STARTING),this.connectPromise=this.instance.connect();try{await this.connectPromise,this.updateStatus(me.CONNECTED)}catch(e){throw this.updateStatus(me.ENDED),e}finally{this.connectPromise=null}}}stop(){this.updateStatus(me.STOPPING),this.instance&&(this.instance.disconnect(),this.instance.removeAllListeners(),this.messageListeners.clear(),this.instance=null),this.updateStatus(me.ENDED),lf("stopped %s",this.nodeKey)}isStarted(){return[me.CONNECTED,me.STARTING].includes(this.status)}get subscriberStatus(){return this.status}isHealthy(){return(this.status===me.IDLE||this.status===me.CONNECTED||this.status===me.STARTING)&&this.instance!==null}getInstance(){return this.instance}getNodeKey(){return this.nodeKey}isLazyConnect(){return this.lazyConnect}updateStatus(e){if(this.status!==e){if(!qI[this.status].includes(e)){lf("Invalid status transition for %s: %s -> %s",this.nodeKey,this.status,e);return}this.status=e}}};$l.default=zl});var uf=h(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});var JI=Re(),LI=En(),rs=Qn(),FI=df(),St=(0,JI.Debug)("cluster:subscriberGroup"),kn=class r{constructor(e,t){this.subscriberGroupEmitter=e,this.options=t,this.shardedSubscribers=new Map,this.clusterSlots=[],this.subscriberToSlotsIndex=new Map,this.channels=new Map,this.failedAttemptsByNode=new Map,this.isResetting=!1,this.pendingReset=null,this.handleSubscriberConnectFailed=(n,i)=>{let a=(this.failedAttemptsByNode.get(i)||0)+1;this.failedAttemptsByNode.set(i,a);let o=Math.min(a,r.MAX_RETRY_ATTEMPTS),l=Math.min(r.BASE_BACKOFF_MS*2**o,r.MAX_BACKOFF_MS),c=Math.floor((Math.random()-.5)*(l*.5)),d=Math.max(0,l+c);St("Failed to connect subscriber for %s. Refreshing slots in %dms",i,d),this.subscriberGroupEmitter.emit("subscriberConnectFailed",{delay:d,error:n})},this.handleSubscriberConnectSucceeded=n=>{this.failedAttemptsByNode.delete(n)}}getResponsibleSubscriber(e){let t=this.clusterSlots[e][0],n=this.shardedSubscribers.get(t);return n&&n.subscriberStatus==="idle"&&n.start().then(()=>{this.handleSubscriberConnectSucceeded(n.getNodeKey())}).catch(i=>{this.handleSubscriberConnectFailed(i,n.getNodeKey())}),n}addChannels(e){let t=rs(e[0]);for(let i of e)if(rs(i)!==t)return-1;let n=this.channels.get(t);return n?this.channels.set(t,n.concat(e)):this.channels.set(t,e),Array.from(this.channels.values()).reduce((i,s)=>i+s.length,0)}removeChannels(e){let t=rs(e[0]);for(let i of e)if(rs(i)!==t)return-1;let n=this.channels.get(t);if(n){let i=n.filter(s=>!e.includes(s));this.channels.set(t,i)}return Array.from(this.channels.values()).reduce((i,s)=>i+s.length,0)}stop(){for(let e of this.shardedSubscribers.values())e.stop();this.pendingReset=null,this.shardedSubscribers.clear(),this.subscriberToSlotsIndex.clear()}start(){let e=[];for(let t of this.shardedSubscribers.values())this.shouldStartSubscriber(t)&&(e.push(t.start().then(()=>{this.handleSubscriberConnectSucceeded(t.getNodeKey())}).catch(n=>{this.handleSubscriberConnectFailed(n,t.getNodeKey())})),this.subscriberGroupEmitter.emit("+subscriber"));return Promise.all(e)}async reset(e,t){if(this.isResetting){this.pendingReset={slots:e,nodes:t};return}this.isResetting=!0;try{let n=this._refreshSlots(e),i=this.hasUnhealthySubscribers();if(!n&&!i){St("No topology change detected or failed subscribers. Skipping reset.");return}for(let[a,o]of this.shardedSubscribers){if(this.subscriberToSlotsIndex.has(a)&&o.isHealthy()){St("Skipping deleting subscriber for %s",a);continue}St("Removing subscriber for %s",a),o.stop(),this.shardedSubscribers.delete(a),this.subscriberGroupEmitter.emit("-subscriber")}let s=[];for(let[a,o]of this.subscriberToSlotsIndex){let l=this.shardedSubscribers.get(a);if(l&&l.isHealthy()){St("Skipping creating new subscriber for %s",a),!l.isStarted()&&this.shouldStartSubscriber(l)&&s.push(l.start().then(()=>{this.handleSubscriberConnectSucceeded(a)}).catch(u=>{this.handleSubscriberConnectFailed(u,a)}));continue}l&&!l.isHealthy()&&(St("Replacing subscriber for %s",a),l.stop(),this.shardedSubscribers.delete(a),this.subscriberGroupEmitter.emit("-subscriber")),St("Creating new subscriber for %s",a);let c=t.find(u=>(0,LI.getNodeKey)(u.options)===a);if(!c){St("Failed to find node for key %s",a);continue}let d=new FI.default(this.subscriberGroupEmitter,c.options,this.options.redisOptions);this.shardedSubscribers.set(a,d),this.shouldStartSubscriber(d)&&s.push(d.start().then(()=>{this.handleSubscriberConnectSucceeded(a)}).catch(u=>{this.handleSubscriberConnectFailed(u,a)})),this.subscriberGroupEmitter.emit("+subscriber")}await Promise.all(s),this._resubscribe(),this.subscriberGroupEmitter.emit("subscribersReady")}finally{if(this.isResetting=!1,this.pendingReset){let{slots:n,nodes:i}=this.pendingReset;this.pendingReset=null,await this.reset(n,i)}}}_refreshSlots(e){if(this._slotsAreEqual(e)&&this.subscriberToSlotsIndex.size>0)return St("Nothing to refresh because the new cluster map is equal to the previous one."),!1;St("Refreshing the slots of the subscriber group."),this.subscriberToSlotsIndex=new Map;for(let t=0;t<e.length;t++){let n=e[t][0];this.subscriberToSlotsIndex.has(n)||this.subscriberToSlotsIndex.set(n,[]),this.subscriberToSlotsIndex.get(n).push(Number(t))}return this.clusterSlots=JSON.parse(JSON.stringify(e)),!0}_resubscribe(){this.shardedSubscribers&&this.shardedSubscribers.forEach((e,t)=>{let n=this.subscriberToSlotsIndex.get(t);n&&n.forEach(i=>{let s=e.getInstance(),a=this.channels.get(i);if(a&&a.length>0){if(!s||s.status==="end")return;s.status==="ready"?s.ssubscribe(...a).catch(o=>{St("Failed to ssubscribe on node %s: %s",t,o)}):s.once("ready",()=>{s.ssubscribe(...a).catch(o=>{St("Failed to ssubscribe on node %s: %s",t,o)})})}})})}_slotsAreEqual(e){return this.clusterSlots===void 0?!1:JSON.stringify(this.clusterSlots)===JSON.stringify(e)}hasUnhealthySubscribers(){let e=Array.from(this.shardedSubscribers.values()).some(n=>!n.isHealthy()),t=Array.from(this.subscriberToSlotsIndex.keys()).some(n=>!this.shardedSubscribers.has(n));return e||t}shouldStartSubscriber(e){if(e.isStarted())return!1;if(!e.isLazyConnect())return!0;let t=this.subscriberToSlotsIndex.get(e.getNodeKey());return t?t.some(n=>{let i=this.channels.get(n);return!!(i&&i.length>0)}):!1}};Hl.default=kn;kn.MAX_RETRY_ATTEMPTS=10;kn.MAX_BACKOFF_MS=2e3;kn.BASE_BACKOFF_MS=100});var Xl=h(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});var pf=Pr(),Ql=V("events"),In=Nr(),ff=pr(),hf=Qt(),ns=qp(),VI=Xt(),GI=$i(),YI=Nl(),dt=Re(),BI=Jl(),WI=Qi(),UI=Xp(),zI=rf(),$I=nf(),HI=af(),xn=En(),yf=ts(),QI=uf(),Ke=(0,dt.Debug)("cluster"),mf=new WeakSet,ti=class r extends WI.default{constructor(e,t={}){if(super(),this.slots=[],this._groupsIds={},this._groupsBySlot=Array(16384),this.isCluster=!0,this.retryAttempts=0,this.delayQueue=new HI.default,this.offlineQueue=new yf,this.isRefreshing=!1,this._refreshSlotsCacheCallbacks=[],this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this._readyDelayedCallbacks=[],this.connectionEpoch=0,Ql.EventEmitter.call(this),this.startupNodes=e,this.options=(0,dt.defaults)({},t,UI.DEFAULT_CLUSTER_OPTIONS,this.options),this.options.shardedSubscribers&&this.createShardedSubscriberGroup(),this.options.redisOptions&&this.options.redisOptions.keyPrefix&&!this.options.keyPrefix&&(this.options.keyPrefix=this.options.redisOptions.keyPrefix),typeof this.options.scaleReads!="function"&&["all","master","slave"].indexOf(this.options.scaleReads)===-1)throw new Error('Invalid option scaleReads "'+this.options.scaleReads+'". Expected "all", "master", "slave" or a custom function');this.connectionPool=new $I.default(this.options.redisOptions),this.connectionPool.on("-node",(n,i)=>{this.emit("-node",n)}),this.connectionPool.on("+node",n=>{this.emit("+node",n)}),this.connectionPool.on("drain",()=>{this.setStatus("close")}),this.connectionPool.on("nodeError",(n,i)=>{this.emit("node error",n,i)}),this.subscriber=new zI.default(this.connectionPool,this),this.options.scripts&&Object.entries(this.options.scripts).forEach(([n,i])=>{this.defineCommand(n,i)}),this.options.lazyConnect?this.setStatus("wait"):this.connect().catch(n=>{Ke("connecting failed: %s",n)})}connect(){return new Promise((e,t)=>{if(this.status==="connecting"||this.status==="connect"||this.status==="ready"){t(new Error("Redis is already connecting/connected"));return}let n=++this.connectionEpoch;this.setStatus("connecting"),this.resolveStartupNodeHostnames().then(i=>{if(this.connectionEpoch!==n){Ke("discard connecting after resolving startup nodes because epoch not match: %d != %d",n,this.connectionEpoch),t(new In.RedisError("Connection is discarded because a new connection is made"));return}if(this.status!=="connecting"){Ke("discard connecting after resolving startup nodes because the status changed to %s",this.status),t(new In.RedisError("Connection is aborted"));return}this.connectionPool.reset(i),this.options.shardedSubscribers&&this.shardedSubscribers.reset(this.slots,this.connectionPool.getNodes("all")).catch(l=>{Ke("Error while starting subscribers: %s",l)});let s=()=>{this.setStatus("ready"),this.retryAttempts=0,this.executeOfflineCommands(),this.resetNodesRefreshInterval(),e()},a,o=()=>{this.invokeReadyDelayedCallbacks(void 0),this.removeListener("close",a),this.manuallyClosing=!1,this.setStatus("connect"),this.options.enableReadyCheck?this.readyCheck((l,c)=>{l||c?(Ke("Ready check failed (%s). Reconnecting...",l||c),this.status==="connect"&&this.disconnect(!0)):s()}):s()};a=()=>{let l=new Error("None of startup nodes is available");this.removeListener("refresh",o),this.invokeReadyDelayedCallbacks(l),t(l)},this.once("refresh",o),this.once("close",a),this.once("close",this.handleCloseEvent.bind(this)),this.refreshSlotsCache(l=>{l&&l.message===ns.default.defaultMessage&&(VI.default.prototype.silentEmit.call(this,"error",l),this.connectionPool.reset([]))}),this.subscriber.start(),this.options.shardedSubscribers&&this.shardedSubscribers.start().catch(l=>{Ke("Error while starting subscribers: %s",l)})}).catch(i=>{this.setStatus("close"),this.handleCloseEvent(i),this.invokeReadyDelayedCallbacks(i),t(i)})})}disconnect(e=!1){let t=this.status;this.setStatus("disconnecting"),e||(this.manuallyClosing=!0),this.reconnectTimeout&&!e&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null,Ke("Canceled reconnecting attempts")),this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers&&this.shardedSubscribers.stop(),t==="wait"?(this.setStatus("close"),this.handleCloseEvent()):this.connectionPool.reset([])}quit(e){let t=this.status;if(this.setStatus("disconnecting"),this.manuallyClosing=!0,this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers&&this.shardedSubscribers.stop(),t==="wait"){let n=(0,ff.default)(Promise.resolve("OK"),e);return setImmediate(function(){this.setStatus("close"),this.handleCloseEvent()}.bind(this)),n}return(0,ff.default)(Promise.all(this.nodes().map(n=>n.quit().catch(i=>{if(i.message===dt.CONNECTION_CLOSED_ERROR_MSG)return"OK";throw i}))).then(()=>"OK"),e)}duplicate(e=[],t={}){let n=e.length>0?e:this.startupNodes.slice(0),i=Object.assign({},this.options,t);return new r(n,i)}nodes(e="all"){if(e!=="all"&&e!=="master"&&e!=="slave")throw new Error('Invalid role "'+e+'". Expected "all", "master" or "slave"');return this.connectionPool.getNodes(e)}delayUntilReady(e){this._readyDelayedCallbacks.push(e)}get autoPipelineQueueSize(){let e=0;for(let t of this._autoPipelines.values())e+=t.length;return e}refreshSlotsCache(e){if(e&&this._refreshSlotsCacheCallbacks.push(e),this.isRefreshing)return;this.isRefreshing=!0;let t=this,n=o=>{this.isRefreshing=!1;for(let l of this._refreshSlotsCacheCallbacks)l(o);this._refreshSlotsCacheCallbacks=[]},i=(0,dt.shuffle)(this.connectionPool.getNodes()),s=null;function a(o){if(o===i.length){let d=new ns.default(ns.default.defaultMessage,s);return n(d)}let l=i[o],c=`${l.options.host}:${l.options.port}`;Ke("getting slot cache from %s",c),t.getInfoFromNode(l,function(d){switch(t.status){case"close":case"end":return n(new Error("Cluster is disconnected."));case"disconnecting":return n(new Error("Cluster is disconnecting."))}d?(t.emit("node error",d,c),s=d,a(o+1)):(t.emit("refresh"),n())})}a(0)}sendCommand(e,t,n){if(this.status==="wait"&&this.connect().catch(dt.noop),this.status==="end")return e.reject(new Error(dt.CONNECTION_CLOSED_ERROR_MSG)),e.promise;let i=this.options.scaleReads;i!=="master"&&(e.isReadOnly||(0,pf.exists)(e.name)&&(0,pf.hasFlag)(e.name,"readonly")||(i="master"));let s=n?n.slot:e.getSlot(),a={},o=this;if(!n&&!mf.has(e)){mf.add(e);let c=e.reject;e.reject=function(d){let u=l.bind(null,!0);o.handleError(d,a,{moved:function(f,p){Ke("command %s is moved to %s",e.name,p),s=Number(f),o.slots[f]?o.slots[f][0]=p:o.slots[f]=[p],o._groupsBySlot[f]=o._groupsIds[o.slots[f].join(";")],o.connectionPool.findOrCreate(o.natMapper(p)),l(),Ke("refreshing slot caches... (triggered by MOVED error)"),o.refreshSlotsCache()},ask:function(f,p){Ke("command %s is required to ask %s:%s",e.name,p);let y=o.natMapper(p);o.connectionPool.findOrCreate(y),l(!1,`${y.host}:${y.port}`)},tryagain:u,clusterDown:u,connectionClosed:u,maxRedirections:function(f){c.call(e,f)},defaults:function(){c.call(e,d)}})}}l();function l(c,d){if(o.status==="end"){e.reject(new In.AbortError("Cluster is ended."));return}let u;if(o.status==="ready"||e.name==="cluster"){if(n&&n.redis)u=n.redis;else if(hf.default.checkFlag("ENTER_SUBSCRIBER_MODE",e.name)||hf.default.checkFlag("EXIT_SUBSCRIBER_MODE",e.name)){if(o.options.shardedSubscribers&&(e.name=="ssubscribe"||e.name=="sunsubscribe")){let f=o.shardedSubscribers.getResponsibleSubscriber(s);if(!f){e.reject(new In.AbortError(`No sharded subscriber for slot: ${s}`));return}let p=-1;e.name=="ssubscribe"&&(p=o.shardedSubscribers.addChannels(e.getKeys())),e.name=="sunsubscribe"&&(p=o.shardedSubscribers.removeChannels(e.getKeys())),p!==-1?u=f.getInstance():e.reject(new In.AbortError("Possible CROSSSLOT error: All channels must hash to the same slot"))}else u=o.subscriber.getInstance();if(!u){e.reject(new In.AbortError("No subscriber for the cluster"));return}}else{if(!c){if(typeof s=="number"&&o.slots[s]){let f=o.slots[s];if(typeof i=="function"){let p=f.map(function(y){return o.connectionPool.getInstanceByKey(y)});u=i(p,e),Array.isArray(u)&&(u=(0,dt.sample)(u)),u||(u=p[0])}else{let p;i==="all"?p=(0,dt.sample)(f):i==="slave"&&f.length>1?p=(0,dt.sample)(f,1):p=f[0],u=o.connectionPool.getInstanceByKey(p)}}d&&(u=o.connectionPool.getInstanceByKey(d),u.asking())}u||(u=(typeof i=="function"?null:o.connectionPool.getSampleInstance(i))||o.connectionPool.getSampleInstance("all"))}n&&!n.redis&&(n.redis=u)}u?u.sendCommand(e,t):o.options.enableOfflineQueue?o.offlineQueue.push({command:e,stream:t,node:n}):e.reject(new Error("Cluster isn't ready and enableOfflineQueue options is false"))}return e.promise}sscanStream(e,t){return this.createScanStream("sscan",{key:e,options:t})}sscanBufferStream(e,t){return this.createScanStream("sscanBuffer",{key:e,options:t})}hscanStream(e,t){return this.createScanStream("hscan",{key:e,options:t})}hscanBufferStream(e,t){return this.createScanStream("hscanBuffer",{key:e,options:t})}zscanStream(e,t){return this.createScanStream("zscan",{key:e,options:t})}zscanBufferStream(e,t){return this.createScanStream("zscanBuffer",{key:e,options:t})}handleError(e,t,n){if(typeof t.value>"u"?t.value=this.options.maxRedirections:t.value-=1,t.value<=0){n.maxRedirections(new Error("Too many Cluster redirections. Last error: "+e));return}let i=e.message.split(" ");if(i[0]==="MOVED"){let s=this.options.retryDelayOnMoved;s&&typeof s=="number"?this.delayQueue.push("moved",n.moved.bind(null,i[1],i[2]),{timeout:s}):n.moved(i[1],i[2])}else i[0]==="ASK"?n.ask(i[1],i[2]):i[0]==="TRYAGAIN"?this.delayQueue.push("tryagain",n.tryagain,{timeout:this.options.retryDelayOnTryAgain}):i[0]==="CLUSTERDOWN"&&this.options.retryDelayOnClusterDown>0?this.delayQueue.push("clusterdown",n.connectionClosed,{timeout:this.options.retryDelayOnClusterDown,callback:this.refreshSlotsCache.bind(this)}):e.message===dt.CONNECTION_CLOSED_ERROR_MSG&&this.options.retryDelayOnFailover>0&&this.status==="ready"?this.delayQueue.push("failover",n.connectionClosed,{timeout:this.options.retryDelayOnFailover,callback:this.refreshSlotsCache.bind(this)}):n.defaults()}resetOfflineQueue(){this.offlineQueue=new yf}clearNodesRefreshInterval(){this.slotsTimer&&(clearTimeout(this.slotsTimer),this.slotsTimer=null)}resetNodesRefreshInterval(){if(this.slotsTimer||!this.options.slotsRefreshInterval)return;let e=()=>{this.slotsTimer=setTimeout(()=>{Ke('refreshing slot caches... (triggered by "slotsRefreshInterval" option)'),this.refreshSlotsCache(()=>{e()})},this.options.slotsRefreshInterval)};e()}setStatus(e){Ke("status: %s -> %s",this.status||"[empty]",e),this.status=e,process.nextTick(()=>{this.emit(e)})}handleCloseEvent(e){var t;e&&Ke("closed because %s",e);let n;!this.manuallyClosing&&typeof this.options.clusterRetryStrategy=="function"&&(n=this.options.clusterRetryStrategy.call(this,++this.retryAttempts,e)),typeof n=="number"?(this.setStatus("reconnecting"),this.reconnectTimeout=setTimeout(()=>{this.reconnectTimeout=null,Ke("Cluster is disconnected. Retrying after %dms",n),this.connect().catch(function(i){Ke("Got error %s when reconnecting. Ignoring...",i)})},n)):(this.options.shardedSubscribers&&((t=this.subscriberGroupEmitter)===null||t===void 0||t.removeAllListeners()),this.setStatus("end"),this.flushQueue(new Error("None of startup nodes is available")))}flushQueue(e){let t;for(;t=this.offlineQueue.shift();)t.command.reject(e)}executeOfflineCommands(){if(this.offlineQueue.length){Ke("send %d commands in offline queue",this.offlineQueue.length);let e=this.offlineQueue;this.resetOfflineQueue();let t;for(;t=e.shift();)this.sendCommand(t.command,t.stream,t.node)}}natMapper(e){let t=typeof e=="string"?e:`${e.host}:${e.port}`,n=null;return this.options.natMap&&typeof this.options.natMap=="function"?n=this.options.natMap(t):this.options.natMap&&typeof this.options.natMap=="object"&&(n=this.options.natMap[t]),n?(Ke("NAT mapping %s -> %O",t,n),Object.assign({},n)):typeof e=="string"?(0,xn.nodeKeyToRedisOptions)(e):e}getInfoFromNode(e,t){if(!e)return t(new Error("Node is disconnected"));let n=e.duplicate({enableOfflineQueue:!0,enableReadyCheck:!1,retryStrategy:null,connectionName:(0,xn.getConnectionName)("refresher",this.options.redisOptions&&this.options.redisOptions.connectionName)});n.on("error",dt.noop),n.cluster("SLOTS",(0,dt.timeout)((i,s)=>{if(n.disconnect(),i)return Ke("error encountered running CLUSTER.SLOTS: %s",i),t(i);if(this.status==="disconnecting"||this.status==="close"||this.status==="end"){Ke("ignore CLUSTER.SLOTS results (count: %d) since cluster status is %s",s.length,this.status),t();return}let a=[];Ke("cluster slots result count: %d",s.length);for(let l=0;l<s.length;++l){let c=s[l],d=c[0],u=c[1],f=[];for(let p=2;p<c.length;p++){if(!c[p][0])continue;let y=this.natMapper({host:c[p][0],port:c[p][1]});y.readOnly=p!==2,a.push(y),f.push(y.host+":"+y.port)}Ke("cluster slots result [%d]: slots %d~%d served by %s",l,d,u,f);for(let p=d;p<=u;p++)this.slots[p]=f}this._groupsIds=Object.create(null);let o=0;for(let l=0;l<16384;l++){let c=(this.slots[l]||[]).join(";");if(!c.length){this._groupsBySlot[l]=void 0;continue}this._groupsIds[c]||(this._groupsIds[c]=++o),this._groupsBySlot[l]=this._groupsIds[c]}this.connectionPool.reset(a),this.options.shardedSubscribers&&this.shardedSubscribers.reset(this.slots,this.connectionPool.getNodes("all")).catch(l=>{Ke("Error while starting subscribers: %s",l)}),t()},this.options.slotsRefreshTimeout))}invokeReadyDelayedCallbacks(e){for(let t of this._readyDelayedCallbacks)process.nextTick(t,e);this._readyDelayedCallbacks=[]}readyCheck(e){this.cluster("INFO",(t,n)=>{if(t)return e(t);if(typeof n!="string")return e();let i,s=n.split(`\r
|
|
159
|
-
`);for(let a=0;a<s.length;++a){let o=s[a].split(":");if(o[0]==="cluster_state"){i=o[1];break}}i==="fail"?(Ke("cluster state not ok (%s)",i),e(null,i)):e()})}resolveSrv(e){return new Promise((t,n)=>{this.options.resolveSrv(e,(i,s)=>{if(i)return n(i);let a=this,o=(0,xn.groupSrvRecords)(s),l=Object.keys(o).sort((d,u)=>parseInt(d)-parseInt(u));function c(d){if(!l.length)return n(d);let u=l[0],f=o[u],p=(0,xn.weightSrvRecords)(f);f.records.length||l.shift(),a.dnsLookup(p.name).then(y=>t({host:y,port:p.port}),c)}c()})})}dnsLookup(e){return new Promise((t,n)=>{this.options.dnsLookup(e,(i,s)=>{i?(Ke("failed to resolve hostname %s to IP: %s",e,i.message),n(i)):(Ke("resolved hostname %s to IP %s",e,s),t(s))})})}async resolveStartupNodeHostnames(){if(!Array.isArray(this.startupNodes)||this.startupNodes.length===0)throw new Error("`startupNodes` should contain at least one node.");let e=(0,xn.normalizeNodeOptions)(this.startupNodes),t=(0,xn.getUniqueHostnamesFromOptions)(e);if(t.length===0)return e;let n=await Promise.all(t.map((this.options.useSRVRecords?this.resolveSrv:this.dnsLookup).bind(this))),i=(0,dt.zipMap)(t,n);return e.map(s=>{let a=i.get(s.host);return a?this.options.useSRVRecords?Object.assign({},s,a):Object.assign({},s,{host:a}):s})}createScanStream(e,{key:t,options:n={}}){return new GI.default({objectMode:!0,key:t,redis:this,command:e,...n})}createShardedSubscriberGroup(){this.subscriberGroupEmitter=new Ql.EventEmitter,this.shardedSubscribers=new QI.default(this.subscriberGroupEmitter,this.options);let e=t=>{t instanceof ns.default&&this.disconnect(!0)};this.subscriberGroupEmitter.on("-node",(t,n)=>{this.emit("-node",t,n),this.refreshSlotsCache(e)}),this.subscriberGroupEmitter.on("subscriberConnectFailed",({delay:t,error:n})=>{this.emit("error",n),setTimeout(()=>{this.refreshSlotsCache(e)},t)}),this.subscriberGroupEmitter.on("moved",()=>{this.refreshSlotsCache(e)}),this.subscriberGroupEmitter.on("-subscriber",()=>{this.emit("-subscriber")}),this.subscriberGroupEmitter.on("+subscriber",()=>{this.emit("+subscriber")}),this.subscriberGroupEmitter.on("nodeError",(t,n)=>{this.emit("nodeError",t,n)}),this.subscriberGroupEmitter.on("subscribersReady",()=>{this.emit("subscribersReady")});for(let t of["smessage","smessageBuffer"])this.subscriberGroupEmitter.on(t,(n,i,s)=>{this.emit(t,n,i,s)})}};(0,BI.default)(ti,Ql.EventEmitter);(0,YI.addTransactionSupport)(ti.prototype);Zl.default=ti});var is=h(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var ZI=Re(),XI=(0,ZI.Debug)("AbstractConnector"),ec=class{constructor(e){this.connecting=!1,this.disconnectTimeout=e}check(e){return!0}disconnect(){if(this.connecting=!1,this.stream){let e=this.stream,t=setTimeout(()=>{XI("stream %s:%s still open, destroying it",e.remoteAddress,e.remotePort),e.destroy()},this.disconnectTimeout);e.on("close",()=>clearTimeout(t)),e.end()}}};tc.default=ec});var bf=h(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var ex=V("net"),tx=V("tls"),rx=Re(),nx=is(),rc=class extends nx.default{constructor(e){super(e.disconnectTimeout),this.options=e}connect(e){let{options:t}=this;this.connecting=!0;let n;return"path"in t&&t.path?n={path:t.path}:(n={},"port"in t&&t.port!=null&&(n.port=t.port),"host"in t&&t.host!=null&&(n.host=t.host),"family"in t&&t.family!=null&&(n.family=t.family)),t.tls&&Object.assign(n,t.tls),new Promise((i,s)=>{process.nextTick(()=>{if(!this.connecting){s(new Error(rx.CONNECTION_CLOSED_ERROR_MSG));return}try{t.tls?this.stream=(0,tx.connect)(n):this.stream=(0,ex.createConnection)(n)}catch(a){s(a);return}this.stream.once("error",a=>{this.firstError=a}),i(this.stream)})})}};nc.default=rc});var gf=h(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});function ix(r,e){return(r.host||"127.0.0.1")===(e.host||"127.0.0.1")&&(r.port||26379)===(e.port||26379)}var ic=class{constructor(e){this.cursor=0,this.sentinels=e.slice(0)}next(){let e=this.cursor>=this.sentinels.length;return{done:e,value:e?void 0:this.sentinels[this.cursor++]}}reset(e){e&&this.sentinels.length>1&&this.cursor!==1&&this.sentinels.unshift(...this.sentinels.splice(this.cursor-1)),this.cursor=0}add(e){for(let t=0;t<this.sentinels.length;t++)if(ix(e,this.sentinels[t]))return!1;return this.sentinels.push(e),!0}toString(){return`${JSON.stringify(this.sentinels)} @${this.cursor}`}};sc.default=ic});var Kf=h(ss=>{"use strict";Object.defineProperty(ss,"__esModule",{value:!0});ss.FailoverDetector=void 0;var sx=Re(),ac=(0,sx.Debug)("FailoverDetector"),vf="+switch-master",oc=class{constructor(e,t){this.isDisconnected=!1,this.connector=e,this.sentinels=t}cleanup(){this.isDisconnected=!0;for(let e of this.sentinels)e.client.disconnect()}async subscribe(){ac("Starting FailoverDetector");let e=[];for(let t of this.sentinels){let n=t.client.subscribe(vf).catch(i=>{ac("Failed to subscribe to failover messages on sentinel %s:%s (%s)",t.address.host||"127.0.0.1",t.address.port||26739,i.message)});e.push(n),t.client.on("message",i=>{!this.isDisconnected&&i===vf&&this.disconnect()})}await Promise.all(e)}disconnect(){this.isDisconnected=!0,ac("Failover detected, disconnecting"),this.connector.disconnect()}};ss.FailoverDetector=oc});var as=h(ni=>{"use strict";Object.defineProperty(ni,"__esModule",{value:!0});ni.SentinelIterator=void 0;var ax=V("net"),ri=Re(),ox=V("tls"),Sf=gf();ni.SentinelIterator=Sf.default;var lx=is(),cx=Xt(),dx=Kf(),wn=(0,ri.Debug)("SentinelConnector"),lc=class extends lx.default{constructor(e){if(super(e.disconnectTimeout),this.options=e,this.emitter=null,this.failoverDetector=null,!this.options.sentinels.length)throw new Error("Requires at least one sentinel to connect to.");if(!this.options.name)throw new Error("Requires the name of master.");this.sentinelIterator=new Sf.default(this.options.sentinels)}check(e){let t=!e.role||this.options.role===e.role;return t||(wn("role invalid, expected %s, but got %s",this.options.role,e.role),this.sentinelIterator.next(),this.sentinelIterator.next(),this.sentinelIterator.reset(!0)),t}disconnect(){super.disconnect(),this.failoverDetector&&this.failoverDetector.cleanup()}connect(e){this.connecting=!0,this.retryAttempts=0;let t,n=async()=>{let i=this.sentinelIterator.next();if(i.done){this.sentinelIterator.reset(!1);let l=typeof this.options.sentinelRetryStrategy=="function"?this.options.sentinelRetryStrategy(++this.retryAttempts):null,c=typeof l!="number"?"All sentinels are unreachable and retry is disabled.":`All sentinels are unreachable. Retrying from scratch after ${l}ms.`;t&&(c+=` Last error: ${t.message}`),wn(c);let d=new Error(c);if(typeof l=="number")return e("error",d),await new Promise(u=>setTimeout(u,l)),n();throw d}let s=null,a=null;try{s=await this.resolve(i.value)}catch(l){a=l}if(!this.connecting)throw new Error(ri.CONNECTION_CLOSED_ERROR_MSG);let o=i.value.host+":"+i.value.port;if(s)return wn("resolved: %s:%s from sentinel %s",s.host,s.port,o),this.options.enableTLSForSentinelMode&&this.options.tls?(Object.assign(s,this.options.tls),this.stream=(0,ox.connect)(s),this.stream.once("secureConnect",this.initFailoverDetector.bind(this))):(this.stream=(0,ax.createConnection)(s),this.stream.once("connect",this.initFailoverDetector.bind(this))),this.stream.once("error",l=>{this.firstError=l}),this.stream;{let l=a?"failed to connect to sentinel "+o+" because "+a.message:"connected to sentinel "+o+" successfully, but got an invalid reply: "+s;return wn(l),e("sentinelError",new Error(l)),a&&(t=a),n()}};return n()}async updateSentinels(e){if(!this.options.updateSentinels)return;let t=await e.sentinel("sentinels",this.options.name);Array.isArray(t)&&(t.map(ri.packObject).forEach(n=>{if((n.flags?n.flags.split(","):[]).indexOf("disconnected")===-1&&n.ip&&n.port){let s=this.sentinelNatResolve(Ef(n));this.sentinelIterator.add(s)&&wn("adding sentinel %s:%s",s.host,s.port)}}),wn("Updated internal sentinels: %s",this.sentinelIterator))}async resolveMaster(e){let t=await e.sentinel("get-master-addr-by-name",this.options.name);return await this.updateSentinels(e),this.sentinelNatResolve(Array.isArray(t)?{host:t[0],port:Number(t[1])}:null)}async resolveSlave(e){let t=await e.sentinel("slaves",this.options.name);if(!Array.isArray(t))return null;let n=t.map(ri.packObject).filter(i=>i.flags&&!i.flags.match(/(disconnected|s_down|o_down)/));return this.sentinelNatResolve(ux(n,this.options.preferredSlaves))}sentinelNatResolve(e){if(!e||!this.options.natMap)return e;let t=`${e.host}:${e.port}`,n=e;return typeof this.options.natMap=="function"?n=this.options.natMap(t)||e:typeof this.options.natMap=="object"&&(n=this.options.natMap[t]||e),n}connectToSentinel(e,t){return new cx.default({port:e.port||26379,host:e.host,username:this.options.sentinelUsername||null,password:this.options.sentinelPassword||null,family:e.family||("path"in this.options&&this.options.path?void 0:this.options.family),tls:this.options.sentinelTLS,retryStrategy:null,enableReadyCheck:!1,connectTimeout:this.options.connectTimeout,commandTimeout:this.options.sentinelCommandTimeout,...t})}async resolve(e){let t=this.connectToSentinel(e);t.on("error",px);try{return this.options.role==="slave"?await this.resolveSlave(t):await this.resolveMaster(t)}finally{t.disconnect()}}async initFailoverDetector(){var e;if(!this.options.failoverDetector)return;this.sentinelIterator.reset(!0);let t=[];for(;t.length<this.options.sentinelMaxConnections;){let{done:n,value:i}=this.sentinelIterator.next();if(n)break;let s=this.connectToSentinel(i,{lazyConnect:!0,retryStrategy:this.options.sentinelReconnectStrategy});s.on("reconnecting",()=>{var a;(a=this.emitter)===null||a===void 0||a.emit("sentinelReconnecting")}),t.push({address:i,client:s})}this.sentinelIterator.reset(!1),this.failoverDetector&&this.failoverDetector.cleanup(),this.failoverDetector=new dx.FailoverDetector(this,t),await this.failoverDetector.subscribe(),(e=this.emitter)===null||e===void 0||e.emit("failoverSubscribed")}};ni.default=lc;function ux(r,e){if(r.length===0)return null;let t;if(typeof e=="function")t=e(r);else if(e!==null&&typeof e=="object"){let n=Array.isArray(e)?e:[e];n.sort((i,s)=>(i.prio||(i.prio=1),s.prio||(s.prio=1),i.prio<s.prio?-1:i.prio>s.prio?1:0));for(let i=0;i<n.length;i++){for(let s=0;s<r.length;s++){let a=r[s];if(a.ip===n[i].ip&&a.port===n[i].port){t=a;break}}if(t)break}}return t||(t=(0,ri.sample)(r)),Ef(t)}function Ef(r){return{host:r.ip,port:Number(r.port)}}function px(){}});var kf=h(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.SentinelConnector=jn.StandaloneConnector=void 0;var fx=bf();jn.StandaloneConnector=fx.default;var hx=as();jn.SentinelConnector=hx.default});var If=h(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var yx=Nr(),cc=class extends yx.AbortError{constructor(e){let t=`Reached the max retries per request limit (which is ${e}). Refer to "maxRetriesPerRequest" option for details.`;super(t),Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}};dc.default=cc});var xf=h(os=>{"use strict";Object.defineProperty(os,"__esModule",{value:!0});os.MaxRetriesPerRequestError=void 0;var mx=If();os.MaxRetriesPerRequestError=mx.default});var Rf=h((aM,Of)=>{"use strict";var mc=V("buffer").Buffer,bx=V("string_decoder").StringDecoder,uc=new bx,wf=Nr(),gx=wf.ReplyError,vx=wf.ParserError,Dt=mc.allocUnsafe(32*1024),$e=0,ls=null,ii=0,pc=0;function Kx(r){let e=r.buffer.length-1;var t=r.offset,n=0,i=1;for(r.buffer[t]===45&&(i=-1,t++);t<e;){let s=r.buffer[t++];if(s===13)return r.offset=t+1,i*n;n=n*10+(s-48)}}function Sx(r){let e=r.buffer.length-1;var t=r.offset,n=0,i="";for(r.buffer[t]===45&&(i+="-",t++);t<e;){var s=r.buffer[t++];if(s===13)return r.offset=t+1,n!==0&&(i+=n),i;n>429496728?(i+=n*10+(s-48),n=0):s===48&&n===0?i+=0:n=n*10+(s-48)}}function jf(r){let e=r.offset,t=r.buffer,n=t.length-1;for(var i=e;i<n;)if(t[i++]===13)return r.offset=i+1,r.optionReturnBuffers===!0?r.buffer.slice(e,i-1):r.buffer.toString("utf8",e,i-1)}function Tf(r){let e=r.buffer.length-1;for(var t=r.offset,n=0;t<e;){let i=r.buffer[t++];if(i===13)return r.offset=t+1,n;n=n*10+(i-48)}}function Ex(r){return r.optionStringNumbers===!0?Sx(r):Kx(r)}function kx(r){let e=Tf(r);if(e===void 0)return;if(e<0)return null;let t=r.offset+e;if(t+2>r.buffer.length){r.bigStrSize=t+2,r.totalChunkSize=r.buffer.length,r.bufferCache.push(r.buffer);return}let n=r.offset;return r.offset=t+2,r.optionReturnBuffers===!0?r.buffer.slice(n,t):r.buffer.toString("utf8",n,t)}function Ix(r){var e=jf(r);if(e!==void 0)return r.optionReturnBuffers===!0&&(e=e.toString()),new gx(e)}function xx(r,e){let t=new vx("Protocol error, got "+JSON.stringify(String.fromCharCode(e))+" as reply type byte",JSON.stringify(r.buffer),r.offset);r.buffer=null,r.returnFatalError(t)}function wx(r){let e=Tf(r);if(e===void 0)return;if(e<0)return null;let t=new Array(e);return Af(r,t,0)}function fc(r,e,t){r.arrayCache.push(e),r.arrayPos.push(t)}function hc(r){let e=r.arrayCache.pop();var t=r.arrayPos.pop();if(r.arrayCache.length){let n=hc(r);if(n===void 0){fc(r,e,t);return}e[t++]=n}return Af(r,e,t)}function Af(r,e,t){let n=r.buffer.length;for(;t<e.length;){let i=r.offset;if(r.offset>=n){fc(r,e,t);return}let s=Df(r,r.buffer[r.offset++]);if(s===void 0){r.arrayCache.length||r.bufferCache.length||(r.offset=i),fc(r,e,t);return}e[t]=s,t++}return e}function Df(r,e){switch(e){case 36:return kx(r);case 43:return jf(r);case 42:return wx(r);case 58:return Ex(r);case 45:return Ix(r);default:return xx(r,e)}}function jx(){if(Dt.length>50*1024)if(ii===1||pc>ii*2){let r=Math.floor(Dt.length/10),e=r<$e?$e:r;$e=0,Dt=Dt.slice(e,Dt.length)}else pc++,ii--;else clearInterval(ls),ii=0,pc=0,ls=null}function Tx(r){if(Dt.length<r+$e){let e=r>78643200?2:3;$e>1024*1024*111&&($e=1024*1024*50),Dt=mc.allocUnsafe(r*e+$e),$e=0,ii++,ls===null&&(ls=setInterval(jx,50))}}function Ax(r){let e=r.bufferCache,t=r.offset;var n=e.length,i=r.bigStrSize-r.totalChunkSize;if(r.offset=i,i<=2){if(n===2)return e[0].toString("utf8",t,e[0].length+i-2);n--,i=e[e.length-2].length+i}for(var s=uc.write(e[0].slice(t)),a=1;a<n-1;a++)s+=uc.write(e[a]);return s+=uc.end(e[a].slice(0,i-2)),s}function Dx(r){let e=r.bufferCache,t=r.offset,n=r.bigStrSize-t-2;var i=e.length,s=r.bigStrSize-r.totalChunkSize;if(r.offset=s,s<=2){if(i===2)return e[0].slice(t,e[0].length+s-2);i--,s=e[e.length-2].length+s}Tx(n);let a=$e;e[0].copy(Dt,a,t,e[0].length),$e+=e[0].length-t;for(var o=1;o<i-1;o++)e[o].copy(Dt,$e),$e+=e[o].length;return e[o].copy(Dt,$e,0,s-2),$e+=s-2,Dt.slice(a,$e)}var yc=class{constructor(e){if(!e)throw new TypeError("Options are mandatory.");if(typeof e.returnError!="function"||typeof e.returnReply!="function")throw new TypeError("The returnReply and returnError options have to be functions.");this.setReturnBuffers(!!e.returnBuffers),this.setStringNumbers(!!e.stringNumbers),this.returnError=e.returnError,this.returnFatalError=e.returnFatalError||e.returnError,this.returnReply=e.returnReply,this.reset()}reset(){this.offset=0,this.buffer=null,this.bigStrSize=0,this.totalChunkSize=0,this.bufferCache=[],this.arrayCache=[],this.arrayPos=[]}setReturnBuffers(e){if(typeof e!="boolean")throw new TypeError("The returnBuffers argument has to be a boolean");this.optionReturnBuffers=e}setStringNumbers(e){if(typeof e!="boolean")throw new TypeError("The stringNumbers argument has to be a boolean");this.optionStringNumbers=e}execute(e){if(this.buffer===null)this.buffer=e,this.offset=0;else if(this.bigStrSize===0){let n=this.buffer.length,i=n-this.offset,s=mc.allocUnsafe(i+e.length);if(this.buffer.copy(s,0,this.offset,n),e.copy(s,i,0,e.length),this.buffer=s,this.offset=0,this.arrayCache.length){let a=hc(this);if(a===void 0)return;this.returnReply(a)}}else if(this.totalChunkSize+e.length>=this.bigStrSize){this.bufferCache.push(e);var t=this.optionReturnBuffers?Dx(this):Ax(this);if(this.bigStrSize=0,this.bufferCache=[],this.buffer=e,this.arrayCache.length&&(this.arrayCache[0][this.arrayPos[0]++]=t,t=hc(this),t===void 0))return;this.returnReply(t)}else{this.bufferCache.push(e),this.totalChunkSize+=e.length;return}for(;this.offset<this.buffer.length;){let n=this.offset,i=this.buffer[this.offset++],s=Df(this,i);if(s===void 0){this.arrayCache.length||this.bufferCache.length||(this.offset=n);return}i===45?this.returnError(s):this.returnReply(s)}this.buffer=null}};Of.exports=yc});var _f=h((oM,Cf)=>{"use strict";Cf.exports=Rf()});var Mf=h(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var gc=class{constructor(){this.set={subscribe:{},psubscribe:{},ssubscribe:{}}}add(e,t){this.set[bc(e)][t]=!0}del(e,t){delete this.set[bc(e)][t]}channels(e){return Object.keys(this.set[bc(e)])}isEmpty(){return this.channels("subscribe").length===0&&this.channels("psubscribe").length===0&&this.channels("ssubscribe").length===0}};vc.default=gc;function bc(r){return r==="unsubscribe"?"subscribe":r==="punsubscribe"?"psubscribe":r==="sunsubscribe"?"ssubscribe":r}});var Jf=h(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var Pf=Qt(),Ox=Re(),Rx=_f(),Cx=Mf(),_x=(0,Ox.Debug)("dataHandler"),Kc=class{constructor(e,t){this.redis=e;let n=new Rx({stringNumbers:t.stringNumbers,returnBuffers:!0,returnError:i=>{this.returnError(i)},returnFatalError:i=>{this.returnFatalError(i)},returnReply:i=>{this.returnReply(i)}});e.stream.prependListener("data",i=>{n.execute(i)}),e.stream.resume()}returnFatalError(e){e.message+=". Please report this.",this.redis.recoverFromFatalError(e,e,{offlineQueue:!1})}returnError(e){let t=this.shiftCommand(e);if(t){if(e.command={name:t.command.name,args:t.command.args},t.command.name=="ssubscribe"&&e.message.includes("MOVED")){this.redis.emit("moved");return}this.redis.handleReconnection(e,t)}}returnReply(e){if(this.handleMonitorReply(e)||this.handleSubscriberReply(e))return;let t=this.shiftCommand(e);t&&(Pf.default.checkFlag("ENTER_SUBSCRIBER_MODE",t.command.name)?(this.redis.condition.subscriber=new Cx.default,this.redis.condition.subscriber.add(t.command.name,e[1].toString()),Nf(t.command,e[2])||this.redis.commandQueue.unshift(t)):Pf.default.checkFlag("EXIT_SUBSCRIBER_MODE",t.command.name)?qf(t.command,e[2])||this.redis.commandQueue.unshift(t):t.command.resolve(e))}handleSubscriberReply(e){if(!this.redis.condition.subscriber)return!1;let t=Array.isArray(e)?e[0].toString():null;switch(_x('receive reply "%s" in subscriber mode',t),t){case"message":this.redis.listeners("message").length>0&&this.redis.emit("message",e[1].toString(),e[2]?e[2].toString():""),this.redis.emit("messageBuffer",e[1],e[2]);break;case"pmessage":{let n=e[1].toString();this.redis.listeners("pmessage").length>0&&this.redis.emit("pmessage",n,e[2].toString(),e[3].toString()),this.redis.emit("pmessageBuffer",n,e[2],e[3]);break}case"smessage":{this.redis.listeners("smessage").length>0&&this.redis.emit("smessage",e[1].toString(),e[2]?e[2].toString():""),this.redis.emit("smessageBuffer",e[1],e[2]);break}case"ssubscribe":case"subscribe":case"psubscribe":{let n=e[1].toString();this.redis.condition.subscriber.add(t,n);let i=this.shiftCommand(e);if(!i)return;Nf(i.command,e[2])||this.redis.commandQueue.unshift(i);break}case"sunsubscribe":case"unsubscribe":case"punsubscribe":{let n=e[1]?e[1].toString():null;n&&this.redis.condition.subscriber.del(t,n);let i=e[2];Number(i)===0&&(this.redis.condition.subscriber=!1);let s=this.shiftCommand(e);if(!s)return;qf(s.command,i)||this.redis.commandQueue.unshift(s);break}default:{let n=this.shiftCommand(e);if(!n)return;n.command.resolve(e)}}return!0}handleMonitorReply(e){if(this.redis.status!=="monitoring")return!1;let t=e.toString();if(t==="OK")return!1;let n=t.indexOf(" "),i=t.slice(0,n),s=t.indexOf('"'),a=t.slice(s+1,-1).split('" "').map(l=>l.replace(/\\"/g,'"')),o=t.slice(n+2,s-2).split(" ");return this.redis.emit("monitor",i,a,o[1],o[0]),!0}shiftCommand(e){let t=this.redis.commandQueue.shift();if(!t){let n="Command queue state error. If you can reproduce this, please report it.",i=new Error(n+(e instanceof Error?` Last error: ${e.message}`:` Last reply: ${e.toString()}`));return this.redis.emit("error",i),null}return t}};Sc.default=Kc;var mr=new WeakMap;function Nf(r,e){let t=mr.has(r)?mr.get(r):r.args.length;return t-=1,t<=0?(r.resolve(e),mr.delete(r),!0):(mr.set(r,t),!1)}function qf(r,e){let t=mr.has(r)?mr.get(r):r.args.length;return t===0?Number(e)===0?(mr.delete(r),r.resolve(e),!0):!1:(t-=1,t<=0?(r.resolve(e),!0):(mr.set(r,t),!1))}});var Lf=h(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.readyHandler=Et.errorHandler=Et.closeHandler=Et.connectHandler=void 0;var Mx=Nr(),Px=Qt(),Nx=xf(),Lt=Re(),qx=Jf(),Ge=(0,Lt.Debug)("connection");function Jx(r){return function(){var e;r.setStatus("connect"),r.resetCommandQueue();let t=!1,{connectionEpoch:n}=r;r.condition.auth&&r.auth(r.condition.auth,function(s){n===r.connectionEpoch&&s&&(s.message.indexOf("no password is set")!==-1?console.warn("[WARN] Redis server does not require a password, but a password was supplied."):s.message.indexOf("without any password configured for the default user")!==-1?console.warn("[WARN] This Redis server's `default` user does not require a password, but a password was supplied"):s.message.indexOf("wrong number of arguments for 'auth' command")!==-1?console.warn(`[ERROR] The server returned "wrong number of arguments for 'auth' command". You are probably passing both username and password to Redis version 5 or below. You should only pass the 'password' option for Redis version 5 and under.`):(t=!0,r.recoverFromFatalError(s,s)))}),r.condition.select&&r.select(r.condition.select).catch(s=>{r.silentEmit("error",s)}),new qx.default(r,{stringNumbers:r.options.stringNumbers});let i=[];r.options.connectionName&&(Ge("set the connection name [%s]",r.options.connectionName),i.push(r.client("setname",r.options.connectionName).catch(Lt.noop))),r.options.disableClientInfo||(Ge("set the client info"),i.push((0,Lt.getPackageMeta)().then(s=>r.client("SETINFO","LIB-VER",s.version).catch(Lt.noop)).catch(Lt.noop)),i.push(r.client("SETINFO","LIB-NAME",!((e=r.options)===null||e===void 0)&&e.clientInfoTag?`ioredis(${r.options.clientInfoTag})`:"ioredis").catch(Lt.noop))),Promise.all(i).catch(Lt.noop).finally(()=>{r.options.enableReadyCheck||Et.readyHandler(r)(),r.options.enableReadyCheck&&r._readyCheck(function(s,a){n===r.connectionEpoch&&(s?t||r.recoverFromFatalError(new Error("Ready check failed: "+s.message),s):r.connector.check(a)?Et.readyHandler(r)():r.disconnect(!0))})})}}Et.connectHandler=Jx;function Ec(r){let e=new Mx.AbortError("Command aborted due to connection close");return e.command={name:r.name,args:r.args},e}function Lx(r){var e;let t=0;for(let n=0;n<r.length;){let i=(e=r.peekAt(n))===null||e===void 0?void 0:e.command,s=i.pipelineIndex;if((s===void 0||s===0)&&(t=0),s!==void 0&&s!==t++){r.remove(n,1),i.reject(Ec(i));continue}n++}}function Fx(r){var e;for(let t=0;t<r.length;){let n=(e=r.peekAt(t))===null||e===void 0?void 0:e.command;if(n.name==="multi")break;if(n.name==="exec"){r.remove(t,1),n.reject(Ec(n));break}n.inTransaction?(r.remove(t,1),n.reject(Ec(n))):t++}}function Vx(r){return function(){let t=r.status;if(r.setStatus("close"),r.commandQueue.length&&Lx(r.commandQueue),r.offlineQueue.length&&Fx(r.offlineQueue),t==="ready"&&(r.prevCondition||(r.prevCondition=r.condition),r.commandQueue.length&&(r.prevCommandQueue=r.commandQueue)),r.manuallyClosing)return r.manuallyClosing=!1,Ge("skip reconnecting since the connection is manually closed."),e();if(typeof r.options.retryStrategy!="function")return Ge("skip reconnecting because `retryStrategy` is not a function"),e();let n=r.options.retryStrategy(++r.retryAttempts);if(typeof n!="number")return Ge("skip reconnecting because `retryStrategy` doesn't return a number"),e();Ge("reconnect in %sms",n),r.setStatus("reconnecting",n),r.reconnectTimeout=setTimeout(function(){r.reconnectTimeout=null,r.connect().catch(Lt.noop)},n);let{maxRetriesPerRequest:i}=r.options;typeof i=="number"&&(i<0?Ge("maxRetriesPerRequest is negative, ignoring..."):r.retryAttempts%(i+1)===0&&(Ge("reach maxRetriesPerRequest limitation, flushing command queue..."),r.flushQueue(new Nx.MaxRetriesPerRequestError(i))))};function e(){r.setStatus("end"),r.flushQueue(new Error(Lt.CONNECTION_CLOSED_ERROR_MSG))}}Et.closeHandler=Vx;function Gx(r){return function(e){Ge("error: %s",e),r.silentEmit("error",e)}}Et.errorHandler=Gx;function Yx(r){return function(){if(r.setStatus("ready"),r.retryAttempts=0,r.options.monitor){r.call("monitor").then(()=>r.setStatus("monitoring"),n=>r.emit("error",n));let{sendCommand:t}=r;r.sendCommand=function(n){return Px.default.checkFlag("VALID_IN_MONITOR_MODE",n.name)?t.call(r,n):(n.reject(new Error("Connection is in monitoring mode, can't process commands.")),n.promise)},r.once("close",function(){delete r.sendCommand});return}let e=r.prevCondition?r.prevCondition.select:r.condition.select;if(r.options.readOnly&&(Ge("set the connection to readonly mode"),r.readonly().catch(Lt.noop)),r.prevCondition){let t=r.prevCondition;if(r.prevCondition=null,t.subscriber&&r.options.autoResubscribe){r.condition.select!==e&&(Ge("connect to db [%d]",e),r.select(e));let n=t.subscriber.channels("subscribe");n.length&&(Ge("subscribe %d channels",n.length),r.subscribe(n));let i=t.subscriber.channels("psubscribe");i.length&&(Ge("psubscribe %d channels",i.length),r.psubscribe(i));let s=t.subscriber.channels("ssubscribe");if(s.length){Ge("ssubscribe %s",s.length);for(let a of s)r.ssubscribe(a)}}}if(r.prevCommandQueue)if(r.options.autoResendUnfulfilledCommands)for(Ge("resend %d unfulfilled commands",r.prevCommandQueue.length);r.prevCommandQueue.length>0;){let t=r.prevCommandQueue.shift();t.select!==r.condition.select&&t.command.name!=="select"&&r.select(t.select),r.sendCommand(t.command,t.stream)}else r.prevCommandQueue=null;if(r.offlineQueue.length){Ge("send %d commands in offline queue",r.offlineQueue.length);let t=r.offlineQueue;for(r.resetOfflineQueue();t.length>0;){let n=t.shift();n.select!==r.condition.select&&n.command.name!=="select"&&r.select(n.select),r.sendCommand(n.command,n.stream)}}r.condition.select!==e&&(Ge("connect to db [%d]",e),r.select(e))}}Et.readyHandler=Yx});var Ff=h(cs=>{"use strict";Object.defineProperty(cs,"__esModule",{value:!0});cs.DEFAULT_REDIS_OPTIONS=void 0;cs.DEFAULT_REDIS_OPTIONS={port:6379,host:"localhost",family:0,connectTimeout:1e4,disconnectTimeout:2e3,retryStrategy:function(r){return Math.min(r*50,2e3)},keepAlive:0,noDelay:!0,connectionName:null,disableClientInfo:!1,clientInfoTag:void 0,sentinels:null,name:null,role:"master",sentinelRetryStrategy:function(r){return Math.min(r*10,1e3)},sentinelReconnectStrategy:function(){return 6e4},natMap:null,enableTLSForSentinelMode:!1,updateSentinels:!0,failoverDetector:!1,username:null,password:null,db:0,enableOfflineQueue:!0,enableReadyCheck:!0,autoResubscribe:!0,autoResendUnfulfilledCommands:!0,lazyConnect:!1,keyPrefix:"",reconnectOnError:null,readOnly:!1,stringNumbers:!1,maxRetriesPerRequest:20,maxLoadingRetryTime:1e4,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],sentinelMaxConnections:10,blockingTimeoutGrace:100}});var Xt=h(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var Vf=Pr(),Yf=V("events"),kc=pr(),Bx=Xl(),Lr=Qt(),Wx=kf(),Ux=as(),br=Lf(),Bf=Ff(),zx=$i(),$x=Nl(),Fr=Re(),Hx=Jl(),Qx=Qi(),gr=Vi(),Gf=ts(),vr=(0,Fr.Debug)("redis"),Kr=class r extends Qx.default{constructor(e,t,n){if(super(),this.status="wait",this.isCluster=!1,this.reconnectTimeout=null,this.connectionEpoch=0,this.retryAttempts=0,this.manuallyClosing=!1,this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this.parseOptions(e,t,n),Yf.EventEmitter.call(this),this.resetCommandQueue(),this.resetOfflineQueue(),this.options.Connector)this.connector=new this.options.Connector(this.options);else if(this.options.sentinels){let i=new Ux.default(this.options);i.emitter=this,this.connector=i}else this.connector=new Wx.StandaloneConnector(this.options);this.options.scripts&&Object.entries(this.options.scripts).forEach(([i,s])=>{this.defineCommand(i,s)}),this.options.lazyConnect?this.setStatus("wait"):this.connect().catch(gr.noop)}static createClient(...e){return new r(...e)}get autoPipelineQueueSize(){let e=0;for(let t of this._autoPipelines.values())e+=t.length;return e}connect(e){let t=new Promise((n,i)=>{if(this.status==="connecting"||this.status==="connect"||this.status==="ready"){i(new Error("Redis is already connecting/connected"));return}this.connectionEpoch+=1,this.setStatus("connecting");let{options:s}=this;this.condition={select:s.db,auth:s.username?[s.username,s.password]:s.password,subscriber:!1};let a=this;(0,kc.default)(this.connector.connect(function(o,l){a.silentEmit(o,l)}),function(o,l){if(o){a.flushQueue(o),a.silentEmit("error",o),i(o),a.setStatus("end");return}let c=s.tls?"secureConnect":"connect";if("sentinels"in s&&s.sentinels&&!s.enableTLSForSentinelMode&&(c="connect"),a.stream=l,s.noDelay&&l.setNoDelay(!0),typeof s.keepAlive=="number"&&(l.connecting?l.once(c,()=>{l.setKeepAlive(!0,s.keepAlive)}):l.setKeepAlive(!0,s.keepAlive)),l.connecting){if(l.once(c,br.connectHandler(a)),s.connectTimeout){let f=!1;l.setTimeout(s.connectTimeout,function(){if(f)return;l.setTimeout(0),l.destroy();let p=new Error("connect ETIMEDOUT");p.errorno="ETIMEDOUT",p.code="ETIMEDOUT",p.syscall="connect",br.errorHandler(a)(p)}),l.once(c,function(){f=!0,l.setTimeout(0)})}}else if(l.destroyed){let f=a.connector.firstError;f&&process.nextTick(()=>{br.errorHandler(a)(f)}),process.nextTick(br.closeHandler(a))}else process.nextTick(br.connectHandler(a));l.destroyed||(l.once("error",br.errorHandler(a)),l.once("close",br.closeHandler(a)));let d=function(){a.removeListener("close",u),n()};var u=function(){a.removeListener("ready",d),i(new Error(Fr.CONNECTION_CLOSED_ERROR_MSG))};a.once("ready",d),a.once("close",u)})});return(0,kc.default)(t,e)}disconnect(e=!1){e||(this.manuallyClosing=!0),this.reconnectTimeout&&!e&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.status==="wait"?br.closeHandler(this)():this.connector.disconnect()}end(){this.disconnect()}duplicate(e){return new r({...this.options,...e})}get mode(){var e;return this.options.monitor?"monitor":!((e=this.condition)===null||e===void 0)&&e.subscriber?"subscriber":"normal"}monitor(e){let t=this.duplicate({monitor:!0,lazyConnect:!1});return(0,kc.default)(new Promise(function(n,i){t.once("error",i),t.once("monitoring",function(){n(t)})}),e)}sendCommand(e,t){var n,i;if(this.status==="wait"&&this.connect().catch(gr.noop),this.status==="end")return e.reject(new Error(Fr.CONNECTION_CLOSED_ERROR_MSG)),e.promise;if(!((n=this.condition)===null||n===void 0)&&n.subscriber&&!Lr.default.checkFlag("VALID_IN_SUBSCRIBER_MODE",e.name))return e.reject(new Error("Connection in subscriber mode, only subscriber commands may be used")),e.promise;typeof this.options.commandTimeout=="number"&&e.setTimeout(this.options.commandTimeout);let s=this.getBlockingTimeoutInMs(e),a=this.status==="ready"||!t&&this.status==="connect"&&(0,Vf.exists)(e.name,{caseInsensitive:!0})&&((0,Vf.hasFlag)(e.name,"loading",{nameCaseInsensitive:!0})||Lr.default.checkFlag("HANDSHAKE_COMMANDS",e.name));if(this.stream&&this.stream.writable?this.stream._writableState&&this.stream._writableState.ended&&(a=!1):a=!1,a)vr.enabled&&vr("write command[%s]: %d -> %s(%o)",this._getDescription(),(i=this.condition)===null||i===void 0?void 0:i.select,e.name,e.args),t?"isPipeline"in t&&t.isPipeline?t.write(e.toWritable(t.destination.redis.stream)):t.write(e.toWritable(t)):this.stream.write(e.toWritable(this.stream)),this.commandQueue.push({command:e,stream:t,select:this.condition.select}),s!==void 0&&e.setBlockingTimeout(s),Lr.default.checkFlag("WILL_DISCONNECT",e.name)&&(this.manuallyClosing=!0),this.options.socketTimeout!==void 0&&this.socketTimeoutTimer===void 0&&this.setSocketTimeout();else{if(!this.options.enableOfflineQueue)return e.reject(new Error("Stream isn't writeable and enableOfflineQueue options is false")),e.promise;if(e.name==="quit"&&this.offlineQueue.length===0)return this.disconnect(),e.resolve(Buffer.from("OK")),e.promise;if(vr.enabled&&vr("queue command[%s]: %d -> %s(%o)",this._getDescription(),this.condition.select,e.name,e.args),this.offlineQueue.push({command:e,stream:t,select:this.condition.select}),Lr.default.checkFlag("BLOCKING_COMMANDS",e.name)){let o=this.getConfiguredBlockingTimeout();o!==void 0&&e.setBlockingTimeout(o)}}if(e.name==="select"&&(0,Fr.isInt)(e.args[0])){let o=parseInt(e.args[0],10);this.condition.select!==o&&(this.condition.select=o,this.emit("select",o),vr("switch to db [%d]",this.condition.select))}return e.promise}getBlockingTimeoutInMs(e){var t;if(!Lr.default.checkFlag("BLOCKING_COMMANDS",e.name))return;let n=this.getConfiguredBlockingTimeout();if(n===void 0)return;let i=e.extractBlockingTimeout();if(typeof i=="number")return i>0?i+((t=this.options.blockingTimeoutGrace)!==null&&t!==void 0?t:Bf.DEFAULT_REDIS_OPTIONS.blockingTimeoutGrace):n;if(i===null)return n}getConfiguredBlockingTimeout(){if(typeof this.options.blockingTimeout=="number"&&this.options.blockingTimeout>0)return this.options.blockingTimeout}setSocketTimeout(){this.socketTimeoutTimer=setTimeout(()=>{this.stream.destroy(new Error(`Socket timeout. Expecting data, but didn't receive any in ${this.options.socketTimeout}ms.`)),this.socketTimeoutTimer=void 0},this.options.socketTimeout),this.stream.once("data",()=>{clearTimeout(this.socketTimeoutTimer),this.socketTimeoutTimer=void 0,this.commandQueue.length!==0&&this.setSocketTimeout()})}scanStream(e){return this.createScanStream("scan",{options:e})}scanBufferStream(e){return this.createScanStream("scanBuffer",{options:e})}sscanStream(e,t){return this.createScanStream("sscan",{key:e,options:t})}sscanBufferStream(e,t){return this.createScanStream("sscanBuffer",{key:e,options:t})}hscanStream(e,t){return this.createScanStream("hscan",{key:e,options:t})}hscanBufferStream(e,t){return this.createScanStream("hscanBuffer",{key:e,options:t})}zscanStream(e,t){return this.createScanStream("zscan",{key:e,options:t})}zscanBufferStream(e,t){return this.createScanStream("zscanBuffer",{key:e,options:t})}silentEmit(e,t){let n;if(!(e==="error"&&(n=t,this.status==="end"||this.manuallyClosing&&n instanceof Error&&(n.message===Fr.CONNECTION_CLOSED_ERROR_MSG||n.syscall==="connect"||n.syscall==="read"))))return this.listeners(e).length>0?this.emit.apply(this,arguments):(n&&n instanceof Error&&console.error("[ioredis] Unhandled error event:",n.stack),!1)}recoverFromFatalError(e,t,n){this.flushQueue(t,n),this.silentEmit("error",t),this.disconnect(!0)}handleReconnection(e,t){var n;let i=!1;switch(this.options.reconnectOnError&&!Lr.default.checkFlag("IGNORE_RECONNECT_ON_ERROR",t.command.name)&&(i=this.options.reconnectOnError(e)),i){case 1:case!0:this.status!=="reconnecting"&&this.disconnect(!0),t.command.reject(e);break;case 2:this.status!=="reconnecting"&&this.disconnect(!0),((n=this.condition)===null||n===void 0?void 0:n.select)!==t.select&&t.command.name!=="select"&&this.select(t.select),this.sendCommand(t.command);break;default:t.command.reject(e)}}_getDescription(){let e;return"path"in this.options&&this.options.path?e=this.options.path:this.stream&&this.stream.remoteAddress&&this.stream.remotePort?e=this.stream.remoteAddress+":"+this.stream.remotePort:"host"in this.options&&this.options.host?e=this.options.host+":"+this.options.port:e="",this.options.connectionName&&(e+=` (${this.options.connectionName})`),e}resetCommandQueue(){this.commandQueue=new Gf}resetOfflineQueue(){this.offlineQueue=new Gf}parseOptions(...e){let t={},n=!1;for(let i=0;i<e.length;++i){let s=e[i];if(!(s===null||typeof s>"u"))if(typeof s=="object")(0,gr.defaults)(t,s);else if(typeof s=="string")(0,gr.defaults)(t,(0,Fr.parseURL)(s)),s.startsWith("rediss://")&&(n=!0);else if(typeof s=="number")t.port=s;else throw new Error("Invalid argument "+s)}n&&(0,gr.defaults)(t,{tls:!0}),(0,gr.defaults)(t,r.defaultOptions),typeof t.port=="string"&&(t.port=parseInt(t.port,10)),typeof t.db=="string"&&(t.db=parseInt(t.db,10)),this.options=(0,Fr.resolveTLSProfile)(t)}setStatus(e,t){vr.enabled&&vr("status[%s]: %s -> %s",this._getDescription(),this.status||"[empty]",e),this.status=e,process.nextTick(this.emit.bind(this,e,t))}createScanStream(e,{key:t,options:n={}}){return new zx.default({objectMode:!0,key:t,redis:this,command:e,...n})}flushQueue(e,t){t=(0,gr.defaults)({},t,{offlineQueue:!0,commandQueue:!0});let n;if(t.offlineQueue)for(;n=this.offlineQueue.shift();)n.command.reject(e);if(t.commandQueue&&this.commandQueue.length>0)for(this.stream&&this.stream.removeAllListeners("data");n=this.commandQueue.shift();)n.command.reject(e)}_readyCheck(e){let t=this;this.info(function(n,i){if(n)return n.message&&n.message.includes("NOPERM")?(console.warn(`Skipping the ready check because INFO command fails: "${n.message}". You can disable ready check with "enableReadyCheck". More: https://github.com/luin/ioredis/wiki/Disable-ready-check.`),e(null,{})):e(n);if(typeof i!="string")return e(null,i);let s={},a=i.split(`\r
|
|
160
|
-
`);for(let o=0;o<a.length;++o){let[l,...c]=a[o].split(":"),d=c.join(":");d&&(s[l]=d)}if(!s.loading||s.loading==="0")e(null,s);else{let o=(s.loading_eta_seconds||1)*1e3,l=t.options.maxLoadingRetryTime&&t.options.maxLoadingRetryTime<o?t.options.maxLoadingRetryTime:o;vr("Redis server still loading, trying again in "+l+"ms"),setTimeout(function(){t._readyCheck(e)},l)}}).catch(gr.noop)}};Kr.Cluster=Bx.default;Kr.Command=Lr.default;Kr.defaultOptions=Bf.DEFAULT_REDIS_OPTIONS;(0,Hx.default)(Kr,Yf.EventEmitter);(0,$x.addTransactionSupport)(Kr.prototype);Ic.default=Kr});var ds=h((Se,Uf)=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.print=Se.ReplyError=Se.SentinelIterator=Se.SentinelConnector=Se.AbstractConnector=Se.Pipeline=Se.ScanStream=Se.Command=Se.Cluster=Se.Redis=Se.default=void 0;Se=Uf.exports=Xt().default;var Zx=Xt();Object.defineProperty(Se,"default",{enumerable:!0,get:function(){return Zx.default}});var Xx=Xt();Object.defineProperty(Se,"Redis",{enumerable:!0,get:function(){return Xx.default}});var ew=Xl();Object.defineProperty(Se,"Cluster",{enumerable:!0,get:function(){return ew.default}});var tw=Qt();Object.defineProperty(Se,"Command",{enumerable:!0,get:function(){return tw.default}});var rw=$i();Object.defineProperty(Se,"ScanStream",{enumerable:!0,get:function(){return rw.default}});var nw=_l();Object.defineProperty(Se,"Pipeline",{enumerable:!0,get:function(){return nw.default}});var iw=is();Object.defineProperty(Se,"AbstractConnector",{enumerable:!0,get:function(){return iw.default}});var Wf=as();Object.defineProperty(Se,"SentinelConnector",{enumerable:!0,get:function(){return Wf.default}});Object.defineProperty(Se,"SentinelIterator",{enumerable:!0,get:function(){return Wf.SentinelIterator}});Se.ReplyError=Nr().ReplyError;Object.defineProperty(Se,"Promise",{get(){return console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used."),Promise},set(r){console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used.")}});function sw(r,e){console.log(r?"Error: "+r:"Reply: "+e)}Se.print=sw});var He={};pE(He,{__addDisposableResource:()=>gh,__assign:()=>us,__asyncDelegator:()=>dh,__asyncGenerator:()=>ch,__asyncValues:()=>uh,__await:()=>Tn,__awaiter:()=>nh,__classPrivateFieldGet:()=>yh,__classPrivateFieldIn:()=>bh,__classPrivateFieldSet:()=>mh,__createBinding:()=>fs,__decorate:()=>Hf,__disposeResources:()=>vh,__esDecorate:()=>Zf,__exportStar:()=>sh,__extends:()=>zf,__generator:()=>ih,__importDefault:()=>hh,__importStar:()=>fh,__makeTemplateObject:()=>ph,__metadata:()=>rh,__param:()=>Qf,__propKey:()=>eh,__read:()=>jc,__rest:()=>$f,__rewriteRelativeImportExtension:()=>Kh,__runInitializers:()=>Xf,__setFunctionName:()=>th,__spread:()=>ah,__spreadArray:()=>lh,__spreadArrays:()=>oh,__values:()=>ps,default:()=>lw});function zf(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");xc(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function $f(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(r,n[i])&&(t[n[i]]=r[n[i]]);return t}function Hf(r,e,t,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(r,e,t,n);else for(var o=r.length-1;o>=0;o--)(a=r[o])&&(s=(i<3?a(s):i>3?a(e,t,s):a(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s}function Qf(r,e){return function(t,n){e(t,n,r)}}function Zf(r,e,t,n,i,s){function a(S){if(S!==void 0&&typeof S!="function")throw new TypeError("Function expected");return S}for(var o=n.kind,l=o==="getter"?"get":o==="setter"?"set":"value",c=!e&&r?n.static?r:r.prototype:null,d=e||(c?Object.getOwnPropertyDescriptor(c,n.name):{}),u,f=!1,p=t.length-1;p>=0;p--){var y={};for(var g in n)y[g]=g==="access"?{}:n[g];for(var g in n.access)y.access[g]=n.access[g];y.addInitializer=function(S){if(f)throw new TypeError("Cannot add initializers after decoration has completed");s.push(a(S||null))};var E=(0,t[p])(o==="accessor"?{get:d.get,set:d.set}:d[l],y);if(o==="accessor"){if(E===void 0)continue;if(E===null||typeof E!="object")throw new TypeError("Object expected");(u=a(E.get))&&(d.get=u),(u=a(E.set))&&(d.set=u),(u=a(E.init))&&i.unshift(u)}else(u=a(E))&&(o==="field"?i.unshift(u):d[l]=u)}c&&Object.defineProperty(c,n.name,d),f=!0}function Xf(r,e,t){for(var n=arguments.length>2,i=0;i<e.length;i++)t=n?e[i].call(r,t):e[i].call(r);return n?t:void 0}function eh(r){return typeof r=="symbol"?r:"".concat(r)}function th(r,e,t){return typeof e=="symbol"&&(e=e.description?"[".concat(e.description,"]"):""),Object.defineProperty(r,"name",{configurable:!0,value:t?"".concat(t," ",e):e})}function rh(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function nh(r,e,t,n){function i(s){return s instanceof t?s:new t(function(a){a(s)})}return new(t||(t=Promise))(function(s,a){function o(d){try{c(n.next(d))}catch(u){a(u)}}function l(d){try{c(n.throw(d))}catch(u){a(u)}}function c(d){d.done?s(d.value):i(d.value).then(o,l)}c((n=n.apply(r,e||[])).next())})}function ih(r,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return a.next=o(0),a.throw=o(1),a.return=o(2),typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(c){return function(d){return l([c,d])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(t=0)),t;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,i=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){t.label=c[1];break}if(c[0]===6&&t.label<s[1]){t.label=s[1],s=c;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(c);break}s[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(r,t)}catch(d){c=[6,d],i=0}finally{n=s=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function sh(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&fs(e,r,t)}function ps(r){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&r[e],n=0;if(t)return t.call(r);if(r&&typeof r.length=="number")return{next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function jc(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),i,s=[],a;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(o){a={error:o}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(a)throw a.error}}return s}function ah(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(jc(arguments[e]));return r}function oh(){for(var r=0,e=0,t=arguments.length;e<t;e++)r+=arguments[e].length;for(var n=Array(r),i=0,e=0;e<t;e++)for(var s=arguments[e],a=0,o=s.length;a<o;a++,i++)n[i]=s[a];return n}function lh(r,e,t){if(t||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return r.concat(s||Array.prototype.slice.call(e))}function Tn(r){return this instanceof Tn?(this.v=r,this):new Tn(r)}function ch(r,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=t.apply(r,e||[]),i,s=[];return i=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),o("next"),o("throw"),o("return",a),i[Symbol.asyncIterator]=function(){return this},i;function a(p){return function(y){return Promise.resolve(y).then(p,u)}}function o(p,y){n[p]&&(i[p]=function(g){return new Promise(function(E,S){s.push([p,g,E,S])>1||l(p,g)})},y&&(i[p]=y(i[p])))}function l(p,y){try{c(n[p](y))}catch(g){f(s[0][3],g)}}function c(p){p.value instanceof Tn?Promise.resolve(p.value.v).then(d,u):f(s[0][2],p)}function d(p){l("next",p)}function u(p){l("throw",p)}function f(p,y){p(y),s.shift(),s.length&&l(s[0][0],s[0][1])}}function dh(r){var e,t;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,s){e[i]=r[i]?function(a){return(t=!t)?{value:Tn(r[i](a)),done:!1}:s?s(a):a}:s}}function uh(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof ps=="function"?ps(r):r[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(s){t[s]=r[s]&&function(a){return new Promise(function(o,l){a=r[s](a),i(o,l,a.done,a.value)})}}function i(s,a,o,l){Promise.resolve(l).then(function(c){s({value:c,done:o})},a)}}function ph(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function fh(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t=wc(r),n=0;n<t.length;n++)t[n]!=="default"&&fs(e,r,t[n]);return aw(e,r),e}function hh(r){return r&&r.__esModule?r:{default:r}}function yh(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}function mh(r,e,t,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,t):i?i.value=t:e.set(r,t),t}function bh(r,e){if(e===null||typeof e!="object"&&typeof e!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof r=="function"?e===r:r.has(e)}function gh(r,e,t){if(e!=null){if(typeof e!="object"&&typeof e!="function")throw new TypeError("Object expected.");var n,i;if(t){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=e[Symbol.asyncDispose]}if(n===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=e[Symbol.dispose],t&&(i=n)}if(typeof n!="function")throw new TypeError("Object not disposable.");i&&(n=function(){try{i.call(this)}catch(s){return Promise.reject(s)}}),r.stack.push({value:e,dispose:n,async:t})}else t&&r.stack.push({async:!0});return e}function vh(r){function e(s){r.error=r.hasError?new ow(s,r.error,"An error was suppressed during disposal."):s,r.hasError=!0}var t,n=0;function i(){for(;t=r.stack.pop();)try{if(!t.async&&n===1)return n=0,r.stack.push(t),Promise.resolve().then(i);if(t.dispose){var s=t.dispose.call(t.value);if(t.async)return n|=2,Promise.resolve(s).then(i,function(a){return e(a),i()})}else n|=1}catch(a){e(a)}if(n===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return i()}function Kh(r,e){return typeof r=="string"&&/^\.\.?\//.test(r)?r.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(t,n,i,s,a){return n?e?".jsx":".js":i&&(!s||!a)?t:i+s+"."+a.toLowerCase()+"js"}):r}var xc,us,fs,aw,wc,ow,lw,Qe=uE(()=>{xc=function(r,e){return xc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])},xc(r,e)};us=function(){return us=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s])}return e},us.apply(this,arguments)};fs=Object.create?(function(r,e,t,n){n===void 0&&(n=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,i)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]});aw=Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e},wc=function(r){return wc=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},wc(r)};ow=typeof SuppressedError=="function"?SuppressedError:function(r,e,t){var n=new Error(t);return n.name="SuppressedError",n.error=r,n.suppressed=e,n};lw={__extends:zf,__assign:us,__rest:$f,__decorate:Hf,__param:Qf,__esDecorate:Zf,__runInitializers:Xf,__propKey:eh,__setFunctionName:th,__metadata:rh,__awaiter:nh,__generator:ih,__createBinding:fs,__exportStar:sh,__values:ps,__read:jc,__spread:ah,__spreadArrays:oh,__spreadArray:lh,__await:Tn,__asyncGenerator:ch,__asyncDelegator:dh,__asyncValues:uh,__makeTemplateObject:ph,__importStar:fh,__importDefault:hh,__classPrivateFieldGet:yh,__classPrivateFieldSet:mh,__classPrivateFieldIn:bh,__addDisposableResource:gh,__disposeResources:vh,__rewriteRelativeImportExtension:Kh}});var Oc=h(hs=>{"use strict";Object.defineProperty(hs,"__esModule",{value:!0});hs.AsyncFifoQueue=void 0;var Tc=class{constructor(e){this.value=void 0,this.next=null,this.value=e}},Ac=class{constructor(){this.length=0,this.head=null,this.tail=null}push(e){let t=new Tc(e);return this.length?this.tail.next=t:this.head=t,this.tail=t,this.length+=1,t}shift(){if(this.length){let e=this.head;return this.head=this.head.next,this.length-=1,e}else return null}},Dc=class{constructor(e=!1){this.ignoreErrors=e,this.queue=new Ac,this.pending=new Set,this.newPromise()}add(e){this.pending.add(e),e.then(t=>{this.pending.delete(e),this.queue.length===0&&this.resolvePromise(t),this.queue.push(t)}).catch(t=>{this.ignoreErrors&&this.queue.push(void 0),this.pending.delete(e),this.rejectPromise(t)})}async waitAll(){await Promise.all(this.pending)}numTotal(){return this.pending.size+this.queue.length}numPending(){return this.pending.size}numQueued(){return this.queue.length}resolvePromise(e){this.resolve(e),this.newPromise()}rejectPromise(e){this.reject(e),this.newPromise()}newPromise(){this.nextPromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}async wait(){return this.nextPromise}async fetch(){var e;if(!(this.pending.size===0&&this.queue.length===0)){for(;this.queue.length===0;)try{await this.wait()}catch(t){this.ignoreErrors||console.error("Unexpected Error in AsyncFifoQueue",t)}return(e=this.queue.shift())===null||e===void 0?void 0:e.value}}};hs.AsyncFifoQueue=Dc});var Rc=h(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.Backoffs=void 0;var An=class{static normalize(e){if(Number.isFinite(e))return{type:"fixed",delay:e};if(e)return e}static calculate(e,t,n,i,s){if(e)return cw(e,s)(t,e.type,n,i)}};ys.Backoffs=An;An.builtinStrategies={fixed:function(r,e=0){return function(){if(e>0){let t=r*(1-e);return Math.floor(Math.random()*r*e+t)}else return r}},exponential:function(r,e=0){return function(t){if(e>0){let n=Math.round(Math.pow(2,t-1)*r),i=n*(1-e);return Math.floor(Math.random()*n*e+i)}else return Math.round(Math.pow(2,t-1)*r)}}};function cw(r,e){if(r.type in An.builtinStrategies)return An.builtinStrategies[r.type](r.delay,r.jitter);if(e)return e;throw new Error(`Unknown backoff strategy ${r.type}.
|
|
161
|
-
If a custom backoff strategy is used, specify it when the queue is created.`)}});var Eh=h(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});ms.ChildCommand=void 0;var Sh;(function(r){r[r.Init=0]="Init",r[r.Start=1]="Start",r[r.Stop=2]="Stop",r[r.GetChildrenValuesResponse=3]="GetChildrenValuesResponse",r[r.GetIgnoredChildrenFailuresResponse=4]="GetIgnoredChildrenFailuresResponse",r[r.GetDependenciesCountResponse=5]="GetDependenciesCountResponse",r[r.MoveToWaitingChildrenResponse=6]="MoveToWaitingChildrenResponse",r[r.Cancel=7]="Cancel",r[r.GetDependenciesResponse=8]="GetDependenciesResponse"})(Sh||(ms.ChildCommand=Sh={}))});var Ih=h(bs=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});bs.ErrorCode=void 0;var kh;(function(r){r[r.JobNotExist=-1]="JobNotExist",r[r.JobLockNotExist=-2]="JobLockNotExist",r[r.JobNotInState=-3]="JobNotInState",r[r.JobPendingChildren=-4]="JobPendingChildren",r[r.ParentJobNotExist=-5]="ParentJobNotExist",r[r.JobLockMismatch=-6]="JobLockMismatch",r[r.ParentJobCannotBeReplaced=-7]="ParentJobCannotBeReplaced",r[r.JobBelongsToJobScheduler=-8]="JobBelongsToJobScheduler",r[r.JobHasFailedChildren=-9]="JobHasFailedChildren",r[r.SchedulerJobIdCollision=-10]="SchedulerJobIdCollision",r[r.SchedulerJobSlotsBusy=-11]="SchedulerJobSlotsBusy"})(kh||(bs.ErrorCode=kh={}))});var wh=h(gs=>{"use strict";Object.defineProperty(gs,"__esModule",{value:!0});gs.ParentCommand=void 0;var xh;(function(r){r[r.Completed=0]="Completed",r[r.Error=1]="Error",r[r.Failed=2]="Failed",r[r.InitFailed=3]="InitFailed",r[r.InitCompleted=4]="InitCompleted",r[r.Log=5]="Log",r[r.MoveToDelayed=6]="MoveToDelayed",r[r.MoveToWait=7]="MoveToWait",r[r.Progress=8]="Progress",r[r.Update=9]="Update",r[r.GetChildrenValues=10]="GetChildrenValues",r[r.GetIgnoredChildrenFailures=11]="GetIgnoredChildrenFailures",r[r.GetDependenciesCount=12]="GetDependenciesCount",r[r.MoveToWaitingChildren=13]="MoveToWaitingChildren",r[r.GetDependencies=14]="GetDependencies"})(xh||(gs.ParentCommand=xh={}))});var Th=h(vs=>{"use strict";Object.defineProperty(vs,"__esModule",{value:!0});vs.MetricsTime=void 0;var jh;(function(r){r[r.ONE_MINUTE=1]="ONE_MINUTE",r[r.FIVE_MINUTES=5]="FIVE_MINUTES",r[r.FIFTEEN_MINUTES=15]="FIFTEEN_MINUTES",r[r.THIRTY_MINUTES=30]="THIRTY_MINUTES",r[r.ONE_HOUR=60]="ONE_HOUR",r[r.ONE_WEEK=10080]="ONE_WEEK",r[r.TWO_WEEKS=20160]="TWO_WEEKS",r[r.ONE_MONTH=80640]="ONE_MONTH"})(jh||(vs.MetricsTime=jh={}))});var Rh=h(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.SpanKind=Sr.MetricNames=Sr.TelemetryAttributes=void 0;var Ah;(function(r){r.QueueName="bullmq.queue.name",r.QueueOperation="bullmq.queue.operation",r.BulkCount="bullmq.job.bulk.count",r.BulkNames="bullmq.job.bulk.names",r.JobName="bullmq.job.name",r.JobId="bullmq.job.id",r.JobKey="bullmq.job.key",r.JobIds="bullmq.job.ids",r.JobAttemptsMade="bullmq.job.attempts.made",r.DeduplicationKey="bullmq.job.deduplication.key",r.JobOptions="bullmq.job.options",r.JobProgress="bullmq.job.progress",r.QueueDrainDelay="bullmq.queue.drain.delay",r.QueueGrace="bullmq.queue.grace",r.QueueCleanLimit="bullmq.queue.clean.limit",r.QueueRateLimit="bullmq.queue.rate.limit",r.JobType="bullmq.job.type",r.QueueOptions="bullmq.queue.options",r.QueueEventMaxLength="bullmq.queue.event.max.length",r.QueueJobsState="bullmq.queue.jobs.state",r.WorkerOptions="bullmq.worker.options",r.WorkerName="bullmq.worker.name",r.WorkerId="bullmq.worker.id",r.WorkerRateLimit="bullmq.worker.rate.limit",r.WorkerDoNotWaitActive="bullmq.worker.do.not.wait.active",r.WorkerForceClose="bullmq.worker.force.close",r.WorkerStalledJobs="bullmq.worker.stalled.jobs",r.WorkerFailedJobs="bullmq.worker.failed.jobs",r.WorkerJobsToExtendLocks="bullmq.worker.jobs.to.extend.locks",r.JobFinishedTimestamp="bullmq.job.finished.timestamp",r.JobAttemptFinishedTimestamp="bullmq.job.attempt_finished_timestamp",r.JobProcessedTimestamp="bullmq.job.processed.timestamp",r.JobResult="bullmq.job.result",r.JobFailedReason="bullmq.job.failed.reason",r.FlowName="bullmq.flow.name",r.JobSchedulerId="bullmq.job.scheduler.id",r.JobStatus="bullmq.job.status"})(Ah||(Sr.TelemetryAttributes=Ah={}));var Dh;(function(r){r.QueueJobsCount="bullmq.queue.jobs",r.JobsCompleted="bullmq.jobs.completed",r.JobsFailed="bullmq.jobs.failed",r.JobsDelayed="bullmq.jobs.delayed",r.JobsRetried="bullmq.jobs.retried",r.JobsWaiting="bullmq.jobs.waiting",r.JobsWaitingChildren="bullmq.jobs.waiting_children",r.JobDuration="bullmq.job.duration"})(Dh||(Sr.MetricNames=Dh={}));var Oh;(function(r){r[r.INTERNAL=0]="INTERNAL",r[r.SERVER=1]="SERVER",r[r.CLIENT=2]="CLIENT",r[r.PRODUCER=3]="PRODUCER",r[r.CONSUMER=4]="CONSUMER"})(Oh||(Sr.SpanKind=Oh={}))});var at=h(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});var si=(Qe(),it(He));si.__exportStar(Eh(),Vr);si.__exportStar(Ih(),Vr);si.__exportStar(wh(),Vr);si.__exportStar(Th(),Vr);si.__exportStar(Rh(),Vr)});var _c=h(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.Child=void 0;var dw=V("child_process"),uw=V("net"),pw=V("worker_threads"),Ks=at(),fw=V("events"),hw={1:"Uncaught Fatal Exception",2:"Unused",3:"Internal JavaScript Parse Error",4:"Internal JavaScript Evaluation Failure",5:"Fatal Error",6:"Non-function Internal Exception Handler",7:"Internal Exception Handler Run-Time Failure",8:"Unused",9:"Invalid Argument",10:"Internal JavaScript Run-Time Failure",12:"Invalid Debug Argument",13:"Unfinished Top-Level Await"},Cc=class extends fw.EventEmitter{constructor(e,t,n={useWorkerThreads:!1}){super(),this.mainFile=e,this.processFile=t,this.opts=n,this._exitCode=null,this._signalCode=null,this._killed=!1}get pid(){if(this.childProcess)return this.childProcess.pid;if(this.worker)return Math.abs(this.worker.threadId);throw new Error("No child process or worker thread")}get exitCode(){return this._exitCode}get signalCode(){return this._signalCode}get killed(){return this.childProcess?this.childProcess.killed:this._killed}async init(){let e=await bw(process.execArgv),t;this.opts.useWorkerThreads?this.worker=t=new pw.Worker(this.mainFile,Object.assign({execArgv:e,stdin:!0,stdout:!0,stderr:!0},this.opts.workerThreadsOptions?this.opts.workerThreadsOptions:{})):this.childProcess=t=(0,dw.fork)(this.mainFile,[],Object.assign({execArgv:e,stdio:"pipe"},this.opts.workerForkOptions?this.opts.workerForkOptions:{})),t.on("exit",(n,i)=>{this._exitCode=n,i=typeof i>"u"?null:i,this._signalCode=i,this._killed=!0,this.emit("exit",n,i),t.removeAllListeners(),this.removeAllListeners()}),t.on("error",(...n)=>this.emit("error",...n)),t.on("message",(...n)=>this.emit("message",...n)),t.on("close",(...n)=>this.emit("close",...n)),t.stdout.pipe(process.stdout),t.stderr.pipe(process.stderr),await this.initChild()}async send(e){return new Promise((t,n)=>{this.childProcess?this.childProcess.send(e,i=>{i?n(i):t()}):this.worker?t(this.worker.postMessage(e)):t()})}killProcess(e="SIGKILL"){this.childProcess?this.childProcess.kill(e):this.worker&&this.worker.terminate()}async kill(e="SIGKILL",t){if(this.hasProcessExited())return;let n=yw(this.childProcess||this.worker);if(this.killProcess(e),t!==void 0&&(t===0||isFinite(t))){let i=setTimeout(()=>{this.hasProcessExited()||this.killProcess("SIGKILL")},t);await n,clearTimeout(i)}await n}async initChild(){let e=new Promise((t,n)=>{let i=a=>{if(Object.values(Ks.ParentCommand).includes(a.cmd)){if(a.cmd===Ks.ParentCommand.InitCompleted)t();else if(a.cmd===Ks.ParentCommand.InitFailed){let o=new Error;o.stack=a.err.stack,o.message=a.err.message,n(o)}this.off("message",i),this.off("close",s)}},s=(a,o)=>{a>128&&(a-=128);let l=hw[a]||`Unknown exit code ${a}`;n(new Error(`Error initializing child: ${l} and signal ${o}`)),this.off("message",i),this.off("close",s)};this.on("message",i),this.on("close",s)});await this.send({cmd:Ks.ChildCommand.Init,value:this.processFile}),await e}hasProcessExited(){return!!(this.exitCode!==null||this.signalCode)}};Ss.Child=Cc;function yw(r){return new Promise(e=>{r.once("exit",()=>e())})}var mw=async()=>new Promise(r=>{let e=(0,uw.createServer)();e.listen(0,()=>{let{port:t}=e.address();e.close(()=>r(t))})}),bw=async r=>{let e=[],t=[];for(let n=0;n<r.length;n++){let i=r[n];if(i.indexOf("--inspect")===-1)e.push(i);else{let s=i.split("=")[0],a=await mw();t.push(`${s}=${a}`)}}return e.concat(t)}});var Nc=h((Es,Pc)=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.ChildPool=void 0;var Ch=V("path"),gw=_c(),vw=3e4,Kw=()=>typeof V=="function"&&typeof Pc=="object"&&typeof Pc.exports=="object",Mc=class{constructor({mainFile:e=Kw()?Ch.join(process.cwd(),"dist/cjs/classes/main.js"):Ch.join(process.cwd(),"dist/esm/classes/main.js"),useWorkerThreads:t,workerForkOptions:n,workerThreadsOptions:i}){this.retained={},this.free={},this.opts={mainFile:e,useWorkerThreads:t,workerForkOptions:n,workerThreadsOptions:i}}async retain(e){let t=this.getFree(e).pop();if(t)return this.retained[t.pid]=t,t;t=new gw.Child(this.opts.mainFile,e,{useWorkerThreads:this.opts.useWorkerThreads,workerForkOptions:this.opts.workerForkOptions,workerThreadsOptions:this.opts.workerThreadsOptions}),t.on("exit",this.remove.bind(this,t));try{if(await t.init(),t.exitCode!==null||t.signalCode!==null)throw new Error("Child exited before it could be retained");return this.retained[t.pid]=t,t}catch(n){throw console.error(n),this.release(t),n}}release(e){delete this.retained[e.pid],this.getFree(e.processFile).push(e)}remove(e){delete this.retained[e.pid];let t=this.getFree(e.processFile),n=t.indexOf(e);n>-1&&t.splice(n,1)}async kill(e,t="SIGKILL"){return this.remove(e),e.kill(t,vw)}async clean(){let e=Object.values(this.retained).concat(this.getAllFree());this.retained={},this.free={},await Promise.all(e.map(t=>this.kill(t,"SIGTERM")))}getFree(e){return this.free[e]=this.free[e]||[]}getAllFree(){return Object.values(this.free).reduce((e,t)=>e.concat(t),[])}};Es.ChildPool=Mc});var Mh=h((kM,_h)=>{var{EventEmitter:Sw}=V("events"),ks=class{constructor(){this.eventEmitter=new Sw,this.onabort=null,this.aborted=!1,this.reason=void 0}toString(){return"[object AbortSignal]"}get[Symbol.toStringTag](){return"AbortSignal"}removeEventListener(e,t){this.eventEmitter.removeListener(e,t)}addEventListener(e,t){this.eventEmitter.on(e,t)}dispatchEvent(e){let t={type:e,target:this},n=`on${e}`;typeof this[n]=="function"&&this[n](t),this.eventEmitter.emit(e,t)}throwIfAborted(){if(this.aborted)throw this.reason}static abort(e){let t=new ai;return t.abort(),t.signal}static timeout(e){let t=new ai;return setTimeout(()=>t.abort(new Error("TimeoutError")),e),t.signal}},ai=class{constructor(){this.signal=new ks}abort(e){this.signal.aborted||(this.signal.aborted=!0,e?this.signal.reason=e:this.signal.reason=new Error("AbortError"),this.signal.dispatchEvent("abort"))}toString(){return"[object AbortController]"}get[Symbol.toStringTag](){return"AbortController"}};_h.exports={AbortController:ai,AbortSignal:ks}});var xs=h(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.AbortController=void 0;var Ew=Mh(),qc;globalThis.AbortController?qc=globalThis.AbortController:qc=Ew.AbortController;var Jc=class extends qc{};Is.AbortController=Jc});var oi=h((xM,Ph)=>{"use strict";var kw="2.0.0",Iw=Number.MAX_SAFE_INTEGER||9007199254740991,xw=16,ww=250,jw=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Ph.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:xw,MAX_SAFE_BUILD_LENGTH:ww,MAX_SAFE_INTEGER:Iw,RELEASE_TYPES:jw,SEMVER_SPEC_VERSION:kw,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var li=h((wM,Nh)=>{"use strict";var Tw=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};Nh.exports=Tw});var Dn=h((Ft,qh)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Lc,MAX_SAFE_BUILD_LENGTH:Aw,MAX_LENGTH:Dw}=oi(),Ow=li();Ft=qh.exports={};var Rw=Ft.re=[],Cw=Ft.safeRe=[],J=Ft.src=[],_w=Ft.safeSrc=[],L=Ft.t={},Mw=0,Fc="[a-zA-Z0-9-]",Pw=[["\\s",1],["\\d",Dw],[Fc,Aw]],Nw=r=>{for(let[e,t]of Pw)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},ee=(r,e,t)=>{let n=Nw(e),i=Mw++;Ow(r,i,e),L[r]=i,J[i]=e,_w[i]=n,Rw[i]=new RegExp(e,t?"g":void 0),Cw[i]=new RegExp(n,t?"g":void 0)};ee("NUMERICIDENTIFIER","0|[1-9]\\d*");ee("NUMERICIDENTIFIERLOOSE","\\d+");ee("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Fc}*`);ee("MAINVERSION",`(${J[L.NUMERICIDENTIFIER]})\\.(${J[L.NUMERICIDENTIFIER]})\\.(${J[L.NUMERICIDENTIFIER]})`);ee("MAINVERSIONLOOSE",`(${J[L.NUMERICIDENTIFIERLOOSE]})\\.(${J[L.NUMERICIDENTIFIERLOOSE]})\\.(${J[L.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASEIDENTIFIER",`(?:${J[L.NONNUMERICIDENTIFIER]}|${J[L.NUMERICIDENTIFIER]})`);ee("PRERELEASEIDENTIFIERLOOSE",`(?:${J[L.NONNUMERICIDENTIFIER]}|${J[L.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASE",`(?:-(${J[L.PRERELEASEIDENTIFIER]}(?:\\.${J[L.PRERELEASEIDENTIFIER]})*))`);ee("PRERELEASELOOSE",`(?:-?(${J[L.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${J[L.PRERELEASEIDENTIFIERLOOSE]})*))`);ee("BUILDIDENTIFIER",`${Fc}+`);ee("BUILD",`(?:\\+(${J[L.BUILDIDENTIFIER]}(?:\\.${J[L.BUILDIDENTIFIER]})*))`);ee("FULLPLAIN",`v?${J[L.MAINVERSION]}${J[L.PRERELEASE]}?${J[L.BUILD]}?`);ee("FULL",`^${J[L.FULLPLAIN]}$`);ee("LOOSEPLAIN",`[v=\\s]*${J[L.MAINVERSIONLOOSE]}${J[L.PRERELEASELOOSE]}?${J[L.BUILD]}?`);ee("LOOSE",`^${J[L.LOOSEPLAIN]}$`);ee("GTLT","((?:<|>)?=?)");ee("XRANGEIDENTIFIERLOOSE",`${J[L.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);ee("XRANGEIDENTIFIER",`${J[L.NUMERICIDENTIFIER]}|x|X|\\*`);ee("XRANGEPLAIN",`[v=\\s]*(${J[L.XRANGEIDENTIFIER]})(?:\\.(${J[L.XRANGEIDENTIFIER]})(?:\\.(${J[L.XRANGEIDENTIFIER]})(?:${J[L.PRERELEASE]})?${J[L.BUILD]}?)?)?`);ee("XRANGEPLAINLOOSE",`[v=\\s]*(${J[L.XRANGEIDENTIFIERLOOSE]})(?:\\.(${J[L.XRANGEIDENTIFIERLOOSE]})(?:\\.(${J[L.XRANGEIDENTIFIERLOOSE]})(?:${J[L.PRERELEASELOOSE]})?${J[L.BUILD]}?)?)?`);ee("XRANGE",`^${J[L.GTLT]}\\s*${J[L.XRANGEPLAIN]}$`);ee("XRANGELOOSE",`^${J[L.GTLT]}\\s*${J[L.XRANGEPLAINLOOSE]}$`);ee("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Lc}})(?:\\.(\\d{1,${Lc}}))?(?:\\.(\\d{1,${Lc}}))?`);ee("COERCE",`${J[L.COERCEPLAIN]}(?:$|[^\\d])`);ee("COERCEFULL",J[L.COERCEPLAIN]+`(?:${J[L.PRERELEASE]})?(?:${J[L.BUILD]})?(?:$|[^\\d])`);ee("COERCERTL",J[L.COERCE],!0);ee("COERCERTLFULL",J[L.COERCEFULL],!0);ee("LONETILDE","(?:~>?)");ee("TILDETRIM",`(\\s*)${J[L.LONETILDE]}\\s+`,!0);Ft.tildeTrimReplace="$1~";ee("TILDE",`^${J[L.LONETILDE]}${J[L.XRANGEPLAIN]}$`);ee("TILDELOOSE",`^${J[L.LONETILDE]}${J[L.XRANGEPLAINLOOSE]}$`);ee("LONECARET","(?:\\^)");ee("CARETTRIM",`(\\s*)${J[L.LONECARET]}\\s+`,!0);Ft.caretTrimReplace="$1^";ee("CARET",`^${J[L.LONECARET]}${J[L.XRANGEPLAIN]}$`);ee("CARETLOOSE",`^${J[L.LONECARET]}${J[L.XRANGEPLAINLOOSE]}$`);ee("COMPARATORLOOSE",`^${J[L.GTLT]}\\s*(${J[L.LOOSEPLAIN]})$|^$`);ee("COMPARATOR",`^${J[L.GTLT]}\\s*(${J[L.FULLPLAIN]})$|^$`);ee("COMPARATORTRIM",`(\\s*)${J[L.GTLT]}\\s*(${J[L.LOOSEPLAIN]}|${J[L.XRANGEPLAIN]})`,!0);Ft.comparatorTrimReplace="$1$2$3";ee("HYPHENRANGE",`^\\s*(${J[L.XRANGEPLAIN]})\\s+-\\s+(${J[L.XRANGEPLAIN]})\\s*$`);ee("HYPHENRANGELOOSE",`^\\s*(${J[L.XRANGEPLAINLOOSE]})\\s+-\\s+(${J[L.XRANGEPLAINLOOSE]})\\s*$`);ee("STAR","(<|>)?=?\\s*\\*");ee("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");ee("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var ws=h((jM,Jh)=>{"use strict";var qw=Object.freeze({loose:!0}),Jw=Object.freeze({}),Lw=r=>r?typeof r!="object"?qw:r:Jw;Jh.exports=Lw});var Vc=h((TM,Vh)=>{"use strict";var Lh=/^[0-9]+$/,Fh=(r,e)=>{if(typeof r=="number"&&typeof e=="number")return r===e?0:r<e?-1:1;let t=Lh.test(r),n=Lh.test(e);return t&&n&&(r=+r,e=+e),r===e?0:t&&!n?-1:n&&!t?1:r<e?-1:1},Fw=(r,e)=>Fh(e,r);Vh.exports={compareIdentifiers:Fh,rcompareIdentifiers:Fw}});var Be=h((AM,Yh)=>{"use strict";var js=li(),{MAX_LENGTH:Gh,MAX_SAFE_INTEGER:Ts}=oi(),{safeRe:As,t:Ds}=Dn(),Vw=ws(),{compareIdentifiers:Gc}=Vc(),Yc=class r{constructor(e,t){if(t=Vw(t),e instanceof r){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Gh)throw new TypeError(`version is longer than ${Gh} characters`);js("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?As[Ds.LOOSE]:As[Ds.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>Ts||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Ts||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Ts||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&s<Ts)return s}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(js("SemVer.compare",this.version,this.options,e),!(e instanceof r)){if(typeof e=="string"&&e===this.version)return 0;e=new r(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof r||(e=new r(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof r||(e=new r(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let n=this.prerelease[t],i=e.prerelease[t];if(js("prerelease compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Gc(n,i)}while(++t)}compareBuild(e){e instanceof r||(e=new r(e,this.options));let t=0;do{let n=this.build[t],i=e.build[t];if(js("build compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Gc(n,i)}while(++t)}inc(e,t,n){if(e.startsWith("pre")){if(!t&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(t){let i=`-${t}`.match(this.options.loose?As[Ds.PRERELEASELOOSE]:As[Ds.PRERELEASE]);if(!i||i[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,n),this.inc("pre",t,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(t){let s=[t,i];n===!1&&(s=[t]),Gc(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Yh.exports=Yc});var Gr=h((DM,Wh)=>{"use strict";var Bh=Be(),Gw=(r,e,t=!1)=>{if(r instanceof Bh)return r;try{return new Bh(r,e)}catch(n){if(!t)return null;throw n}};Wh.exports=Gw});var zh=h((OM,Uh)=>{"use strict";var Yw=Gr(),Bw=(r,e)=>{let t=Yw(r,e);return t?t.version:null};Uh.exports=Bw});var Hh=h((RM,$h)=>{"use strict";var Ww=Gr(),Uw=(r,e)=>{let t=Ww(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};$h.exports=Uw});var Xh=h((CM,Zh)=>{"use strict";var Qh=Be(),zw=(r,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new Qh(r instanceof Qh?r.version:r,t).inc(e,n,i).version}catch{return null}};Zh.exports=zw});var ry=h((_M,ty)=>{"use strict";var ey=Gr(),$w=(r,e)=>{let t=ey(r,null,!0),n=ey(e,null,!0),i=t.compare(n);if(i===0)return null;let s=i>0,a=s?t:n,o=s?n:t,l=!!a.prerelease.length;if(!!o.prerelease.length&&!l){if(!o.patch&&!o.minor)return"major";if(o.compareMain(a)===0)return o.minor&&!o.patch?"minor":"patch"}let d=l?"pre":"";return t.major!==n.major?d+"major":t.minor!==n.minor?d+"minor":t.patch!==n.patch?d+"patch":"prerelease"};ty.exports=$w});var iy=h((MM,ny)=>{"use strict";var Hw=Be(),Qw=(r,e)=>new Hw(r,e).major;ny.exports=Qw});var ay=h((PM,sy)=>{"use strict";var Zw=Be(),Xw=(r,e)=>new Zw(r,e).minor;sy.exports=Xw});var ly=h((NM,oy)=>{"use strict";var e1=Be(),t1=(r,e)=>new e1(r,e).patch;oy.exports=t1});var dy=h((qM,cy)=>{"use strict";var r1=Gr(),n1=(r,e)=>{let t=r1(r,e);return t&&t.prerelease.length?t.prerelease:null};cy.exports=n1});var kt=h((JM,py)=>{"use strict";var uy=Be(),i1=(r,e,t)=>new uy(r,t).compare(new uy(e,t));py.exports=i1});var hy=h((LM,fy)=>{"use strict";var s1=kt(),a1=(r,e,t)=>s1(e,r,t);fy.exports=a1});var my=h((FM,yy)=>{"use strict";var o1=kt(),l1=(r,e)=>o1(r,e,!0);yy.exports=l1});var Os=h((VM,gy)=>{"use strict";var by=Be(),c1=(r,e,t)=>{let n=new by(r,t),i=new by(e,t);return n.compare(i)||n.compareBuild(i)};gy.exports=c1});var Ky=h((GM,vy)=>{"use strict";var d1=Os(),u1=(r,e)=>r.sort((t,n)=>d1(t,n,e));vy.exports=u1});var Ey=h((YM,Sy)=>{"use strict";var p1=Os(),f1=(r,e)=>r.sort((t,n)=>p1(n,t,e));Sy.exports=f1});var ci=h((BM,ky)=>{"use strict";var h1=kt(),y1=(r,e,t)=>h1(r,e,t)>0;ky.exports=y1});var Rs=h((WM,Iy)=>{"use strict";var m1=kt(),b1=(r,e,t)=>m1(r,e,t)<0;Iy.exports=b1});var Bc=h((UM,xy)=>{"use strict";var g1=kt(),v1=(r,e,t)=>g1(r,e,t)===0;xy.exports=v1});var Wc=h((zM,wy)=>{"use strict";var K1=kt(),S1=(r,e,t)=>K1(r,e,t)!==0;wy.exports=S1});var Cs=h(($M,jy)=>{"use strict";var E1=kt(),k1=(r,e,t)=>E1(r,e,t)>=0;jy.exports=k1});var _s=h((HM,Ty)=>{"use strict";var I1=kt(),x1=(r,e,t)=>I1(r,e,t)<=0;Ty.exports=x1});var Uc=h((QM,Ay)=>{"use strict";var w1=Bc(),j1=Wc(),T1=ci(),A1=Cs(),D1=Rs(),O1=_s(),R1=(r,e,t,n)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return w1(r,t,n);case"!=":return j1(r,t,n);case">":return T1(r,t,n);case">=":return A1(r,t,n);case"<":return D1(r,t,n);case"<=":return O1(r,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Ay.exports=R1});var Oy=h((ZM,Dy)=>{"use strict";var C1=Be(),_1=Gr(),{safeRe:Ms,t:Ps}=Dn(),M1=(r,e)=>{if(r instanceof C1)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(e.includePrerelease?Ms[Ps.COERCEFULL]:Ms[Ps.COERCE]);else{let l=e.includePrerelease?Ms[Ps.COERCERTLFULL]:Ms[Ps.COERCERTL],c;for(;(c=l.exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),l.lastIndex=c.index+c[1].length+c[2].length;l.lastIndex=-1}if(t===null)return null;let n=t[2],i=t[3]||"0",s=t[4]||"0",a=e.includePrerelease&&t[5]?`-${t[5]}`:"",o=e.includePrerelease&&t[6]?`+${t[6]}`:"";return _1(`${n}.${i}.${s}${a}${o}`,e)};Dy.exports=M1});var Cy=h((XM,Ry)=>{"use strict";var zc=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(e,t)}return this}};Ry.exports=zc});var It=h((eP,Ny)=>{"use strict";var P1=/\s+/g,$c=class r{constructor(e,t){if(t=q1(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof Hc)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(P1," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!My(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&B1(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let n=0;n<t.length;n++)n>0&&(this.formatted+=" "),this.formatted+=t[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let n=((this.options.includePrerelease&&G1)|(this.options.loose&&Y1))+":"+e,i=_y.get(n);if(i)return i;let s=this.options.loose,a=s?Ze[We.HYPHENRANGELOOSE]:Ze[We.HYPHENRANGE];e=e.replace(a,tj(this.options.includePrerelease)),ke("hyphen replace",e),e=e.replace(Ze[We.COMPARATORTRIM],L1),ke("comparator trim",e),e=e.replace(Ze[We.TILDETRIM],F1),ke("tilde trim",e),e=e.replace(Ze[We.CARETTRIM],V1),ke("caret trim",e);let o=e.split(" ").map(u=>W1(u,this.options)).join(" ").split(/\s+/).map(u=>ej(u,this.options));s&&(o=o.filter(u=>(ke("loose invalid filter",u,this.options),!!u.match(Ze[We.COMPARATORLOOSE])))),ke("range list",o);let l=new Map,c=o.map(u=>new Hc(u,this.options));for(let u of c){if(My(u))return[u];l.set(u.value,u)}l.size>1&&l.has("")&&l.delete("");let d=[...l.values()];return _y.set(n,d),d}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(n=>Py(n,t)&&e.set.some(i=>Py(i,t)&&n.every(s=>i.every(a=>s.intersects(a,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new J1(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(rj(this.set[t],e,this.options))return!0;return!1}};Ny.exports=$c;var N1=Cy(),_y=new N1,q1=ws(),Hc=di(),ke=li(),J1=Be(),{safeRe:Ze,t:We,comparatorTrimReplace:L1,tildeTrimReplace:F1,caretTrimReplace:V1}=Dn(),{FLAG_INCLUDE_PRERELEASE:G1,FLAG_LOOSE:Y1}=oi(),My=r=>r.value==="<0.0.0-0",B1=r=>r.value==="",Py=(r,e)=>{let t=!0,n=r.slice(),i=n.pop();for(;t&&n.length;)t=n.every(s=>i.intersects(s,e)),i=n.pop();return t},W1=(r,e)=>(r=r.replace(Ze[We.BUILD],""),ke("comp",r,e),r=$1(r,e),ke("caret",r),r=U1(r,e),ke("tildes",r),r=Q1(r,e),ke("xrange",r),r=X1(r,e),ke("stars",r),r),Xe=r=>!r||r.toLowerCase()==="x"||r==="*",U1=(r,e)=>r.trim().split(/\s+/).map(t=>z1(t,e)).join(" "),z1=(r,e)=>{let t=e.loose?Ze[We.TILDELOOSE]:Ze[We.TILDE];return r.replace(t,(n,i,s,a,o)=>{ke("tilde",r,n,i,s,a,o);let l;return Xe(i)?l="":Xe(s)?l=`>=${i}.0.0 <${+i+1}.0.0-0`:Xe(a)?l=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:o?(ke("replaceTilde pr",o),l=`>=${i}.${s}.${a}-${o} <${i}.${+s+1}.0-0`):l=`>=${i}.${s}.${a} <${i}.${+s+1}.0-0`,ke("tilde return",l),l})},$1=(r,e)=>r.trim().split(/\s+/).map(t=>H1(t,e)).join(" "),H1=(r,e)=>{ke("caret",r,e);let t=e.loose?Ze[We.CARETLOOSE]:Ze[We.CARET],n=e.includePrerelease?"-0":"";return r.replace(t,(i,s,a,o,l)=>{ke("caret",r,i,s,a,o,l);let c;return Xe(s)?c="":Xe(a)?c=`>=${s}.0.0${n} <${+s+1}.0.0-0`:Xe(o)?s==="0"?c=`>=${s}.${a}.0${n} <${s}.${+a+1}.0-0`:c=`>=${s}.${a}.0${n} <${+s+1}.0.0-0`:l?(ke("replaceCaret pr",l),s==="0"?a==="0"?c=`>=${s}.${a}.${o}-${l} <${s}.${a}.${+o+1}-0`:c=`>=${s}.${a}.${o}-${l} <${s}.${+a+1}.0-0`:c=`>=${s}.${a}.${o}-${l} <${+s+1}.0.0-0`):(ke("no pr"),s==="0"?a==="0"?c=`>=${s}.${a}.${o}${n} <${s}.${a}.${+o+1}-0`:c=`>=${s}.${a}.${o}${n} <${s}.${+a+1}.0-0`:c=`>=${s}.${a}.${o} <${+s+1}.0.0-0`),ke("caret return",c),c})},Q1=(r,e)=>(ke("replaceXRanges",r,e),r.split(/\s+/).map(t=>Z1(t,e)).join(" ")),Z1=(r,e)=>{r=r.trim();let t=e.loose?Ze[We.XRANGELOOSE]:Ze[We.XRANGE];return r.replace(t,(n,i,s,a,o,l)=>{ke("xRange",r,n,i,s,a,o,l);let c=Xe(s),d=c||Xe(a),u=d||Xe(o),f=u;return i==="="&&f&&(i=""),l=e.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&f?(d&&(a=0),o=0,i===">"?(i=">=",d?(s=+s+1,a=0,o=0):(a=+a+1,o=0)):i==="<="&&(i="<",d?s=+s+1:a=+a+1),i==="<"&&(l="-0"),n=`${i+s}.${a}.${o}${l}`):d?n=`>=${s}.0.0${l} <${+s+1}.0.0-0`:u&&(n=`>=${s}.${a}.0${l} <${s}.${+a+1}.0-0`),ke("xRange return",n),n})},X1=(r,e)=>(ke("replaceStars",r,e),r.trim().replace(Ze[We.STAR],"")),ej=(r,e)=>(ke("replaceGTE0",r,e),r.trim().replace(Ze[e.includePrerelease?We.GTE0PRE:We.GTE0],"")),tj=r=>(e,t,n,i,s,a,o,l,c,d,u,f)=>(Xe(n)?t="":Xe(i)?t=`>=${n}.0.0${r?"-0":""}`:Xe(s)?t=`>=${n}.${i}.0${r?"-0":""}`:a?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,Xe(c)?l="":Xe(d)?l=`<${+c+1}.0.0-0`:Xe(u)?l=`<${c}.${+d+1}.0-0`:f?l=`<=${c}.${d}.${u}-${f}`:r?l=`<${c}.${d}.${+u+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),rj=(r,e,t)=>{for(let n=0;n<r.length;n++)if(!r[n].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let n=0;n<r.length;n++)if(ke(r[n].semver),r[n].semver!==Hc.ANY&&r[n].semver.prerelease.length>0){let i=r[n].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var di=h((tP,Gy)=>{"use strict";var ui=Symbol("SemVer ANY"),Xc=class r{static get ANY(){return ui}constructor(e,t){if(t=qy(t),e instanceof r){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Zc("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===ui?this.value="":this.value=this.operator+this.semver.version,Zc("comp",this)}parse(e){let t=this.options.loose?Jy[Ly.COMPARATORLOOSE]:Jy[Ly.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Fy(n[2],this.options.loose):this.semver=ui}toString(){return this.value}test(e){if(Zc("Comparator.test",e,this.options.loose),this.semver===ui||e===ui)return!0;if(typeof e=="string")try{e=new Fy(e,this.options)}catch{return!1}return Qc(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Vy(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new Vy(this.value,t).test(e.semver):(t=qy(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Qc(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Qc(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Gy.exports=Xc;var qy=ws(),{safeRe:Jy,t:Ly}=Dn(),Qc=Uc(),Zc=li(),Fy=Be(),Vy=It()});var pi=h((rP,Yy)=>{"use strict";var nj=It(),ij=(r,e,t)=>{try{e=new nj(e,t)}catch{return!1}return e.test(r)};Yy.exports=ij});var Wy=h((nP,By)=>{"use strict";var sj=It(),aj=(r,e)=>new sj(r,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));By.exports=aj});var zy=h((iP,Uy)=>{"use strict";var oj=Be(),lj=It(),cj=(r,e,t)=>{let n=null,i=null,s=null;try{s=new lj(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===-1)&&(n=a,i=new oj(n,t))}),n};Uy.exports=cj});var Hy=h((sP,$y)=>{"use strict";var dj=Be(),uj=It(),pj=(r,e,t)=>{let n=null,i=null,s=null;try{s=new uj(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===1)&&(n=a,i=new dj(n,t))}),n};$y.exports=pj});var Xy=h((aP,Zy)=>{"use strict";var ed=Be(),fj=It(),Qy=ci(),hj=(r,e)=>{r=new fj(r,e);let t=new ed("0.0.0");if(r.test(t)||(t=new ed("0.0.0-0"),r.test(t)))return t;t=null;for(let n=0;n<r.set.length;++n){let i=r.set[n],s=null;i.forEach(a=>{let o=new ed(a.semver.version);switch(a.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!s||Qy(o,s))&&(s=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),s&&(!t||Qy(t,s))&&(t=s)}return t&&r.test(t)?t:null};Zy.exports=hj});var tm=h((oP,em)=>{"use strict";var yj=It(),mj=(r,e)=>{try{return new yj(r,e).range||"*"}catch{return null}};em.exports=mj});var Ns=h((lP,sm)=>{"use strict";var bj=Be(),im=di(),{ANY:gj}=im,vj=It(),Kj=pi(),rm=ci(),nm=Rs(),Sj=_s(),Ej=Cs(),kj=(r,e,t,n)=>{r=new bj(r,n),e=new vj(e,n);let i,s,a,o,l;switch(t){case">":i=rm,s=Sj,a=nm,o=">",l=">=";break;case"<":i=nm,s=Ej,a=rm,o="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Kj(r,e,n))return!1;for(let c=0;c<e.set.length;++c){let d=e.set[c],u=null,f=null;if(d.forEach(p=>{p.semver===gj&&(p=new im(">=0.0.0")),u=u||p,f=f||p,i(p.semver,u.semver,n)?u=p:a(p.semver,f.semver,n)&&(f=p)}),u.operator===o||u.operator===l||(!f.operator||f.operator===o)&&s(r,f.semver))return!1;if(f.operator===l&&a(r,f.semver))return!1}return!0};sm.exports=kj});var om=h((cP,am)=>{"use strict";var Ij=Ns(),xj=(r,e,t)=>Ij(r,e,">",t);am.exports=xj});var cm=h((dP,lm)=>{"use strict";var wj=Ns(),jj=(r,e,t)=>wj(r,e,"<",t);lm.exports=jj});var pm=h((uP,um)=>{"use strict";var dm=It(),Tj=(r,e,t)=>(r=new dm(r,t),e=new dm(e,t),r.intersects(e,t));um.exports=Tj});var hm=h((pP,fm)=>{"use strict";var Aj=pi(),Dj=kt();fm.exports=(r,e,t)=>{let n=[],i=null,s=null,a=r.sort((d,u)=>Dj(d,u,t));for(let d of a)Aj(d,e,t)?(s=d,i||(i=d)):(s&&n.push([i,s]),s=null,i=null);i&&n.push([i,null]);let o=[];for(let[d,u]of n)d===u?o.push(d):!u&&d===a[0]?o.push("*"):u?d===a[0]?o.push(`<=${u}`):o.push(`${d} - ${u}`):o.push(`>=${d}`);let l=o.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length<c.length?l:e}});var Km=h((fP,vm)=>{"use strict";var ym=It(),rd=di(),{ANY:td}=rd,fi=pi(),nd=kt(),Oj=(r,e,t={})=>{if(r===e)return!0;r=new ym(r,t),e=new ym(e,t);let n=!1;e:for(let i of r.set){for(let s of e.set){let a=Cj(i,s,t);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},Rj=[new rd(">=0.0.0-0")],mm=[new rd(">=0.0.0")],Cj=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===td){if(e.length===1&&e[0].semver===td)return!0;t.includePrerelease?r=Rj:r=mm}if(e.length===1&&e[0].semver===td){if(t.includePrerelease)return!0;e=mm}let n=new Set,i,s;for(let p of r)p.operator===">"||p.operator===">="?i=bm(i,p,t):p.operator==="<"||p.operator==="<="?s=gm(s,p,t):n.add(p.semver);if(n.size>1)return null;let a;if(i&&s){if(a=nd(i.semver,s.semver,t),a>0)return null;if(a===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let p of n){if(i&&!fi(p,String(i),t)||s&&!fi(p,String(s),t))return null;for(let y of e)if(!fi(p,String(y),t))return!1;return!0}let o,l,c,d,u=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1;u&&u.prerelease.length===1&&s.operator==="<"&&u.prerelease[0]===0&&(u=!1);for(let p of e){if(d=d||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",i){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator===">"||p.operator===">="){if(o=bm(i,p,t),o===p&&o!==i)return!1}else if(i.operator===">="&&!fi(i.semver,String(p),t))return!1}if(s){if(u&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===u.major&&p.semver.minor===u.minor&&p.semver.patch===u.patch&&(u=!1),p.operator==="<"||p.operator==="<="){if(l=gm(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!fi(s.semver,String(p),t))return!1}if(!p.operator&&(s||i)&&a!==0)return!1}return!(i&&c&&!s&&a!==0||s&&d&&!i&&a!==0||f||u)},bm=(r,e,t)=>{if(!r)return e;let n=nd(r.semver,e.semver,t);return n>0?r:n<0||e.operator===">"&&r.operator===">="?e:r},gm=(r,e,t)=>{if(!r)return e;let n=nd(r.semver,e.semver,t);return n<0?r:n>0||e.operator==="<"&&r.operator==="<="?e:r};vm.exports=Oj});var Im=h((hP,km)=>{"use strict";var id=Dn(),Sm=oi(),_j=Be(),Em=Vc(),Mj=Gr(),Pj=zh(),Nj=Hh(),qj=Xh(),Jj=ry(),Lj=iy(),Fj=ay(),Vj=ly(),Gj=dy(),Yj=kt(),Bj=hy(),Wj=my(),Uj=Os(),zj=Ky(),$j=Ey(),Hj=ci(),Qj=Rs(),Zj=Bc(),Xj=Wc(),eT=Cs(),tT=_s(),rT=Uc(),nT=Oy(),iT=di(),sT=It(),aT=pi(),oT=Wy(),lT=zy(),cT=Hy(),dT=Xy(),uT=tm(),pT=Ns(),fT=om(),hT=cm(),yT=pm(),mT=hm(),bT=Km();km.exports={parse:Mj,valid:Pj,clean:Nj,inc:qj,diff:Jj,major:Lj,minor:Fj,patch:Vj,prerelease:Gj,compare:Yj,rcompare:Bj,compareLoose:Wj,compareBuild:Uj,sort:zj,rsort:$j,gt:Hj,lt:Qj,eq:Zj,neq:Xj,gte:eT,lte:tT,cmp:rT,coerce:nT,Comparator:iT,Range:sT,satisfies:aT,toComparators:oT,maxSatisfying:lT,minSatisfying:cT,minVersion:dT,validRange:uT,outside:pT,gtr:fT,ltr:hT,intersects:yT,simplifyRange:mT,subset:bT,SemVer:_j,re:id.re,src:id.src,tokens:id.t,SEMVER_SPEC_VERSION:Sm.SEMVER_SPEC_VERSION,RELEASE_TYPES:Sm.RELEASE_TYPES,compareIdentifiers:Em.compareIdentifiers,rcompareIdentifiers:Em.rcompareIdentifiers}});var ut=h($=>{"use strict";Object.defineProperty($,"__esModule",{value:!0});$.QUEUE_EVENT_SUFFIX=$.toString=$.errorToJSON=$.parseObjectValues=$.isRedisVersionLowerThan=$.childSend=$.asyncSend=$.DELAY_TIME_1=$.DELAY_TIME_5=$.clientCommandMessageReg=$.optsEncodeMap=$.optsDecodeMap=$.errorObject=void 0;$.tryCatch=KT;$.lengthInUtf8Bytes=ST;$.isEmpty=ET;$.array2obj=kT;$.objectToFlatArray=IT;$.delay=xT;$.increaseMaxListeners=xm;$.invertObject=wm;$.isRedisInstance=jm;$.isRedisCluster=wT;$.decreaseMaxListeners=jT;$.removeAllQueueData=TT;$.getParentKey=AT;$.isNotConnectionError=Tm;$.removeUndefinedFields=qT;$.trace=JT;$.randomUUID=LT;var gT=ds(),sd=V("crypto"),vT=Re(),ad=Im(),od=at();$.errorObject={value:null};function KT(r,e,t){try{return r.apply(e,t)}catch(n){return $.errorObject.value=n,$.errorObject}}function ST(r){return Buffer.byteLength(r,"utf8")}function ET(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e))return!1;return!0}function kT(r){let e={};for(let t=0;t<r.length;t+=2)e[r[t]]=r[t+1];return e}function IT(r){let e=[];for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&r[t]!==void 0&&(e[e.length]=t,e[e.length]=r[t]);return e}function xT(r,e){return new Promise(t=>{let n,i=()=>{e?.signal.removeEventListener("abort",i),clearTimeout(n),t()};n=setTimeout(i,r),e?.signal.addEventListener("abort",i)})}function xm(r,e){let t=r.getMaxListeners();r.setMaxListeners(t+e)}function wm(r){return Object.entries(r).reduce((e,[t,n])=>(e[n]=t,e),{})}$.optsDecodeMap={de:"deduplication",fpof:"failParentOnFailure",cpof:"continueParentOnFailure",idof:"ignoreDependencyOnFailure",kl:"keepLogs",rdof:"removeDependencyOnFailure"};$.optsEncodeMap=Object.assign(Object.assign({},wm($.optsDecodeMap)),{debounce:"de"});function jm(r){return r?["connect","disconnect","duplicate"].every(t=>typeof r[t]=="function"):!1}function wT(r){return jm(r)&&r.isCluster}function jT(r,e){xm(r,-e)}async function TT(r,e,t=process.env.BULLMQ_TEST_PREFIX||"bull"){if(r instanceof gT.Cluster)return Promise.resolve(!1);let n=`${t}:${e}:*`,i=[];await new Promise((s,a)=>{let o=r.scanStream({match:n});o.on("data",l=>{if(l.length){let c=r.pipeline();l.forEach(u=>{c.del(u)});let d=c.exec().catch(u=>{throw a(u),u});i.push(d)}}),o.on("end",()=>s()),o.on("error",l=>a(l))}),await Promise.all(i);try{await r.quit()}catch(s){if(Tm(s))throw s}}function AT(r){if(r)return`${r.queue}:${r.id}`}$.clientCommandMessageReg=/ERR unknown command ['`]\s*client\s*['`]/;$.DELAY_TIME_5=5e3;$.DELAY_TIME_1=100;function Tm(r){let{code:e,message:t}=r;return t!==vT.CONNECTION_CLOSED_ERROR_MSG&&!t.includes("ECONNREFUSED")&&e!=="ECONNREFUSED"}var DT=(r,e)=>new Promise((t,n)=>{typeof r.send=="function"?r.send(e,i=>{i?n(i):t()}):typeof r.postMessage=="function"?t(r.postMessage(e)):t()});$.asyncSend=DT;var OT=(r,e)=>(0,$.asyncSend)(r,e);$.childSend=OT;var RT=(r,e,t,n="redis")=>{if(t===n){let i=ad.valid(ad.coerce(r));return ad.lt(i,e)}return!1};$.isRedisVersionLowerThan=RT;var CT=r=>{let e={};for(let t of Object.entries(r))e[t[0]]=JSON.parse(t[1]);return e};$.parseObjectValues=CT;var _T=r=>{let e=new WeakSet;return e.add(r),(t,n)=>{if(typeof n=="object"&&n!==null){if(e.has(n))return"[Circular]";e.add(n)}return n}},MT=r=>{let e={};return Object.getOwnPropertyNames(r).forEach(function(t){e[t]=r[t]}),JSON.parse(JSON.stringify(e,_T(r)))};$.errorToJSON=MT;var PT=1/0,NT=r=>{if(r==null)return"";if(typeof r=="string")return r;if(Array.isArray(r))return`${r.map(t=>t==null?t:(0,$.toString)(t))}`;if(typeof r=="symbol"||Object.prototype.toString.call(r)=="[object Symbol]")return r.toString();let e=`${r}`;return e==="0"&&1/r===-PT?"-0":e};$.toString=NT;$.QUEUE_EVENT_SUFFIX=":qe";function qT(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}async function JT(r,e,t,n,i,s,a){if(r){let{tracer:o,contextManager:l}=r,c=l.active(),d;a&&(d=l.fromMetadata(c,a));let u=i?`${n} ${i}`:n,f=o.startSpan(u,{kind:e},d);try{f.setAttributes({[od.TelemetryAttributes.QueueName]:t,[od.TelemetryAttributes.QueueOperation]:n});let p,y;return e===od.SpanKind.CONSUMER&&d?p=f.setSpanOnContext(d):p=f.setSpanOnContext(c),s.length==2&&(y=l.getMetadata(p)),await l.with(p,()=>s(f,y))}catch(p){throw f.recordException(p),p}finally{f.end()}}else return s()}function LT(){if(typeof sd.randomUUID=="function")return(0,sd.randomUUID)();let r=(0,sd.randomBytes)(16);return r[6]=r[6]&15|64,r[8]=r[8]&63|128,[r.toString("hex",0,4),r.toString("hex",4,6),r.toString("hex",6,8),r.toString("hex",8,10),r.toString("hex",10,16)].join("-")}});var Am=h(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.ChildProcessor=void 0;var FT=xs(),et=at(),ld=ut(),Er;(function(r){r[r.Idle=0]="Idle",r[r.Started=1]="Started",r[r.Terminating=2]="Terminating",r[r.Errored=3]="Errored"})(Er||(Er={}));var hi=process.env.NODE_ENV==="test"?500:5e3,cd=class{constructor(e,t){this.send=e,this.receiver=t}async init(e){let t;try{let{default:i}=await import(e);if(t=i,t.default&&(t=t.default),typeof t!="function")throw new Error("No function is exported in processor file")}catch(i){return this.status=Er.Errored,this.send({cmd:et.ParentCommand.InitFailed,err:(0,ld.errorToJSON)(i)})}let n=t;t=function(i,s,a){try{return Promise.resolve(n(i,s,a))}catch(o){return Promise.reject(o)}},this.processor=t,this.status=Er.Idle,await this.send({cmd:et.ParentCommand.InitCompleted})}async start(e,t){if(this.status!==Er.Idle)return this.send({cmd:et.ParentCommand.Error,err:(0,ld.errorToJSON)(new Error("cannot start a not idling child process"))});this.status=Er.Started,this.abortController=new FT.AbortController,this.currentJobPromise=(async()=>{try{let n=this.wrapJob(e,this.send),i=await this.processor(n,t,this.abortController.signal);await this.send({cmd:et.ParentCommand.Completed,value:typeof i>"u"?null:i})}catch(n){await this.send({cmd:et.ParentCommand.Failed,value:(0,ld.errorToJSON)(n.message?n:new Error(n))})}finally{this.status=Er.Idle,this.currentJobPromise=void 0,this.abortController=void 0}})()}cancel(e){this.abortController&&this.abortController.abort(e)}async stop(){}async waitForCurrentJobAndExit(){this.status=Er.Terminating;try{await this.currentJobPromise}finally{process.exit(process.exitCode||0)}}wrapJob(e,t){let n=Object.assign(Object.assign({},e),{queueQualifiedName:e.queueQualifiedName,data:JSON.parse(e.data||"{}"),opts:e.opts,returnValue:JSON.parse(e.returnvalue||"{}"),async updateProgress(i){this.progress=i,await t({cmd:et.ParentCommand.Progress,value:i})},log:async i=>{await t({cmd:et.ParentCommand.Log,value:i})},moveToDelayed:async(i,s)=>{await t({cmd:et.ParentCommand.MoveToDelayed,value:{timestamp:i,token:s}})},moveToWait:async i=>{await t({cmd:et.ParentCommand.MoveToWait,value:{token:i}})},moveToWaitingChildren:async(i,s)=>{let a=Math.random().toString(36).substring(2,15);return await t({requestId:a,cmd:et.ParentCommand.MoveToWaitingChildren,value:{token:i,opts:s}}),yi(a,this.receiver,hi,"moveToWaitingChildren")},updateData:async i=>{await t({cmd:et.ParentCommand.Update,value:i}),n.data=i},getChildrenValues:async()=>{let i=Math.random().toString(36).substring(2,15);return await t({requestId:i,cmd:et.ParentCommand.GetChildrenValues}),yi(i,this.receiver,hi,"getChildrenValues")},getIgnoredChildrenFailures:async()=>{let i=Math.random().toString(36).substring(2,15);return await t({requestId:i,cmd:et.ParentCommand.GetIgnoredChildrenFailures}),yi(i,this.receiver,hi,"getIgnoredChildrenFailures")},getDependenciesCount:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependenciesCount,value:i}),yi(s,this.receiver,hi,"getDependenciesCount")},getDependencies:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependencies,value:i}),yi(s,this.receiver,hi,"getDependencies")}});return n}};qs.ChildProcessor=cd;var yi=async(r,e,t,n)=>new Promise((i,s)=>{let a=o=>{o.requestId===r&&(i(o.value),e.off("message",a))};e.on("message",a),setTimeout(()=>{e.off("message",a),s(new Error(`TimeoutError: ${n} timed out in (${t}ms)`))},t)})});var Dm=h(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.DelayedError=Yr.DELAYED_ERROR=void 0;Yr.DELAYED_ERROR="bullmq:movedToDelayed";var dd=class extends Error{constructor(e=Yr.DELAYED_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Yr.DelayedError=dd});var Om=h(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.RateLimitError=Br.RATE_LIMIT_ERROR=void 0;Br.RATE_LIMIT_ERROR="bullmq:rateLimitExceeded";var ud=class extends Error{constructor(e=Br.RATE_LIMIT_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Br.RateLimitError=ud});var fd=h(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.UnrecoverableError=Wr.UNRECOVERABLE_ERROR=void 0;Wr.UNRECOVERABLE_ERROR="bullmq:unrecoverable";var pd=class extends Error{constructor(e=Wr.UNRECOVERABLE_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Wr.UnrecoverableError=pd});var Rm=h(Ur=>{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.WaitingChildrenError=Ur.WAITING_CHILDREN_ERROR=void 0;Ur.WAITING_CHILDREN_ERROR="bullmq:movedToWaitingChildren";var hd=class extends Error{constructor(e=Ur.WAITING_CHILDREN_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Ur.WaitingChildrenError=hd});var Cm=h(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.WaitingError=zr.WAITING_ERROR=void 0;zr.WAITING_ERROR="bullmq:movedToWait";var yd=class extends Error{constructor(e=zr.WAITING_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};zr.WaitingError=yd});var Js=h($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});var mi=(Qe(),it(He));mi.__exportStar(Dm(),$r);mi.__exportStar(Om(),$r);mi.__exportStar(fd(),$r);mi.__exportStar(Rm(),$r);mi.__exportStar(Cm(),$r)});var Pm=h((kP,Mm)=>{"use strict";var _m=()=>process.platform==="linux",Ls=null,VT=()=>{if(!Ls)if(_m()&&process.report){let r=process.report.excludeNetwork;process.report.excludeNetwork=!0,Ls=process.report.getReport(),process.report.excludeNetwork=r}else Ls={};return Ls};Mm.exports={isLinux:_m,getReport:VT}});var qm=h((IP,Nm)=>{"use strict";var On=V("fs"),GT="/usr/bin/ldd",YT="/proc/self/exe",Fs=2048,BT=r=>{let e=On.openSync(r,"r"),t=Buffer.alloc(Fs),n=On.readSync(e,t,0,Fs,0);return On.close(e,()=>{}),t.subarray(0,n)},WT=r=>new Promise((e,t)=>{On.open(r,"r",(n,i)=>{if(n)t(n);else{let s=Buffer.alloc(Fs);On.read(i,s,0,Fs,0,(a,o)=>{e(s.subarray(0,o)),On.close(i,()=>{})})}})});Nm.exports={LDD_PATH:GT,SELF_PATH:YT,readFileSync:BT,readFile:WT}});var Lm=h((xP,Jm)=>{"use strict";var UT=r=>{if(r.length<64||r.readUInt32BE(0)!==2135247942||r.readUInt8(4)!==2||r.readUInt8(5)!==1)return null;let e=r.readUInt32LE(32),t=r.readUInt16LE(54),n=r.readUInt16LE(56);for(let i=0;i<n;i++){let s=e+i*t;if(r.readUInt32LE(s)===3){let o=r.readUInt32LE(s+8),l=r.readUInt32LE(s+32);return r.subarray(o,o+l).toString().replace(/\0.*$/g,"")}}return null};Jm.exports={interpreterPath:UT}});var sb=h((wP,ib)=>{"use strict";var Vm=V("child_process"),{isLinux:Rn,getReport:Gm}=Pm(),{LDD_PATH:Vs,SELF_PATH:Ym,readFile:md,readFileSync:bd}=qm(),{interpreterPath:Bm}=Lm(),Vt,Gt,Yt,Wm="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",kr="",Um=()=>kr||new Promise(r=>{Vm.exec(Wm,(e,t)=>{kr=e?" ":t,r(kr)})}),zm=()=>{if(!kr)try{kr=Vm.execSync(Wm,{encoding:"utf8"})}catch{kr=" "}return kr},er="glibc",$m=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Hr="musl",zT=r=>r.includes("libc.musl-")||r.includes("ld-musl-"),Hm=()=>{let r=Gm();return r.header&&r.header.glibcVersionRuntime?er:Array.isArray(r.sharedObjects)&&r.sharedObjects.some(zT)?Hr:null},Qm=r=>{let[e,t]=r.split(/[\r\n]+/);return e&&e.includes(er)?er:t&&t.includes(Hr)?Hr:null},Zm=r=>{if(r){if(r.includes("/ld-musl-"))return Hr;if(r.includes("/ld-linux-"))return er}return null},Xm=r=>(r=r.toString(),r.includes("musl")?Hr:r.includes("GNU C Library")?er:null),$T=async()=>{if(Gt!==void 0)return Gt;Gt=null;try{let r=await md(Vs);Gt=Xm(r)}catch{}return Gt},HT=()=>{if(Gt!==void 0)return Gt;Gt=null;try{let r=bd(Vs);Gt=Xm(r)}catch{}return Gt},QT=async()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=await md(Ym),e=Bm(r);Vt=Zm(e)}catch{}return Vt},ZT=()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=bd(Ym),e=Bm(r);Vt=Zm(e)}catch{}return Vt},eb=async()=>{let r=null;if(Rn()&&(r=await QT(),!r&&(r=await $T(),r||(r=Hm()),!r))){let e=await Um();r=Qm(e)}return r},tb=()=>{let r=null;if(Rn()&&(r=ZT(),!r&&(r=HT(),r||(r=Hm()),!r))){let e=zm();r=Qm(e)}return r},XT=async()=>Rn()&&await eb()!==er,eA=()=>Rn()&&tb()!==er,tA=async()=>{if(Yt!==void 0)return Yt;Yt=null;try{let e=(await md(Vs)).match($m);e&&(Yt=e[1])}catch{}return Yt},rA=()=>{if(Yt!==void 0)return Yt;Yt=null;try{let e=bd(Vs).match($m);e&&(Yt=e[1])}catch{}return Yt},rb=()=>{let r=Gm();return r.header&&r.header.glibcVersionRuntime?r.header.glibcVersionRuntime:null},Fm=r=>r.trim().split(/\s+/)[1],nb=r=>{let[e,t,n]=r.split(/[\r\n]+/);return e&&e.includes(er)?Fm(e):t&&n&&t.includes(Hr)?Fm(n):null},nA=async()=>{let r=null;if(Rn()&&(r=await tA(),r||(r=rb()),!r)){let e=await Um();r=nb(e)}return r},iA=()=>{let r=null;if(Rn()&&(r=rA(),r||(r=rb()),!r)){let e=zm();r=nb(e)}return r};ib.exports={GLIBC:er,MUSL:Hr,family:eb,familySync:tb,isNonGlibcLinux:XT,isNonGlibcLinuxSync:eA,version:nA,versionSync:iA}});var vb=h((jP,gb)=>{var sA=V("fs"),Ot=V("path"),aA=V("url"),lb=V("os"),cb=typeof __webpack_require__=="function"?__non_webpack_require__:V,oA=process.config&&process.config.variables||{},lA=!!process.env.PREBUILDS_ONLY,Ed=process.versions,vd=Ed.modules;(Ed.deno||process.isBun)&&(vd="unsupported");var gd=uA()?"electron":dA()?"node-webkit":"node",Gs=process.env.npm_config_arch||lb.arch(),Ys=process.env.npm_config_platform||lb.platform(),db=process.env.LIBC||(pA(Ys)?"musl":"glibc"),Kd=process.env.ARM_VERSION||(Gs==="arm64"?"8":oA.arm_version)||"",ub=(Ed.uv||"").split(".")[0];gb.exports=Bt;function Bt(r){return cb(Bt.resolve(r))}Bt.resolve=Bt.path=function(r){r=Ot.resolve(r||".");var e="",t;try{e=cb(Ot.join(r,"package.json")).name;var n=e.toUpperCase().replace(/-/g,"_");process.env[n+"_PREBUILD"]&&(r=process.env[n+"_PREBUILD"])}catch(g){t=g}if(!lA){var i=ab(Ot.join(r,"build/Release"),ob);if(i)return i;var s=ab(Ot.join(r,"build/Debug"),ob);if(s)return s}var a=p(r);if(a)return a;var o=p(Ot.dirname(process.execPath));if(o)return o;var l=(e[0]=="@"?"":"@"+e+"/")+e+"-"+Ys+"-"+Gs,c;try{var d=Ot.dirname(V("module").createRequire(aA.pathToFileURL(Ot.join(r,"package.json"))).resolve(l));return y(d)}catch(g){c=g}var u=["platform="+Ys,"arch="+Gs,"runtime="+gd,"abi="+vd,"uv="+ub,Kd?"armv="+Kd:"","libc="+db,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"",typeof __webpack_require__=="function"?"webpack=true":""].filter(Boolean).join(" ");let f="No native build was found for "+u+`
|
|
158
|
+
`}}return t}stringifyArguments(){for(let e=0;e<this.args.length;++e){let t=this.args[e];typeof t=="string"||(t instanceof Buffer?this.bufferMode=!0:this.args[e]=(0,qr.toArg)(t))}}transformReply(e){this.replyEncoding&&(e=(0,qr.convertBufferToString)(e,this.replyEncoding));let t=r._transformer.reply[this.name];return t&&(e=t(e)),e}setTimeout(e){this._commandTimeoutTimer||(this._commandTimeoutTimer=setTimeout(()=>{this.isResolved||this.reject(new Error("Command timed out"))},e))}setBlockingTimeout(e){if(e<=0)return;this._blockingTimeoutTimer&&(clearTimeout(this._blockingTimeoutTimer),this._blockingTimeoutTimer=void 0);let t=Date.now();this._blockingDeadline===void 0&&(this._blockingDeadline=t+e);let n=this._blockingDeadline-t;if(n<=0){this.resolve(null);return}this._blockingTimeoutTimer=setTimeout(()=>{if(this.isResolved){this._blockingTimeoutTimer=void 0;return}this._blockingTimeoutTimer=void 0,this.resolve(null)},n)}extractBlockingTimeout(){let e=this.args;if(!e||e.length===0)return;let t=this.name.toLowerCase();if(r.checkFlag("LAST_ARG_TIMEOUT_COMMANDS",t))return(0,El.parseSecondsArgument)(e[e.length-1]);if(r.checkFlag("FIRST_ARG_TIMEOUT_COMMANDS",t))return(0,El.parseSecondsArgument)(e[0]);if(r.checkFlag("BLOCK_OPTION_COMMANDS",t))return(0,El.parseBlockOption)(e)}_clearTimers(){let e=this._commandTimeoutTimer;e&&(clearTimeout(e),delete this._commandTimeoutTimer);let t=this._blockingTimeoutTimer;t&&(clearTimeout(t),delete this._blockingTimeoutTimer)}initPromise(){let e=new Promise((t,n)=>{if(!this.transformed){this.transformed=!0;let i=r._transformer.argument[this.name];i&&(this.args=i(this.args)),this.stringifyArguments()}this.resolve=this._convertValue(t),this.reject=i=>{this._clearTimers(),this.errorStack?n((0,qr.optimizeErrorStack)(i,this.errorStack.stack,__dirname)):n(i)}});this.promise=(0,cI.default)(e,this.callback)}_iterateKeys(e=t=>t){if(typeof this.keys>"u"&&(this.keys=[],(0,Pp.exists)(this.name,{caseInsensitive:!0}))){let t=(0,Pp.getKeyIndexes)(this.name,this.args,{nameCaseInsensitive:!0});for(let n of t)this.args[n]=e(this.args[n]),this.keys.push(this.args[n])}return this.keys}_convertValue(e){return t=>{try{this._clearTimers(),e(this.transformReply(t)),this.isResolved=!0}catch(n){this.reject(n)}return this.promise}}};Il.default=Lt;Lt.FLAGS={VALID_IN_SUBSCRIBER_MODE:["subscribe","psubscribe","unsubscribe","punsubscribe","ssubscribe","sunsubscribe","ping","quit"],VALID_IN_MONITOR_MODE:["monitor","auth"],ENTER_SUBSCRIBER_MODE:["subscribe","psubscribe","ssubscribe"],EXIT_SUBSCRIBER_MODE:["unsubscribe","punsubscribe","sunsubscribe"],WILL_DISCONNECT:["quit"],HANDSHAKE_COMMANDS:["auth","select","client","readonly","info"],IGNORE_RECONNECT_ON_ERROR:["client"],BLOCKING_COMMANDS:["blpop","brpop","brpoplpush","blmove","bzpopmin","bzpopmax","bzmpop","blmpop","xread","xreadgroup"],LAST_ARG_TIMEOUT_COMMANDS:["blpop","brpop","brpoplpush","blmove","bzpopmin","bzpopmax"],FIRST_ARG_TIMEOUT_COMMANDS:["bzmpop","blmpop"],BLOCK_OPTION_COMMANDS:["xread","xreadgroup"]};Lt._transformer={argument:{},reply:{}};var Np=function(r){if(r.length===1){if(r[0]instanceof Map)return(0,qr.convertMapToArray)(r[0]);if(typeof r[0]=="object"&&r[0]!==null)return(0,qr.convertObjectToArray)(r[0])}return r},Lp=function(r){if(r.length===2){if(r[1]instanceof Map)return[r[0]].concat((0,qr.convertMapToArray)(r[1]));if(typeof r[1]=="object"&&r[1]!==null)return[r[0]].concat((0,qr.convertObjectToArray)(r[1]))}return r};Lt.setArgumentTransformer("mset",Np);Lt.setArgumentTransformer("msetnx",Np);Lt.setArgumentTransformer("hset",Lp);Lt.setArgumentTransformer("hmset",Lp);Lt.setReplyTransformer("hgetall",function(r){if(Array.isArray(r)){let e={};for(let t=0;t<r.length;t+=2){let n=r[t],i=r[t+1];n in e?Object.defineProperty(e,n,{value:i,configurable:!0,enumerable:!0,writable:!0}):e[n]=i}return e}return r});var kl=class{constructor(){this.length=0,this.items=[]}push(e){this.length+=Buffer.byteLength(e),this.items.push(e)}toBuffer(){let e=Buffer.allocUnsafe(this.length),t=0;for(let n of this.items){let i=Buffer.byteLength(n);Buffer.isBuffer(n)?n.copy(e,t):e.write(n,t,i),t+=i}return e}}});var qp=h(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});var uI=Nr(),zi=class extends uI.RedisError{constructor(e,t){super(e),this.lastNodeError=t,Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}};xl.default=zi;zi.defaultMessage="Failed to refresh slots cache."});var $i=h(Tl=>{"use strict";Object.defineProperty(Tl,"__esModule",{value:!0});var dI=V("stream"),wl=class extends dI.Readable{constructor(e){super(e),this.opt=e,this._redisCursor="0",this._redisDrained=!1}_read(){if(this._redisDrained){this.push(null);return}let e=[this._redisCursor];this.opt.key&&e.unshift(this.opt.key),this.opt.match&&e.push("MATCH",this.opt.match),this.opt.type&&e.push("TYPE",this.opt.type),this.opt.count&&e.push("COUNT",String(this.opt.count)),this.opt.noValues&&e.push("NOVALUES"),this.opt.redis[this.opt.command](e,(t,n)=>{if(t){this.emit("error",t);return}this._redisCursor=n[0]instanceof Buffer?n[0].toString():n[0],this._redisCursor==="0"&&(this._redisDrained=!0),this.push(n[1])})}close(){this._redisDrained=!0}};Tl.default=wl});var Wp=h(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.executeWithAutoPipelining=Ae.getFirstValueInFlattenedArray=Ae.shouldUseAutoPipelining=Ae.notAllowedAutoPipelineCommands=Ae.kCallbacks=Ae.kExec=void 0;var Vp=Vi(),pI=Qn(),Jp=pr(),Fp=Pr();Ae.kExec=Symbol("exec");Ae.kCallbacks=Symbol("callbacks");Ae.notAllowedAutoPipelineCommands=["auth","info","script","quit","cluster","pipeline","multi","subscribe","psubscribe","unsubscribe","unpsubscribe","select","client"];function Gp(r,e){if(r._runningAutoPipelines.has(e)||!r._autoPipelines.has(e))return;r._runningAutoPipelines.add(e);let t=r._autoPipelines.get(e);r._autoPipelines.delete(e);let n=t[Ae.kCallbacks];t[Ae.kCallbacks]=null,t.exec(function(i,s){if(r._runningAutoPipelines.delete(e),i)for(let a=0;a<n.length;a++)process.nextTick(n[a],i);else for(let a=0;a<n.length;a++)process.nextTick(n[a],...s[a]);r._autoPipelines.has(e)&&Gp(r,e)})}function fI(r,e,t){return e&&r.options.enableAutoPipelining&&!r.isPipeline&&!Ae.notAllowedAutoPipelineCommands.includes(t)&&!r.options.autoPipeliningIgnoredCommands.includes(t)}Ae.shouldUseAutoPipelining=fI;function Yp(r){for(let e=0;e<r.length;e++){let t=r[e];if(typeof t=="string")return t;if(Array.isArray(t)||(0,Vp.isArguments)(t)){if(t.length===0)continue;return t[0]}let n=[t].flat();if(n.length>0)return n[0]}}Ae.getFirstValueInFlattenedArray=Yp;function Bp(r,e,t,n,i){if(r.isCluster&&!r.slots.length)return r.status==="wait"&&r.connect().catch(Vp.noop),(0,Jp.default)(new Promise(function(c,u){r.delayUntilReady(d=>{if(d){u(d);return}Bp(r,e,t,n,null).then(c,u)})}),i);let s=r.options.keyPrefix||"",a=r.isCluster?r.slots[pI(`${s}${Yp(n)}`)].join(","):"main";if(r.isCluster&&r.options.scaleReads!=="master"){let c=(0,Fp.exists)(t)&&(0,Fp.hasFlag)(t,"readonly");a+=c?":read":":write"}if(!r._autoPipelines.has(a)){let c=r.pipeline();c[Ae.kExec]=!1,c[Ae.kCallbacks]=[],r._autoPipelines.set(a,c)}let o=r._autoPipelines.get(a);o[Ae.kExec]||(o[Ae.kExec]=!0,setImmediate(Gp,r,a));let l=new Promise(function(c,u){o[Ae.kCallbacks].push(function(d,f){if(d){u(d);return}c(f)}),e==="call"&&n.unshift(t),o[e](...n)});return(0,Jp.default)(l,i)}Ae.executeWithAutoPipelining=Bp});var Up=h(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});var hI=V("crypto"),yI=Qt(),mI=pr(),jl=class{constructor(e,t=null,n="",i=!1){this.lua=e,this.numberOfKeys=t,this.keyPrefix=n,this.readOnly=i,this.sha=(0,hI.createHash)("sha1").update(e).digest("hex");let s=this.sha,a=new WeakSet;this.Command=class extends yI.default{toWritable(l){let c=this.reject;return this.reject=u=>{u.message.indexOf("NOSCRIPT")!==-1&&a.delete(l),c.call(this,u)},a.has(l)?this.name==="eval"&&(this.name="evalsha",this.args[0]=s):(a.add(l),this.name="eval",this.args[0]=e),super.toWritable(l)}}}execute(e,t,n,i){typeof this.numberOfKeys=="number"&&t.unshift(this.numberOfKeys),this.keyPrefix&&(n.keyPrefix=this.keyPrefix),this.readOnly&&(n.readOnly=!0);let s=new this.Command("evalsha",[this.sha,...t],n);return s.promise=s.promise.catch(a=>{if(a.message.indexOf("NOSCRIPT")===-1)throw a;let o=new this.Command("evalsha",[this.sha,...t],n);return(e.isPipeline?e.redis:e).sendCommand(o)}),(0,mI.default)(s.promise,i),e.sendCommand(s)}};Al.default=jl});var Qi=h(Ol=>{"use strict";Object.defineProperty(Ol,"__esModule",{value:!0});var bI=Pr(),Hi=Wp(),gI=Qt(),vI=Up(),Zt=class{constructor(){this.options={},this.scriptsSet={},this.addedBuiltinSet=new Set}getBuiltinCommands(){return Dl.slice(0)}createBuiltinCommand(e){return{string:hr(null,e,"utf8"),buffer:hr(null,e,null)}}addBuiltinCommand(e){this.addedBuiltinSet.add(e),this[e]=hr(e,e,"utf8"),this[e+"Buffer"]=hr(e+"Buffer",e,null)}defineCommand(e,t){let n=new vI.default(t.lua,t.numberOfKeys,this.options.keyPrefix,t.readOnly);this.scriptsSet[e]=n,this[e]=zp(e,e,n,"utf8"),this[e+"Buffer"]=zp(e+"Buffer",e,n,null)}sendCommand(e,t,n){throw new Error('"sendCommand" is not implemented')}},Dl=bI.list.filter(r=>r!=="monitor");Dl.push("sentinel");Dl.forEach(function(r){Zt.prototype[r]=hr(r,r,"utf8"),Zt.prototype[r+"Buffer"]=hr(r+"Buffer",r,null)});Zt.prototype.call=hr("call","utf8");Zt.prototype.callBuffer=hr("callBuffer",null);Zt.prototype.send_command=Zt.prototype.call;function hr(r,e,t){return typeof t>"u"&&(t=e,e=null),function(...n){let i=e||n.shift(),s=n[n.length-1];typeof s=="function"?n.pop():s=void 0;let a={errorStack:this.options.showFriendlyErrorStack?new Error:void 0,keyPrefix:this.options.keyPrefix,replyEncoding:t};return(0,Hi.shouldUseAutoPipelining)(this,r,i)?(0,Hi.executeWithAutoPipelining)(this,r,i,n,s):this.sendCommand(new gI.default(i,n,a,s))}}function zp(r,e,t,n){return function(...i){let s=typeof i[i.length-1]=="function"?i.pop():void 0,a={replyEncoding:n};return this.options.showFriendlyErrorStack&&(a.errorStack=new Error),(0,Hi.shouldUseAutoPipelining)(this,r,e)?(0,Hi.executeWithAutoPipelining)(this,r,e,i,s):t.execute(this,i,a,s)}}Ol.default=Zt});var _l=h(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});var Rl=Qn(),$p=Pr(),Hp=pr(),KI=V("util"),SI=Qt(),EI=Re(),kI=Qi();function II(r,e){let t=Rl(e[0]),n=r._groupsBySlot[t];for(let i=1;i<e.length;i++)if(r._groupsBySlot[Rl(e[i])]!==n)return-1;return t}var yr=class extends kI.default{constructor(e){super(),this.redis=e,this.isPipeline=!0,this.replyPending=0,this._queue=[],this._result=[],this._transactions=0,this._shaToScript={},this.isCluster=this.redis.constructor.name==="Cluster"||this.redis.isCluster,this.options=e.options,Object.keys(e.scriptsSet).forEach(n=>{let i=e.scriptsSet[n];this._shaToScript[i.sha]=i,this[n]=e[n],this[n+"Buffer"]=e[n+"Buffer"]}),e.addedBuiltinSet.forEach(n=>{this[n]=e[n],this[n+"Buffer"]=e[n+"Buffer"]}),this.promise=new Promise((n,i)=>{this.resolve=n,this.reject=i});let t=this;Object.defineProperty(this,"length",{get:function(){return t._queue.length}})}fillResult(e,t){if(this._queue[t].name==="exec"&&Array.isArray(e[1])){let i=e[1].length;for(let s=0;s<i;s++){if(e[1][s]instanceof Error)continue;let a=this._queue[t-(i-s)];try{e[1][s]=a.transformReply(e[1][s])}catch(o){e[1][s]=o}}}if(this._result[t]=e,--this.replyPending)return;if(this.isCluster){let i=!0,s;for(let a=0;a<this._result.length;++a){let o=this._result[a][0],l=this._queue[a];if(o){if(l.name==="exec"&&o.message==="EXECABORT Transaction discarded because of previous errors.")continue;if(!s)s={name:o.name,message:o.message};else if(s.name!==o.name||s.message!==o.message){i=!1;break}}else if(!l.inTransaction&&!((0,$p.exists)(l.name,{caseInsensitive:!0})&&(0,$p.hasFlag)(l.name,"readonly",{nameCaseInsensitive:!0}))){i=!1;break}}if(s&&i){let a=this,o=s.message.split(" "),l=this._queue,c=!1;this._queue=[];for(let p=0;p<l.length;++p){if(o[0]==="ASK"&&!c&&l[p].name!=="asking"&&(!l[p-1]||l[p-1].name!=="asking")){let y=new SI.default("asking");y.ignore=!0,this.sendCommand(y)}l[p].initPromise(),this.sendCommand(l[p]),c=l[p].inTransaction}let u=!0;typeof this.leftRedirections>"u"&&(this.leftRedirections={});let d=function(){a.exec()},f=this.redis;if(f.handleError(s,this.leftRedirections,{moved:function(p,y){a.preferKey=y,f.slots[o[1]]?f.slots[o[1]][0]!==y&&(f.slots[o[1]]=[y]):f.slots[o[1]]=[y],f._groupsBySlot[o[1]]=f._groupsIds[f.slots[o[1]].join(";")],f.refreshSlotsCache(),a.exec()},ask:function(p,y){a.preferKey=y,a.exec()},tryagain:d,clusterDown:d,connectionClosed:d,maxRedirections:()=>{u=!1},defaults:()=>{u=!1}}),u)return}}let n=0;for(let i=0;i<this._queue.length-n;++i)this._queue[i+n].ignore&&(n+=1),this._result[i]=this._result[i+n];this.resolve(this._result.slice(0,this._result.length-n))}sendCommand(e){this._transactions>0&&(e.inTransaction=!0);let t=this._queue.length;return e.pipelineIndex=t,e.promise.then(n=>{this.fillResult([null,n],t)}).catch(n=>{this.fillResult([n],t)}),this._queue.push(e),this}addBatch(e){let t,n,i;for(let s=0;s<e.length;++s)t=e[s],n=t[0],i=t.slice(1),this[n].apply(this,i);return this}};Cl.default=yr;var xI=yr.prototype.multi;yr.prototype.multi=function(){return this._transactions+=1,xI.apply(this,arguments)};var Qp=yr.prototype.execBuffer;yr.prototype.execBuffer=(0,KI.deprecate)(function(){return this._transactions>0&&(this._transactions-=1),Qp.apply(this,arguments)},"Pipeline#execBuffer: Use Pipeline#exec instead");yr.prototype.exec=function(r){if(this.isCluster&&!this.redis.slots.length)return this.redis.status==="wait"&&this.redis.connect().catch(EI.noop),r&&!this.nodeifiedPromise&&(this.nodeifiedPromise=!0,(0,Hp.default)(this.promise,r)),this.redis.delayUntilReady(i=>{if(i){this.reject(i);return}this.exec(r)}),this.promise;if(this._transactions>0)return this._transactions-=1,Qp.apply(this,arguments);this.nodeifiedPromise||(this.nodeifiedPromise=!0,(0,Hp.default)(this.promise,r)),this._queue.length||this.resolve([]);let e;if(this.isCluster){let i=[];for(let s=0;s<this._queue.length;s++){let a=this._queue[s].getKeys();if(a.length&&i.push(a[0]),a.length&&Rl.generateMulti(a)<0)return this.reject(new Error("All the keys in a pipeline command should belong to the same slot")),this.promise}if(i.length){if(e=II(this.redis,i),e<0)return this.reject(new Error("All keys in the pipeline should belong to the same slots allocation group")),this.promise}else e=Math.random()*16384|0}let t=this;return n(),this.promise;function n(){let i=t.replyPending=t._queue.length,s;t.isCluster&&(s={slot:e,redis:t.redis.connectionPool.nodes.all[t.preferKey]});let a="",o,l={isPipeline:!0,destination:t.isCluster?s:{redis:t.redis},write(c){typeof c!="string"?(o||(o=[]),a&&(o.push(Buffer.from(a,"utf8")),a=""),o.push(c)):a+=c,--i||(o?(a&&o.push(Buffer.from(a,"utf8")),l.destination.redis.stream.write(Buffer.concat(o))):l.destination.redis.stream.write(a),i=t._queue.length,a="",o=void 0)}};for(let c=0;c<t._queue.length;++c)t.redis.sendCommand(t._queue[c],l,s);return t.promise}}});var Nl=h(Zi=>{"use strict";Object.defineProperty(Zi,"__esModule",{value:!0});Zi.addTransactionSupport=void 0;var Ml=Re(),Pl=pr(),Zp=_l();function wI(r){r.pipeline=function(n){let i=new Zp.default(this);return Array.isArray(n)&&i.addBatch(n),i};let{multi:e}=r;r.multi=function(n,i){if(typeof i>"u"&&!Array.isArray(n)&&(i=n,n=null),i&&i.pipeline===!1)return e.call(this);let s=new Zp.default(this);s.multi(),Array.isArray(n)&&s.addBatch(n);let a=s.exec;s.exec=function(l){if(this.isCluster&&!this.redis.slots.length)return this.redis.status==="wait"&&this.redis.connect().catch(Ml.noop),(0,Pl.default)(new Promise((u,d)=>{this.redis.delayUntilReady(f=>{if(f){d(f);return}this.exec(s).then(u,d)})}),l);if(this._transactions>0&&a.call(s),this.nodeifiedPromise)return a.call(s);let c=a.call(s);return(0,Pl.default)(c.then(function(u){let d=u[u.length-1];if(typeof d>"u")throw new Error("Pipeline cannot be used to send any commands when the `exec()` has been called on it.");if(d[0]){d[0].previousErrors=[];for(let f=0;f<u.length-1;++f)u[f][0]&&d[0].previousErrors.push(u[f][0]);throw d[0]}return(0,Ml.wrapMultiResult)(d[1])}),l)};let{execBuffer:o}=s;return s.execBuffer=function(l){return this._transactions>0&&o.call(s),s.exec(l)},s};let{exec:t}=r;r.exec=function(n){return(0,Pl.default)(t.call(this).then(function(i){return Array.isArray(i)&&(i=(0,Ml.wrapMultiResult)(i)),i}),n)}}Zi.addTransactionSupport=wI});var ql=h(Ll=>{"use strict";Object.defineProperty(Ll,"__esModule",{value:!0});function TI(r,e){Object.getOwnPropertyNames(e.prototype).forEach(t=>{Object.defineProperty(r.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})}Ll.default=TI});var ef=h(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.DEFAULT_CLUSTER_OPTIONS=void 0;var Xp=V("dns");Xi.DEFAULT_CLUSTER_OPTIONS={clusterRetryStrategy:r=>Math.min(100+r*2,2e3),enableOfflineQueue:!0,enableReadyCheck:!0,scaleReads:"master",maxRedirections:16,retryDelayOnMoved:0,retryDelayOnFailover:100,retryDelayOnClusterDown:100,retryDelayOnTryAgain:100,slotsRefreshTimeout:1e3,useSRVRecords:!1,resolveSrv:Xp.resolveSrv,dnsLookup:Xp.lookup,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],shardedSubscribers:!1}});var En=h(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.getConnectionName=Ye.weightSrvRecords=Ye.groupSrvRecords=Ye.getUniqueHostnamesFromOptions=Ye.normalizeNodeOptions=Ye.nodeKeyToRedisOptions=Ye.getNodeKey=void 0;var tf=Re(),jI=V("net");function AI(r){return r.port=r.port||6379,r.host=r.host||"127.0.0.1",r.host+":"+r.port}Ye.getNodeKey=AI;function DI(r){let e=r.lastIndexOf(":");if(e===-1)throw new Error(`Invalid node key ${r}`);return{host:r.slice(0,e),port:Number(r.slice(e+1))}}Ye.nodeKeyToRedisOptions=DI;function OI(r){return r.map(e=>{let t={};if(typeof e=="object")Object.assign(t,e);else if(typeof e=="string")Object.assign(t,(0,tf.parseURL)(e));else if(typeof e=="number")t.port=e;else throw new Error("Invalid argument "+e);return typeof t.port=="string"&&(t.port=parseInt(t.port,10)),delete t.db,t.port||(t.port=6379),t.host||(t.host="127.0.0.1"),(0,tf.resolveTLSProfile)(t)})}Ye.normalizeNodeOptions=OI;function RI(r){let e={};return r.forEach(t=>{e[t.host]=!0}),Object.keys(e).filter(t=>!(0,jI.isIP)(t))}Ye.getUniqueHostnamesFromOptions=RI;function CI(r){let e={};for(let t of r)e.hasOwnProperty(t.priority)?(e[t.priority].totalWeight+=t.weight,e[t.priority].records.push(t)):e[t.priority]={totalWeight:t.weight,records:[t]};return e}Ye.groupSrvRecords=CI;function _I(r){if(r.records.length===1)return r.totalWeight=0,r.records.shift();let e=Math.floor(Math.random()*(r.totalWeight+r.records.length)),t=0;for(let[n,i]of r.records.entries())if(t+=1+i.weight,t>e)return r.totalWeight-=i.weight,r.records.splice(n,1),i}Ye.weightSrvRecords=_I;function MI(r,e){let t=`ioredis-cluster(${r})`;return e?`${t}:${e}`:t}Ye.getConnectionName=MI});var nf=h(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});var rf=En(),Jl=Re(),PI=Xt(),qt=(0,Jl.Debug)("cluster:subscriber"),Fl=class{constructor(e,t,n=!1){this.connectionPool=e,this.emitter=t,this.isSharded=n,this.started=!1,this.subscriber=null,this.slotRange=[],this.onSubscriberEnd=()=>{if(!this.started){qt("subscriber has disconnected, but ClusterSubscriber is not started, so not reconnecting.");return}qt("subscriber has disconnected, selecting a new one..."),this.selectSubscriber()},this.connectionPool.on("-node",(i,s)=>{!this.started||!this.subscriber||(0,rf.getNodeKey)(this.subscriber.options)===s&&(qt("subscriber has left, selecting a new one..."),this.selectSubscriber())}),this.connectionPool.on("+node",()=>{!this.started||this.subscriber||(qt("a new node is discovered and there is no subscriber, selecting a new one..."),this.selectSubscriber())})}getInstance(){return this.subscriber}associateSlotRange(e){return this.isSharded&&(this.slotRange=e),this.slotRange}start(){this.started=!0,this.selectSubscriber(),qt("started")}stop(){this.started=!1,this.subscriber&&(this.subscriber.disconnect(),this.subscriber=null)}isStarted(){return this.started}selectSubscriber(){let e=this.lastActiveSubscriber;e&&(e.off("end",this.onSubscriberEnd),e.disconnect()),this.subscriber&&(this.subscriber.off("end",this.onSubscriberEnd),this.subscriber.disconnect());let t=(0,Jl.sample)(this.connectionPool.getNodes());if(!t){qt("selecting subscriber failed since there is no node discovered in the cluster yet"),this.subscriber=null;return}let{options:n}=t;qt("selected a subscriber %s:%s",n.host,n.port);let i="subscriber";this.isSharded&&(i="ssubscriber"),this.subscriber=new PI.default({port:n.port,host:n.host,username:n.username,password:n.password,enableReadyCheck:!0,connectionName:(0,rf.getConnectionName)(i,n.connectionName),lazyConnect:!0,tls:n.tls,retryStrategy:null}),this.subscriber.on("error",Jl.noop),this.subscriber.on("moved",()=>{this.emitter.emit("forceRefresh")}),this.subscriber.once("end",this.onSubscriberEnd);let s={subscribe:[],psubscribe:[],ssubscribe:[]};if(e){let a=e.condition||e.prevCondition;a&&a.subscriber&&(s.subscribe=a.subscriber.channels("subscribe"),s.psubscribe=a.subscriber.channels("psubscribe"),s.ssubscribe=a.subscriber.channels("ssubscribe"))}if(s.subscribe.length||s.psubscribe.length||s.ssubscribe.length){let a=0;for(let o of["subscribe","psubscribe","ssubscribe"]){let l=s[o];if(l.length!=0)if(qt("%s %d channels",o,l.length),o==="ssubscribe")for(let c of l)a+=1,this.subscriber[o](c).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{qt("failed to ssubscribe to channel: %s",c)});else a+=1,this.subscriber[o](l).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{qt("failed to %s %d channels",o,l.length)})}}else this.lastActiveSubscriber=this.subscriber;for(let a of["message","messageBuffer"])this.subscriber.on(a,(o,l)=>{this.emitter.emit(a,o,l)});for(let a of["pmessage","pmessageBuffer"])this.subscriber.on(a,(o,l,c)=>{this.emitter.emit(a,o,l,c)});if(this.isSharded==!0)for(let a of["smessage","smessageBuffer"])this.subscriber.on(a,(o,l)=>{this.emitter.emit(a,o,l)})}};Vl.default=Fl});var sf=h(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});var NI=V("events"),es=Re(),Gl=En(),LI=Xt(),ei=(0,es.Debug)("cluster:connectionPool"),Yl=class extends NI.EventEmitter{constructor(e){super(),this.redisOptions=e,this.nodes={all:{},master:{},slave:{}},this.specifiedOptions={}}getNodes(e="all"){let t=this.nodes[e];return Object.keys(t).map(n=>t[n])}getInstanceByKey(e){return this.nodes.all[e]}getSampleInstance(e){let t=Object.keys(this.nodes[e]),n=(0,es.sample)(t);return this.nodes[e][n]}addMasterNode(e){let t=(0,Gl.getNodeKey)(e.options),n=this.createRedisFromOptions(e,e.options.readOnly);return e.options.readOnly?!1:(this.nodes.all[t]=n,this.nodes.master[t]=n,!0)}createRedisFromOptions(e,t){return new LI.default((0,es.defaults)({retryStrategy:null,enableOfflineQueue:!0,readOnly:t},e,this.redisOptions,{lazyConnect:!0}))}findOrCreate(e,t=!1){let n=(0,Gl.getNodeKey)(e);t=!!t,this.specifiedOptions[n]?Object.assign(e,this.specifiedOptions[n]):this.specifiedOptions[n]=e;let i;return this.nodes.all[n]?(i=this.nodes.all[n],i.options.readOnly!==t&&(i.options.readOnly=t,ei("Change role of %s to %s",n,t?"slave":"master"),i[t?"readonly":"readwrite"]().catch(es.noop),t?(delete this.nodes.master[n],this.nodes.slave[n]=i):(delete this.nodes.slave[n],this.nodes.master[n]=i))):(ei("Connecting to %s as %s",n,t?"slave":"master"),i=this.createRedisFromOptions(e,t),this.nodes.all[n]=i,this.nodes[t?"slave":"master"][n]=i,i.once("end",()=>{this.removeNode(n),this.emit("-node",i,n),Object.keys(this.nodes.all).length||this.emit("drain")}),this.emit("+node",i,n),i.on("error",function(s){this.emit("nodeError",s,n)})),i}reset(e){ei("Reset with %O",e);let t={};e.forEach(n=>{let i=(0,Gl.getNodeKey)(n);n.readOnly&&t[i]||(t[i]=n)}),Object.keys(this.nodes.all).forEach(n=>{t[n]||(ei("Disconnect %s because the node does not hold any slot",n),this.nodes.all[n].disconnect(),this.removeNode(n))}),Object.keys(t).forEach(n=>{let i=t[n];this.findOrCreate(i,i.readOnly)})}removeNode(e){let{nodes:t}=this;t.all[e]&&(ei("Remove %s from the pool",e),delete t.all[e]),delete t.master[e],delete t.slave[e]}};Bl.default=Yl});var ts=h((rM,af)=>{"use strict";function we(r,t){var t=t||{};this._capacity=t.capacity,this._head=0,this._tail=0,Array.isArray(r)?this._fromArray(r):(this._capacityMask=3,this._list=new Array(4))}we.prototype.peekAt=function(e){var t=e;if(t===(t|0)){var n=this.size();if(!(t>=n||t<-n))return t<0&&(t+=n),t=this._head+t&this._capacityMask,this._list[t]}};we.prototype.get=function(e){return this.peekAt(e)};we.prototype.peek=function(){if(this._head!==this._tail)return this._list[this._head]};we.prototype.peekFront=function(){return this.peek()};we.prototype.peekBack=function(){return this.peekAt(-1)};Object.defineProperty(we.prototype,"length",{get:function(){return this.size()}});we.prototype.size=function(){return this._head===this._tail?0:this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)};we.prototype.unshift=function(e){if(arguments.length===0)return this.size();var t=this._list.length;return this._head=this._head-1+t&this._capacityMask,this._list[this._head]=e,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.pop(),this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)};we.prototype.shift=function(){var e=this._head;if(e!==this._tail){var t=this._list[e];return this._list[e]=void 0,this._head=e+1&this._capacityMask,e<2&&this._tail>1e4&&this._tail<=this._list.length>>>2&&this._shrinkArray(),t}};we.prototype.push=function(e){if(arguments.length===0)return this.size();var t=this._tail;return this._list[t]=e,this._tail=t+1&this._capacityMask,this._tail===this._head&&this._growArray(),this._capacity&&this.size()>this._capacity&&this.shift(),this._head<this._tail?this._tail-this._head:this._capacityMask+1-(this._head-this._tail)};we.prototype.pop=function(){var e=this._tail;if(e!==this._head){var t=this._list.length;this._tail=e-1+t&this._capacityMask;var n=this._list[this._tail];return this._list[this._tail]=void 0,this._head<2&&e>1e4&&e<=t>>>2&&this._shrinkArray(),n}};we.prototype.removeOne=function(e){var t=e;if(t===(t|0)&&this._head!==this._tail){var n=this.size(),i=this._list.length;if(!(t>=n||t<-n)){t<0&&(t+=n),t=this._head+t&this._capacityMask;var s=this._list[t],a;if(e<n/2){for(a=e;a>0;a--)this._list[t]=this._list[t=t-1+i&this._capacityMask];this._list[t]=void 0,this._head=this._head+1+i&this._capacityMask}else{for(a=n-1-e;a>0;a--)this._list[t]=this._list[t=t+1+i&this._capacityMask];this._list[t]=void 0,this._tail=this._tail-1+i&this._capacityMask}return s}}};we.prototype.remove=function(e,t){var n=e,i,s=t;if(n===(n|0)&&this._head!==this._tail){var a=this.size(),o=this._list.length;if(!(n>=a||n<-a||t<1)){if(n<0&&(n+=a),t===1||!t)return i=new Array(1),i[0]=this.removeOne(n),i;if(n===0&&n+t>=a)return i=this.toArray(),this.clear(),i;n+t>a&&(t=a-n);var l;for(i=new Array(t),l=0;l<t;l++)i[l]=this._list[this._head+n+l&this._capacityMask];if(n=this._head+n&this._capacityMask,e+t===a){for(this._tail=this._tail-t+o&this._capacityMask,l=t;l>0;l--)this._list[n=n+1+o&this._capacityMask]=void 0;return i}if(e===0){for(this._head=this._head+t+o&this._capacityMask,l=t-1;l>0;l--)this._list[n=n+1+o&this._capacityMask]=void 0;return i}if(n<a/2){for(this._head=this._head+e+t+o&this._capacityMask,l=e;l>0;l--)this.unshift(this._list[n=n-1+o&this._capacityMask]);for(n=this._head-1+o&this._capacityMask;s>0;)this._list[n=n-1+o&this._capacityMask]=void 0,s--;e<0&&(this._tail=n)}else{for(this._tail=n,n=n+t+o&this._capacityMask,l=a-(t+e);l>0;l--)this.push(this._list[n++]);for(n=this._tail;s>0;)this._list[n=n+1+o&this._capacityMask]=void 0,s--}return this._head<2&&this._tail>1e4&&this._tail<=o>>>2&&this._shrinkArray(),i}}};we.prototype.splice=function(e,t){var n=e;if(n===(n|0)){var i=this.size();if(n<0&&(n+=i),!(n>i))if(arguments.length>2){var s,a,o,l=arguments.length,c=this._list.length,u=2;if(!i||n<i/2){for(a=new Array(n),s=0;s<n;s++)a[s]=this._list[this._head+s&this._capacityMask];for(t===0?(o=[],n>0&&(this._head=this._head+n+c&this._capacityMask)):(o=this.remove(n,t),this._head=this._head+n+c&this._capacityMask);l>u;)this.unshift(arguments[--l]);for(s=n;s>0;s--)this.unshift(a[s-1])}else{a=new Array(i-(n+t));var d=a.length;for(s=0;s<d;s++)a[s]=this._list[this._head+n+t+s&this._capacityMask];for(t===0?(o=[],n!=i&&(this._tail=this._head+n+c&this._capacityMask)):(o=this.remove(n,t),this._tail=this._tail-d+c&this._capacityMask);u<l;)this.push(arguments[u++]);for(s=0;s<d;s++)this.push(a[s])}return o}else return this.remove(n,t)}};we.prototype.clear=function(){this._list=new Array(this._list.length),this._head=0,this._tail=0};we.prototype.isEmpty=function(){return this._head===this._tail};we.prototype.toArray=function(){return this._copyArray(!1)};we.prototype._fromArray=function(e){var t=e.length,n=this._nextPowerOf2(t);this._list=new Array(n),this._capacityMask=n-1,this._tail=t;for(var i=0;i<t;i++)this._list[i]=e[i]};we.prototype._copyArray=function(e,t){var n=this._list,i=n.length,s=this.length;if(t=t|s,t==s&&this._head<this._tail)return this._list.slice(this._head,this._tail);var a=new Array(t),o=0,l;if(e||this._head>this._tail){for(l=this._head;l<i;l++)a[o++]=n[l];for(l=0;l<this._tail;l++)a[o++]=n[l]}else for(l=this._head;l<this._tail;l++)a[o++]=n[l];return a};we.prototype._growArray=function(){if(this._head!=0){var e=this._copyArray(!0,this._list.length<<1);this._tail=this._list.length,this._head=0,this._list=e}else this._tail=this._list.length,this._list.length<<=1;this._capacityMask=this._capacityMask<<1|1};we.prototype._shrinkArray=function(){this._list.length>>>=1,this._capacityMask>>>=1};we.prototype._nextPowerOf2=function(e){var t=Math.log(e)/Math.log(2),n=1<<t+1;return Math.max(n,4)};af.exports=we});var of=h(Ul=>{"use strict";Object.defineProperty(Ul,"__esModule",{value:!0});var qI=Re(),JI=ts(),FI=(0,qI.Debug)("delayqueue"),Wl=class{constructor(){this.queues={},this.timeouts={}}push(e,t,n){let i=n.callback||process.nextTick;this.queues[e]||(this.queues[e]=new JI),this.queues[e].push(t),this.timeouts[e]||(this.timeouts[e]=setTimeout(()=>{i(()=>{this.timeouts[e]=null,this.execute(e)})},n.timeout))}execute(e){let t=this.queues[e];if(!t)return;let{length:n}=t;if(n)for(FI("send %d commands in %s queue",n,e),this.queues[e]=null;t.length>0;)t.shift()()}};Ul.default=Wl});var df=h($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});var lf=En(),uf=Re(),VI=Xt(),cf=(0,uf.Debug)("cluster:subscriberGroup:shardedSubscriber"),me={IDLE:"idle",STARTING:"starting",CONNECTED:"connected",STOPPING:"stopping",ENDED:"ended"},GI={[me.IDLE]:[me.STARTING,me.STOPPING,me.ENDED],[me.STARTING]:[me.CONNECTED,me.STOPPING,me.ENDED],[me.CONNECTED]:[me.STOPPING,me.ENDED],[me.STOPPING]:[me.ENDED],[me.ENDED]:[]},zl=class{constructor(e,t,n){var i;this.emitter=e,this.status=me.IDLE,this.instance=null,this.connectPromise=null,this.messageListeners=new Map,this.onEnd=()=>{this.updateStatus(me.ENDED),this.emitter.emit("-node",this.instance,this.nodeKey)},this.onError=s=>{this.emitter.emit("nodeError",s,this.nodeKey)},this.onMoved=()=>{this.emitter.emit("moved")},this.instance=new VI.default((0,uf.defaults)({enableReadyCheck:!1,enableOfflineQueue:!0,connectionName:(0,lf.getConnectionName)("ssubscriber",t.connectionName),retryStrategy:null,lazyConnect:!0},t,n)),this.lazyConnect=(i=n?.lazyConnect)!==null&&i!==void 0?i:!0,this.nodeKey=(0,lf.getNodeKey)(t),this.instance.on("end",this.onEnd),this.instance.on("error",this.onError),this.instance.on("moved",this.onMoved);for(let s of["smessage","smessageBuffer"]){let a=(...o)=>{this.emitter.emit(s,...o)};this.messageListeners.set(s,a),this.instance.on(s,a)}}async start(){if(this.connectPromise)return this.connectPromise;if(!(this.status===me.STARTING||this.status===me.CONNECTED)){if(this.status===me.ENDED||!this.instance)throw new Error(`Sharded subscriber ${this.nodeKey} cannot be restarted once ended.`);this.updateStatus(me.STARTING),this.connectPromise=this.instance.connect();try{await this.connectPromise,this.updateStatus(me.CONNECTED)}catch(e){throw this.updateStatus(me.ENDED),e}finally{this.connectPromise=null}}}stop(){this.updateStatus(me.STOPPING),this.instance&&(this.instance.disconnect(),this.instance.removeAllListeners(),this.messageListeners.clear(),this.instance=null),this.updateStatus(me.ENDED),cf("stopped %s",this.nodeKey)}isStarted(){return[me.CONNECTED,me.STARTING].includes(this.status)}get subscriberStatus(){return this.status}isHealthy(){return(this.status===me.IDLE||this.status===me.CONNECTED||this.status===me.STARTING)&&this.instance!==null}getInstance(){return this.instance}getNodeKey(){return this.nodeKey}isLazyConnect(){return this.lazyConnect}updateStatus(e){if(this.status!==e){if(!GI[this.status].includes(e)){cf("Invalid status transition for %s: %s -> %s",this.nodeKey,this.status,e);return}this.status=e}}};$l.default=zl});var pf=h(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});var YI=Re(),BI=En(),rs=Qn(),WI=df(),St=(0,YI.Debug)("cluster:subscriberGroup"),kn=class r{constructor(e,t){this.subscriberGroupEmitter=e,this.options=t,this.shardedSubscribers=new Map,this.clusterSlots=[],this.subscriberToSlotsIndex=new Map,this.channels=new Map,this.failedAttemptsByNode=new Map,this.isResetting=!1,this.pendingReset=null,this.handleSubscriberConnectFailed=(n,i)=>{let a=(this.failedAttemptsByNode.get(i)||0)+1;this.failedAttemptsByNode.set(i,a);let o=Math.min(a,r.MAX_RETRY_ATTEMPTS),l=Math.min(r.BASE_BACKOFF_MS*2**o,r.MAX_BACKOFF_MS),c=Math.floor((Math.random()-.5)*(l*.5)),u=Math.max(0,l+c);St("Failed to connect subscriber for %s. Refreshing slots in %dms",i,u),this.subscriberGroupEmitter.emit("subscriberConnectFailed",{delay:u,error:n})},this.handleSubscriberConnectSucceeded=n=>{this.failedAttemptsByNode.delete(n)}}getResponsibleSubscriber(e){let t=this.clusterSlots[e][0],n=this.shardedSubscribers.get(t);return n&&n.subscriberStatus==="idle"&&n.start().then(()=>{this.handleSubscriberConnectSucceeded(n.getNodeKey())}).catch(i=>{this.handleSubscriberConnectFailed(i,n.getNodeKey())}),n}addChannels(e){let t=rs(e[0]);for(let i of e)if(rs(i)!==t)return-1;let n=this.channels.get(t);return n?this.channels.set(t,n.concat(e)):this.channels.set(t,e),Array.from(this.channels.values()).reduce((i,s)=>i+s.length,0)}removeChannels(e){let t=rs(e[0]);for(let i of e)if(rs(i)!==t)return-1;let n=this.channels.get(t);if(n){let i=n.filter(s=>!e.includes(s));this.channels.set(t,i)}return Array.from(this.channels.values()).reduce((i,s)=>i+s.length,0)}stop(){for(let e of this.shardedSubscribers.values())e.stop();this.pendingReset=null,this.shardedSubscribers.clear(),this.subscriberToSlotsIndex.clear()}start(){let e=[];for(let t of this.shardedSubscribers.values())this.shouldStartSubscriber(t)&&(e.push(t.start().then(()=>{this.handleSubscriberConnectSucceeded(t.getNodeKey())}).catch(n=>{this.handleSubscriberConnectFailed(n,t.getNodeKey())})),this.subscriberGroupEmitter.emit("+subscriber"));return Promise.all(e)}async reset(e,t){if(this.isResetting){this.pendingReset={slots:e,nodes:t};return}this.isResetting=!0;try{let n=this._refreshSlots(e),i=this.hasUnhealthySubscribers();if(!n&&!i){St("No topology change detected or failed subscribers. Skipping reset.");return}for(let[a,o]of this.shardedSubscribers){if(this.subscriberToSlotsIndex.has(a)&&o.isHealthy()){St("Skipping deleting subscriber for %s",a);continue}St("Removing subscriber for %s",a),o.stop(),this.shardedSubscribers.delete(a),this.subscriberGroupEmitter.emit("-subscriber")}let s=[];for(let[a,o]of this.subscriberToSlotsIndex){let l=this.shardedSubscribers.get(a);if(l&&l.isHealthy()){St("Skipping creating new subscriber for %s",a),!l.isStarted()&&this.shouldStartSubscriber(l)&&s.push(l.start().then(()=>{this.handleSubscriberConnectSucceeded(a)}).catch(d=>{this.handleSubscriberConnectFailed(d,a)}));continue}l&&!l.isHealthy()&&(St("Replacing subscriber for %s",a),l.stop(),this.shardedSubscribers.delete(a),this.subscriberGroupEmitter.emit("-subscriber")),St("Creating new subscriber for %s",a);let c=t.find(d=>(0,BI.getNodeKey)(d.options)===a);if(!c){St("Failed to find node for key %s",a);continue}let u=new WI.default(this.subscriberGroupEmitter,c.options,this.options.redisOptions);this.shardedSubscribers.set(a,u),this.shouldStartSubscriber(u)&&s.push(u.start().then(()=>{this.handleSubscriberConnectSucceeded(a)}).catch(d=>{this.handleSubscriberConnectFailed(d,a)})),this.subscriberGroupEmitter.emit("+subscriber")}await Promise.all(s),this._resubscribe(),this.subscriberGroupEmitter.emit("subscribersReady")}finally{if(this.isResetting=!1,this.pendingReset){let{slots:n,nodes:i}=this.pendingReset;this.pendingReset=null,await this.reset(n,i)}}}_refreshSlots(e){if(this._slotsAreEqual(e)&&this.subscriberToSlotsIndex.size>0)return St("Nothing to refresh because the new cluster map is equal to the previous one."),!1;St("Refreshing the slots of the subscriber group."),this.subscriberToSlotsIndex=new Map;for(let t=0;t<e.length;t++){let n=e[t][0];this.subscriberToSlotsIndex.has(n)||this.subscriberToSlotsIndex.set(n,[]),this.subscriberToSlotsIndex.get(n).push(Number(t))}return this.clusterSlots=JSON.parse(JSON.stringify(e)),!0}_resubscribe(){this.shardedSubscribers&&this.shardedSubscribers.forEach((e,t)=>{let n=this.subscriberToSlotsIndex.get(t);n&&n.forEach(i=>{let s=e.getInstance(),a=this.channels.get(i);if(a&&a.length>0){if(!s||s.status==="end")return;s.status==="ready"?s.ssubscribe(...a).catch(o=>{St("Failed to ssubscribe on node %s: %s",t,o)}):s.once("ready",()=>{s.ssubscribe(...a).catch(o=>{St("Failed to ssubscribe on node %s: %s",t,o)})})}})})}_slotsAreEqual(e){return this.clusterSlots===void 0?!1:JSON.stringify(this.clusterSlots)===JSON.stringify(e)}hasUnhealthySubscribers(){let e=Array.from(this.shardedSubscribers.values()).some(n=>!n.isHealthy()),t=Array.from(this.subscriberToSlotsIndex.keys()).some(n=>!this.shardedSubscribers.has(n));return e||t}shouldStartSubscriber(e){if(e.isStarted())return!1;if(!e.isLazyConnect())return!0;let t=this.subscriberToSlotsIndex.get(e.getNodeKey());return t?t.some(n=>{let i=this.channels.get(n);return!!(i&&i.length>0)}):!1}};Hl.default=kn;kn.MAX_RETRY_ATTEMPTS=10;kn.MAX_BACKOFF_MS=2e3;kn.BASE_BACKOFF_MS=100});var Xl=h(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});var ff=Pr(),Ql=V("events"),In=Nr(),hf=pr(),yf=Qt(),ns=qp(),UI=Xt(),zI=$i(),$I=Nl(),ct=Re(),HI=ql(),QI=Qi(),ZI=ef(),XI=nf(),ex=sf(),tx=of(),xn=En(),mf=ts(),rx=pf(),Ke=(0,ct.Debug)("cluster"),bf=new WeakSet,ti=class r extends QI.default{constructor(e,t={}){if(super(),this.slots=[],this._groupsIds={},this._groupsBySlot=Array(16384),this.isCluster=!0,this.retryAttempts=0,this.delayQueue=new tx.default,this.offlineQueue=new mf,this.isRefreshing=!1,this._refreshSlotsCacheCallbacks=[],this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this._readyDelayedCallbacks=[],this.connectionEpoch=0,Ql.EventEmitter.call(this),this.startupNodes=e,this.options=(0,ct.defaults)({},t,ZI.DEFAULT_CLUSTER_OPTIONS,this.options),this.options.shardedSubscribers&&this.createShardedSubscriberGroup(),this.options.redisOptions&&this.options.redisOptions.keyPrefix&&!this.options.keyPrefix&&(this.options.keyPrefix=this.options.redisOptions.keyPrefix),typeof this.options.scaleReads!="function"&&["all","master","slave"].indexOf(this.options.scaleReads)===-1)throw new Error('Invalid option scaleReads "'+this.options.scaleReads+'". Expected "all", "master", "slave" or a custom function');this.connectionPool=new ex.default(this.options.redisOptions),this.connectionPool.on("-node",(n,i)=>{this.emit("-node",n)}),this.connectionPool.on("+node",n=>{this.emit("+node",n)}),this.connectionPool.on("drain",()=>{this.setStatus("close")}),this.connectionPool.on("nodeError",(n,i)=>{this.emit("node error",n,i)}),this.subscriber=new XI.default(this.connectionPool,this),this.options.scripts&&Object.entries(this.options.scripts).forEach(([n,i])=>{this.defineCommand(n,i)}),this.options.lazyConnect?this.setStatus("wait"):this.connect().catch(n=>{Ke("connecting failed: %s",n)})}connect(){return new Promise((e,t)=>{if(this.status==="connecting"||this.status==="connect"||this.status==="ready"){t(new Error("Redis is already connecting/connected"));return}let n=++this.connectionEpoch;this.setStatus("connecting"),this.resolveStartupNodeHostnames().then(i=>{if(this.connectionEpoch!==n){Ke("discard connecting after resolving startup nodes because epoch not match: %d != %d",n,this.connectionEpoch),t(new In.RedisError("Connection is discarded because a new connection is made"));return}if(this.status!=="connecting"){Ke("discard connecting after resolving startup nodes because the status changed to %s",this.status),t(new In.RedisError("Connection is aborted"));return}this.connectionPool.reset(i),this.options.shardedSubscribers&&this.shardedSubscribers.reset(this.slots,this.connectionPool.getNodes("all")).catch(l=>{Ke("Error while starting subscribers: %s",l)});let s=()=>{this.setStatus("ready"),this.retryAttempts=0,this.executeOfflineCommands(),this.resetNodesRefreshInterval(),e()},a,o=()=>{this.invokeReadyDelayedCallbacks(void 0),this.removeListener("close",a),this.manuallyClosing=!1,this.setStatus("connect"),this.options.enableReadyCheck?this.readyCheck((l,c)=>{l||c?(Ke("Ready check failed (%s). Reconnecting...",l||c),this.status==="connect"&&this.disconnect(!0)):s()}):s()};a=()=>{let l=new Error("None of startup nodes is available");this.removeListener("refresh",o),this.invokeReadyDelayedCallbacks(l),t(l)},this.once("refresh",o),this.once("close",a),this.once("close",this.handleCloseEvent.bind(this)),this.refreshSlotsCache(l=>{l&&l.message===ns.default.defaultMessage&&(UI.default.prototype.silentEmit.call(this,"error",l),this.connectionPool.reset([]))}),this.subscriber.start(),this.options.shardedSubscribers&&this.shardedSubscribers.start().catch(l=>{Ke("Error while starting subscribers: %s",l)})}).catch(i=>{this.setStatus("close"),this.handleCloseEvent(i),this.invokeReadyDelayedCallbacks(i),t(i)})})}disconnect(e=!1){let t=this.status;this.setStatus("disconnecting"),e||(this.manuallyClosing=!0),this.reconnectTimeout&&!e&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null,Ke("Canceled reconnecting attempts")),this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers&&this.shardedSubscribers.stop(),t==="wait"?(this.setStatus("close"),this.handleCloseEvent()):this.connectionPool.reset([])}quit(e){let t=this.status;if(this.setStatus("disconnecting"),this.manuallyClosing=!0,this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.clearNodesRefreshInterval(),this.subscriber.stop(),this.options.shardedSubscribers&&this.shardedSubscribers.stop(),t==="wait"){let n=(0,hf.default)(Promise.resolve("OK"),e);return setImmediate(function(){this.setStatus("close"),this.handleCloseEvent()}.bind(this)),n}return(0,hf.default)(Promise.all(this.nodes().map(n=>n.quit().catch(i=>{if(i.message===ct.CONNECTION_CLOSED_ERROR_MSG)return"OK";throw i}))).then(()=>"OK"),e)}duplicate(e=[],t={}){let n=e.length>0?e:this.startupNodes.slice(0),i=Object.assign({},this.options,t);return new r(n,i)}nodes(e="all"){if(e!=="all"&&e!=="master"&&e!=="slave")throw new Error('Invalid role "'+e+'". Expected "all", "master" or "slave"');return this.connectionPool.getNodes(e)}delayUntilReady(e){this._readyDelayedCallbacks.push(e)}get autoPipelineQueueSize(){let e=0;for(let t of this._autoPipelines.values())e+=t.length;return e}refreshSlotsCache(e){if(e&&this._refreshSlotsCacheCallbacks.push(e),this.isRefreshing)return;this.isRefreshing=!0;let t=this,n=o=>{this.isRefreshing=!1;for(let l of this._refreshSlotsCacheCallbacks)l(o);this._refreshSlotsCacheCallbacks=[]},i=(0,ct.shuffle)(this.connectionPool.getNodes()),s=null;function a(o){if(o===i.length){let u=new ns.default(ns.default.defaultMessage,s);return n(u)}let l=i[o],c=`${l.options.host}:${l.options.port}`;Ke("getting slot cache from %s",c),t.getInfoFromNode(l,function(u){switch(t.status){case"close":case"end":return n(new Error("Cluster is disconnected."));case"disconnecting":return n(new Error("Cluster is disconnecting."))}u?(t.emit("node error",u,c),s=u,a(o+1)):(t.emit("refresh"),n())})}a(0)}sendCommand(e,t,n){if(this.status==="wait"&&this.connect().catch(ct.noop),this.status==="end")return e.reject(new Error(ct.CONNECTION_CLOSED_ERROR_MSG)),e.promise;let i=this.options.scaleReads;i!=="master"&&(e.isReadOnly||(0,ff.exists)(e.name)&&(0,ff.hasFlag)(e.name,"readonly")||(i="master"));let s=n?n.slot:e.getSlot(),a={},o=this;if(!n&&!bf.has(e)){bf.add(e);let c=e.reject;e.reject=function(u){let d=l.bind(null,!0);o.handleError(u,a,{moved:function(f,p){Ke("command %s is moved to %s",e.name,p),s=Number(f),o.slots[f]?o.slots[f][0]=p:o.slots[f]=[p],o._groupsBySlot[f]=o._groupsIds[o.slots[f].join(";")],o.connectionPool.findOrCreate(o.natMapper(p)),l(),Ke("refreshing slot caches... (triggered by MOVED error)"),o.refreshSlotsCache()},ask:function(f,p){Ke("command %s is required to ask %s:%s",e.name,p);let y=o.natMapper(p);o.connectionPool.findOrCreate(y),l(!1,`${y.host}:${y.port}`)},tryagain:d,clusterDown:d,connectionClosed:d,maxRedirections:function(f){c.call(e,f)},defaults:function(){c.call(e,u)}})}}l();function l(c,u){if(o.status==="end"){e.reject(new In.AbortError("Cluster is ended."));return}let d;if(o.status==="ready"||e.name==="cluster"){if(n&&n.redis)d=n.redis;else if(yf.default.checkFlag("ENTER_SUBSCRIBER_MODE",e.name)||yf.default.checkFlag("EXIT_SUBSCRIBER_MODE",e.name)){if(o.options.shardedSubscribers&&(e.name=="ssubscribe"||e.name=="sunsubscribe")){let f=o.shardedSubscribers.getResponsibleSubscriber(s);if(!f){e.reject(new In.AbortError(`No sharded subscriber for slot: ${s}`));return}let p=-1;e.name=="ssubscribe"&&(p=o.shardedSubscribers.addChannels(e.getKeys())),e.name=="sunsubscribe"&&(p=o.shardedSubscribers.removeChannels(e.getKeys())),p!==-1?d=f.getInstance():e.reject(new In.AbortError("Possible CROSSSLOT error: All channels must hash to the same slot"))}else d=o.subscriber.getInstance();if(!d){e.reject(new In.AbortError("No subscriber for the cluster"));return}}else{if(!c){if(typeof s=="number"&&o.slots[s]){let f=o.slots[s];if(typeof i=="function"){let p=f.map(function(y){return o.connectionPool.getInstanceByKey(y)});d=i(p,e),Array.isArray(d)&&(d=(0,ct.sample)(d)),d||(d=p[0])}else{let p;i==="all"?p=(0,ct.sample)(f):i==="slave"&&f.length>1?p=(0,ct.sample)(f,1):p=f[0],d=o.connectionPool.getInstanceByKey(p)}}u&&(d=o.connectionPool.getInstanceByKey(u),d.asking())}d||(d=(typeof i=="function"?null:o.connectionPool.getSampleInstance(i))||o.connectionPool.getSampleInstance("all"))}n&&!n.redis&&(n.redis=d)}d?d.sendCommand(e,t):o.options.enableOfflineQueue?o.offlineQueue.push({command:e,stream:t,node:n}):e.reject(new Error("Cluster isn't ready and enableOfflineQueue options is false"))}return e.promise}sscanStream(e,t){return this.createScanStream("sscan",{key:e,options:t})}sscanBufferStream(e,t){return this.createScanStream("sscanBuffer",{key:e,options:t})}hscanStream(e,t){return this.createScanStream("hscan",{key:e,options:t})}hscanBufferStream(e,t){return this.createScanStream("hscanBuffer",{key:e,options:t})}zscanStream(e,t){return this.createScanStream("zscan",{key:e,options:t})}zscanBufferStream(e,t){return this.createScanStream("zscanBuffer",{key:e,options:t})}handleError(e,t,n){if(typeof t.value>"u"?t.value=this.options.maxRedirections:t.value-=1,t.value<=0){n.maxRedirections(new Error("Too many Cluster redirections. Last error: "+e));return}let i=e.message.split(" ");if(i[0]==="MOVED"){let s=this.options.retryDelayOnMoved;s&&typeof s=="number"?this.delayQueue.push("moved",n.moved.bind(null,i[1],i[2]),{timeout:s}):n.moved(i[1],i[2])}else i[0]==="ASK"?n.ask(i[1],i[2]):i[0]==="TRYAGAIN"?this.delayQueue.push("tryagain",n.tryagain,{timeout:this.options.retryDelayOnTryAgain}):i[0]==="CLUSTERDOWN"&&this.options.retryDelayOnClusterDown>0?this.delayQueue.push("clusterdown",n.connectionClosed,{timeout:this.options.retryDelayOnClusterDown,callback:this.refreshSlotsCache.bind(this)}):e.message===ct.CONNECTION_CLOSED_ERROR_MSG&&this.options.retryDelayOnFailover>0&&this.status==="ready"?this.delayQueue.push("failover",n.connectionClosed,{timeout:this.options.retryDelayOnFailover,callback:this.refreshSlotsCache.bind(this)}):n.defaults()}resetOfflineQueue(){this.offlineQueue=new mf}clearNodesRefreshInterval(){this.slotsTimer&&(clearTimeout(this.slotsTimer),this.slotsTimer=null)}resetNodesRefreshInterval(){if(this.slotsTimer||!this.options.slotsRefreshInterval)return;let e=()=>{this.slotsTimer=setTimeout(()=>{Ke('refreshing slot caches... (triggered by "slotsRefreshInterval" option)'),this.refreshSlotsCache(()=>{e()})},this.options.slotsRefreshInterval)};e()}setStatus(e){Ke("status: %s -> %s",this.status||"[empty]",e),this.status=e,process.nextTick(()=>{this.emit(e)})}handleCloseEvent(e){var t;e&&Ke("closed because %s",e);let n;!this.manuallyClosing&&typeof this.options.clusterRetryStrategy=="function"&&(n=this.options.clusterRetryStrategy.call(this,++this.retryAttempts,e)),typeof n=="number"?(this.setStatus("reconnecting"),this.reconnectTimeout=setTimeout(()=>{this.reconnectTimeout=null,Ke("Cluster is disconnected. Retrying after %dms",n),this.connect().catch(function(i){Ke("Got error %s when reconnecting. Ignoring...",i)})},n)):(this.options.shardedSubscribers&&((t=this.subscriberGroupEmitter)===null||t===void 0||t.removeAllListeners()),this.setStatus("end"),this.flushQueue(new Error("None of startup nodes is available")))}flushQueue(e){let t;for(;t=this.offlineQueue.shift();)t.command.reject(e)}executeOfflineCommands(){if(this.offlineQueue.length){Ke("send %d commands in offline queue",this.offlineQueue.length);let e=this.offlineQueue;this.resetOfflineQueue();let t;for(;t=e.shift();)this.sendCommand(t.command,t.stream,t.node)}}natMapper(e){let t=typeof e=="string"?e:`${e.host}:${e.port}`,n=null;return this.options.natMap&&typeof this.options.natMap=="function"?n=this.options.natMap(t):this.options.natMap&&typeof this.options.natMap=="object"&&(n=this.options.natMap[t]),n?(Ke("NAT mapping %s -> %O",t,n),Object.assign({},n)):typeof e=="string"?(0,xn.nodeKeyToRedisOptions)(e):e}getInfoFromNode(e,t){if(!e)return t(new Error("Node is disconnected"));let n=e.duplicate({enableOfflineQueue:!0,enableReadyCheck:!1,retryStrategy:null,connectionName:(0,xn.getConnectionName)("refresher",this.options.redisOptions&&this.options.redisOptions.connectionName)});n.on("error",ct.noop),n.cluster("SLOTS",(0,ct.timeout)((i,s)=>{if(n.disconnect(),i)return Ke("error encountered running CLUSTER.SLOTS: %s",i),t(i);if(this.status==="disconnecting"||this.status==="close"||this.status==="end"){Ke("ignore CLUSTER.SLOTS results (count: %d) since cluster status is %s",s.length,this.status),t();return}let a=[];Ke("cluster slots result count: %d",s.length);for(let l=0;l<s.length;++l){let c=s[l],u=c[0],d=c[1],f=[];for(let p=2;p<c.length;p++){if(!c[p][0])continue;let y=this.natMapper({host:c[p][0],port:c[p][1]});y.readOnly=p!==2,a.push(y),f.push(y.host+":"+y.port)}Ke("cluster slots result [%d]: slots %d~%d served by %s",l,u,d,f);for(let p=u;p<=d;p++)this.slots[p]=f}this._groupsIds=Object.create(null);let o=0;for(let l=0;l<16384;l++){let c=(this.slots[l]||[]).join(";");if(!c.length){this._groupsBySlot[l]=void 0;continue}this._groupsIds[c]||(this._groupsIds[c]=++o),this._groupsBySlot[l]=this._groupsIds[c]}this.connectionPool.reset(a),this.options.shardedSubscribers&&this.shardedSubscribers.reset(this.slots,this.connectionPool.getNodes("all")).catch(l=>{Ke("Error while starting subscribers: %s",l)}),t()},this.options.slotsRefreshTimeout))}invokeReadyDelayedCallbacks(e){for(let t of this._readyDelayedCallbacks)process.nextTick(t,e);this._readyDelayedCallbacks=[]}readyCheck(e){this.cluster("INFO",(t,n)=>{if(t)return e(t);if(typeof n!="string")return e();let i,s=n.split(`\r
|
|
159
|
+
`);for(let a=0;a<s.length;++a){let o=s[a].split(":");if(o[0]==="cluster_state"){i=o[1];break}}i==="fail"?(Ke("cluster state not ok (%s)",i),e(null,i)):e()})}resolveSrv(e){return new Promise((t,n)=>{this.options.resolveSrv(e,(i,s)=>{if(i)return n(i);let a=this,o=(0,xn.groupSrvRecords)(s),l=Object.keys(o).sort((u,d)=>parseInt(u)-parseInt(d));function c(u){if(!l.length)return n(u);let d=l[0],f=o[d],p=(0,xn.weightSrvRecords)(f);f.records.length||l.shift(),a.dnsLookup(p.name).then(y=>t({host:y,port:p.port}),c)}c()})})}dnsLookup(e){return new Promise((t,n)=>{this.options.dnsLookup(e,(i,s)=>{i?(Ke("failed to resolve hostname %s to IP: %s",e,i.message),n(i)):(Ke("resolved hostname %s to IP %s",e,s),t(s))})})}async resolveStartupNodeHostnames(){if(!Array.isArray(this.startupNodes)||this.startupNodes.length===0)throw new Error("`startupNodes` should contain at least one node.");let e=(0,xn.normalizeNodeOptions)(this.startupNodes),t=(0,xn.getUniqueHostnamesFromOptions)(e);if(t.length===0)return e;let n=await Promise.all(t.map((this.options.useSRVRecords?this.resolveSrv:this.dnsLookup).bind(this))),i=(0,ct.zipMap)(t,n);return e.map(s=>{let a=i.get(s.host);return a?this.options.useSRVRecords?Object.assign({},s,a):Object.assign({},s,{host:a}):s})}createScanStream(e,{key:t,options:n={}}){return new zI.default({objectMode:!0,key:t,redis:this,command:e,...n})}createShardedSubscriberGroup(){this.subscriberGroupEmitter=new Ql.EventEmitter,this.shardedSubscribers=new rx.default(this.subscriberGroupEmitter,this.options);let e=t=>{t instanceof ns.default&&this.disconnect(!0)};this.subscriberGroupEmitter.on("-node",(t,n)=>{this.emit("-node",t,n),this.refreshSlotsCache(e)}),this.subscriberGroupEmitter.on("subscriberConnectFailed",({delay:t,error:n})=>{this.emit("error",n),setTimeout(()=>{this.refreshSlotsCache(e)},t)}),this.subscriberGroupEmitter.on("moved",()=>{this.refreshSlotsCache(e)}),this.subscriberGroupEmitter.on("-subscriber",()=>{this.emit("-subscriber")}),this.subscriberGroupEmitter.on("+subscriber",()=>{this.emit("+subscriber")}),this.subscriberGroupEmitter.on("nodeError",(t,n)=>{this.emit("nodeError",t,n)}),this.subscriberGroupEmitter.on("subscribersReady",()=>{this.emit("subscribersReady")});for(let t of["smessage","smessageBuffer"])this.subscriberGroupEmitter.on(t,(n,i,s)=>{this.emit(t,n,i,s)})}};(0,HI.default)(ti,Ql.EventEmitter);(0,$I.addTransactionSupport)(ti.prototype);Zl.default=ti});var is=h(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var nx=Re(),ix=(0,nx.Debug)("AbstractConnector"),ec=class{constructor(e){this.connecting=!1,this.disconnectTimeout=e}check(e){return!0}disconnect(){if(this.connecting=!1,this.stream){let e=this.stream,t=setTimeout(()=>{ix("stream %s:%s still open, destroying it",e.remoteAddress,e.remotePort),e.destroy()},this.disconnectTimeout);e.on("close",()=>clearTimeout(t)),e.end()}}};tc.default=ec});var gf=h(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var sx=V("net"),ax=V("tls"),ox=Re(),lx=is(),rc=class extends lx.default{constructor(e){super(e.disconnectTimeout),this.options=e}connect(e){let{options:t}=this;this.connecting=!0;let n;return"path"in t&&t.path?n={path:t.path}:(n={},"port"in t&&t.port!=null&&(n.port=t.port),"host"in t&&t.host!=null&&(n.host=t.host),"family"in t&&t.family!=null&&(n.family=t.family)),t.tls&&Object.assign(n,t.tls),new Promise((i,s)=>{process.nextTick(()=>{if(!this.connecting){s(new Error(ox.CONNECTION_CLOSED_ERROR_MSG));return}try{t.tls?this.stream=(0,ax.connect)(n):this.stream=(0,sx.createConnection)(n)}catch(a){s(a);return}this.stream.once("error",a=>{this.firstError=a}),i(this.stream)})})}};nc.default=rc});var vf=h(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});function cx(r,e){return(r.host||"127.0.0.1")===(e.host||"127.0.0.1")&&(r.port||26379)===(e.port||26379)}var ic=class{constructor(e){this.cursor=0,this.sentinels=e.slice(0)}next(){let e=this.cursor>=this.sentinels.length;return{done:e,value:e?void 0:this.sentinels[this.cursor++]}}reset(e){e&&this.sentinels.length>1&&this.cursor!==1&&this.sentinels.unshift(...this.sentinels.splice(this.cursor-1)),this.cursor=0}add(e){for(let t=0;t<this.sentinels.length;t++)if(cx(e,this.sentinels[t]))return!1;return this.sentinels.push(e),!0}toString(){return`${JSON.stringify(this.sentinels)} @${this.cursor}`}};sc.default=ic});var Sf=h(ss=>{"use strict";Object.defineProperty(ss,"__esModule",{value:!0});ss.FailoverDetector=void 0;var ux=Re(),ac=(0,ux.Debug)("FailoverDetector"),Kf="+switch-master",oc=class{constructor(e,t){this.isDisconnected=!1,this.connector=e,this.sentinels=t}cleanup(){this.isDisconnected=!0;for(let e of this.sentinels)e.client.disconnect()}async subscribe(){ac("Starting FailoverDetector");let e=[];for(let t of this.sentinels){let n=t.client.subscribe(Kf).catch(i=>{ac("Failed to subscribe to failover messages on sentinel %s:%s (%s)",t.address.host||"127.0.0.1",t.address.port||26739,i.message)});e.push(n),t.client.on("message",i=>{!this.isDisconnected&&i===Kf&&this.disconnect()})}await Promise.all(e)}disconnect(){this.isDisconnected=!0,ac("Failover detected, disconnecting"),this.connector.disconnect()}};ss.FailoverDetector=oc});var as=h(ni=>{"use strict";Object.defineProperty(ni,"__esModule",{value:!0});ni.SentinelIterator=void 0;var dx=V("net"),ri=Re(),px=V("tls"),Ef=vf();ni.SentinelIterator=Ef.default;var fx=is(),hx=Xt(),yx=Sf(),wn=(0,ri.Debug)("SentinelConnector"),lc=class extends fx.default{constructor(e){if(super(e.disconnectTimeout),this.options=e,this.emitter=null,this.failoverDetector=null,!this.options.sentinels.length)throw new Error("Requires at least one sentinel to connect to.");if(!this.options.name)throw new Error("Requires the name of master.");this.sentinelIterator=new Ef.default(this.options.sentinels)}check(e){let t=!e.role||this.options.role===e.role;return t||(wn("role invalid, expected %s, but got %s",this.options.role,e.role),this.sentinelIterator.next(),this.sentinelIterator.next(),this.sentinelIterator.reset(!0)),t}disconnect(){super.disconnect(),this.failoverDetector&&this.failoverDetector.cleanup()}connect(e){this.connecting=!0,this.retryAttempts=0;let t,n=async()=>{let i=this.sentinelIterator.next();if(i.done){this.sentinelIterator.reset(!1);let l=typeof this.options.sentinelRetryStrategy=="function"?this.options.sentinelRetryStrategy(++this.retryAttempts):null,c=typeof l!="number"?"All sentinels are unreachable and retry is disabled.":`All sentinels are unreachable. Retrying from scratch after ${l}ms.`;t&&(c+=` Last error: ${t.message}`),wn(c);let u=new Error(c);if(typeof l=="number")return e("error",u),await new Promise(d=>setTimeout(d,l)),n();throw u}let s=null,a=null;try{s=await this.resolve(i.value)}catch(l){a=l}if(!this.connecting)throw new Error(ri.CONNECTION_CLOSED_ERROR_MSG);let o=i.value.host+":"+i.value.port;if(s)return wn("resolved: %s:%s from sentinel %s",s.host,s.port,o),this.options.enableTLSForSentinelMode&&this.options.tls?(Object.assign(s,this.options.tls),this.stream=(0,px.connect)(s),this.stream.once("secureConnect",this.initFailoverDetector.bind(this))):(this.stream=(0,dx.createConnection)(s),this.stream.once("connect",this.initFailoverDetector.bind(this))),this.stream.once("error",l=>{this.firstError=l}),this.stream;{let l=a?"failed to connect to sentinel "+o+" because "+a.message:"connected to sentinel "+o+" successfully, but got an invalid reply: "+s;return wn(l),e("sentinelError",new Error(l)),a&&(t=a),n()}};return n()}async updateSentinels(e){if(!this.options.updateSentinels)return;let t=await e.sentinel("sentinels",this.options.name);Array.isArray(t)&&(t.map(ri.packObject).forEach(n=>{if((n.flags?n.flags.split(","):[]).indexOf("disconnected")===-1&&n.ip&&n.port){let s=this.sentinelNatResolve(kf(n));this.sentinelIterator.add(s)&&wn("adding sentinel %s:%s",s.host,s.port)}}),wn("Updated internal sentinels: %s",this.sentinelIterator))}async resolveMaster(e){let t=await e.sentinel("get-master-addr-by-name",this.options.name);return await this.updateSentinels(e),this.sentinelNatResolve(Array.isArray(t)?{host:t[0],port:Number(t[1])}:null)}async resolveSlave(e){let t=await e.sentinel("slaves",this.options.name);if(!Array.isArray(t))return null;let n=t.map(ri.packObject).filter(i=>i.flags&&!i.flags.match(/(disconnected|s_down|o_down)/));return this.sentinelNatResolve(mx(n,this.options.preferredSlaves))}sentinelNatResolve(e){if(!e||!this.options.natMap)return e;let t=`${e.host}:${e.port}`,n=e;return typeof this.options.natMap=="function"?n=this.options.natMap(t)||e:typeof this.options.natMap=="object"&&(n=this.options.natMap[t]||e),n}connectToSentinel(e,t){return new hx.default({port:e.port||26379,host:e.host,username:this.options.sentinelUsername||null,password:this.options.sentinelPassword||null,family:e.family||("path"in this.options&&this.options.path?void 0:this.options.family),tls:this.options.sentinelTLS,retryStrategy:null,enableReadyCheck:!1,connectTimeout:this.options.connectTimeout,commandTimeout:this.options.sentinelCommandTimeout,...t})}async resolve(e){let t=this.connectToSentinel(e);t.on("error",bx);try{return this.options.role==="slave"?await this.resolveSlave(t):await this.resolveMaster(t)}finally{t.disconnect()}}async initFailoverDetector(){var e;if(!this.options.failoverDetector)return;this.sentinelIterator.reset(!0);let t=[];for(;t.length<this.options.sentinelMaxConnections;){let{done:n,value:i}=this.sentinelIterator.next();if(n)break;let s=this.connectToSentinel(i,{lazyConnect:!0,retryStrategy:this.options.sentinelReconnectStrategy});s.on("reconnecting",()=>{var a;(a=this.emitter)===null||a===void 0||a.emit("sentinelReconnecting")}),t.push({address:i,client:s})}this.sentinelIterator.reset(!1),this.failoverDetector&&this.failoverDetector.cleanup(),this.failoverDetector=new yx.FailoverDetector(this,t),await this.failoverDetector.subscribe(),(e=this.emitter)===null||e===void 0||e.emit("failoverSubscribed")}};ni.default=lc;function mx(r,e){if(r.length===0)return null;let t;if(typeof e=="function")t=e(r);else if(e!==null&&typeof e=="object"){let n=Array.isArray(e)?e:[e];n.sort((i,s)=>(i.prio||(i.prio=1),s.prio||(s.prio=1),i.prio<s.prio?-1:i.prio>s.prio?1:0));for(let i=0;i<n.length;i++){for(let s=0;s<r.length;s++){let a=r[s];if(a.ip===n[i].ip&&a.port===n[i].port){t=a;break}}if(t)break}}return t||(t=(0,ri.sample)(r)),kf(t)}function kf(r){return{host:r.ip,port:Number(r.port)}}function bx(){}});var If=h(Tn=>{"use strict";Object.defineProperty(Tn,"__esModule",{value:!0});Tn.SentinelConnector=Tn.StandaloneConnector=void 0;var gx=gf();Tn.StandaloneConnector=gx.default;var vx=as();Tn.SentinelConnector=vx.default});var xf=h(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var Kx=Nr(),cc=class extends Kx.AbortError{constructor(e){let t=`Reached the max retries per request limit (which is ${e}). Refer to "maxRetriesPerRequest" option for details.`;super(t),Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}};uc.default=cc});var wf=h(os=>{"use strict";Object.defineProperty(os,"__esModule",{value:!0});os.MaxRetriesPerRequestError=void 0;var Sx=xf();os.MaxRetriesPerRequestError=Sx.default});var Cf=h((yM,Rf)=>{"use strict";var mc=V("buffer").Buffer,Ex=V("string_decoder").StringDecoder,dc=new Ex,Tf=Nr(),kx=Tf.ReplyError,Ix=Tf.ParserError,Dt=mc.allocUnsafe(32*1024),$e=0,ls=null,ii=0,pc=0;function xx(r){let e=r.buffer.length-1;var t=r.offset,n=0,i=1;for(r.buffer[t]===45&&(i=-1,t++);t<e;){let s=r.buffer[t++];if(s===13)return r.offset=t+1,i*n;n=n*10+(s-48)}}function wx(r){let e=r.buffer.length-1;var t=r.offset,n=0,i="";for(r.buffer[t]===45&&(i+="-",t++);t<e;){var s=r.buffer[t++];if(s===13)return r.offset=t+1,n!==0&&(i+=n),i;n>429496728?(i+=n*10+(s-48),n=0):s===48&&n===0?i+=0:n=n*10+(s-48)}}function jf(r){let e=r.offset,t=r.buffer,n=t.length-1;for(var i=e;i<n;)if(t[i++]===13)return r.offset=i+1,r.optionReturnBuffers===!0?r.buffer.slice(e,i-1):r.buffer.toString("utf8",e,i-1)}function Af(r){let e=r.buffer.length-1;for(var t=r.offset,n=0;t<e;){let i=r.buffer[t++];if(i===13)return r.offset=t+1,n;n=n*10+(i-48)}}function Tx(r){return r.optionStringNumbers===!0?wx(r):xx(r)}function jx(r){let e=Af(r);if(e===void 0)return;if(e<0)return null;let t=r.offset+e;if(t+2>r.buffer.length){r.bigStrSize=t+2,r.totalChunkSize=r.buffer.length,r.bufferCache.push(r.buffer);return}let n=r.offset;return r.offset=t+2,r.optionReturnBuffers===!0?r.buffer.slice(n,t):r.buffer.toString("utf8",n,t)}function Ax(r){var e=jf(r);if(e!==void 0)return r.optionReturnBuffers===!0&&(e=e.toString()),new kx(e)}function Dx(r,e){let t=new Ix("Protocol error, got "+JSON.stringify(String.fromCharCode(e))+" as reply type byte",JSON.stringify(r.buffer),r.offset);r.buffer=null,r.returnFatalError(t)}function Ox(r){let e=Af(r);if(e===void 0)return;if(e<0)return null;let t=new Array(e);return Df(r,t,0)}function fc(r,e,t){r.arrayCache.push(e),r.arrayPos.push(t)}function hc(r){let e=r.arrayCache.pop();var t=r.arrayPos.pop();if(r.arrayCache.length){let n=hc(r);if(n===void 0){fc(r,e,t);return}e[t++]=n}return Df(r,e,t)}function Df(r,e,t){let n=r.buffer.length;for(;t<e.length;){let i=r.offset;if(r.offset>=n){fc(r,e,t);return}let s=Of(r,r.buffer[r.offset++]);if(s===void 0){r.arrayCache.length||r.bufferCache.length||(r.offset=i),fc(r,e,t);return}e[t]=s,t++}return e}function Of(r,e){switch(e){case 36:return jx(r);case 43:return jf(r);case 42:return Ox(r);case 58:return Tx(r);case 45:return Ax(r);default:return Dx(r,e)}}function Rx(){if(Dt.length>50*1024)if(ii===1||pc>ii*2){let r=Math.floor(Dt.length/10),e=r<$e?$e:r;$e=0,Dt=Dt.slice(e,Dt.length)}else pc++,ii--;else clearInterval(ls),ii=0,pc=0,ls=null}function Cx(r){if(Dt.length<r+$e){let e=r>78643200?2:3;$e>1024*1024*111&&($e=1024*1024*50),Dt=mc.allocUnsafe(r*e+$e),$e=0,ii++,ls===null&&(ls=setInterval(Rx,50))}}function _x(r){let e=r.bufferCache,t=r.offset;var n=e.length,i=r.bigStrSize-r.totalChunkSize;if(r.offset=i,i<=2){if(n===2)return e[0].toString("utf8",t,e[0].length+i-2);n--,i=e[e.length-2].length+i}for(var s=dc.write(e[0].slice(t)),a=1;a<n-1;a++)s+=dc.write(e[a]);return s+=dc.end(e[a].slice(0,i-2)),s}function Mx(r){let e=r.bufferCache,t=r.offset,n=r.bigStrSize-t-2;var i=e.length,s=r.bigStrSize-r.totalChunkSize;if(r.offset=s,s<=2){if(i===2)return e[0].slice(t,e[0].length+s-2);i--,s=e[e.length-2].length+s}Cx(n);let a=$e;e[0].copy(Dt,a,t,e[0].length),$e+=e[0].length-t;for(var o=1;o<i-1;o++)e[o].copy(Dt,$e),$e+=e[o].length;return e[o].copy(Dt,$e,0,s-2),$e+=s-2,Dt.slice(a,$e)}var yc=class{constructor(e){if(!e)throw new TypeError("Options are mandatory.");if(typeof e.returnError!="function"||typeof e.returnReply!="function")throw new TypeError("The returnReply and returnError options have to be functions.");this.setReturnBuffers(!!e.returnBuffers),this.setStringNumbers(!!e.stringNumbers),this.returnError=e.returnError,this.returnFatalError=e.returnFatalError||e.returnError,this.returnReply=e.returnReply,this.reset()}reset(){this.offset=0,this.buffer=null,this.bigStrSize=0,this.totalChunkSize=0,this.bufferCache=[],this.arrayCache=[],this.arrayPos=[]}setReturnBuffers(e){if(typeof e!="boolean")throw new TypeError("The returnBuffers argument has to be a boolean");this.optionReturnBuffers=e}setStringNumbers(e){if(typeof e!="boolean")throw new TypeError("The stringNumbers argument has to be a boolean");this.optionStringNumbers=e}execute(e){if(this.buffer===null)this.buffer=e,this.offset=0;else if(this.bigStrSize===0){let n=this.buffer.length,i=n-this.offset,s=mc.allocUnsafe(i+e.length);if(this.buffer.copy(s,0,this.offset,n),e.copy(s,i,0,e.length),this.buffer=s,this.offset=0,this.arrayCache.length){let a=hc(this);if(a===void 0)return;this.returnReply(a)}}else if(this.totalChunkSize+e.length>=this.bigStrSize){this.bufferCache.push(e);var t=this.optionReturnBuffers?Mx(this):_x(this);if(this.bigStrSize=0,this.bufferCache=[],this.buffer=e,this.arrayCache.length&&(this.arrayCache[0][this.arrayPos[0]++]=t,t=hc(this),t===void 0))return;this.returnReply(t)}else{this.bufferCache.push(e),this.totalChunkSize+=e.length;return}for(;this.offset<this.buffer.length;){let n=this.offset,i=this.buffer[this.offset++],s=Of(this,i);if(s===void 0){this.arrayCache.length||this.bufferCache.length||(this.offset=n);return}i===45?this.returnError(s):this.returnReply(s)}this.buffer=null}};Rf.exports=yc});var Mf=h((mM,_f)=>{"use strict";_f.exports=Cf()});var Pf=h(vc=>{"use strict";Object.defineProperty(vc,"__esModule",{value:!0});var gc=class{constructor(){this.set={subscribe:{},psubscribe:{},ssubscribe:{}}}add(e,t){this.set[bc(e)][t]=!0}del(e,t){delete this.set[bc(e)][t]}channels(e){return Object.keys(this.set[bc(e)])}isEmpty(){return this.channels("subscribe").length===0&&this.channels("psubscribe").length===0&&this.channels("ssubscribe").length===0}};vc.default=gc;function bc(r){return r==="unsubscribe"?"subscribe":r==="punsubscribe"?"psubscribe":r==="sunsubscribe"?"ssubscribe":r}});var Jf=h(Sc=>{"use strict";Object.defineProperty(Sc,"__esModule",{value:!0});var Nf=Qt(),Px=Re(),Nx=Mf(),Lx=Pf(),qx=(0,Px.Debug)("dataHandler"),Kc=class{constructor(e,t){this.redis=e;let n=new Nx({stringNumbers:t.stringNumbers,returnBuffers:!0,returnError:i=>{this.returnError(i)},returnFatalError:i=>{this.returnFatalError(i)},returnReply:i=>{this.returnReply(i)}});e.stream.prependListener("data",i=>{n.execute(i)}),e.stream.resume()}returnFatalError(e){e.message+=". Please report this.",this.redis.recoverFromFatalError(e,e,{offlineQueue:!1})}returnError(e){let t=this.shiftCommand(e);if(t){if(e.command={name:t.command.name,args:t.command.args},t.command.name=="ssubscribe"&&e.message.includes("MOVED")){this.redis.emit("moved");return}this.redis.handleReconnection(e,t)}}returnReply(e){if(this.handleMonitorReply(e)||this.handleSubscriberReply(e))return;let t=this.shiftCommand(e);t&&(Nf.default.checkFlag("ENTER_SUBSCRIBER_MODE",t.command.name)?(this.redis.condition.subscriber=new Lx.default,this.redis.condition.subscriber.add(t.command.name,e[1].toString()),Lf(t.command,e[2])||this.redis.commandQueue.unshift(t)):Nf.default.checkFlag("EXIT_SUBSCRIBER_MODE",t.command.name)?qf(t.command,e[2])||this.redis.commandQueue.unshift(t):t.command.resolve(e))}handleSubscriberReply(e){if(!this.redis.condition.subscriber)return!1;let t=Array.isArray(e)?e[0].toString():null;switch(qx('receive reply "%s" in subscriber mode',t),t){case"message":this.redis.listeners("message").length>0&&this.redis.emit("message",e[1].toString(),e[2]?e[2].toString():""),this.redis.emit("messageBuffer",e[1],e[2]);break;case"pmessage":{let n=e[1].toString();this.redis.listeners("pmessage").length>0&&this.redis.emit("pmessage",n,e[2].toString(),e[3].toString()),this.redis.emit("pmessageBuffer",n,e[2],e[3]);break}case"smessage":{this.redis.listeners("smessage").length>0&&this.redis.emit("smessage",e[1].toString(),e[2]?e[2].toString():""),this.redis.emit("smessageBuffer",e[1],e[2]);break}case"ssubscribe":case"subscribe":case"psubscribe":{let n=e[1].toString();this.redis.condition.subscriber.add(t,n);let i=this.shiftCommand(e);if(!i)return;Lf(i.command,e[2])||this.redis.commandQueue.unshift(i);break}case"sunsubscribe":case"unsubscribe":case"punsubscribe":{let n=e[1]?e[1].toString():null;n&&this.redis.condition.subscriber.del(t,n);let i=e[2];Number(i)===0&&(this.redis.condition.subscriber=!1);let s=this.shiftCommand(e);if(!s)return;qf(s.command,i)||this.redis.commandQueue.unshift(s);break}default:{let n=this.shiftCommand(e);if(!n)return;n.command.resolve(e)}}return!0}handleMonitorReply(e){if(this.redis.status!=="monitoring")return!1;let t=e.toString();if(t==="OK")return!1;let n=t.indexOf(" "),i=t.slice(0,n),s=t.indexOf('"'),a=t.slice(s+1,-1).split('" "').map(l=>l.replace(/\\"/g,'"')),o=t.slice(n+2,s-2).split(" ");return this.redis.emit("monitor",i,a,o[1],o[0]),!0}shiftCommand(e){let t=this.redis.commandQueue.shift();if(!t){let n="Command queue state error. If you can reproduce this, please report it.",i=new Error(n+(e instanceof Error?` Last error: ${e.message}`:` Last reply: ${e.toString()}`));return this.redis.emit("error",i),null}return t}};Sc.default=Kc;var mr=new WeakMap;function Lf(r,e){let t=mr.has(r)?mr.get(r):r.args.length;return t-=1,t<=0?(r.resolve(e),mr.delete(r),!0):(mr.set(r,t),!1)}function qf(r,e){let t=mr.has(r)?mr.get(r):r.args.length;return t===0?Number(e)===0?(mr.delete(r),r.resolve(e),!0):!1:(t-=1,t<=0?(r.resolve(e),!0):(mr.set(r,t),!1))}});var Ff=h(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.readyHandler=Et.errorHandler=Et.closeHandler=Et.connectHandler=void 0;var Jx=Nr(),Fx=Qt(),Vx=wf(),Jt=Re(),Gx=Jf(),Ge=(0,Jt.Debug)("connection");function Yx(r){return function(){var e;r.setStatus("connect"),r.resetCommandQueue();let t=!1,{connectionEpoch:n}=r;r.condition.auth&&r.auth(r.condition.auth,function(s){n===r.connectionEpoch&&s&&(s.message.indexOf("no password is set")!==-1?console.warn("[WARN] Redis server does not require a password, but a password was supplied."):s.message.indexOf("without any password configured for the default user")!==-1?console.warn("[WARN] This Redis server's `default` user does not require a password, but a password was supplied"):s.message.indexOf("wrong number of arguments for 'auth' command")!==-1?console.warn(`[ERROR] The server returned "wrong number of arguments for 'auth' command". You are probably passing both username and password to Redis version 5 or below. You should only pass the 'password' option for Redis version 5 and under.`):(t=!0,r.recoverFromFatalError(s,s)))}),r.condition.select&&r.select(r.condition.select).catch(s=>{r.silentEmit("error",s)}),new Gx.default(r,{stringNumbers:r.options.stringNumbers});let i=[];r.options.connectionName&&(Ge("set the connection name [%s]",r.options.connectionName),i.push(r.client("setname",r.options.connectionName).catch(Jt.noop))),r.options.disableClientInfo||(Ge("set the client info"),i.push((0,Jt.getPackageMeta)().then(s=>r.client("SETINFO","LIB-VER",s.version).catch(Jt.noop)).catch(Jt.noop)),i.push(r.client("SETINFO","LIB-NAME",!((e=r.options)===null||e===void 0)&&e.clientInfoTag?`ioredis(${r.options.clientInfoTag})`:"ioredis").catch(Jt.noop))),Promise.all(i).catch(Jt.noop).finally(()=>{r.options.enableReadyCheck||Et.readyHandler(r)(),r.options.enableReadyCheck&&r._readyCheck(function(s,a){n===r.connectionEpoch&&(s?t||r.recoverFromFatalError(new Error("Ready check failed: "+s.message),s):r.connector.check(a)?Et.readyHandler(r)():r.disconnect(!0))})})}}Et.connectHandler=Yx;function Ec(r){let e=new Jx.AbortError("Command aborted due to connection close");return e.command={name:r.name,args:r.args},e}function Bx(r){var e;let t=0;for(let n=0;n<r.length;){let i=(e=r.peekAt(n))===null||e===void 0?void 0:e.command,s=i.pipelineIndex;if((s===void 0||s===0)&&(t=0),s!==void 0&&s!==t++){r.remove(n,1),i.reject(Ec(i));continue}n++}}function Wx(r){var e;for(let t=0;t<r.length;){let n=(e=r.peekAt(t))===null||e===void 0?void 0:e.command;if(n.name==="multi")break;if(n.name==="exec"){r.remove(t,1),n.reject(Ec(n));break}n.inTransaction?(r.remove(t,1),n.reject(Ec(n))):t++}}function Ux(r){return function(){let t=r.status;if(r.setStatus("close"),r.commandQueue.length&&Bx(r.commandQueue),r.offlineQueue.length&&Wx(r.offlineQueue),t==="ready"&&(r.prevCondition||(r.prevCondition=r.condition),r.commandQueue.length&&(r.prevCommandQueue=r.commandQueue)),r.manuallyClosing)return r.manuallyClosing=!1,Ge("skip reconnecting since the connection is manually closed."),e();if(typeof r.options.retryStrategy!="function")return Ge("skip reconnecting because `retryStrategy` is not a function"),e();let n=r.options.retryStrategy(++r.retryAttempts);if(typeof n!="number")return Ge("skip reconnecting because `retryStrategy` doesn't return a number"),e();Ge("reconnect in %sms",n),r.setStatus("reconnecting",n),r.reconnectTimeout=setTimeout(function(){r.reconnectTimeout=null,r.connect().catch(Jt.noop)},n);let{maxRetriesPerRequest:i}=r.options;typeof i=="number"&&(i<0?Ge("maxRetriesPerRequest is negative, ignoring..."):r.retryAttempts%(i+1)===0&&(Ge("reach maxRetriesPerRequest limitation, flushing command queue..."),r.flushQueue(new Vx.MaxRetriesPerRequestError(i))))};function e(){r.setStatus("end"),r.flushQueue(new Error(Jt.CONNECTION_CLOSED_ERROR_MSG))}}Et.closeHandler=Ux;function zx(r){return function(e){Ge("error: %s",e),r.silentEmit("error",e)}}Et.errorHandler=zx;function $x(r){return function(){if(r.setStatus("ready"),r.retryAttempts=0,r.options.monitor){r.call("monitor").then(()=>r.setStatus("monitoring"),n=>r.emit("error",n));let{sendCommand:t}=r;r.sendCommand=function(n){return Fx.default.checkFlag("VALID_IN_MONITOR_MODE",n.name)?t.call(r,n):(n.reject(new Error("Connection is in monitoring mode, can't process commands.")),n.promise)},r.once("close",function(){delete r.sendCommand});return}let e=r.prevCondition?r.prevCondition.select:r.condition.select;if(r.options.readOnly&&(Ge("set the connection to readonly mode"),r.readonly().catch(Jt.noop)),r.prevCondition){let t=r.prevCondition;if(r.prevCondition=null,t.subscriber&&r.options.autoResubscribe){r.condition.select!==e&&(Ge("connect to db [%d]",e),r.select(e));let n=t.subscriber.channels("subscribe");n.length&&(Ge("subscribe %d channels",n.length),r.subscribe(n));let i=t.subscriber.channels("psubscribe");i.length&&(Ge("psubscribe %d channels",i.length),r.psubscribe(i));let s=t.subscriber.channels("ssubscribe");if(s.length){Ge("ssubscribe %s",s.length);for(let a of s)r.ssubscribe(a)}}}if(r.prevCommandQueue)if(r.options.autoResendUnfulfilledCommands)for(Ge("resend %d unfulfilled commands",r.prevCommandQueue.length);r.prevCommandQueue.length>0;){let t=r.prevCommandQueue.shift();t.select!==r.condition.select&&t.command.name!=="select"&&r.select(t.select),r.sendCommand(t.command,t.stream)}else r.prevCommandQueue=null;if(r.offlineQueue.length){Ge("send %d commands in offline queue",r.offlineQueue.length);let t=r.offlineQueue;for(r.resetOfflineQueue();t.length>0;){let n=t.shift();n.select!==r.condition.select&&n.command.name!=="select"&&r.select(n.select),r.sendCommand(n.command,n.stream)}}r.condition.select!==e&&(Ge("connect to db [%d]",e),r.select(e))}}Et.readyHandler=$x});var Vf=h(cs=>{"use strict";Object.defineProperty(cs,"__esModule",{value:!0});cs.DEFAULT_REDIS_OPTIONS=void 0;cs.DEFAULT_REDIS_OPTIONS={port:6379,host:"localhost",family:0,connectTimeout:1e4,disconnectTimeout:2e3,retryStrategy:function(r){return Math.min(r*50,2e3)},keepAlive:0,noDelay:!0,connectionName:null,disableClientInfo:!1,clientInfoTag:void 0,sentinels:null,name:null,role:"master",sentinelRetryStrategy:function(r){return Math.min(r*10,1e3)},sentinelReconnectStrategy:function(){return 6e4},natMap:null,enableTLSForSentinelMode:!1,updateSentinels:!0,failoverDetector:!1,username:null,password:null,db:0,enableOfflineQueue:!0,enableReadyCheck:!0,autoResubscribe:!0,autoResendUnfulfilledCommands:!0,lazyConnect:!1,keyPrefix:"",reconnectOnError:null,readOnly:!1,stringNumbers:!1,maxRetriesPerRequest:20,maxLoadingRetryTime:1e4,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],sentinelMaxConnections:10,blockingTimeoutGrace:100}});var Xt=h(Ic=>{"use strict";Object.defineProperty(Ic,"__esModule",{value:!0});var Gf=Pr(),Bf=V("events"),kc=pr(),Hx=Xl(),Jr=Qt(),Qx=If(),Zx=as(),br=Ff(),Wf=Vf(),Xx=$i(),ew=Nl(),Fr=Re(),tw=ql(),rw=Qi(),gr=Vi(),Yf=ts(),vr=(0,Fr.Debug)("redis"),Kr=class r extends rw.default{constructor(e,t,n){if(super(),this.status="wait",this.isCluster=!1,this.reconnectTimeout=null,this.connectionEpoch=0,this.retryAttempts=0,this.manuallyClosing=!1,this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this.parseOptions(e,t,n),Bf.EventEmitter.call(this),this.resetCommandQueue(),this.resetOfflineQueue(),this.options.Connector)this.connector=new this.options.Connector(this.options);else if(this.options.sentinels){let i=new Zx.default(this.options);i.emitter=this,this.connector=i}else this.connector=new Qx.StandaloneConnector(this.options);this.options.scripts&&Object.entries(this.options.scripts).forEach(([i,s])=>{this.defineCommand(i,s)}),this.options.lazyConnect?this.setStatus("wait"):this.connect().catch(gr.noop)}static createClient(...e){return new r(...e)}get autoPipelineQueueSize(){let e=0;for(let t of this._autoPipelines.values())e+=t.length;return e}connect(e){let t=new Promise((n,i)=>{if(this.status==="connecting"||this.status==="connect"||this.status==="ready"){i(new Error("Redis is already connecting/connected"));return}this.connectionEpoch+=1,this.setStatus("connecting");let{options:s}=this;this.condition={select:s.db,auth:s.username?[s.username,s.password]:s.password,subscriber:!1};let a=this;(0,kc.default)(this.connector.connect(function(o,l){a.silentEmit(o,l)}),function(o,l){if(o){a.flushQueue(o),a.silentEmit("error",o),i(o),a.setStatus("end");return}let c=s.tls?"secureConnect":"connect";if("sentinels"in s&&s.sentinels&&!s.enableTLSForSentinelMode&&(c="connect"),a.stream=l,s.noDelay&&l.setNoDelay(!0),typeof s.keepAlive=="number"&&(l.connecting?l.once(c,()=>{l.setKeepAlive(!0,s.keepAlive)}):l.setKeepAlive(!0,s.keepAlive)),l.connecting){if(l.once(c,br.connectHandler(a)),s.connectTimeout){let f=!1;l.setTimeout(s.connectTimeout,function(){if(f)return;l.setTimeout(0),l.destroy();let p=new Error("connect ETIMEDOUT");p.errorno="ETIMEDOUT",p.code="ETIMEDOUT",p.syscall="connect",br.errorHandler(a)(p)}),l.once(c,function(){f=!0,l.setTimeout(0)})}}else if(l.destroyed){let f=a.connector.firstError;f&&process.nextTick(()=>{br.errorHandler(a)(f)}),process.nextTick(br.closeHandler(a))}else process.nextTick(br.connectHandler(a));l.destroyed||(l.once("error",br.errorHandler(a)),l.once("close",br.closeHandler(a)));let u=function(){a.removeListener("close",d),n()};var d=function(){a.removeListener("ready",u),i(new Error(Fr.CONNECTION_CLOSED_ERROR_MSG))};a.once("ready",u),a.once("close",d)})});return(0,kc.default)(t,e)}disconnect(e=!1){e||(this.manuallyClosing=!0),this.reconnectTimeout&&!e&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.status==="wait"?br.closeHandler(this)():this.connector.disconnect()}end(){this.disconnect()}duplicate(e){return new r({...this.options,...e})}get mode(){var e;return this.options.monitor?"monitor":!((e=this.condition)===null||e===void 0)&&e.subscriber?"subscriber":"normal"}monitor(e){let t=this.duplicate({monitor:!0,lazyConnect:!1});return(0,kc.default)(new Promise(function(n,i){t.once("error",i),t.once("monitoring",function(){n(t)})}),e)}sendCommand(e,t){var n,i;if(this.status==="wait"&&this.connect().catch(gr.noop),this.status==="end")return e.reject(new Error(Fr.CONNECTION_CLOSED_ERROR_MSG)),e.promise;if(!((n=this.condition)===null||n===void 0)&&n.subscriber&&!Jr.default.checkFlag("VALID_IN_SUBSCRIBER_MODE",e.name))return e.reject(new Error("Connection in subscriber mode, only subscriber commands may be used")),e.promise;typeof this.options.commandTimeout=="number"&&e.setTimeout(this.options.commandTimeout);let s=this.getBlockingTimeoutInMs(e),a=this.status==="ready"||!t&&this.status==="connect"&&(0,Gf.exists)(e.name,{caseInsensitive:!0})&&((0,Gf.hasFlag)(e.name,"loading",{nameCaseInsensitive:!0})||Jr.default.checkFlag("HANDSHAKE_COMMANDS",e.name));if(this.stream&&this.stream.writable?this.stream._writableState&&this.stream._writableState.ended&&(a=!1):a=!1,a)vr.enabled&&vr("write command[%s]: %d -> %s(%o)",this._getDescription(),(i=this.condition)===null||i===void 0?void 0:i.select,e.name,e.args),t?"isPipeline"in t&&t.isPipeline?t.write(e.toWritable(t.destination.redis.stream)):t.write(e.toWritable(t)):this.stream.write(e.toWritable(this.stream)),this.commandQueue.push({command:e,stream:t,select:this.condition.select}),s!==void 0&&e.setBlockingTimeout(s),Jr.default.checkFlag("WILL_DISCONNECT",e.name)&&(this.manuallyClosing=!0),this.options.socketTimeout!==void 0&&this.socketTimeoutTimer===void 0&&this.setSocketTimeout();else{if(!this.options.enableOfflineQueue)return e.reject(new Error("Stream isn't writeable and enableOfflineQueue options is false")),e.promise;if(e.name==="quit"&&this.offlineQueue.length===0)return this.disconnect(),e.resolve(Buffer.from("OK")),e.promise;if(vr.enabled&&vr("queue command[%s]: %d -> %s(%o)",this._getDescription(),this.condition.select,e.name,e.args),this.offlineQueue.push({command:e,stream:t,select:this.condition.select}),Jr.default.checkFlag("BLOCKING_COMMANDS",e.name)){let o=this.getConfiguredBlockingTimeout();o!==void 0&&e.setBlockingTimeout(o)}}if(e.name==="select"&&(0,Fr.isInt)(e.args[0])){let o=parseInt(e.args[0],10);this.condition.select!==o&&(this.condition.select=o,this.emit("select",o),vr("switch to db [%d]",this.condition.select))}return e.promise}getBlockingTimeoutInMs(e){var t;if(!Jr.default.checkFlag("BLOCKING_COMMANDS",e.name))return;let n=this.getConfiguredBlockingTimeout();if(n===void 0)return;let i=e.extractBlockingTimeout();if(typeof i=="number")return i>0?i+((t=this.options.blockingTimeoutGrace)!==null&&t!==void 0?t:Wf.DEFAULT_REDIS_OPTIONS.blockingTimeoutGrace):n;if(i===null)return n}getConfiguredBlockingTimeout(){if(typeof this.options.blockingTimeout=="number"&&this.options.blockingTimeout>0)return this.options.blockingTimeout}setSocketTimeout(){this.socketTimeoutTimer=setTimeout(()=>{this.stream.destroy(new Error(`Socket timeout. Expecting data, but didn't receive any in ${this.options.socketTimeout}ms.`)),this.socketTimeoutTimer=void 0},this.options.socketTimeout),this.stream.once("data",()=>{clearTimeout(this.socketTimeoutTimer),this.socketTimeoutTimer=void 0,this.commandQueue.length!==0&&this.setSocketTimeout()})}scanStream(e){return this.createScanStream("scan",{options:e})}scanBufferStream(e){return this.createScanStream("scanBuffer",{options:e})}sscanStream(e,t){return this.createScanStream("sscan",{key:e,options:t})}sscanBufferStream(e,t){return this.createScanStream("sscanBuffer",{key:e,options:t})}hscanStream(e,t){return this.createScanStream("hscan",{key:e,options:t})}hscanBufferStream(e,t){return this.createScanStream("hscanBuffer",{key:e,options:t})}zscanStream(e,t){return this.createScanStream("zscan",{key:e,options:t})}zscanBufferStream(e,t){return this.createScanStream("zscanBuffer",{key:e,options:t})}silentEmit(e,t){let n;if(!(e==="error"&&(n=t,this.status==="end"||this.manuallyClosing&&n instanceof Error&&(n.message===Fr.CONNECTION_CLOSED_ERROR_MSG||n.syscall==="connect"||n.syscall==="read"))))return this.listeners(e).length>0?this.emit.apply(this,arguments):(n&&n instanceof Error&&console.error("[ioredis] Unhandled error event:",n.stack),!1)}recoverFromFatalError(e,t,n){this.flushQueue(t,n),this.silentEmit("error",t),this.disconnect(!0)}handleReconnection(e,t){var n;let i=!1;switch(this.options.reconnectOnError&&!Jr.default.checkFlag("IGNORE_RECONNECT_ON_ERROR",t.command.name)&&(i=this.options.reconnectOnError(e)),i){case 1:case!0:this.status!=="reconnecting"&&this.disconnect(!0),t.command.reject(e);break;case 2:this.status!=="reconnecting"&&this.disconnect(!0),((n=this.condition)===null||n===void 0?void 0:n.select)!==t.select&&t.command.name!=="select"&&this.select(t.select),this.sendCommand(t.command);break;default:t.command.reject(e)}}_getDescription(){let e;return"path"in this.options&&this.options.path?e=this.options.path:this.stream&&this.stream.remoteAddress&&this.stream.remotePort?e=this.stream.remoteAddress+":"+this.stream.remotePort:"host"in this.options&&this.options.host?e=this.options.host+":"+this.options.port:e="",this.options.connectionName&&(e+=` (${this.options.connectionName})`),e}resetCommandQueue(){this.commandQueue=new Yf}resetOfflineQueue(){this.offlineQueue=new Yf}parseOptions(...e){let t={},n=!1;for(let i=0;i<e.length;++i){let s=e[i];if(!(s===null||typeof s>"u"))if(typeof s=="object")(0,gr.defaults)(t,s);else if(typeof s=="string")(0,gr.defaults)(t,(0,Fr.parseURL)(s)),s.startsWith("rediss://")&&(n=!0);else if(typeof s=="number")t.port=s;else throw new Error("Invalid argument "+s)}n&&(0,gr.defaults)(t,{tls:!0}),(0,gr.defaults)(t,r.defaultOptions),typeof t.port=="string"&&(t.port=parseInt(t.port,10)),typeof t.db=="string"&&(t.db=parseInt(t.db,10)),this.options=(0,Fr.resolveTLSProfile)(t)}setStatus(e,t){vr.enabled&&vr("status[%s]: %s -> %s",this._getDescription(),this.status||"[empty]",e),this.status=e,process.nextTick(this.emit.bind(this,e,t))}createScanStream(e,{key:t,options:n={}}){return new Xx.default({objectMode:!0,key:t,redis:this,command:e,...n})}flushQueue(e,t){t=(0,gr.defaults)({},t,{offlineQueue:!0,commandQueue:!0});let n;if(t.offlineQueue)for(;n=this.offlineQueue.shift();)n.command.reject(e);if(t.commandQueue&&this.commandQueue.length>0)for(this.stream&&this.stream.removeAllListeners("data");n=this.commandQueue.shift();)n.command.reject(e)}_readyCheck(e){let t=this;this.info(function(n,i){if(n)return n.message&&n.message.includes("NOPERM")?(console.warn(`Skipping the ready check because INFO command fails: "${n.message}". You can disable ready check with "enableReadyCheck". More: https://github.com/luin/ioredis/wiki/Disable-ready-check.`),e(null,{})):e(n);if(typeof i!="string")return e(null,i);let s={},a=i.split(`\r
|
|
160
|
+
`);for(let o=0;o<a.length;++o){let[l,...c]=a[o].split(":"),u=c.join(":");u&&(s[l]=u)}if(!s.loading||s.loading==="0")e(null,s);else{let o=(s.loading_eta_seconds||1)*1e3,l=t.options.maxLoadingRetryTime&&t.options.maxLoadingRetryTime<o?t.options.maxLoadingRetryTime:o;vr("Redis server still loading, trying again in "+l+"ms"),setTimeout(function(){t._readyCheck(e)},l)}}).catch(gr.noop)}};Kr.Cluster=Hx.default;Kr.Command=Jr.default;Kr.defaultOptions=Wf.DEFAULT_REDIS_OPTIONS;(0,tw.default)(Kr,Bf.EventEmitter);(0,ew.addTransactionSupport)(Kr.prototype);Ic.default=Kr});var us=h((Se,zf)=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.print=Se.ReplyError=Se.SentinelIterator=Se.SentinelConnector=Se.AbstractConnector=Se.Pipeline=Se.ScanStream=Se.Command=Se.Cluster=Se.Redis=Se.default=void 0;Se=zf.exports=Xt().default;var nw=Xt();Object.defineProperty(Se,"default",{enumerable:!0,get:function(){return nw.default}});var iw=Xt();Object.defineProperty(Se,"Redis",{enumerable:!0,get:function(){return iw.default}});var sw=Xl();Object.defineProperty(Se,"Cluster",{enumerable:!0,get:function(){return sw.default}});var aw=Qt();Object.defineProperty(Se,"Command",{enumerable:!0,get:function(){return aw.default}});var ow=$i();Object.defineProperty(Se,"ScanStream",{enumerable:!0,get:function(){return ow.default}});var lw=_l();Object.defineProperty(Se,"Pipeline",{enumerable:!0,get:function(){return lw.default}});var cw=is();Object.defineProperty(Se,"AbstractConnector",{enumerable:!0,get:function(){return cw.default}});var Uf=as();Object.defineProperty(Se,"SentinelConnector",{enumerable:!0,get:function(){return Uf.default}});Object.defineProperty(Se,"SentinelIterator",{enumerable:!0,get:function(){return Uf.SentinelIterator}});Se.ReplyError=Nr().ReplyError;Object.defineProperty(Se,"Promise",{get(){return console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used."),Promise},set(r){console.warn("ioredis v5 does not support plugging third-party Promise library anymore. Native Promise will be used.")}});function uw(r,e){console.log(r?"Error: "+r:"Reply: "+e)}Se.print=uw});var He={};bE(He,{__addDisposableResource:()=>vh,__assign:()=>ds,__asyncDelegator:()=>dh,__asyncGenerator:()=>uh,__asyncValues:()=>ph,__await:()=>jn,__awaiter:()=>ih,__classPrivateFieldGet:()=>mh,__classPrivateFieldIn:()=>gh,__classPrivateFieldSet:()=>bh,__createBinding:()=>fs,__decorate:()=>Qf,__disposeResources:()=>Kh,__esDecorate:()=>Xf,__exportStar:()=>ah,__extends:()=>$f,__generator:()=>sh,__importDefault:()=>yh,__importStar:()=>hh,__makeTemplateObject:()=>fh,__metadata:()=>nh,__param:()=>Zf,__propKey:()=>th,__read:()=>Tc,__rest:()=>Hf,__rewriteRelativeImportExtension:()=>Sh,__runInitializers:()=>eh,__setFunctionName:()=>rh,__spread:()=>oh,__spreadArray:()=>ch,__spreadArrays:()=>lh,__values:()=>ps,default:()=>fw});function $f(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");xc(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function Hf(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(r,n[i])&&(t[n[i]]=r[n[i]]);return t}function Qf(r,e,t,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(r,e,t,n);else for(var o=r.length-1;o>=0;o--)(a=r[o])&&(s=(i<3?a(s):i>3?a(e,t,s):a(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s}function Zf(r,e){return function(t,n){e(t,n,r)}}function Xf(r,e,t,n,i,s){function a(k){if(k!==void 0&&typeof k!="function")throw new TypeError("Function expected");return k}for(var o=n.kind,l=o==="getter"?"get":o==="setter"?"set":"value",c=!e&&r?n.static?r:r.prototype:null,u=e||(c?Object.getOwnPropertyDescriptor(c,n.name):{}),d,f=!1,p=t.length-1;p>=0;p--){var y={};for(var g in n)y[g]=g==="access"?{}:n[g];for(var g in n.access)y.access[g]=n.access[g];y.addInitializer=function(k){if(f)throw new TypeError("Cannot add initializers after decoration has completed");s.push(a(k||null))};var S=(0,t[p])(o==="accessor"?{get:u.get,set:u.set}:u[l],y);if(o==="accessor"){if(S===void 0)continue;if(S===null||typeof S!="object")throw new TypeError("Object expected");(d=a(S.get))&&(u.get=d),(d=a(S.set))&&(u.set=d),(d=a(S.init))&&i.unshift(d)}else(d=a(S))&&(o==="field"?i.unshift(d):u[l]=d)}c&&Object.defineProperty(c,n.name,u),f=!0}function eh(r,e,t){for(var n=arguments.length>2,i=0;i<e.length;i++)t=n?e[i].call(r,t):e[i].call(r);return n?t:void 0}function th(r){return typeof r=="symbol"?r:"".concat(r)}function rh(r,e,t){return typeof e=="symbol"&&(e=e.description?"[".concat(e.description,"]"):""),Object.defineProperty(r,"name",{configurable:!0,value:t?"".concat(t," ",e):e})}function nh(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function ih(r,e,t,n){function i(s){return s instanceof t?s:new t(function(a){a(s)})}return new(t||(t=Promise))(function(s,a){function o(u){try{c(n.next(u))}catch(d){a(d)}}function l(u){try{c(n.throw(u))}catch(d){a(d)}}function c(u){u.done?s(u.value):i(u.value).then(o,l)}c((n=n.apply(r,e||[])).next())})}function sh(r,e){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},n,i,s,a=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return a.next=o(0),a.throw=o(1),a.return=o(2),typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(c){return function(u){return l([c,u])}}function l(c){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(t=0)),t;)try{if(n=1,i&&(s=c[0]&2?i.return:c[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,c[1])).done)return s;switch(i=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,i=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){t.label=c[1];break}if(c[0]===6&&t.label<s[1]){t.label=s[1],s=c;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(c);break}s[2]&&t.ops.pop(),t.trys.pop();continue}c=e.call(r,t)}catch(u){c=[6,u],i=0}finally{n=s=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function ah(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&fs(e,r,t)}function ps(r){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&r[e],n=0;if(t)return t.call(r);if(r&&typeof r.length=="number")return{next:function(){return r&&n>=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Tc(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),i,s=[],a;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)s.push(i.value)}catch(o){a={error:o}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(a)throw a.error}}return s}function oh(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(Tc(arguments[e]));return r}function lh(){for(var r=0,e=0,t=arguments.length;e<t;e++)r+=arguments[e].length;for(var n=Array(r),i=0,e=0;e<t;e++)for(var s=arguments[e],a=0,o=s.length;a<o;a++,i++)n[i]=s[a];return n}function ch(r,e,t){if(t||arguments.length===2)for(var n=0,i=e.length,s;n<i;n++)(s||!(n in e))&&(s||(s=Array.prototype.slice.call(e,0,n)),s[n]=e[n]);return r.concat(s||Array.prototype.slice.call(e))}function jn(r){return this instanceof jn?(this.v=r,this):new jn(r)}function uh(r,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=t.apply(r,e||[]),i,s=[];return i=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),o("next"),o("throw"),o("return",a),i[Symbol.asyncIterator]=function(){return this},i;function a(p){return function(y){return Promise.resolve(y).then(p,d)}}function o(p,y){n[p]&&(i[p]=function(g){return new Promise(function(S,k){s.push([p,g,S,k])>1||l(p,g)})},y&&(i[p]=y(i[p])))}function l(p,y){try{c(n[p](y))}catch(g){f(s[0][3],g)}}function c(p){p.value instanceof jn?Promise.resolve(p.value.v).then(u,d):f(s[0][2],p)}function u(p){l("next",p)}function d(p){l("throw",p)}function f(p,y){p(y),s.shift(),s.length&&l(s[0][0],s[0][1])}}function dh(r){var e,t;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,s){e[i]=r[i]?function(a){return(t=!t)?{value:jn(r[i](a)),done:!1}:s?s(a):a}:s}}function ph(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof ps=="function"?ps(r):r[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(s){t[s]=r[s]&&function(a){return new Promise(function(o,l){a=r[s](a),i(o,l,a.done,a.value)})}}function i(s,a,o,l){Promise.resolve(l).then(function(c){s({value:c,done:o})},a)}}function fh(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function hh(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t=wc(r),n=0;n<t.length;n++)t[n]!=="default"&&fs(e,r,t[n]);return dw(e,r),e}function yh(r){return r&&r.__esModule?r:{default:r}}function mh(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}function bh(r,e,t,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,t):i?i.value=t:e.set(r,t),t}function gh(r,e){if(e===null||typeof e!="object"&&typeof e!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof r=="function"?e===r:r.has(e)}function vh(r,e,t){if(e!=null){if(typeof e!="object"&&typeof e!="function")throw new TypeError("Object expected.");var n,i;if(t){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=e[Symbol.asyncDispose]}if(n===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=e[Symbol.dispose],t&&(i=n)}if(typeof n!="function")throw new TypeError("Object not disposable.");i&&(n=function(){try{i.call(this)}catch(s){return Promise.reject(s)}}),r.stack.push({value:e,dispose:n,async:t})}else t&&r.stack.push({async:!0});return e}function Kh(r){function e(s){r.error=r.hasError?new pw(s,r.error,"An error was suppressed during disposal."):s,r.hasError=!0}var t,n=0;function i(){for(;t=r.stack.pop();)try{if(!t.async&&n===1)return n=0,r.stack.push(t),Promise.resolve().then(i);if(t.dispose){var s=t.dispose.call(t.value);if(t.async)return n|=2,Promise.resolve(s).then(i,function(a){return e(a),i()})}else n|=1}catch(a){e(a)}if(n===1)return r.hasError?Promise.reject(r.error):Promise.resolve();if(r.hasError)throw r.error}return i()}function Sh(r,e){return typeof r=="string"&&/^\.\.?\//.test(r)?r.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(t,n,i,s,a){return n?e?".jsx":".js":i&&(!s||!a)?t:i+s+"."+a.toLowerCase()+"js"}):r}var xc,ds,fs,dw,wc,pw,fw,Qe=mE(()=>{xc=function(r,e){return xc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])},xc(r,e)};ds=function(){return ds=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++){t=arguments[n];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s])}return e},ds.apply(this,arguments)};fs=Object.create?(function(r,e,t,n){n===void 0&&(n=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,i)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]});dw=Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e},wc=function(r){return wc=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},wc(r)};pw=typeof SuppressedError=="function"?SuppressedError:function(r,e,t){var n=new Error(t);return n.name="SuppressedError",n.error=r,n.suppressed=e,n};fw={__extends:$f,__assign:ds,__rest:Hf,__decorate:Qf,__param:Zf,__esDecorate:Xf,__runInitializers:eh,__propKey:th,__setFunctionName:rh,__metadata:nh,__awaiter:ih,__generator:sh,__createBinding:fs,__exportStar:ah,__values:ps,__read:Tc,__spread:oh,__spreadArrays:lh,__spreadArray:ch,__await:jn,__asyncGenerator:uh,__asyncDelegator:dh,__asyncValues:ph,__makeTemplateObject:fh,__importStar:hh,__importDefault:yh,__classPrivateFieldGet:mh,__classPrivateFieldSet:bh,__classPrivateFieldIn:gh,__addDisposableResource:vh,__disposeResources:Kh,__rewriteRelativeImportExtension:Sh}});var Oc=h(hs=>{"use strict";Object.defineProperty(hs,"__esModule",{value:!0});hs.AsyncFifoQueue=void 0;var jc=class{constructor(e){this.value=void 0,this.next=null,this.value=e}},Ac=class{constructor(){this.length=0,this.head=null,this.tail=null}push(e){let t=new jc(e);return this.length?this.tail.next=t:this.head=t,this.tail=t,this.length+=1,t}shift(){if(this.length){let e=this.head;return this.head=this.head.next,this.length-=1,e}else return null}},Dc=class{constructor(e=!1){this.ignoreErrors=e,this.queue=new Ac,this.pending=new Set,this.newPromise()}add(e){this.pending.add(e),e.then(t=>{this.pending.delete(e),this.queue.length===0&&this.resolvePromise(t),this.queue.push(t)}).catch(t=>{this.ignoreErrors&&this.queue.push(void 0),this.pending.delete(e),this.rejectPromise(t)})}async waitAll(){await Promise.all(this.pending)}numTotal(){return this.pending.size+this.queue.length}numPending(){return this.pending.size}numQueued(){return this.queue.length}resolvePromise(e){this.resolve(e),this.newPromise()}rejectPromise(e){this.reject(e),this.newPromise()}newPromise(){this.nextPromise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}async wait(){return this.nextPromise}async fetch(){var e;if(!(this.pending.size===0&&this.queue.length===0)){for(;this.queue.length===0;)try{await this.wait()}catch(t){this.ignoreErrors||console.error("Unexpected Error in AsyncFifoQueue",t)}return(e=this.queue.shift())===null||e===void 0?void 0:e.value}}};hs.AsyncFifoQueue=Dc});var Rc=h(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.Backoffs=void 0;var An=class{static normalize(e){if(Number.isFinite(e))return{type:"fixed",delay:e};if(e)return e}static calculate(e,t,n,i,s){if(e)return hw(e,s)(t,e.type,n,i)}};ys.Backoffs=An;An.builtinStrategies={fixed:function(r,e=0){return function(){if(e>0){let t=r*(1-e);return Math.floor(Math.random()*r*e+t)}else return r}},exponential:function(r,e=0){return function(t){if(e>0){let n=Math.round(Math.pow(2,t-1)*r),i=n*(1-e);return Math.floor(Math.random()*n*e+i)}else return Math.round(Math.pow(2,t-1)*r)}}};function hw(r,e){if(r.type in An.builtinStrategies)return An.builtinStrategies[r.type](r.delay,r.jitter);if(e)return e;throw new Error(`Unknown backoff strategy ${r.type}.
|
|
161
|
+
If a custom backoff strategy is used, specify it when the queue is created.`)}});var kh=h(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});ms.ChildCommand=void 0;var Eh;(function(r){r[r.Init=0]="Init",r[r.Start=1]="Start",r[r.Stop=2]="Stop",r[r.GetChildrenValuesResponse=3]="GetChildrenValuesResponse",r[r.GetIgnoredChildrenFailuresResponse=4]="GetIgnoredChildrenFailuresResponse",r[r.GetDependenciesCountResponse=5]="GetDependenciesCountResponse",r[r.MoveToWaitingChildrenResponse=6]="MoveToWaitingChildrenResponse",r[r.Cancel=7]="Cancel",r[r.GetDependenciesResponse=8]="GetDependenciesResponse"})(Eh||(ms.ChildCommand=Eh={}))});var xh=h(bs=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});bs.ErrorCode=void 0;var Ih;(function(r){r[r.JobNotExist=-1]="JobNotExist",r[r.JobLockNotExist=-2]="JobLockNotExist",r[r.JobNotInState=-3]="JobNotInState",r[r.JobPendingChildren=-4]="JobPendingChildren",r[r.ParentJobNotExist=-5]="ParentJobNotExist",r[r.JobLockMismatch=-6]="JobLockMismatch",r[r.ParentJobCannotBeReplaced=-7]="ParentJobCannotBeReplaced",r[r.JobBelongsToJobScheduler=-8]="JobBelongsToJobScheduler",r[r.JobHasFailedChildren=-9]="JobHasFailedChildren",r[r.SchedulerJobIdCollision=-10]="SchedulerJobIdCollision",r[r.SchedulerJobSlotsBusy=-11]="SchedulerJobSlotsBusy"})(Ih||(bs.ErrorCode=Ih={}))});var Th=h(gs=>{"use strict";Object.defineProperty(gs,"__esModule",{value:!0});gs.ParentCommand=void 0;var wh;(function(r){r[r.Completed=0]="Completed",r[r.Error=1]="Error",r[r.Failed=2]="Failed",r[r.InitFailed=3]="InitFailed",r[r.InitCompleted=4]="InitCompleted",r[r.Log=5]="Log",r[r.MoveToDelayed=6]="MoveToDelayed",r[r.MoveToWait=7]="MoveToWait",r[r.Progress=8]="Progress",r[r.Update=9]="Update",r[r.GetChildrenValues=10]="GetChildrenValues",r[r.GetIgnoredChildrenFailures=11]="GetIgnoredChildrenFailures",r[r.GetDependenciesCount=12]="GetDependenciesCount",r[r.MoveToWaitingChildren=13]="MoveToWaitingChildren",r[r.GetDependencies=14]="GetDependencies"})(wh||(gs.ParentCommand=wh={}))});var Ah=h(vs=>{"use strict";Object.defineProperty(vs,"__esModule",{value:!0});vs.MetricsTime=void 0;var jh;(function(r){r[r.ONE_MINUTE=1]="ONE_MINUTE",r[r.FIVE_MINUTES=5]="FIVE_MINUTES",r[r.FIFTEEN_MINUTES=15]="FIFTEEN_MINUTES",r[r.THIRTY_MINUTES=30]="THIRTY_MINUTES",r[r.ONE_HOUR=60]="ONE_HOUR",r[r.ONE_WEEK=10080]="ONE_WEEK",r[r.TWO_WEEKS=20160]="TWO_WEEKS",r[r.ONE_MONTH=80640]="ONE_MONTH"})(jh||(vs.MetricsTime=jh={}))});var Ch=h(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.SpanKind=Sr.MetricNames=Sr.TelemetryAttributes=void 0;var Dh;(function(r){r.QueueName="bullmq.queue.name",r.QueueOperation="bullmq.queue.operation",r.BulkCount="bullmq.job.bulk.count",r.BulkNames="bullmq.job.bulk.names",r.JobName="bullmq.job.name",r.JobId="bullmq.job.id",r.JobKey="bullmq.job.key",r.JobIds="bullmq.job.ids",r.JobAttemptsMade="bullmq.job.attempts.made",r.DeduplicationKey="bullmq.job.deduplication.key",r.JobOptions="bullmq.job.options",r.JobProgress="bullmq.job.progress",r.QueueDrainDelay="bullmq.queue.drain.delay",r.QueueGrace="bullmq.queue.grace",r.QueueCleanLimit="bullmq.queue.clean.limit",r.QueueRateLimit="bullmq.queue.rate.limit",r.JobType="bullmq.job.type",r.QueueOptions="bullmq.queue.options",r.QueueEventMaxLength="bullmq.queue.event.max.length",r.QueueJobsState="bullmq.queue.jobs.state",r.WorkerOptions="bullmq.worker.options",r.WorkerName="bullmq.worker.name",r.WorkerId="bullmq.worker.id",r.WorkerRateLimit="bullmq.worker.rate.limit",r.WorkerDoNotWaitActive="bullmq.worker.do.not.wait.active",r.WorkerForceClose="bullmq.worker.force.close",r.WorkerStalledJobs="bullmq.worker.stalled.jobs",r.WorkerFailedJobs="bullmq.worker.failed.jobs",r.WorkerJobsToExtendLocks="bullmq.worker.jobs.to.extend.locks",r.JobFinishedTimestamp="bullmq.job.finished.timestamp",r.JobAttemptFinishedTimestamp="bullmq.job.attempt_finished_timestamp",r.JobProcessedTimestamp="bullmq.job.processed.timestamp",r.JobResult="bullmq.job.result",r.JobFailedReason="bullmq.job.failed.reason",r.FlowName="bullmq.flow.name",r.JobSchedulerId="bullmq.job.scheduler.id",r.JobStatus="bullmq.job.status"})(Dh||(Sr.TelemetryAttributes=Dh={}));var Oh;(function(r){r.QueueJobsCount="bullmq.queue.jobs",r.JobsCompleted="bullmq.jobs.completed",r.JobsFailed="bullmq.jobs.failed",r.JobsDelayed="bullmq.jobs.delayed",r.JobsRetried="bullmq.jobs.retried",r.JobsWaiting="bullmq.jobs.waiting",r.JobsWaitingChildren="bullmq.jobs.waiting_children",r.JobDuration="bullmq.job.duration"})(Oh||(Sr.MetricNames=Oh={}));var Rh;(function(r){r[r.INTERNAL=0]="INTERNAL",r[r.SERVER=1]="SERVER",r[r.CLIENT=2]="CLIENT",r[r.PRODUCER=3]="PRODUCER",r[r.CONSUMER=4]="CONSUMER"})(Rh||(Sr.SpanKind=Rh={}))});var at=h(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});var si=(Qe(),it(He));si.__exportStar(kh(),Vr);si.__exportStar(xh(),Vr);si.__exportStar(Th(),Vr);si.__exportStar(Ah(),Vr);si.__exportStar(Ch(),Vr)});var _c=h(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.Child=void 0;var yw=V("child_process"),mw=V("net"),bw=V("worker_threads"),Ks=at(),gw=V("events"),vw={1:"Uncaught Fatal Exception",2:"Unused",3:"Internal JavaScript Parse Error",4:"Internal JavaScript Evaluation Failure",5:"Fatal Error",6:"Non-function Internal Exception Handler",7:"Internal Exception Handler Run-Time Failure",8:"Unused",9:"Invalid Argument",10:"Internal JavaScript Run-Time Failure",12:"Invalid Debug Argument",13:"Unfinished Top-Level Await"},Cc=class extends gw.EventEmitter{constructor(e,t,n={useWorkerThreads:!1}){super(),this.mainFile=e,this.processFile=t,this.opts=n,this._exitCode=null,this._signalCode=null,this._killed=!1}get pid(){if(this.childProcess)return this.childProcess.pid;if(this.worker)return Math.abs(this.worker.threadId);throw new Error("No child process or worker thread")}get exitCode(){return this._exitCode}get signalCode(){return this._signalCode}get killed(){return this.childProcess?this.childProcess.killed:this._killed}async init(){let e=await Ew(process.execArgv),t;this.opts.useWorkerThreads?this.worker=t=new bw.Worker(this.mainFile,Object.assign({execArgv:e,stdin:!0,stdout:!0,stderr:!0},this.opts.workerThreadsOptions?this.opts.workerThreadsOptions:{})):this.childProcess=t=(0,yw.fork)(this.mainFile,[],Object.assign({execArgv:e,stdio:"pipe"},this.opts.workerForkOptions?this.opts.workerForkOptions:{})),t.on("exit",(n,i)=>{this._exitCode=n,i=typeof i>"u"?null:i,this._signalCode=i,this._killed=!0,this.emit("exit",n,i),t.removeAllListeners(),this.removeAllListeners()}),t.on("error",(...n)=>this.emit("error",...n)),t.on("message",(...n)=>this.emit("message",...n)),t.on("close",(...n)=>this.emit("close",...n)),t.stdout.pipe(process.stdout),t.stderr.pipe(process.stderr),await this.initChild()}async send(e){return new Promise((t,n)=>{this.childProcess?this.childProcess.send(e,i=>{i?n(i):t()}):this.worker?t(this.worker.postMessage(e)):t()})}killProcess(e="SIGKILL"){this.childProcess?this.childProcess.kill(e):this.worker&&this.worker.terminate()}async kill(e="SIGKILL",t){if(this.hasProcessExited())return;let n=Kw(this.childProcess||this.worker);if(this.killProcess(e),t!==void 0&&(t===0||isFinite(t))){let i=setTimeout(()=>{this.hasProcessExited()||this.killProcess("SIGKILL")},t);await n,clearTimeout(i)}await n}async initChild(){let e=new Promise((t,n)=>{let i=a=>{if(Object.values(Ks.ParentCommand).includes(a.cmd)){if(a.cmd===Ks.ParentCommand.InitCompleted)t();else if(a.cmd===Ks.ParentCommand.InitFailed){let o=new Error;o.stack=a.err.stack,o.message=a.err.message,n(o)}this.off("message",i),this.off("close",s)}},s=(a,o)=>{a>128&&(a-=128);let l=vw[a]||`Unknown exit code ${a}`;n(new Error(`Error initializing child: ${l} and signal ${o}`)),this.off("message",i),this.off("close",s)};this.on("message",i),this.on("close",s)});await this.send({cmd:Ks.ChildCommand.Init,value:this.processFile}),await e}hasProcessExited(){return!!(this.exitCode!==null||this.signalCode)}};Ss.Child=Cc;function Kw(r){return new Promise(e=>{r.once("exit",()=>e())})}var Sw=async()=>new Promise(r=>{let e=(0,mw.createServer)();e.listen(0,()=>{let{port:t}=e.address();e.close(()=>r(t))})}),Ew=async r=>{let e=[],t=[];for(let n=0;n<r.length;n++){let i=r[n];if(i.indexOf("--inspect")===-1)e.push(i);else{let s=i.split("=")[0],a=await Sw();t.push(`${s}=${a}`)}}return e.concat(t)}});var Nc=h((Es,Pc)=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.ChildPool=void 0;var _h=V("path"),kw=_c(),Iw=3e4,xw=()=>typeof V=="function"&&typeof Pc=="object"&&typeof Pc.exports=="object",Mc=class{constructor({mainFile:e=xw()?_h.join(process.cwd(),"dist/cjs/classes/main.js"):_h.join(process.cwd(),"dist/esm/classes/main.js"),useWorkerThreads:t,workerForkOptions:n,workerThreadsOptions:i}){this.retained={},this.free={},this.opts={mainFile:e,useWorkerThreads:t,workerForkOptions:n,workerThreadsOptions:i}}async retain(e){let t=this.getFree(e).pop();if(t)return this.retained[t.pid]=t,t;t=new kw.Child(this.opts.mainFile,e,{useWorkerThreads:this.opts.useWorkerThreads,workerForkOptions:this.opts.workerForkOptions,workerThreadsOptions:this.opts.workerThreadsOptions}),t.on("exit",this.remove.bind(this,t));try{if(await t.init(),t.exitCode!==null||t.signalCode!==null)throw new Error("Child exited before it could be retained");return this.retained[t.pid]=t,t}catch(n){throw console.error(n),this.release(t),n}}release(e){delete this.retained[e.pid],this.getFree(e.processFile).push(e)}remove(e){delete this.retained[e.pid];let t=this.getFree(e.processFile),n=t.indexOf(e);n>-1&&t.splice(n,1)}async kill(e,t="SIGKILL"){return this.remove(e),e.kill(t,Iw)}async clean(){let e=Object.values(this.retained).concat(this.getAllFree());this.retained={},this.free={},await Promise.all(e.map(t=>this.kill(t,"SIGTERM")))}getFree(e){return this.free[e]=this.free[e]||[]}getAllFree(){return Object.values(this.free).reduce((e,t)=>e.concat(t),[])}};Es.ChildPool=Mc});var Ph=h((RM,Mh)=>{var{EventEmitter:ww}=V("events"),ks=class{constructor(){this.eventEmitter=new ww,this.onabort=null,this.aborted=!1,this.reason=void 0}toString(){return"[object AbortSignal]"}get[Symbol.toStringTag](){return"AbortSignal"}removeEventListener(e,t){this.eventEmitter.removeListener(e,t)}addEventListener(e,t){this.eventEmitter.on(e,t)}dispatchEvent(e){let t={type:e,target:this},n=`on${e}`;typeof this[n]=="function"&&this[n](t),this.eventEmitter.emit(e,t)}throwIfAborted(){if(this.aborted)throw this.reason}static abort(e){let t=new ai;return t.abort(),t.signal}static timeout(e){let t=new ai;return setTimeout(()=>t.abort(new Error("TimeoutError")),e),t.signal}},ai=class{constructor(){this.signal=new ks}abort(e){this.signal.aborted||(this.signal.aborted=!0,e?this.signal.reason=e:this.signal.reason=new Error("AbortError"),this.signal.dispatchEvent("abort"))}toString(){return"[object AbortController]"}get[Symbol.toStringTag](){return"AbortController"}};Mh.exports={AbortController:ai,AbortSignal:ks}});var xs=h(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.AbortController=void 0;var Tw=Ph(),Lc;globalThis.AbortController?Lc=globalThis.AbortController:Lc=Tw.AbortController;var qc=class extends Lc{};Is.AbortController=qc});var oi=h((_M,Nh)=>{"use strict";var jw="2.0.0",Aw=Number.MAX_SAFE_INTEGER||9007199254740991,Dw=16,Ow=250,Rw=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Nh.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Dw,MAX_SAFE_BUILD_LENGTH:Ow,MAX_SAFE_INTEGER:Aw,RELEASE_TYPES:Rw,SEMVER_SPEC_VERSION:jw,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var li=h((MM,Lh)=>{"use strict";var Cw=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};Lh.exports=Cw});var Dn=h((Ft,qh)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Jc,MAX_SAFE_BUILD_LENGTH:_w,MAX_LENGTH:Mw}=oi(),Pw=li();Ft=qh.exports={};var Nw=Ft.re=[],Lw=Ft.safeRe=[],q=Ft.src=[],qw=Ft.safeSrc=[],J=Ft.t={},Jw=0,Fc="[a-zA-Z0-9-]",Fw=[["\\s",1],["\\d",Mw],[Fc,_w]],Vw=r=>{for(let[e,t]of Fw)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},ee=(r,e,t)=>{let n=Vw(e),i=Jw++;Pw(r,i,e),J[r]=i,q[i]=e,qw[i]=n,Nw[i]=new RegExp(e,t?"g":void 0),Lw[i]=new RegExp(n,t?"g":void 0)};ee("NUMERICIDENTIFIER","0|[1-9]\\d*");ee("NUMERICIDENTIFIERLOOSE","\\d+");ee("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Fc}*`);ee("MAINVERSION",`(${q[J.NUMERICIDENTIFIER]})\\.(${q[J.NUMERICIDENTIFIER]})\\.(${q[J.NUMERICIDENTIFIER]})`);ee("MAINVERSIONLOOSE",`(${q[J.NUMERICIDENTIFIERLOOSE]})\\.(${q[J.NUMERICIDENTIFIERLOOSE]})\\.(${q[J.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASEIDENTIFIER",`(?:${q[J.NONNUMERICIDENTIFIER]}|${q[J.NUMERICIDENTIFIER]})`);ee("PRERELEASEIDENTIFIERLOOSE",`(?:${q[J.NONNUMERICIDENTIFIER]}|${q[J.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASE",`(?:-(${q[J.PRERELEASEIDENTIFIER]}(?:\\.${q[J.PRERELEASEIDENTIFIER]})*))`);ee("PRERELEASELOOSE",`(?:-?(${q[J.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${q[J.PRERELEASEIDENTIFIERLOOSE]})*))`);ee("BUILDIDENTIFIER",`${Fc}+`);ee("BUILD",`(?:\\+(${q[J.BUILDIDENTIFIER]}(?:\\.${q[J.BUILDIDENTIFIER]})*))`);ee("FULLPLAIN",`v?${q[J.MAINVERSION]}${q[J.PRERELEASE]}?${q[J.BUILD]}?`);ee("FULL",`^${q[J.FULLPLAIN]}$`);ee("LOOSEPLAIN",`[v=\\s]*${q[J.MAINVERSIONLOOSE]}${q[J.PRERELEASELOOSE]}?${q[J.BUILD]}?`);ee("LOOSE",`^${q[J.LOOSEPLAIN]}$`);ee("GTLT","((?:<|>)?=?)");ee("XRANGEIDENTIFIERLOOSE",`${q[J.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);ee("XRANGEIDENTIFIER",`${q[J.NUMERICIDENTIFIER]}|x|X|\\*`);ee("XRANGEPLAIN",`[v=\\s]*(${q[J.XRANGEIDENTIFIER]})(?:\\.(${q[J.XRANGEIDENTIFIER]})(?:\\.(${q[J.XRANGEIDENTIFIER]})(?:${q[J.PRERELEASE]})?${q[J.BUILD]}?)?)?`);ee("XRANGEPLAINLOOSE",`[v=\\s]*(${q[J.XRANGEIDENTIFIERLOOSE]})(?:\\.(${q[J.XRANGEIDENTIFIERLOOSE]})(?:\\.(${q[J.XRANGEIDENTIFIERLOOSE]})(?:${q[J.PRERELEASELOOSE]})?${q[J.BUILD]}?)?)?`);ee("XRANGE",`^${q[J.GTLT]}\\s*${q[J.XRANGEPLAIN]}$`);ee("XRANGELOOSE",`^${q[J.GTLT]}\\s*${q[J.XRANGEPLAINLOOSE]}$`);ee("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Jc}})(?:\\.(\\d{1,${Jc}}))?(?:\\.(\\d{1,${Jc}}))?`);ee("COERCE",`${q[J.COERCEPLAIN]}(?:$|[^\\d])`);ee("COERCEFULL",q[J.COERCEPLAIN]+`(?:${q[J.PRERELEASE]})?(?:${q[J.BUILD]})?(?:$|[^\\d])`);ee("COERCERTL",q[J.COERCE],!0);ee("COERCERTLFULL",q[J.COERCEFULL],!0);ee("LONETILDE","(?:~>?)");ee("TILDETRIM",`(\\s*)${q[J.LONETILDE]}\\s+`,!0);Ft.tildeTrimReplace="$1~";ee("TILDE",`^${q[J.LONETILDE]}${q[J.XRANGEPLAIN]}$`);ee("TILDELOOSE",`^${q[J.LONETILDE]}${q[J.XRANGEPLAINLOOSE]}$`);ee("LONECARET","(?:\\^)");ee("CARETTRIM",`(\\s*)${q[J.LONECARET]}\\s+`,!0);Ft.caretTrimReplace="$1^";ee("CARET",`^${q[J.LONECARET]}${q[J.XRANGEPLAIN]}$`);ee("CARETLOOSE",`^${q[J.LONECARET]}${q[J.XRANGEPLAINLOOSE]}$`);ee("COMPARATORLOOSE",`^${q[J.GTLT]}\\s*(${q[J.LOOSEPLAIN]})$|^$`);ee("COMPARATOR",`^${q[J.GTLT]}\\s*(${q[J.FULLPLAIN]})$|^$`);ee("COMPARATORTRIM",`(\\s*)${q[J.GTLT]}\\s*(${q[J.LOOSEPLAIN]}|${q[J.XRANGEPLAIN]})`,!0);Ft.comparatorTrimReplace="$1$2$3";ee("HYPHENRANGE",`^\\s*(${q[J.XRANGEPLAIN]})\\s+-\\s+(${q[J.XRANGEPLAIN]})\\s*$`);ee("HYPHENRANGELOOSE",`^\\s*(${q[J.XRANGEPLAINLOOSE]})\\s+-\\s+(${q[J.XRANGEPLAINLOOSE]})\\s*$`);ee("STAR","(<|>)?=?\\s*\\*");ee("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");ee("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var ws=h((PM,Jh)=>{"use strict";var Gw=Object.freeze({loose:!0}),Yw=Object.freeze({}),Bw=r=>r?typeof r!="object"?Gw:r:Yw;Jh.exports=Bw});var Vc=h((NM,Gh)=>{"use strict";var Fh=/^[0-9]+$/,Vh=(r,e)=>{if(typeof r=="number"&&typeof e=="number")return r===e?0:r<e?-1:1;let t=Fh.test(r),n=Fh.test(e);return t&&n&&(r=+r,e=+e),r===e?0:t&&!n?-1:n&&!t?1:r<e?-1:1},Ww=(r,e)=>Vh(e,r);Gh.exports={compareIdentifiers:Vh,rcompareIdentifiers:Ww}});var Be=h((LM,Bh)=>{"use strict";var Ts=li(),{MAX_LENGTH:Yh,MAX_SAFE_INTEGER:js}=oi(),{safeRe:As,t:Ds}=Dn(),Uw=ws(),{compareIdentifiers:Gc}=Vc(),Yc=class r{constructor(e,t){if(t=Uw(t),e instanceof r){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Yh)throw new TypeError(`version is longer than ${Yh} characters`);Ts("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?As[Ds.LOOSE]:As[Ds.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>js||this.major<0)throw new TypeError("Invalid major version");if(this.minor>js||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>js||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let s=+i;if(s>=0&&s<js)return s}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(Ts("SemVer.compare",this.version,this.options,e),!(e instanceof r)){if(typeof e=="string"&&e===this.version)return 0;e=new r(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof r||(e=new r(e,this.options)),this.major<e.major?-1:this.major>e.major?1:this.minor<e.minor?-1:this.minor>e.minor?1:this.patch<e.patch?-1:this.patch>e.patch?1:0}comparePre(e){if(e instanceof r||(e=new r(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let n=this.prerelease[t],i=e.prerelease[t];if(Ts("prerelease compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Gc(n,i)}while(++t)}compareBuild(e){e instanceof r||(e=new r(e,this.options));let t=0;do{let n=this.build[t],i=e.build[t];if(Ts("build compare",t,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return Gc(n,i)}while(++t)}inc(e,t,n){if(e.startsWith("pre")){if(!t&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(t){let i=`-${t}`.match(this.options.loose?As[Ds.PRERELEASELOOSE]:As[Ds.PRERELEASE]);if(!i||i[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,n),this.inc("pre",t,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,n),this.inc("pre",t,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(t===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(t){let s=[t,i];n===!1&&(s=[t]),Gc(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Bh.exports=Yc});var Gr=h((qM,Uh)=>{"use strict";var Wh=Be(),zw=(r,e,t=!1)=>{if(r instanceof Wh)return r;try{return new Wh(r,e)}catch(n){if(!t)return null;throw n}};Uh.exports=zw});var $h=h((JM,zh)=>{"use strict";var $w=Gr(),Hw=(r,e)=>{let t=$w(r,e);return t?t.version:null};zh.exports=Hw});var Qh=h((FM,Hh)=>{"use strict";var Qw=Gr(),Zw=(r,e)=>{let t=Qw(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};Hh.exports=Zw});var ey=h((VM,Xh)=>{"use strict";var Zh=Be(),Xw=(r,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new Zh(r instanceof Zh?r.version:r,t).inc(e,n,i).version}catch{return null}};Xh.exports=Xw});var ny=h((GM,ry)=>{"use strict";var ty=Gr(),e1=(r,e)=>{let t=ty(r,null,!0),n=ty(e,null,!0),i=t.compare(n);if(i===0)return null;let s=i>0,a=s?t:n,o=s?n:t,l=!!a.prerelease.length;if(!!o.prerelease.length&&!l){if(!o.patch&&!o.minor)return"major";if(o.compareMain(a)===0)return o.minor&&!o.patch?"minor":"patch"}let u=l?"pre":"";return t.major!==n.major?u+"major":t.minor!==n.minor?u+"minor":t.patch!==n.patch?u+"patch":"prerelease"};ry.exports=e1});var sy=h((YM,iy)=>{"use strict";var t1=Be(),r1=(r,e)=>new t1(r,e).major;iy.exports=r1});var oy=h((BM,ay)=>{"use strict";var n1=Be(),i1=(r,e)=>new n1(r,e).minor;ay.exports=i1});var cy=h((WM,ly)=>{"use strict";var s1=Be(),a1=(r,e)=>new s1(r,e).patch;ly.exports=a1});var dy=h((UM,uy)=>{"use strict";var o1=Gr(),l1=(r,e)=>{let t=o1(r,e);return t&&t.prerelease.length?t.prerelease:null};uy.exports=l1});var kt=h((zM,fy)=>{"use strict";var py=Be(),c1=(r,e,t)=>new py(r,t).compare(new py(e,t));fy.exports=c1});var yy=h(($M,hy)=>{"use strict";var u1=kt(),d1=(r,e,t)=>u1(e,r,t);hy.exports=d1});var by=h((HM,my)=>{"use strict";var p1=kt(),f1=(r,e)=>p1(r,e,!0);my.exports=f1});var Os=h((QM,vy)=>{"use strict";var gy=Be(),h1=(r,e,t)=>{let n=new gy(r,t),i=new gy(e,t);return n.compare(i)||n.compareBuild(i)};vy.exports=h1});var Sy=h((ZM,Ky)=>{"use strict";var y1=Os(),m1=(r,e)=>r.sort((t,n)=>y1(t,n,e));Ky.exports=m1});var ky=h((XM,Ey)=>{"use strict";var b1=Os(),g1=(r,e)=>r.sort((t,n)=>b1(n,t,e));Ey.exports=g1});var ci=h((eP,Iy)=>{"use strict";var v1=kt(),K1=(r,e,t)=>v1(r,e,t)>0;Iy.exports=K1});var Rs=h((tP,xy)=>{"use strict";var S1=kt(),E1=(r,e,t)=>S1(r,e,t)<0;xy.exports=E1});var Bc=h((rP,wy)=>{"use strict";var k1=kt(),I1=(r,e,t)=>k1(r,e,t)===0;wy.exports=I1});var Wc=h((nP,Ty)=>{"use strict";var x1=kt(),w1=(r,e,t)=>x1(r,e,t)!==0;Ty.exports=w1});var Cs=h((iP,jy)=>{"use strict";var T1=kt(),j1=(r,e,t)=>T1(r,e,t)>=0;jy.exports=j1});var _s=h((sP,Ay)=>{"use strict";var A1=kt(),D1=(r,e,t)=>A1(r,e,t)<=0;Ay.exports=D1});var Uc=h((aP,Dy)=>{"use strict";var O1=Bc(),R1=Wc(),C1=ci(),_1=Cs(),M1=Rs(),P1=_s(),N1=(r,e,t,n)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return O1(r,t,n);case"!=":return R1(r,t,n);case">":return C1(r,t,n);case">=":return _1(r,t,n);case"<":return M1(r,t,n);case"<=":return P1(r,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Dy.exports=N1});var Ry=h((oP,Oy)=>{"use strict";var L1=Be(),q1=Gr(),{safeRe:Ms,t:Ps}=Dn(),J1=(r,e)=>{if(r instanceof L1)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(e.includePrerelease?Ms[Ps.COERCEFULL]:Ms[Ps.COERCE]);else{let l=e.includePrerelease?Ms[Ps.COERCERTLFULL]:Ms[Ps.COERCERTL],c;for(;(c=l.exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||c.index+c[0].length!==t.index+t[0].length)&&(t=c),l.lastIndex=c.index+c[1].length+c[2].length;l.lastIndex=-1}if(t===null)return null;let n=t[2],i=t[3]||"0",s=t[4]||"0",a=e.includePrerelease&&t[5]?`-${t[5]}`:"",o=e.includePrerelease&&t[6]?`+${t[6]}`:"";return q1(`${n}.${i}.${s}${a}${o}`,e)};Oy.exports=J1});var _y=h((lP,Cy)=>{"use strict";var zc=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(e,t)}return this}};Cy.exports=zc});var It=h((cP,Ly)=>{"use strict";var F1=/\s+/g,$c=class r{constructor(e,t){if(t=G1(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof Hc)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(F1," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!Py(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&H1(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let n=0;n<t.length;n++)n>0&&(this.formatted+=" "),this.formatted+=t[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let n=((this.options.includePrerelease&&z1)|(this.options.loose&&$1))+":"+e,i=My.get(n);if(i)return i;let s=this.options.loose,a=s?Ze[We.HYPHENRANGELOOSE]:Ze[We.HYPHENRANGE];e=e.replace(a,aT(this.options.includePrerelease)),ke("hyphen replace",e),e=e.replace(Ze[We.COMPARATORTRIM],B1),ke("comparator trim",e),e=e.replace(Ze[We.TILDETRIM],W1),ke("tilde trim",e),e=e.replace(Ze[We.CARETTRIM],U1),ke("caret trim",e);let o=e.split(" ").map(d=>Q1(d,this.options)).join(" ").split(/\s+/).map(d=>sT(d,this.options));s&&(o=o.filter(d=>(ke("loose invalid filter",d,this.options),!!d.match(Ze[We.COMPARATORLOOSE])))),ke("range list",o);let l=new Map,c=o.map(d=>new Hc(d,this.options));for(let d of c){if(Py(d))return[d];l.set(d.value,d)}l.size>1&&l.has("")&&l.delete("");let u=[...l.values()];return My.set(n,u),u}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(n=>Ny(n,t)&&e.set.some(i=>Ny(i,t)&&n.every(s=>i.every(a=>s.intersects(a,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Y1(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(oT(this.set[t],e,this.options))return!0;return!1}};Ly.exports=$c;var V1=_y(),My=new V1,G1=ws(),Hc=ui(),ke=li(),Y1=Be(),{safeRe:Ze,t:We,comparatorTrimReplace:B1,tildeTrimReplace:W1,caretTrimReplace:U1}=Dn(),{FLAG_INCLUDE_PRERELEASE:z1,FLAG_LOOSE:$1}=oi(),Py=r=>r.value==="<0.0.0-0",H1=r=>r.value==="",Ny=(r,e)=>{let t=!0,n=r.slice(),i=n.pop();for(;t&&n.length;)t=n.every(s=>i.intersects(s,e)),i=n.pop();return t},Q1=(r,e)=>(r=r.replace(Ze[We.BUILD],""),ke("comp",r,e),r=eT(r,e),ke("caret",r),r=Z1(r,e),ke("tildes",r),r=rT(r,e),ke("xrange",r),r=iT(r,e),ke("stars",r),r),Xe=r=>!r||r.toLowerCase()==="x"||r==="*",Z1=(r,e)=>r.trim().split(/\s+/).map(t=>X1(t,e)).join(" "),X1=(r,e)=>{let t=e.loose?Ze[We.TILDELOOSE]:Ze[We.TILDE];return r.replace(t,(n,i,s,a,o)=>{ke("tilde",r,n,i,s,a,o);let l;return Xe(i)?l="":Xe(s)?l=`>=${i}.0.0 <${+i+1}.0.0-0`:Xe(a)?l=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:o?(ke("replaceTilde pr",o),l=`>=${i}.${s}.${a}-${o} <${i}.${+s+1}.0-0`):l=`>=${i}.${s}.${a} <${i}.${+s+1}.0-0`,ke("tilde return",l),l})},eT=(r,e)=>r.trim().split(/\s+/).map(t=>tT(t,e)).join(" "),tT=(r,e)=>{ke("caret",r,e);let t=e.loose?Ze[We.CARETLOOSE]:Ze[We.CARET],n=e.includePrerelease?"-0":"";return r.replace(t,(i,s,a,o,l)=>{ke("caret",r,i,s,a,o,l);let c;return Xe(s)?c="":Xe(a)?c=`>=${s}.0.0${n} <${+s+1}.0.0-0`:Xe(o)?s==="0"?c=`>=${s}.${a}.0${n} <${s}.${+a+1}.0-0`:c=`>=${s}.${a}.0${n} <${+s+1}.0.0-0`:l?(ke("replaceCaret pr",l),s==="0"?a==="0"?c=`>=${s}.${a}.${o}-${l} <${s}.${a}.${+o+1}-0`:c=`>=${s}.${a}.${o}-${l} <${s}.${+a+1}.0-0`:c=`>=${s}.${a}.${o}-${l} <${+s+1}.0.0-0`):(ke("no pr"),s==="0"?a==="0"?c=`>=${s}.${a}.${o}${n} <${s}.${a}.${+o+1}-0`:c=`>=${s}.${a}.${o}${n} <${s}.${+a+1}.0-0`:c=`>=${s}.${a}.${o} <${+s+1}.0.0-0`),ke("caret return",c),c})},rT=(r,e)=>(ke("replaceXRanges",r,e),r.split(/\s+/).map(t=>nT(t,e)).join(" ")),nT=(r,e)=>{r=r.trim();let t=e.loose?Ze[We.XRANGELOOSE]:Ze[We.XRANGE];return r.replace(t,(n,i,s,a,o,l)=>{ke("xRange",r,n,i,s,a,o,l);let c=Xe(s),u=c||Xe(a),d=u||Xe(o),f=d;return i==="="&&f&&(i=""),l=e.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&f?(u&&(a=0),o=0,i===">"?(i=">=",u?(s=+s+1,a=0,o=0):(a=+a+1,o=0)):i==="<="&&(i="<",u?s=+s+1:a=+a+1),i==="<"&&(l="-0"),n=`${i+s}.${a}.${o}${l}`):u?n=`>=${s}.0.0${l} <${+s+1}.0.0-0`:d&&(n=`>=${s}.${a}.0${l} <${s}.${+a+1}.0-0`),ke("xRange return",n),n})},iT=(r,e)=>(ke("replaceStars",r,e),r.trim().replace(Ze[We.STAR],"")),sT=(r,e)=>(ke("replaceGTE0",r,e),r.trim().replace(Ze[e.includePrerelease?We.GTE0PRE:We.GTE0],"")),aT=r=>(e,t,n,i,s,a,o,l,c,u,d,f)=>(Xe(n)?t="":Xe(i)?t=`>=${n}.0.0${r?"-0":""}`:Xe(s)?t=`>=${n}.${i}.0${r?"-0":""}`:a?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,Xe(c)?l="":Xe(u)?l=`<${+c+1}.0.0-0`:Xe(d)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${d}-${f}`:r?l=`<${c}.${u}.${+d+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),oT=(r,e,t)=>{for(let n=0;n<r.length;n++)if(!r[n].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let n=0;n<r.length;n++)if(ke(r[n].semver),r[n].semver!==Hc.ANY&&r[n].semver.prerelease.length>0){let i=r[n].semver;if(i.major===e.major&&i.minor===e.minor&&i.patch===e.patch)return!0}return!1}return!0}});var ui=h((uP,Yy)=>{"use strict";var di=Symbol("SemVer ANY"),Xc=class r{static get ANY(){return di}constructor(e,t){if(t=qy(t),e instanceof r){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Zc("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===di?this.value="":this.value=this.operator+this.semver.version,Zc("comp",this)}parse(e){let t=this.options.loose?Jy[Fy.COMPARATORLOOSE]:Jy[Fy.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Vy(n[2],this.options.loose):this.semver=di}toString(){return this.value}test(e){if(Zc("Comparator.test",e,this.options.loose),this.semver===di||e===di)return!0;if(typeof e=="string")try{e=new Vy(e,this.options)}catch{return!1}return Qc(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Gy(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new Gy(this.value,t).test(e.semver):(t=qy(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Qc(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Qc(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Yy.exports=Xc;var qy=ws(),{safeRe:Jy,t:Fy}=Dn(),Qc=Uc(),Zc=li(),Vy=Be(),Gy=It()});var pi=h((dP,By)=>{"use strict";var lT=It(),cT=(r,e,t)=>{try{e=new lT(e,t)}catch{return!1}return e.test(r)};By.exports=cT});var Uy=h((pP,Wy)=>{"use strict";var uT=It(),dT=(r,e)=>new uT(r,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));Wy.exports=dT});var $y=h((fP,zy)=>{"use strict";var pT=Be(),fT=It(),hT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new fT(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===-1)&&(n=a,i=new pT(n,t))}),n};zy.exports=hT});var Qy=h((hP,Hy)=>{"use strict";var yT=Be(),mT=It(),bT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new mT(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===1)&&(n=a,i=new yT(n,t))}),n};Hy.exports=bT});var em=h((yP,Xy)=>{"use strict";var eu=Be(),gT=It(),Zy=ci(),vT=(r,e)=>{r=new gT(r,e);let t=new eu("0.0.0");if(r.test(t)||(t=new eu("0.0.0-0"),r.test(t)))return t;t=null;for(let n=0;n<r.set.length;++n){let i=r.set[n],s=null;i.forEach(a=>{let o=new eu(a.semver.version);switch(a.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!s||Zy(o,s))&&(s=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),s&&(!t||Zy(t,s))&&(t=s)}return t&&r.test(t)?t:null};Xy.exports=vT});var rm=h((mP,tm)=>{"use strict";var KT=It(),ST=(r,e)=>{try{return new KT(r,e).range||"*"}catch{return null}};tm.exports=ST});var Ns=h((bP,am)=>{"use strict";var ET=Be(),sm=ui(),{ANY:kT}=sm,IT=It(),xT=pi(),nm=ci(),im=Rs(),wT=_s(),TT=Cs(),jT=(r,e,t,n)=>{r=new ET(r,n),e=new IT(e,n);let i,s,a,o,l;switch(t){case">":i=nm,s=wT,a=im,o=">",l=">=";break;case"<":i=im,s=TT,a=nm,o="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(xT(r,e,n))return!1;for(let c=0;c<e.set.length;++c){let u=e.set[c],d=null,f=null;if(u.forEach(p=>{p.semver===kT&&(p=new sm(">=0.0.0")),d=d||p,f=f||p,i(p.semver,d.semver,n)?d=p:a(p.semver,f.semver,n)&&(f=p)}),d.operator===o||d.operator===l||(!f.operator||f.operator===o)&&s(r,f.semver))return!1;if(f.operator===l&&a(r,f.semver))return!1}return!0};am.exports=jT});var lm=h((gP,om)=>{"use strict";var AT=Ns(),DT=(r,e,t)=>AT(r,e,">",t);om.exports=DT});var um=h((vP,cm)=>{"use strict";var OT=Ns(),RT=(r,e,t)=>OT(r,e,"<",t);cm.exports=RT});var fm=h((KP,pm)=>{"use strict";var dm=It(),CT=(r,e,t)=>(r=new dm(r,t),e=new dm(e,t),r.intersects(e,t));pm.exports=CT});var ym=h((SP,hm)=>{"use strict";var _T=pi(),MT=kt();hm.exports=(r,e,t)=>{let n=[],i=null,s=null,a=r.sort((u,d)=>MT(u,d,t));for(let u of a)_T(u,e,t)?(s=u,i||(i=u)):(s&&n.push([i,s]),s=null,i=null);i&&n.push([i,null]);let o=[];for(let[u,d]of n)u===d?o.push(u):!d&&u===a[0]?o.push("*"):d?u===a[0]?o.push(`<=${d}`):o.push(`${u} - ${d}`):o.push(`>=${u}`);let l=o.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length<c.length?l:e}});var Sm=h((EP,Km)=>{"use strict";var mm=It(),ru=ui(),{ANY:tu}=ru,fi=pi(),nu=kt(),PT=(r,e,t={})=>{if(r===e)return!0;r=new mm(r,t),e=new mm(e,t);let n=!1;e:for(let i of r.set){for(let s of e.set){let a=LT(i,s,t);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},NT=[new ru(">=0.0.0-0")],bm=[new ru(">=0.0.0")],LT=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===tu){if(e.length===1&&e[0].semver===tu)return!0;t.includePrerelease?r=NT:r=bm}if(e.length===1&&e[0].semver===tu){if(t.includePrerelease)return!0;e=bm}let n=new Set,i,s;for(let p of r)p.operator===">"||p.operator===">="?i=gm(i,p,t):p.operator==="<"||p.operator==="<="?s=vm(s,p,t):n.add(p.semver);if(n.size>1)return null;let a;if(i&&s){if(a=nu(i.semver,s.semver,t),a>0)return null;if(a===0&&(i.operator!==">="||s.operator!=="<="))return null}for(let p of n){if(i&&!fi(p,String(i),t)||s&&!fi(p,String(s),t))return null;for(let y of e)if(!fi(p,String(y),t))return!1;return!0}let o,l,c,u,d=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1;d&&d.prerelease.length===1&&s.operator==="<"&&d.prerelease[0]===0&&(d=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",i){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator===">"||p.operator===">="){if(o=gm(i,p,t),o===p&&o!==i)return!1}else if(i.operator===">="&&!fi(i.semver,String(p),t))return!1}if(s){if(d&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===d.major&&p.semver.minor===d.minor&&p.semver.patch===d.patch&&(d=!1),p.operator==="<"||p.operator==="<="){if(l=vm(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!fi(s.semver,String(p),t))return!1}if(!p.operator&&(s||i)&&a!==0)return!1}return!(i&&c&&!s&&a!==0||s&&u&&!i&&a!==0||f||d)},gm=(r,e,t)=>{if(!r)return e;let n=nu(r.semver,e.semver,t);return n>0?r:n<0||e.operator===">"&&r.operator===">="?e:r},vm=(r,e,t)=>{if(!r)return e;let n=nu(r.semver,e.semver,t);return n<0?r:n>0||e.operator==="<"&&r.operator==="<="?e:r};Km.exports=PT});var xm=h((kP,Im)=>{"use strict";var iu=Dn(),Em=oi(),qT=Be(),km=Vc(),JT=Gr(),FT=$h(),VT=Qh(),GT=ey(),YT=ny(),BT=sy(),WT=oy(),UT=cy(),zT=dy(),$T=kt(),HT=yy(),QT=by(),ZT=Os(),XT=Sy(),ej=ky(),tj=ci(),rj=Rs(),nj=Bc(),ij=Wc(),sj=Cs(),aj=_s(),oj=Uc(),lj=Ry(),cj=ui(),uj=It(),dj=pi(),pj=Uy(),fj=$y(),hj=Qy(),yj=em(),mj=rm(),bj=Ns(),gj=lm(),vj=um(),Kj=fm(),Sj=ym(),Ej=Sm();Im.exports={parse:JT,valid:FT,clean:VT,inc:GT,diff:YT,major:BT,minor:WT,patch:UT,prerelease:zT,compare:$T,rcompare:HT,compareLoose:QT,compareBuild:ZT,sort:XT,rsort:ej,gt:tj,lt:rj,eq:nj,neq:ij,gte:sj,lte:aj,cmp:oj,coerce:lj,Comparator:cj,Range:uj,satisfies:dj,toComparators:pj,maxSatisfying:fj,minSatisfying:hj,minVersion:yj,validRange:mj,outside:bj,gtr:gj,ltr:vj,intersects:Kj,simplifyRange:Sj,subset:Ej,SemVer:qT,re:iu.re,src:iu.src,tokens:iu.t,SEMVER_SPEC_VERSION:Em.SEMVER_SPEC_VERSION,RELEASE_TYPES:Em.RELEASE_TYPES,compareIdentifiers:km.compareIdentifiers,rcompareIdentifiers:km.rcompareIdentifiers}});var ut=h($=>{"use strict";Object.defineProperty($,"__esModule",{value:!0});$.QUEUE_EVENT_SUFFIX=$.toString=$.errorToJSON=$.parseObjectValues=$.isRedisVersionLowerThan=$.childSend=$.asyncSend=$.DELAY_TIME_1=$.DELAY_TIME_5=$.clientCommandMessageReg=$.optsEncodeMap=$.optsDecodeMap=$.errorObject=void 0;$.tryCatch=xj;$.lengthInUtf8Bytes=wj;$.isEmpty=Tj;$.array2obj=jj;$.objectToFlatArray=Aj;$.delay=Dj;$.increaseMaxListeners=wm;$.invertObject=Tm;$.isRedisInstance=jm;$.isRedisCluster=Oj;$.decreaseMaxListeners=Rj;$.removeAllQueueData=Cj;$.getParentKey=_j;$.isNotConnectionError=Am;$.removeUndefinedFields=Gj;$.trace=Yj;$.randomUUID=Bj;var kj=us(),su=V("crypto"),Ij=Re(),au=xm(),ou=at();$.errorObject={value:null};function xj(r,e,t){try{return r.apply(e,t)}catch(n){return $.errorObject.value=n,$.errorObject}}function wj(r){return Buffer.byteLength(r,"utf8")}function Tj(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e))return!1;return!0}function jj(r){let e={};for(let t=0;t<r.length;t+=2)e[r[t]]=r[t+1];return e}function Aj(r){let e=[];for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&r[t]!==void 0&&(e[e.length]=t,e[e.length]=r[t]);return e}function Dj(r,e){return new Promise(t=>{let n,i=()=>{e?.signal.removeEventListener("abort",i),clearTimeout(n),t()};n=setTimeout(i,r),e?.signal.addEventListener("abort",i)})}function wm(r,e){let t=r.getMaxListeners();r.setMaxListeners(t+e)}function Tm(r){return Object.entries(r).reduce((e,[t,n])=>(e[n]=t,e),{})}$.optsDecodeMap={de:"deduplication",fpof:"failParentOnFailure",cpof:"continueParentOnFailure",idof:"ignoreDependencyOnFailure",kl:"keepLogs",rdof:"removeDependencyOnFailure"};$.optsEncodeMap=Object.assign(Object.assign({},Tm($.optsDecodeMap)),{debounce:"de"});function jm(r){return r?["connect","disconnect","duplicate"].every(t=>typeof r[t]=="function"):!1}function Oj(r){return jm(r)&&r.isCluster}function Rj(r,e){wm(r,-e)}async function Cj(r,e,t=process.env.BULLMQ_TEST_PREFIX||"bull"){if(r instanceof kj.Cluster)return Promise.resolve(!1);let n=`${t}:${e}:*`,i=[];await new Promise((s,a)=>{let o=r.scanStream({match:n});o.on("data",l=>{if(l.length){let c=r.pipeline();l.forEach(d=>{c.del(d)});let u=c.exec().catch(d=>{throw a(d),d});i.push(u)}}),o.on("end",()=>s()),o.on("error",l=>a(l))}),await Promise.all(i);try{await r.quit()}catch(s){if(Am(s))throw s}}function _j(r){if(r)return`${r.queue}:${r.id}`}$.clientCommandMessageReg=/ERR unknown command ['`]\s*client\s*['`]/;$.DELAY_TIME_5=5e3;$.DELAY_TIME_1=100;function Am(r){let{code:e,message:t}=r;return t!==Ij.CONNECTION_CLOSED_ERROR_MSG&&!t.includes("ECONNREFUSED")&&e!=="ECONNREFUSED"}var Mj=(r,e)=>new Promise((t,n)=>{typeof r.send=="function"?r.send(e,i=>{i?n(i):t()}):typeof r.postMessage=="function"?t(r.postMessage(e)):t()});$.asyncSend=Mj;var Pj=(r,e)=>(0,$.asyncSend)(r,e);$.childSend=Pj;var Nj=(r,e,t,n="redis")=>{if(t===n){let i=au.valid(au.coerce(r));return au.lt(i,e)}return!1};$.isRedisVersionLowerThan=Nj;var Lj=r=>{let e={};for(let t of Object.entries(r))e[t[0]]=JSON.parse(t[1]);return e};$.parseObjectValues=Lj;var qj=r=>{let e=new WeakSet;return e.add(r),(t,n)=>{if(typeof n=="object"&&n!==null){if(e.has(n))return"[Circular]";e.add(n)}return n}},Jj=r=>{let e={};return Object.getOwnPropertyNames(r).forEach(function(t){e[t]=r[t]}),JSON.parse(JSON.stringify(e,qj(r)))};$.errorToJSON=Jj;var Fj=1/0,Vj=r=>{if(r==null)return"";if(typeof r=="string")return r;if(Array.isArray(r))return`${r.map(t=>t==null?t:(0,$.toString)(t))}`;if(typeof r=="symbol"||Object.prototype.toString.call(r)=="[object Symbol]")return r.toString();let e=`${r}`;return e==="0"&&1/r===-Fj?"-0":e};$.toString=Vj;$.QUEUE_EVENT_SUFFIX=":qe";function Gj(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}async function Yj(r,e,t,n,i,s,a){if(r){let{tracer:o,contextManager:l}=r,c=l.active(),u;a&&(u=l.fromMetadata(c,a));let d=i?`${n} ${i}`:n,f=o.startSpan(d,{kind:e},u);try{f.setAttributes({[ou.TelemetryAttributes.QueueName]:t,[ou.TelemetryAttributes.QueueOperation]:n});let p,y;return e===ou.SpanKind.CONSUMER&&u?p=f.setSpanOnContext(u):p=f.setSpanOnContext(c),s.length==2&&(y=l.getMetadata(p)),await l.with(p,()=>s(f,y))}catch(p){throw f.recordException(p),p}finally{f.end()}}else return s()}function Bj(){if(typeof su.randomUUID=="function")return(0,su.randomUUID)();let r=(0,su.randomBytes)(16);return r[6]=r[6]&15|64,r[8]=r[8]&63|128,[r.toString("hex",0,4),r.toString("hex",4,6),r.toString("hex",6,8),r.toString("hex",8,10),r.toString("hex",10,16)].join("-")}});var Dm=h(Ls=>{"use strict";Object.defineProperty(Ls,"__esModule",{value:!0});Ls.ChildProcessor=void 0;var Wj=xs(),et=at(),lu=ut(),Er;(function(r){r[r.Idle=0]="Idle",r[r.Started=1]="Started",r[r.Terminating=2]="Terminating",r[r.Errored=3]="Errored"})(Er||(Er={}));var hi=process.env.NODE_ENV==="test"?500:5e3,cu=class{constructor(e,t){this.send=e,this.receiver=t}async init(e){let t;try{let{default:i}=await import(e);if(t=i,t.default&&(t=t.default),typeof t!="function")throw new Error("No function is exported in processor file")}catch(i){return this.status=Er.Errored,this.send({cmd:et.ParentCommand.InitFailed,err:(0,lu.errorToJSON)(i)})}let n=t;t=function(i,s,a){try{return Promise.resolve(n(i,s,a))}catch(o){return Promise.reject(o)}},this.processor=t,this.status=Er.Idle,await this.send({cmd:et.ParentCommand.InitCompleted})}async start(e,t){if(this.status!==Er.Idle)return this.send({cmd:et.ParentCommand.Error,err:(0,lu.errorToJSON)(new Error("cannot start a not idling child process"))});this.status=Er.Started,this.abortController=new Wj.AbortController,this.currentJobPromise=(async()=>{try{let n=this.wrapJob(e,this.send),i=await this.processor(n,t,this.abortController.signal);await this.send({cmd:et.ParentCommand.Completed,value:typeof i>"u"?null:i})}catch(n){await this.send({cmd:et.ParentCommand.Failed,value:(0,lu.errorToJSON)(n.message?n:new Error(n))})}finally{this.status=Er.Idle,this.currentJobPromise=void 0,this.abortController=void 0}})()}cancel(e){this.abortController&&this.abortController.abort(e)}async stop(){}async waitForCurrentJobAndExit(){this.status=Er.Terminating;try{await this.currentJobPromise}finally{process.exit(process.exitCode||0)}}wrapJob(e,t){let n=Object.assign(Object.assign({},e),{queueQualifiedName:e.queueQualifiedName,data:JSON.parse(e.data||"{}"),opts:e.opts,returnValue:JSON.parse(e.returnvalue||"{}"),async updateProgress(i){this.progress=i,await t({cmd:et.ParentCommand.Progress,value:i})},log:async i=>{await t({cmd:et.ParentCommand.Log,value:i})},moveToDelayed:async(i,s)=>{await t({cmd:et.ParentCommand.MoveToDelayed,value:{timestamp:i,token:s}})},moveToWait:async i=>{await t({cmd:et.ParentCommand.MoveToWait,value:{token:i}})},moveToWaitingChildren:async(i,s)=>{let a=Math.random().toString(36).substring(2,15);return await t({requestId:a,cmd:et.ParentCommand.MoveToWaitingChildren,value:{token:i,opts:s}}),yi(a,this.receiver,hi,"moveToWaitingChildren")},updateData:async i=>{await t({cmd:et.ParentCommand.Update,value:i}),n.data=i},getChildrenValues:async()=>{let i=Math.random().toString(36).substring(2,15);return await t({requestId:i,cmd:et.ParentCommand.GetChildrenValues}),yi(i,this.receiver,hi,"getChildrenValues")},getIgnoredChildrenFailures:async()=>{let i=Math.random().toString(36).substring(2,15);return await t({requestId:i,cmd:et.ParentCommand.GetIgnoredChildrenFailures}),yi(i,this.receiver,hi,"getIgnoredChildrenFailures")},getDependenciesCount:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependenciesCount,value:i}),yi(s,this.receiver,hi,"getDependenciesCount")},getDependencies:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependencies,value:i}),yi(s,this.receiver,hi,"getDependencies")}});return n}};Ls.ChildProcessor=cu;var yi=async(r,e,t,n)=>new Promise((i,s)=>{let a=o=>{o.requestId===r&&(i(o.value),e.off("message",a))};e.on("message",a),setTimeout(()=>{e.off("message",a),s(new Error(`TimeoutError: ${n} timed out in (${t}ms)`))},t)})});var Om=h(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.DelayedError=Yr.DELAYED_ERROR=void 0;Yr.DELAYED_ERROR="bullmq:movedToDelayed";var uu=class extends Error{constructor(e=Yr.DELAYED_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Yr.DelayedError=uu});var Rm=h(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.RateLimitError=Br.RATE_LIMIT_ERROR=void 0;Br.RATE_LIMIT_ERROR="bullmq:rateLimitExceeded";var du=class extends Error{constructor(e=Br.RATE_LIMIT_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Br.RateLimitError=du});var fu=h(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.UnrecoverableError=Wr.UNRECOVERABLE_ERROR=void 0;Wr.UNRECOVERABLE_ERROR="bullmq:unrecoverable";var pu=class extends Error{constructor(e=Wr.UNRECOVERABLE_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Wr.UnrecoverableError=pu});var Cm=h(Ur=>{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.WaitingChildrenError=Ur.WAITING_CHILDREN_ERROR=void 0;Ur.WAITING_CHILDREN_ERROR="bullmq:movedToWaitingChildren";var hu=class extends Error{constructor(e=Ur.WAITING_CHILDREN_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Ur.WaitingChildrenError=hu});var _m=h(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.WaitingError=zr.WAITING_ERROR=void 0;zr.WAITING_ERROR="bullmq:movedToWait";var yu=class extends Error{constructor(e=zr.WAITING_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};zr.WaitingError=yu});var qs=h($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});var mi=(Qe(),it(He));mi.__exportStar(Om(),$r);mi.__exportStar(Rm(),$r);mi.__exportStar(fu(),$r);mi.__exportStar(Cm(),$r);mi.__exportStar(_m(),$r)});var Nm=h((RP,Pm)=>{"use strict";var Mm=()=>process.platform==="linux",Js=null,Uj=()=>{if(!Js)if(Mm()&&process.report){let r=process.report.excludeNetwork;process.report.excludeNetwork=!0,Js=process.report.getReport(),process.report.excludeNetwork=r}else Js={};return Js};Pm.exports={isLinux:Mm,getReport:Uj}});var qm=h((CP,Lm)=>{"use strict";var On=V("fs"),zj="/usr/bin/ldd",$j="/proc/self/exe",Fs=2048,Hj=r=>{let e=On.openSync(r,"r"),t=Buffer.alloc(Fs),n=On.readSync(e,t,0,Fs,0);return On.close(e,()=>{}),t.subarray(0,n)},Qj=r=>new Promise((e,t)=>{On.open(r,"r",(n,i)=>{if(n)t(n);else{let s=Buffer.alloc(Fs);On.read(i,s,0,Fs,0,(a,o)=>{e(s.subarray(0,o)),On.close(i,()=>{})})}})});Lm.exports={LDD_PATH:zj,SELF_PATH:$j,readFileSync:Hj,readFile:Qj}});var Fm=h((_P,Jm)=>{"use strict";var Zj=r=>{if(r.length<64||r.readUInt32BE(0)!==2135247942||r.readUInt8(4)!==2||r.readUInt8(5)!==1)return null;let e=r.readUInt32LE(32),t=r.readUInt16LE(54),n=r.readUInt16LE(56);for(let i=0;i<n;i++){let s=e+i*t;if(r.readUInt32LE(s)===3){let o=r.readUInt32LE(s+8),l=r.readUInt32LE(s+32);return r.subarray(o,o+l).toString().replace(/\0.*$/g,"")}}return null};Jm.exports={interpreterPath:Zj}});var ab=h((MP,sb)=>{"use strict";var Gm=V("child_process"),{isLinux:Rn,getReport:Ym}=Nm(),{LDD_PATH:Vs,SELF_PATH:Bm,readFile:mu,readFileSync:bu}=qm(),{interpreterPath:Wm}=Fm(),Vt,Gt,Yt,Um="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",kr="",zm=()=>kr||new Promise(r=>{Gm.exec(Um,(e,t)=>{kr=e?" ":t,r(kr)})}),$m=()=>{if(!kr)try{kr=Gm.execSync(Um,{encoding:"utf8"})}catch{kr=" "}return kr},er="glibc",Hm=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Hr="musl",Xj=r=>r.includes("libc.musl-")||r.includes("ld-musl-"),Qm=()=>{let r=Ym();return r.header&&r.header.glibcVersionRuntime?er:Array.isArray(r.sharedObjects)&&r.sharedObjects.some(Xj)?Hr:null},Zm=r=>{let[e,t]=r.split(/[\r\n]+/);return e&&e.includes(er)?er:t&&t.includes(Hr)?Hr:null},Xm=r=>{if(r){if(r.includes("/ld-musl-"))return Hr;if(r.includes("/ld-linux-"))return er}return null},eb=r=>(r=r.toString(),r.includes("musl")?Hr:r.includes("GNU C Library")?er:null),eA=async()=>{if(Gt!==void 0)return Gt;Gt=null;try{let r=await mu(Vs);Gt=eb(r)}catch{}return Gt},tA=()=>{if(Gt!==void 0)return Gt;Gt=null;try{let r=bu(Vs);Gt=eb(r)}catch{}return Gt},rA=async()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=await mu(Bm),e=Wm(r);Vt=Xm(e)}catch{}return Vt},nA=()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=bu(Bm),e=Wm(r);Vt=Xm(e)}catch{}return Vt},tb=async()=>{let r=null;if(Rn()&&(r=await rA(),!r&&(r=await eA(),r||(r=Qm()),!r))){let e=await zm();r=Zm(e)}return r},rb=()=>{let r=null;if(Rn()&&(r=nA(),!r&&(r=tA(),r||(r=Qm()),!r))){let e=$m();r=Zm(e)}return r},iA=async()=>Rn()&&await tb()!==er,sA=()=>Rn()&&rb()!==er,aA=async()=>{if(Yt!==void 0)return Yt;Yt=null;try{let e=(await mu(Vs)).match(Hm);e&&(Yt=e[1])}catch{}return Yt},oA=()=>{if(Yt!==void 0)return Yt;Yt=null;try{let e=bu(Vs).match(Hm);e&&(Yt=e[1])}catch{}return Yt},nb=()=>{let r=Ym();return r.header&&r.header.glibcVersionRuntime?r.header.glibcVersionRuntime:null},Vm=r=>r.trim().split(/\s+/)[1],ib=r=>{let[e,t,n]=r.split(/[\r\n]+/);return e&&e.includes(er)?Vm(e):t&&n&&t.includes(Hr)?Vm(n):null},lA=async()=>{let r=null;if(Rn()&&(r=await aA(),r||(r=nb()),!r)){let e=await zm();r=ib(e)}return r},cA=()=>{let r=null;if(Rn()&&(r=oA(),r||(r=nb()),!r)){let e=$m();r=ib(e)}return r};sb.exports={GLIBC:er,MUSL:Hr,family:tb,familySync:rb,isNonGlibcLinux:iA,isNonGlibcLinuxSync:sA,version:lA,versionSync:cA}});var Kb=h((PP,vb)=>{var uA=V("fs"),Ot=V("path"),dA=V("url"),cb=V("os"),ub=typeof __webpack_require__=="function"?__non_webpack_require__:V,pA=process.config&&process.config.variables||{},fA=!!process.env.PREBUILDS_ONLY,Eu=process.versions,vu=Eu.modules;(Eu.deno||process.isBun)&&(vu="unsupported");var gu=mA()?"electron":yA()?"node-webkit":"node",Gs=process.env.npm_config_arch||cb.arch(),Ys=process.env.npm_config_platform||cb.platform(),db=process.env.LIBC||(bA(Ys)?"musl":"glibc"),Ku=process.env.ARM_VERSION||(Gs==="arm64"?"8":pA.arm_version)||"",pb=(Eu.uv||"").split(".")[0];vb.exports=Bt;function Bt(r){return ub(Bt.resolve(r))}Bt.resolve=Bt.path=function(r){r=Ot.resolve(r||".");var e="",t;try{e=ub(Ot.join(r,"package.json")).name;var n=e.toUpperCase().replace(/-/g,"_");process.env[n+"_PREBUILD"]&&(r=process.env[n+"_PREBUILD"])}catch(g){t=g}if(!fA){var i=ob(Ot.join(r,"build/Release"),lb);if(i)return i;var s=ob(Ot.join(r,"build/Debug"),lb);if(s)return s}var a=p(r);if(a)return a;var o=p(Ot.dirname(process.execPath));if(o)return o;var l=(e[0]=="@"?"":"@"+e+"/")+e+"-"+Ys+"-"+Gs,c;try{var u=Ot.dirname(V("module").createRequire(dA.pathToFileURL(Ot.join(r,"package.json"))).resolve(l));return y(u)}catch(g){c=g}var d=["platform="+Ys,"arch="+Gs,"runtime="+gu,"abi="+vu,"uv="+pb,Ku?"armv="+Ku:"","libc="+db,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"",typeof __webpack_require__=="function"?"webpack=true":""].filter(Boolean).join(" ");let f="No native build was found for "+d+`
|
|
162
162
|
attempted loading from: `+r+" and package: "+l+`
|
|
163
163
|
`;throw t&&(f+="Error finding package.json: "+t.message+`
|
|
164
164
|
`),c&&(f+="Error resolving package: "+c.message+`
|
|
165
|
-
`),new Error(f);function p(g){var E=Sd(Ot.join(g,"prebuilds")).map(pb),S=E.filter(fb(Ys,Gs)).sort(hb)[0];if(S)return y(Ot.join(g,"prebuilds",S.name))}function y(g){var E=Sd(g).map(yb),S=E.filter(mb(gd,vd)),x=S.sort(bb(gd))[0];if(x)return Ot.join(g,x.file)}};function Sd(r){try{return sA.readdirSync(r)}catch{return[]}}function ab(r,e){var t=Sd(r).filter(e);return t[0]&&Ot.join(r,t[0])}function ob(r){return/\.node$/.test(r)}function pb(r){var e=r.split("-");if(e.length===2){var t=e[0],n=e[1].split("+");if(t&&n.length&&n.every(Boolean))return{name:r,platform:t,architectures:n}}}function fb(r,e){return function(t){return t==null||t.platform!==r?!1:t.architectures.includes(e)}}function hb(r,e){return r.architectures.length-e.architectures.length}function yb(r){var e=r.split("."),t=e.pop(),n={file:r,specificity:0};if(t==="node"){for(var i=0;i<e.length;i++){var s=e[i];if(s==="node"||s==="electron"||s==="node-webkit")n.runtime=s;else if(s==="napi")n.napi=!0;else if(s.slice(0,3)==="abi")n.abi=s.slice(3);else if(s.slice(0,2)==="uv")n.uv=s.slice(2);else if(s.slice(0,4)==="armv")n.armv=s.slice(4);else if(s==="glibc"||s==="musl")n.libc=s;else continue;n.specificity++}return n}}function mb(r,e){return function(t){return!(t==null||t.runtime!==r&&!cA(t)||t.abi!==e&&!t.napi||t.uv&&t.uv!==ub||t.armv&&t.armv!==Kd||t.libc&&t.libc!==db)}}function cA(r){return r.runtime==="node"&&r.napi}function bb(r){return function(e,t){return e.runtime!==t.runtime?e.runtime===r?-1:1:e.abi!==t.abi?e.abi?-1:1:e.specificity!==t.specificity?e.specificity>t.specificity?-1:1:0}}function dA(){return!!(process.versions&&process.versions.nw)}function uA(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}function pA(r){if(r!=="linux")return!1;let{familySync:e,MUSL:t}=sb();return e()===t}Bt.parseTags=yb;Bt.matchTags=mb;Bt.compareTags=bb;Bt.parseTuple=pb;Bt.matchTuple=fb;Bt.compareTuples=hb});var Kb=h((AP,Id)=>{var kd=typeof __webpack_require__=="function"?__non_webpack_require__:V;typeof kd.addon=="function"?Id.exports=kd.addon.bind(kd):Id.exports=vb()});var Eb=h((OP,Sb)=>{Sb.exports=Kb()(__dirname)});var eg=h(de=>{"use strict";var Nb=V("stream"),fA=V("module"),Td;try{Td=new TextDecoder}catch{}var _,ft,b=0,Ad=[],Zr=Ad,gi=0,he={},oe,tr,pt=0,xt=0,Me,rr,ze=[],ae,kb={useRecords:!1,mapsAsObjects:!0},zs=class{},Dd=new zs;Dd.name="MessagePack 0xC1";var Ir=!1,Ib=2,nr=class r{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.sequential&&e.trusted!==!1&&(e.trusted=!0,!e.structures&&e.useRecords!=!1&&(e.structures=[],e.maxSharedStructures||(e.maxSharedStructures=0))),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0),e.int64AsNumber&&(e.int64AsType="number")),Object.assign(this,e)}unpack(e,t){if(_)return Wb(()=>(Hs(),this?this.unpack(e,t):r.prototype.unpack.call(kb,e,t)));!e.buffer&&e.constructor===ArrayBuffer&&(e=typeof Buffer<"u"?Buffer.from(e):new Uint8Array(e)),typeof t=="object"?(ft=t.end||e.length,b=t.start||0):(b=0,ft=t>-1?t:e.length),gi=0,xt=0,tr=null,Zr=Ad,Me=null,_=e;try{ae=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(n){throw _=null,e instanceof Uint8Array?n:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof r){if(he=this,this.structures)return oe=this.structures,Bs(t);(!oe||oe.length>0)&&(oe=[])}else he=kb,(!oe||oe.length>0)&&(oe=[]);return Bs(t)}unpackMultiple(e,t){let n,i=0;try{Ir=!0;let s=e.length,a=this?this.unpack(e,s):ra.unpack(e,s);if(t){if(t(a,i,b)===!1)return;for(;b<s;)if(i=b,t(Bs(),i,b)===!1)return}else{for(n=[a];b<s;)i=b,n.push(Bs());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Ir=!1,Hs()}}_mergeStructures(e,t){this._onLoadedStructures&&(e=this._onLoadedStructures(e)),e=e||[],Object.isFrozen(e)&&(e=e.map(n=>n.slice(0)));for(let n=0,i=e.length;n<i;n++){let s=e[n];s&&(s.isShared=!0,n>=32&&(s.highByte=n-32>>5))}e.sharedLength=e.length;for(let n in t||[])if(n>=0){let i=e[n],s=t[n];s&&(i&&((e.restoreStructures||(e.restoreStructures=[]))[n]=i),e[n]=s)}return this.structures=e}decode(e,t){return this.unpack(e,t)}};function Bs(r){try{if(!he.trusted&&!Ir){let t=oe.sharedLength||0;t<oe.length&&(oe.length=t)}let e;if(he._readStruct&&_[b]<64&&_[b]>=32?(e=he._readStruct(_,b,ft),_=null,!(r&&r.lazy)&&e&&(e=e.toJSON()),b=ft):e=De(),Me&&(b=Me.postBundlePosition,Me=null),Ir&&(oe.restoreStructures=null),b==ft)oe&&oe.restoreStructures&&xb(),oe=null,_=null,rr&&(rr=null);else{if(b>ft)throw new Error("Unexpected end of MessagePack data");if(!Ir){let t;try{t=JSON.stringify(e,(n,i)=>typeof i=="bigint"?`${i}n`:i).slice(0,100)}catch(n){t="(JSON view not available "+n+")"}throw new Error("Data read, but end of buffer not reached "+t)}}return e}catch(e){throw oe&&oe.restoreStructures&&xb(),Hs(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")||b>ft)&&(e.incomplete=!0),e}}function xb(){for(let r in oe.restoreStructures)oe[r]=oe.restoreStructures[r];oe.restoreStructures=null}function De(){let r=_[b++];if(r<160)if(r<128){if(r<64)return r;{let e=oe[r&63]||he.getStructures&&qb()[r&63];return e?(e.read||(e.read=Od(e,r&63)),e.read()):r}}else if(r<144)if(r-=128,he.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=Gb();n==="__proto__"&&(n="__proto_"),e[n]=De()}return e}else{let e=new Map;for(let t=0;t<r;t++)e.set(De(),De());return e}else{r-=144;let e=new Array(r);for(let t=0;t<r;t++)e[t]=De();return he.freezeData?Object.freeze(e):e}else if(r<192){let e=r-160;if(xt>=b)return tr.slice(b-pt,(b+=e)-pt);if(xt==0&&ft<140){let t=e<16?Rd(e):Vb(e);if(t!=null)return t}return $s(e)}else{let e;switch(r){case 192:return null;case 193:return Me?(e=De(),e>0?Me[1].slice(Me.position1,Me.position1+=e):Me[0].slice(Me.position0,Me.position0-=e)):Dd;case 194:return!1;case 195:return!0;case 196:if(e=_[b++],e===void 0)throw new Error("Unexpected end of buffer");return xd(e);case 197:return e=ae.getUint16(b),b+=2,xd(e);case 198:return e=ae.getUint32(b),b+=4,xd(e);case 199:return Qr(_[b++]);case 200:return e=ae.getUint16(b),b+=2,Qr(e);case 201:return e=ae.getUint32(b),b+=4,Qr(e);case 202:if(e=ae.getFloat32(b),he.useFloat32>2){let t=ta[(_[b]&127)<<1|_[b+1]>>7];return b+=4,(t*e+(e>0?.5:-.5)>>0)/t}return b+=4,e;case 203:return e=ae.getFloat64(b),b+=8,e;case 204:return _[b++];case 205:return e=ae.getUint16(b),b+=2,e;case 206:return e=ae.getUint32(b),b+=4,e;case 207:return he.int64AsType==="number"?(e=ae.getUint32(b)*4294967296,e+=ae.getUint32(b+4)):he.int64AsType==="string"?e=ae.getBigUint64(b).toString():he.int64AsType==="auto"?(e=ae.getBigUint64(b),e<=BigInt(2)<<BigInt(52)&&(e=Number(e))):e=ae.getBigUint64(b),b+=8,e;case 208:return ae.getInt8(b++);case 209:return e=ae.getInt16(b),b+=2,e;case 210:return e=ae.getInt32(b),b+=4,e;case 211:return he.int64AsType==="number"?(e=ae.getInt32(b)*4294967296,e+=ae.getUint32(b+4)):he.int64AsType==="string"?e=ae.getBigInt64(b).toString():he.int64AsType==="auto"?(e=ae.getBigInt64(b),e>=BigInt(-2)<<BigInt(52)&&e<=BigInt(2)<<BigInt(52)&&(e=Number(e))):e=ae.getBigInt64(b),b+=8,e;case 212:if(e=_[b++],e==114)return Ob(_[b++]&63);{let t=ze[e];if(t)return t.read?(b++,t.read(De())):t.noBuffer?(b++,t()):t(_.subarray(b,++b));throw new Error("Unknown extension "+e)}case 213:return e=_[b],e==114?(b++,Ob(_[b++]&63,_[b++])):Qr(2);case 214:return Qr(4);case 215:return Qr(8);case 216:return Qr(16);case 217:return e=_[b++],xt>=b?tr.slice(b-pt,(b+=e)-pt):Jb(e);case 218:return e=ae.getUint16(b),b+=2,xt>=b?tr.slice(b-pt,(b+=e)-pt):Lb(e);case 219:return e=ae.getUint32(b),b+=4,xt>=b?tr.slice(b-pt,(b+=e)-pt):Fb(e);case 220:return e=ae.getUint16(b),b+=2,jb(e);case 221:return e=ae.getUint32(b),b+=4,jb(e);case 222:return e=ae.getUint16(b),b+=2,Tb(e);case 223:return e=ae.getUint32(b),b+=4,Tb(e);default:if(r>=224)return r-256;if(r===void 0){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}throw new Error("Unknown MessagePack token "+r)}}}var hA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Od(r,e){function t(){if(t.count++>Ib){let i;try{i=r.read=new Function("r","return function(){return "+(he.freezeData?"Object.freeze":"")+"({"+r.map(s=>s==="__proto__"?"__proto_:r()":hA.test(s)?s+":r()":"["+JSON.stringify(s)+"]:r()").join(",")+"})}")(De)}catch{return Ib=1/0,t()}return r.highByte===0&&(r.read=wb(e,r.read)),i()}let n={};for(let i=0,s=r.length;i<s;i++){let a=r[i];a==="__proto__"&&(a="__proto_"),n[a]=De()}return he.freezeData?Object.freeze(n):n}return t.count=0,r.highByte===0?wb(e,t):t}var wb=(r,e)=>function(){let t=_[b++];if(t===0)return e();let n=r<32?-(r+(t<<5)):r+(t<<5),i=oe[n]||qb()[n];if(!i)throw new Error("Record id is not defined for "+n);return i.read||(i.read=Od(i,r)),i.read()};function qb(){let r=Wb(()=>(_=null,he.getStructures()));return oe=he._mergeStructures(r,oe)}var $s=Mn,Jb=Mn,Lb=Mn,Fb=Mn;de.isNativeAccelerationEnabled=!1;function yA(r){de.isNativeAccelerationEnabled=!0,$s=e(1),Jb=e(2),Lb=e(3),Fb=e(5);function e(t){return function(i){let s=Zr[gi++];if(s==null){if(Me)return Mn(i);let o=_.byteOffset,l=r(b-t+o,ft+o,_.buffer);if(typeof l=="string")s=l,Zr=Ad;else if(Zr=l,gi=1,xt=1,s=Zr[0],s===void 0)throw new Error("Unexpected end of buffer")}let a=s.length;return a<=i?(b+=i,s):(tr=s,pt=b,xt=b+a,b+=i,s.slice(0,i))}}}function Mn(r){let e;if(r<16&&(e=Rd(r)))return e;if(r>64&&Td)return Td.decode(_.subarray(b,b+=r));let t=b+r,n=[];for(e="";b<t;){let i=_[b++];if((i&128)===0)n.push(i);else if((i&224)===192){let s=_[b++]&63,a=(i&31)<<6|s;a<128?n.push(65533):n.push(a)}else if((i&240)===224){let s=_[b++]&63,a=_[b++]&63,o=(i&31)<<12|s<<6|a;o<2048||o>=55296&&o<=57343?n.push(65533):n.push(o)}else if((i&248)===240){let s=_[b++]&63,a=_[b++]&63,o=_[b++]&63,l=(i&7)<<18|s<<12|a<<6|o;l<65536||l>1114111?n.push(65533):(l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|l&1023),n.push(l))}else n.push(65533);n.length>=4096&&(e+=Le.apply(String,n),n.length=0)}return n.length>0&&(e+=Le.apply(String,n)),e}function jb(r){let e=new Array(r);for(let t=0;t<r;t++)e[t]=De();return he.freezeData?Object.freeze(e):e}function Tb(r){if(he.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=Gb();n==="__proto__"&&(n="__proto_"),e[n]=De()}return e}else{let e=new Map;for(let t=0;t<r;t++)e.set(De(),De());return e}}var Le=String.fromCharCode;function Vb(r){let e=b,t=new Array(r);for(let n=0;n<r;n++){let i=_[b++];if((i&128)>0){b=e;return}t[n]=i}return Le.apply(String,t)}function Rd(r){if(r<4)if(r<2){if(r===0)return"";{let e=_[b++];if((e&128)>1){b-=1;return}return Le(e)}}else{let e=_[b++],t=_[b++];if((e&128)>0||(t&128)>0){b-=2;return}if(r<3)return Le(e,t);let n=_[b++];if((n&128)>0){b-=3;return}return Le(e,t,n)}else{let e=_[b++],t=_[b++],n=_[b++],i=_[b++];if((e&128)>0||(t&128)>0||(n&128)>0||(i&128)>0){b-=4;return}if(r<6){if(r===4)return Le(e,t,n,i);{let s=_[b++];if((s&128)>0){b-=5;return}return Le(e,t,n,i,s)}}else if(r<8){let s=_[b++],a=_[b++];if((s&128)>0||(a&128)>0){b-=6;return}if(r<7)return Le(e,t,n,i,s,a);let o=_[b++];if((o&128)>0){b-=7;return}return Le(e,t,n,i,s,a,o)}else{let s=_[b++],a=_[b++],o=_[b++],l=_[b++];if((s&128)>0||(a&128)>0||(o&128)>0||(l&128)>0){b-=8;return}if(r<10){if(r===8)return Le(e,t,n,i,s,a,o,l);{let c=_[b++];if((c&128)>0){b-=9;return}return Le(e,t,n,i,s,a,o,l,c)}}else if(r<12){let c=_[b++],d=_[b++];if((c&128)>0||(d&128)>0){b-=10;return}if(r<11)return Le(e,t,n,i,s,a,o,l,c,d);let u=_[b++];if((u&128)>0){b-=11;return}return Le(e,t,n,i,s,a,o,l,c,d,u)}else{let c=_[b++],d=_[b++],u=_[b++],f=_[b++];if((c&128)>0||(d&128)>0||(u&128)>0||(f&128)>0){b-=12;return}if(r<14){if(r===12)return Le(e,t,n,i,s,a,o,l,c,d,u,f);{let p=_[b++];if((p&128)>0){b-=13;return}return Le(e,t,n,i,s,a,o,l,c,d,u,f,p)}}else{let p=_[b++],y=_[b++];if((p&128)>0||(y&128)>0){b-=14;return}if(r<15)return Le(e,t,n,i,s,a,o,l,c,d,u,f,p,y);let g=_[b++];if((g&128)>0){b-=15;return}return Le(e,t,n,i,s,a,o,l,c,d,u,f,p,y,g)}}}}}function Ab(){let r=_[b++],e;if(r<192)e=r-160;else switch(r){case 217:e=_[b++];break;case 218:e=ae.getUint16(b),b+=2;break;case 219:e=ae.getUint32(b),b+=4;break;default:throw new Error("Expected string")}return Mn(e)}function xd(r){return he.copyBuffers?Uint8Array.prototype.slice.call(_,b,b+=r):_.subarray(b,b+=r)}function Qr(r){let e=_[b++];if(ze[e]){let t;return ze[e](_.subarray(b,t=b+=r),n=>{b=n;try{return De()}finally{b=t}})}else throw new Error("Unknown extension type "+e)}var Db=new Array(4096);function Gb(){let r=_[b++];if(r>=160&&r<192){if(r=r-160,xt>=b)return tr.slice(b-pt,(b+=r)-pt);if(!(xt==0&&ft<180))return $s(r)}else return b--,Yb(De());let e=(r<<5^(r>1?ae.getUint16(b):r>0?_[b]:0))&4095,t=Db[e],n=b,i=b+r-3,s,a=0;if(t&&t.bytes==r){for(;n<i;){if(s=ae.getUint32(n),s!=t[a++]){n=1879048192;break}n+=4}for(i+=3;n<i;)if(s=_[n++],s!=t[a++]){n=1879048192;break}if(n===i)return b=n,t.string;i-=3,n=b}for(t=[],Db[e]=t,t.bytes=r;n<i;)s=ae.getUint32(n),t.push(s),n+=4;for(i+=3;n<i;)s=_[n++],t.push(s);let o=r<16?Rd(r):Vb(r);return o!=null?t.string=o:t.string=$s(r)}function Yb(r){if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean"||typeof r=="bigint")return r.toString();if(r==null)return r+"";if(he.allowArraysInMapKeys&&Array.isArray(r)&&r.flat().every(e=>["string","number","boolean","bigint"].includes(typeof e)))return r.flat().toString();throw new Error(`Invalid property type for record: ${typeof r}`)}var Ob=(r,e)=>{let t=De().map(Yb),n=r;e!==void 0&&(r=r<32?-((e<<5)+r):(e<<5)+r,t.highByte=e);let i=oe[r];return i&&(i.isShared||Ir)&&((oe.restoreStructures||(oe.restoreStructures=[]))[r]=i),oe[r]=t,t.read=Od(t,n),t.read()};ze[0]=()=>{};ze[0].noBuffer=!0;ze[66]=r=>{let e=r.byteLength%8||8,t=BigInt(r[0]&128?r[0]-256:r[0]);for(let n=1;n<e;n++)t<<=BigInt(8),t+=BigInt(r[n]);if(r.byteLength!==e){let n=new DataView(r.buffer,r.byteOffset,r.byteLength),i=(s,a)=>{let o=a-s;if(o<=40){let u=n.getBigUint64(s);for(let f=s+8;f<a;f+=8)u<<=BigInt(64),u|=n.getBigUint64(f);return u}let l=s+(o>>4<<3),c=i(s,l),d=i(l,a);return c<<BigInt((a-l)*8)|d};t=t<<BigInt((n.byteLength-e)*8)|i(e,n.byteLength)}return t};var Rb={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError:typeof AggregateError=="function"?AggregateError:null};ze[101]=()=>{let r=De();if(!Rb[r[0]]){let e=Error(r[1],{cause:r[2]});return e.name=r[0],e}return Rb[r[0]](r[1],{cause:r[2]})};ze[105]=r=>{if(he.structuredClone===!1)throw new Error("Structured clone extension is disabled");let e=ae.getUint32(b-4);rr||(rr=new Map);let t=_[b],n;t>=144&&t<160||t==220||t==221?n=[]:t>=128&&t<144||t==222||t==223?n=new Map:(t>=199&&t<=201||t>=212&&t<=216)&&_[b+1]===115?n=new Set:n={};let i={target:n};rr.set(e,i);let s=De();if(i.used)Object.assign(n,s);else return i.target=s;if(n instanceof Map)for(let[a,o]of s.entries())n.set(a,o);if(n instanceof Set)for(let a of Array.from(s))n.add(a);return n};ze[112]=r=>{if(he.structuredClone===!1)throw new Error("Structured clone extension is disabled");let e=ae.getUint32(b-4),t=rr.get(e);return t.used=!0,t.target};ze[115]=()=>new Set(De());var Bb=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(r=>r+"Array"),mA=typeof globalThis=="object"?globalThis:window;ze[116]=r=>{let e=r[0],t=Uint8Array.prototype.slice.call(r,1).buffer,n=Bb[e];if(!n){if(e===16)return t;if(e===17)return new DataView(t);throw new Error("Could not find typed array for code "+e)}return new mA[n](t)};ze[120]=()=>{let r=De();return new RegExp(r[0],r[1])};var bA=[];ze[98]=r=>{let e=(r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3],t=b;return b+=e-r.length,Me=bA,Me=[Ab(),Ab()],Me.position0=0,Me.position1=0,Me.postBundlePosition=b,b=t,De()};ze[255]=r=>r.length==4?new Date((r[0]*16777216+(r[1]<<16)+(r[2]<<8)+r[3])*1e3):r.length==8?new Date(((r[0]<<22)+(r[1]<<14)+(r[2]<<6)+(r[3]>>2))/1e6+((r[3]&3)*4294967296+r[4]*16777216+(r[5]<<16)+(r[6]<<8)+r[7])*1e3):r.length==12?new Date(((r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3])/1e6+((r[4]&128?-281474976710656:0)+r[6]*1099511627776+r[7]*4294967296+r[8]*16777216+(r[9]<<16)+(r[10]<<8)+r[11])*1e3):new Date("invalid");function Wb(r){he&&he._onSaveState&&he._onSaveState();let e=ft,t=b,n=gi,i=pt,s=xt,a=tr,o=Zr,l=rr,c=Me,d=new Uint8Array(_.slice(0,ft)),u=oe,f=oe.slice(0,oe.length),p=he,y=Ir,g=r();return ft=e,b=t,gi=n,pt=i,xt=s,tr=a,Zr=o,rr=l,Me=c,_=d,Ir=y,oe=u,oe.splice(0,oe.length,...f),he=p,ae=new DataView(_.buffer,_.byteOffset,_.byteLength),g}function Hs(){_=null,rr=null,oe=null}function gA(r){r.unpack?ze[r.type]=r.unpack:ze[r.type]=r}var ta=new Array(147);for(let r=0;r<256;r++)ta[r]=+("1e"+Math.floor(45.15-r*.30103));var vA=nr,ra=new nr({useRecords:!1}),KA=ra.unpack,SA=ra.unpackMultiple,EA=ra.unpack,Ub={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},zb=new Float32Array(1),Cb=new Uint8Array(zb.buffer,0,4);function kA(r){zb[0]=r;let e=ta[(Cb[3]&127)<<1|Cb[2]>>7];return(e*r+(r>0?.5:-.5)>>0)/e}nr.SUPPORTS_STRUCT_HOOKS=!0;var Us;try{Us=new TextEncoder}catch{}var Qs,Zs,_n=typeof Buffer<"u",Ws=_n?function(r){return Buffer.allocUnsafeSlow(r)}:Uint8Array,$b=_n?Buffer:Uint8Array,_b=_n?4294967296:2144337920,K,bi,be,v=0,Ue,je=null,IA=21760,xA=/[\u0080-\uFFFF]/,Cn=Symbol("record-id"),ir=class extends nr{constructor(e){super(e),this.offset=0;let t,n,i,s,a=$b.prototype.utf8Write?function(m,A){return K.utf8Write(m,A,K.byteLength-A)}:Us&&Us.encodeInto?function(m,A){return Us.encodeInto(m,K.subarray(A)).written}:!1,o=this;e||(e={});let l=e&&e.sequential,c=e.structures||e.saveStructures,d=e.maxSharedStructures;if(d==null&&(d=c?32:0),d>8160)throw new Error("Maximum maxSharedStructure is 8160");e.structuredClone&&e.moreTypes==null&&(this.moreTypes=!0);let u=e.maxOwnStructures;u==null&&(u=c?32:64),!this.structures&&e.useRecords!=!1&&(this.structures=[]);let f=d>32||u+d>64,p=d+64,y=d+u+64;if(y>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let g=[],E=0,S=0;this.pack=this.encode=function(m,A){if(K||(K=new Ws(8192),be=K.dataView||(K.dataView=new DataView(K.buffer,0,8192)),v=0),Ue=K.length-10,Ue-v<2048?(K=new Ws(K.length),be=K.dataView||(K.dataView=new DataView(K.buffer,0,K.length)),Ue=K.length-10,v=0):v=v+7&2147483640,t=v,A&Xb&&(v+=A&255),s=o.structuredClone?new Map:null,o.bundleStrings&&typeof m!="string"?(je=[],je.size=1/0):je=null,i=o.structures,i){i.uninitialized&&(i=o._mergeStructures(o.getStructures()));let D=i.sharedLength||0;if(D>d)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+i.sharedLength);if(!i.transitions){i.transitions=Object.create(null);for(let w=0;w<D;w++){let Y=i[w];if(!Y)continue;let G,U=i.transitions;for(let ye=0,ue=Y.length;ye<ue;ye++){let nt=Y[ye];G=U[nt],G||(G=U[nt]=Object.create(null)),U=G}U[Cn]=w+64}this.lastNamedStructuresLength=D}l||(i.nextId=D+64)}n&&(n=!1);let j;try{o._writeStruct&&m&&typeof m=="object"?m.constructor===Object?O(m):m.constructor!==Map&&!Array.isArray(m)&&!Zs.some(w=>m instanceof w)?O(m.toJSON?m.toJSON():m):R(m):R(m);let D=je;if(je&&Pb(t,R,0),s&&s.idsToInsert){let w=s.idsToInsert.sort((ye,ue)=>ye.offset>ue.offset?1:-1),Y=w.length,G=-1;for(;D&&Y>0;){let ye=w[--Y].offset+t;ye<D.stringsPosition+t&&G===-1&&(G=0),ye>D.position+t?G>=0&&(G+=6):(G>=0&&(be.setUint32(D.position+t,be.getUint32(D.position+t)+G),G=-1),D=D.previous,Y++)}G>=0&&D&&be.setUint32(D.position+t,be.getUint32(D.position+t)+G),v+=w.length*6,v>Ue&&I(v),o.offset=v;let U=wA(K.subarray(t,v),w);return s=null,U}return o.offset=v,A&Qb?(K.start=t,K.end=v,K):K.subarray(t,v)}catch(D){throw j=D,D}finally{if(i&&(x(),n&&o.saveStructures)){let D=i.sharedLength||0,w=K.subarray(t,v),Y=(o._prepareStructures||TA)(i,o);if(!j)return o.saveStructures(Y,Y.isCompatible)===!1?o.pack(m,A):(o.lastNamedStructuresLength=D,K.length>1073741824&&(K=null),w)}K.length>1073741824&&(K=null),A&Zb&&(v=t)}};let x=()=>{S<10&&S++;let m=i.sharedLength||0;if(i.length>m&&!l&&(i.length=m),E>1e4)i.transitions=null,S=0,E=0,g.length>0&&(g=[]);else if(g.length>0&&!l){for(let A=0,j=g.length;A<j;A++)g[A][Cn]=0;g=[]}},C=m=>{var A=m.length;A<16?K[v++]=144|A:A<65536?(K[v++]=220,K[v++]=A>>8,K[v++]=A&255):(K[v++]=221,be.setUint32(v,A),v+=4);for(let j=0;j<A;j++)R(m[j])},R=m=>{v>Ue&&(K=I(v));var A=typeof m,j;if(A==="string"){let D=m.length;if(je&&D>=4&&D<4096){if((je.size+=D)>IA){let U,ye=(je[0]?je[0].length*3+je[1].length:0)+10;v+ye>Ue&&(K=I(v+ye));let ue;je.position?(ue=je,K[v]=200,v+=3,K[v++]=98,U=v-t,v+=4,Pb(t,R,0),be.setUint16(U+t-3,v-t-U)):(K[v++]=214,K[v++]=98,U=v-t,v+=4),je=["",""],je.previous=ue,je.size=0,je.position=U}let G=xA.test(m);je[G?0:1]+=m,K[v++]=193,R(G?-D:D);return}let w;D<32?w=1:D<256?w=2:D<65536?w=3:w=5;let Y=D*3;if(v+Y>Ue&&(K=I(v+Y)),D<64||!a){let G,U,ye,ue=v+w;for(G=0;G<D;G++)U=m.charCodeAt(G),U<128?K[ue++]=U:U<2048?(K[ue++]=U>>6|192,K[ue++]=U&63|128):(U&64512)===55296&&((ye=m.charCodeAt(G+1))&64512)===56320?(U=65536+((U&1023)<<10)+(ye&1023),G++,K[ue++]=U>>18|240,K[ue++]=U>>12&63|128,K[ue++]=U>>6&63|128,K[ue++]=U&63|128):(K[ue++]=U>>12|224,K[ue++]=U>>6&63|128,K[ue++]=U&63|128);j=ue-v-w}else j=a(m,v+w);j<32?K[v++]=160|j:j<256?(w<2&&K.copyWithin(v+2,v+1,v+1+j),K[v++]=217,K[v++]=j):j<65536?(w<3&&K.copyWithin(v+3,v+2,v+2+j),K[v++]=218,K[v++]=j>>8,K[v++]=j&255):(w<5&&K.copyWithin(v+5,v+3,v+3+j),K[v++]=219,be.setUint32(v,j),v+=4),v+=j}else if(A==="number")if(m>>>0===m)m<32||m<128&&this.useRecords===!1||m<64&&!this._writeStruct?K[v++]=m:m<256?(K[v++]=204,K[v++]=m):m<65536?(K[v++]=205,K[v++]=m>>8,K[v++]=m&255):(K[v++]=206,be.setUint32(v,m),v+=4);else if(m>>0===m)m>=-32?K[v++]=256+m:m>=-128?(K[v++]=208,K[v++]=m+256):m>=-32768?(K[v++]=209,be.setInt16(v,m),v+=2):(K[v++]=210,be.setInt32(v,m),v+=4);else{let D;if((D=this.useFloat32)>0&&m<4294967296&&m>=-2147483648){K[v++]=202,be.setFloat32(v,m);let w;if(D<4||(w=m*ta[(K[v]&127)<<1|K[v+1]>>7])>>0===w){v+=4;return}else v--}K[v++]=203,be.setFloat64(v,m),v+=8}else if(A==="object"||A==="function")if(!m)K[v++]=192;else{if(s){let w=s.get(m);if(w){if(!w.id){let Y=s.idsToInsert||(s.idsToInsert=[]);w.id=Y.push(w)}K[v++]=214,K[v++]=112,be.setUint32(v,w.id),v+=4;return}else s.set(m,{offset:v-t})}let D=m.constructor;if(D===Object)F(m);else if(D===Array)C(m);else if(D===Map)if(this.mapAsEmptyObject)K[v++]=128;else{j=m.size,j<16?K[v++]=128|j:j<65536?(K[v++]=222,K[v++]=j>>8,K[v++]=j&255):(K[v++]=223,be.setUint32(v,j),v+=4);for(let[w,Y]of m)R(w),R(Y)}else{for(let w=0,Y=Qs.length;w<Y;w++){let G=Zs[w];if(m instanceof G){let U=Qs[w];if(U.write){U.type&&(K[v++]=212,K[v++]=U.type,K[v++]=0);let $t=U.write.call(this,m);$t===m?Array.isArray(m)?C(m):F(m):R($t);return}let ye=K,ue=be,nt=v;K=null;let At;try{At=U.pack.call(this,m,$t=>(K=ye,ye=null,v+=$t,v>Ue&&I(v),{target:K,targetView:be,position:v-$t}),R)}finally{ye&&(K=ye,be=ue,v=nt,Ue=K.length-10)}At&&(At.length+v>Ue&&I(At.length+v),v=Mb(At,K,v,U.type));return}}if(Array.isArray(m))C(m);else{if(m.toJSON){let w=m.toJSON();if(w!==m)return R(w)}if(A==="function")return R(this.writeFunction&&this.writeFunction(m));F(m)}}}else if(A==="boolean")K[v++]=m?195:194;else if(A==="bigint"){if(m<9223372036854776e3&&m>=-9223372036854776e3)K[v++]=211,be.setBigInt64(v,m);else if(m<18446744073709552e3&&m>0)K[v++]=207,be.setBigUint64(v,m);else if(this.largeBigIntToFloat)K[v++]=203,be.setFloat64(v,Number(m));else{if(this.largeBigIntToString)return R(m.toString());if(this.useBigIntExtension||this.moreTypes){let D=m<0?BigInt(-1):BigInt(0),w;if(m>>BigInt(65536)===D){let Y=BigInt(18446744073709552e3)-BigInt(1),G=[];for(;G.push(m&Y),m>>BigInt(63)!==D;)m>>=BigInt(64);w=new Uint8Array(new BigUint64Array(G).buffer),w.reverse()}else{let Y=m<0,G=(Y?~m:m).toString(16);if(G.length%2?G="0"+G:parseInt(G.charAt(0),16)>=8&&(G="00"+G),_n)w=Buffer.from(G,"hex");else{w=new Uint8Array(G.length/2);for(let U=0;U<w.length;U++)w[U]=parseInt(G.slice(U*2,U*2+2),16)}if(Y)for(let U=0;U<w.length;U++)w[U]=~w[U]}w.length+v>Ue&&I(w.length+v),v=Mb(w,K,v,66);return}else throw new RangeError(m+" was too large to fit in MessagePack 64-bit integer format, use useBigIntExtension, or set largeBigIntToFloat to convert to float-64, or set largeBigIntToString to convert to string")}v+=8}else if(A==="undefined")this.encodeUndefinedAsNil?K[v++]=192:(K[v++]=212,K[v++]=0,K[v++]=0);else throw new Error("Unknown type: "+A)},T=this.variableMapSize||this.coercibleKeyAsNumber||this.skipValues?m=>{let A;if(this.skipValues){A=[];for(let w in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(w))&&!this.skipValues.includes(m[w])&&A.push(w)}else A=Object.keys(m);let j=A.length;j<16?K[v++]=128|j:j<65536?(K[v++]=222,K[v++]=j>>8,K[v++]=j&255):(K[v++]=223,be.setUint32(v,j),v+=4);let D;if(this.coercibleKeyAsNumber)for(let w=0;w<j;w++){D=A[w];let Y=Number(D);R(isNaN(Y)?D:Y),R(m[D])}else for(let w=0;w<j;w++)R(D=A[w]),R(m[D])}:m=>{K[v++]=222;let A=v-t;v+=2;let j=0;for(let D in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(D))&&(R(D),R(m[D]),j++);if(j>65535)throw new Error('Object is too large to serialize with fast 16-bit map size, use the "variableMapSize" option to serialize this object');K[A+++t]=j>>8,K[A+t]=j&255},k=this.useRecords===!1?T:e.progressiveRecords&&!f?m=>{let A,j=i.transitions||(i.transitions=Object.create(null)),D=v++-t,w;for(let Y in m)if(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(Y)){if(A=j[Y],A)j=A;else{let G=Object.keys(m),U=j;j=i.transitions;let ye=0;for(let ue=0,nt=G.length;ue<nt;ue++){let At=G[ue];A=j[At],A||(A=j[At]=Object.create(null),ye++),j=A}D+t+1==v?(v--,B(j,G,ye)):te(j,G,D,ye),w=!0,j=U[Y]}R(m[Y])}if(!w){let Y=j[Cn];Y?K[D+t]=Y:te(j,Object.keys(m),D,0)}}:m=>{let A,j=i.transitions||(i.transitions=Object.create(null)),D=0;for(let Y in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(Y))&&(A=j[Y],A||(A=j[Y]=Object.create(null),D++),j=A);let w=j[Cn];w?w>=96&&f?(K[v++]=((w-=96)&31)+96,K[v++]=w>>5):K[v++]=w:B(j,j.__keys__||Object.keys(m),D);for(let Y in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(Y))&&R(m[Y])},N=typeof this.useRecords=="function"&&this.useRecords,F=N?m=>{N(m)?k(m):T(m)}:k,O=m=>{let A=o._writeStruct(m,K,t,v,i,I,(j,D,w)=>{if(w)return n=!0;v=D;let Y=K;return R(j),x(),Y!==K?{position:v,targetView:be,target:K}:v});if(A===0)return F(m);v=A},I=m=>{let A;if(m>16777216){if(m-t>_b)throw new Error("Packed buffer would be larger than maximum buffer size");A=Math.min(_b,Math.round(Math.max((m-t)*(m>67108864?1.25:2),4194304)/4096)*4096)}else A=(Math.max(m-t<<2,K.length-1)>>12)+1<<12;let j=new Ws(A);return be=j.dataView||(j.dataView=new DataView(j.buffer,0,A)),m=Math.min(m,K.length),K.copy?K.copy(j,0,t,m):j.set(K.slice(t,m)),v-=t,t=0,Ue=j.length-10,K=j},B=(m,A,j)=>{let D=i.nextId;D||(D=64),D<p&&this.shouldShareStructure&&!this.shouldShareStructure(A)?(D=i.nextOwnId,D<y||(D=p),i.nextOwnId=D+1):(D>=y&&(D=p),i.nextId=D+1);let w=A.highByte=D>=96&&f?D-96>>5:-1;m[Cn]=D,m.__keys__=A,i[D-64]=A,D<p?(A.isShared=!0,i.sharedLength=D-63,n=!0,w>=0?(K[v++]=(D&31)+96,K[v++]=w):K[v++]=D):(w>=0?(K[v++]=213,K[v++]=114,K[v++]=(D&31)+96,K[v++]=w):(K[v++]=212,K[v++]=114,K[v++]=D),j&&(E+=S*j),g.length>=u&&(g.shift()[Cn]=0),g.push(m),R(A))},te=(m,A,j,D)=>{let w=K,Y=v,G=Ue,U=t;K=bi,v=0,t=0,K||(bi=K=new Ws(8192)),Ue=K.length-10,B(m,A,D),bi=K;let ye=v;if(K=w,v=Y,Ue=G,t=U,ye>1){let ue=v+ye-1;ue>Ue&&I(ue);let nt=j+t;K.copyWithin(nt+ye,nt+1,v),K.set(bi.slice(0,ye),nt),v=ue}else K[j+t]=bi[0]}}useBuffer(e){K=e,K.dataView||(K.dataView=new DataView(K.buffer,K.byteOffset,K.byteLength)),be=K.dataView,v=0}set position(e){v=e}get position(){return v}clearSharedData(){this.structures&&(this.structures=[]),this.typedStructs&&(this.typedStructs=[])}};Zs=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,DataView,zs];Qs=[{pack(r,e,t){let n=r.getTime()/1e3;if((this.useTimestamp32||r.getMilliseconds()===0)&&n>=0&&n<4294967296){let{target:i,targetView:s,position:a}=e(6);i[a++]=214,i[a++]=255,s.setUint32(a,n)}else if(n>0&&n<4294967296){let{target:i,targetView:s,position:a}=e(10);i[a++]=215,i[a++]=255,s.setUint32(a,r.getMilliseconds()*4e6+(n/1e3/4294967296>>0)),s.setUint32(a+4,n)}else if(isNaN(n)){if(this.onInvalidDate)return e(0),t(this.onInvalidDate());let{target:i,targetView:s,position:a}=e(3);i[a++]=212,i[a++]=255,i[a++]=255}else{let{target:i,targetView:s,position:a}=e(15);i[a++]=199,i[a++]=12,i[a++]=255,s.setUint32(a,r.getMilliseconds()*1e6),s.setBigInt64(a+4,BigInt(Math.floor(n)))}}},{pack(r,e,t){if(this.setAsEmptyObject)return e(0),t({});let n=Array.from(r),{target:i,position:s}=e(this.moreTypes?3:0);this.moreTypes&&(i[s++]=212,i[s++]=115,i[s++]=0),t(n)}},{pack(r,e,t){let{target:n,position:i}=e(this.moreTypes?3:0);this.moreTypes&&(n[i++]=212,n[i++]=101,n[i++]=0),t([r.name,r.message,r.cause])}},{pack(r,e,t){let{target:n,position:i}=e(this.moreTypes?3:0);this.moreTypes&&(n[i++]=212,n[i++]=120,n[i++]=0),t([r.source,r.flags])}},{pack(r,e){this.moreTypes?wd(r,16,e):jd(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let t=r.constructor;t!==$b&&this.moreTypes?wd(r,Bb.indexOf(t.name),e):jd(r,e)}},{pack(r,e){this.moreTypes?wd(r,17,e):jd(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let{target:t,position:n}=e(1);t[n]=193}}];function wd(r,e,t,n){let i=r.byteLength;if(i+1<256){var{target:s,position:a}=t(4+i);s[a++]=199,s[a++]=i+1}else if(i+1<65536){var{target:s,position:a}=t(5+i);s[a++]=200,s[a++]=i+1>>8,s[a++]=i+1&255}else{var{target:s,position:a,targetView:o}=t(7+i);s[a++]=201,o.setUint32(a,i+1),a+=4}s[a++]=116,s[a++]=e,r.buffer||(r=new Uint8Array(r)),s.set(new Uint8Array(r.buffer,r.byteOffset,r.byteLength),a)}function jd(r,e){let t=r.byteLength;var n,i;if(t<256){var{target:n,position:i}=e(t+2);n[i++]=196,n[i++]=t}else if(t<65536){var{target:n,position:i}=e(t+3);n[i++]=197,n[i++]=t>>8,n[i++]=t&255}else{var{target:n,position:i,targetView:s}=e(t+5);n[i++]=198,s.setUint32(i,t),i+=4}n.set(r,i)}function Mb(r,e,t,n){let i=r.length;switch(i){case 1:e[t++]=212;break;case 2:e[t++]=213;break;case 4:e[t++]=214;break;case 8:e[t++]=215;break;case 16:e[t++]=216;break;default:i<256?(e[t++]=199,e[t++]=i):i<65536?(e[t++]=200,e[t++]=i>>8,e[t++]=i&255):(e[t++]=201,e[t++]=i>>24,e[t++]=i>>16&255,e[t++]=i>>8&255,e[t++]=i&255)}return e[t++]=n,e.set(r,t),t+=i,t}function wA(r,e){let t,n=e.length*6,i=r.length-n;for(;t=e.pop();){let s=t.offset,a=t.id;r.copyWithin(s+n,s,i),n-=6;let o=s+n;r[o++]=214,r[o++]=105,r[o++]=a>>24,r[o++]=a>>16&255,r[o++]=a>>8&255,r[o++]=a&255,i=s}return r}function Pb(r,e,t){if(je.length>0){be.setUint32(je.position+r,v+t-je.position-r),je.stringsPosition=v-r;let n=je;je=null,e(n[0]),e(n[1])}}function jA(r){if(r.Class){if(!r.pack&&!r.write)throw new Error("Extension has no pack or write function");if(r.pack&&!r.type)throw new Error("Extension has no type (numeric code to identify the extension)");Zs.unshift(r.Class),Qs.unshift(r)}gA(r)}function TA(r,e){return r.isCompatible=t=>{let n=!t||(e.lastNamedStructuresLength||0)===t.length;return n||e._mergeStructures(t),n},r}ir.SUPPORTS_STRUCT_HOOKS=!0;var Hb=new ir({useRecords:!1}),AA=Hb.pack,DA=Hb.pack,OA=ir,{NEVER:RA,ALWAYS:CA,DECIMAL_ROUND:_A,DECIMAL_FIT:MA}=Ub,Qb=512,Zb=1024,Xb=2048,Xs=class extends Nb.Transform{constructor(e){e||(e={}),e.writableObjectMode=!0,super(e),e.sequential=!0,this.packr=e.packr||new ir(e)}_transform(e,t,n){this.push(this.packr.pack(e)),n()}},ea=class extends Nb.Transform{constructor(e){e||(e={}),e.objectMode=!0,super(e),e.structures=[],this.maxIncompleteBufferSize=e.maxIncompleteBufferSize!==void 0?e.maxIncompleteBufferSize:67108864,this.unpackr=e.unpackr||new nr(e)}_transform(e,t,n){this.incompleteBuffer&&(e=Buffer.concat([this.incompleteBuffer,e]),this.incompleteBuffer=null);let i;try{i=this.unpackr.unpackMultiple(e)}catch(s){if(s.incomplete){let a=e.slice(s.lastPosition);if(a.length>this.maxIncompleteBufferSize)return this.incompleteBuffer=null,n(new Error("Maximum incomplete buffer size exceeded"));this.incompleteBuffer=a,i=s.values}else return n(s)}for(let s of i||[])s===null&&(s=this.getNullValue()),this.push(s);n()}getNullValue(){return Symbol.for(null)}};function PA(r,e={}){if(!r||typeof r!="object")throw new Error("first argument must be an Iterable, Async Iterable, or a Promise for an Async Iterable");if(typeof r[Symbol.iterator]=="function")return NA(r,e);if(typeof r.then=="function"||typeof r[Symbol.asyncIterator]=="function")return qA(r,e);throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a Promise")}function*NA(r,e){let t=new ir(e);for(let n of r)yield t.pack(n)}async function*qA(r,e){let t=new ir(e);for await(let n of r)yield t.pack(n)}function JA(r,e={}){if(!r||typeof r!="object")throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a promise");let t=new nr(e),n,i=s=>{let a;n&&(s=Buffer.concat([n,s]),n=void 0);try{a=t.unpackMultiple(s)}catch(o){if(o.incomplete)n=s.slice(o.lastPosition),a=o.values;else throw o}return a};if(typeof r[Symbol.iterator]=="function")return(function*(){for(let a of r)yield*i(a)})();if(typeof r[Symbol.asyncIterator]=="function")return(async function*(){for await(let a of r)yield*i(a)})()}var LA=JA,FA=PA,VA=!1,GA=!0,YA=process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!YA){let r;try{typeof V=="function"?r=Eb():r=fA.createRequire(typeof document>"u"?new(V("url")).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("node.cjs",document.baseURI).href)("msgpackr-extract"),r&&yA(r.extractStrings)}catch{}}de.ALWAYS=CA;de.C1=Dd;de.DECIMAL_FIT=MA;de.DECIMAL_ROUND=_A;de.Decoder=vA;de.DecoderStream=ea;de.Encoder=OA;de.EncoderStream=Xs;de.FLOAT32_OPTIONS=Ub;de.NEVER=RA;de.Packr=ir;de.PackrStream=Xs;de.RESERVE_START_SPACE=Xb;de.RESET_BUFFER_MODE=Zb;de.REUSE_BUFFER_MODE=Qb;de.Unpackr=nr;de.UnpackrStream=ea;de.addExtension=jA;de.clearSource=Hs;de.decode=EA;de.decodeIter=LA;de.encode=DA;de.encodeIter=FA;de.mapsAsObjects=GA;de.pack=AA;de.roundFloat32=kA;de.unpack=KA;de.unpackMultiple=SA;de.useRecords=VA});var ia=h(na=>{"use strict";Object.defineProperty(na,"__esModule",{value:!0});na.version=void 0;na.version="5.76.6"});var _d=h(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.Scripts=void 0;vi.raw2NextJobData=sa;var BA=eg(),WA=new BA.Packr({useRecords:!1,encodeUndefinedAsNil:!0}),Pe=WA.pack,Rt=at(),xr=ut(),UA=ia(),zA=Js(),Cd=class{constructor(e){this.queue=e,this.version=UA.version;let t=this.queue.keys;this.moveToFinishedKeys=[t.wait,t.active,t.prioritized,t.events,t.stalled,t.limiter,t.delayed,t.paused,t.meta,t.pc,void 0,void 0,void 0,void 0]}execCommand(e,t,n){let i=`${t}:${this.version}`;return e[i](n)}async isJobInList(e,t){let n=await this.queue.client,i;return(0,xr.isRedisVersionLowerThan)(this.queue.redisVersion,"6.0.6",this.queue.databaseType)?i=await this.execCommand(n,"isJobInList",[e,t]):i=await n.lpos(e,t),Number.isInteger(i)}addDelayedJobArgs(e,t,n){let i=this.queue.keys,s=[i.marker,i.meta,i.id,i.delayed,i.completed,i.events];return s.push(Pe(n),e.data,t),s}addDelayedJob(e,t,n,i){let s=this.addDelayedJobArgs(t,n,i);return this.execCommand(e,"addDelayedJob",s)}addPrioritizedJobArgs(e,t,n){let i=this.queue.keys,s=[i.marker,i.meta,i.id,i.prioritized,i.delayed,i.completed,i.active,i.events,i.pc];return s.push(Pe(n),e.data,t),s}addPrioritizedJob(e,t,n,i){let s=this.addPrioritizedJobArgs(t,n,i);return this.execCommand(e,"addPrioritizedJob",s)}addParentJobArgs(e,t,n){let i=this.queue.keys,s=[i.meta,i.id,i.delayed,i["waiting-children"],i.completed,i.events];return s.push(Pe(n),e.data,t),s}addParentJob(e,t,n,i){let s=this.addParentJobArgs(t,n,i);return this.execCommand(e,"addParentJob",s)}addStandardJobArgs(e,t,n){let i=this.queue.keys,s=[i.wait,i.paused,i.meta,i.id,i.completed,i.delayed,i.active,i.events,i.marker];return s.push(Pe(n),e.data,t),s}addStandardJob(e,t,n,i){let s=this.addStandardJobArgs(t,n,i);return this.execCommand(e,"addStandardJob",s)}async addJob(e,t,n,i,s={}){let a=this.queue.keys,o=t.parent,l=[a[""],typeof i<"u"?i:"",t.name,t.timestamp,t.parentKey||null,s.parentDependenciesKey||null,o,t.repeatJobKey,t.deduplicationId?`${a.de}:${t.deduplicationId}`:null],c;if(n.repeat){let u=Object.assign({},n.repeat);u.startDate&&(u.startDate=+new Date(u.startDate)),u.endDate&&(u.endDate=+new Date(u.endDate)),c=Pe(Object.assign(Object.assign({},n),{repeat:u}))}else c=Pe(n);let d;if(s.addToWaitingChildren?d=await this.addParentJob(e,t,c,l):typeof n.delay=="number"&&n.delay>0?d=await this.addDelayedJob(e,t,c,l):n.priority?d=await this.addPrioritizedJob(e,t,c,l):d=await this.addStandardJob(e,t,c,l),d<0)throw this.finishedErrors({code:d,parentKey:s.parentKey,command:"addJob"});return d}pauseArgs(e){let t="wait",n="paused";e||(t="paused",n="wait");let i=[t,n,"meta","prioritized"].map(a=>this.queue.toKey(a));i.push(this.queue.keys.events,this.queue.keys.delayed,this.queue.keys.marker);let s=[e?"paused":"resumed"];return i.concat(s)}async pause(e){let t=await this.queue.client,n=this.pauseArgs(e);return this.execCommand(t,"pause",n)}addRepeatableJobArgs(e,t,n,i){let s=this.queue.keys,a=[s.repeat,s.delayed],o=[t,Pe(n),i,e,s[""]];return a.concat(o)}async addRepeatableJob(e,t,n,i){let s=await this.queue.client,a=this.addRepeatableJobArgs(e,t,n,i);return this.execCommand(s,"addRepeatableJob",a)}async removeDeduplicationKey(e,t){let n=await this.queue.client,s=[`${this.queue.keys.de}:${e}`],a=[t];return this.execCommand(n,"removeDeduplicationKey",s.concat(a))}async addJobScheduler(e,t,n,i,s,a,o){let l=await this.queue.client,c=this.queue.keys,d=[c.repeat,c.delayed,c.wait,c.paused,c.meta,c.prioritized,c.marker,c.id,c.events,c.pc,c.active],u=[t,Pe(s),e,n,Pe(i),Pe(a),Date.now(),c[""],o?this.queue.toKey(o):""],f=await this.execCommand(l,"addJobScheduler",d.concat(u));if(typeof f=="number"&&f<0)throw this.finishedErrors({code:f,command:"addJobScheduler"});return f}async updateRepeatableJobMillis(e,t,n,i){let s=[this.queue.keys.repeat,n,t,i];return this.execCommand(e,"updateRepeatableJobMillis",s)}async updateJobSchedulerNextMillis(e,t,n,i,s){let a=await this.queue.client,o=this.queue.keys,l=[o.repeat,o.delayed,o.wait,o.paused,o.meta,o.prioritized,o.marker,o.id,o.events,o.pc,s?this.queue.toKey(s):"",o.active],c=[t,e,n,Pe(i),Date.now(),o[""],s];return this.execCommand(a,"updateJobScheduler",l.concat(c))}removeRepeatableArgs(e,t,n){let i=this.queue.keys,s=[i.repeat,i.delayed,i.events],a=[e,this.getRepeatConcatOptions(t,n),n,i[""]];return s.concat(a)}getRepeatConcatOptions(e,t){return t&&t.split(":").length>2?t:e}async removeRepeatable(e,t,n){let i=await this.queue.client,s=this.removeRepeatableArgs(e,t,n);return this.execCommand(i,"removeRepeatable",s)}async removeJobScheduler(e){let t=await this.queue.client,n=this.queue.keys,i=[n.repeat,n.delayed,n.events],s=[e,n[""]];return this.execCommand(t,"removeJobScheduler",i.concat(s))}removeArgs(e,t){let n=[e,"repeat"].map(s=>this.queue.toKey(s)),i=[e,t?1:0,this.queue.toKey("")];return n.concat(i)}async remove(e,t){let n=await this.queue.client,i=this.removeArgs(e,t),s=await this.execCommand(n,"removeJob",i);if(s<0)throw this.finishedErrors({code:s,jobId:e,command:"removeJob"});return s}async removeUnprocessedChildren(e){let t=await this.queue.client,n=[this.queue.toKey(e),this.queue.keys.meta,this.queue.toKey(""),e];await this.execCommand(t,"removeUnprocessedChildren",n)}async extendLock(e,t,n,i){i=i||await this.queue.client;let s=[this.queue.toKey(e)+":lock",this.queue.keys.stalled,t,n,e];return this.execCommand(i,"extendLock",s)}async extendLocks(e,t,n){let i=await this.queue.client,s=[this.queue.keys.stalled,this.queue.toKey(""),Pe(t),Pe(e),n];return this.execCommand(i,"extendLocks",s)}async updateData(e,t){let n=await this.queue.client,i=[this.queue.toKey(e.id)],s=JSON.stringify(t),a=await this.execCommand(n,"updateData",i.concat([s]));if(a<0)throw this.finishedErrors({code:a,jobId:e.id,command:"updateData"})}async updateProgress(e,t){let n=await this.queue.client,i=[this.queue.toKey(e),this.queue.keys.events,this.queue.keys.meta],s=JSON.stringify(t),a=await this.execCommand(n,"updateProgress",i.concat([e,s]));if(a<0)throw this.finishedErrors({code:a,jobId:e,command:"updateProgress"})}async addLog(e,t,n){let i=await this.queue.client,s=[this.queue.toKey(e),this.queue.toKey(e)+":logs"],a=await this.execCommand(i,"addLog",s.concat([e,t,n||""]));if(a<0)throw this.finishedErrors({code:a,jobId:e,command:"addLog"});return a}moveToFinishedArgs(e,t,n,i,s,a,o,l=!0,c){var d,u,f,p,y,g,E;let S=this.queue.keys,x=this.queue.opts,C=s==="completed"?x.removeOnComplete:x.removeOnFail,R=this.queue.toKey(`metrics:${s}`),T=this.moveToFinishedKeys;T[10]=S[s],T[11]=this.queue.toKey((d=e.id)!==null&&d!==void 0?d:""),T[12]=R,T[13]=this.queue.keys.marker;let k=this.getKeepJobs(i,C),N=[e.id,o,n,typeof t>"u"?"null":t,s,!l||this.queue.closing?0:1,S[""],Pe({token:a,name:x.name,keepJobs:k,limiter:x.limiter,lockDuration:x.lockDuration,attempts:e.opts.attempts,maxMetricsSize:!((u=x.metrics)===null||u===void 0)&&u.maxDataPoints?(f=x.metrics)===null||f===void 0?void 0:f.maxDataPoints:"",fpof:!!(!((p=e.opts)===null||p===void 0)&&p.failParentOnFailure),cpof:!!(!((y=e.opts)===null||y===void 0)&&y.continueParentOnFailure),idof:!!(!((g=e.opts)===null||g===void 0)&&g.ignoreDependencyOnFailure),rdof:!!(!((E=e.opts)===null||E===void 0)&&E.removeDependencyOnFailure)}),c?Pe((0,xr.objectToFlatArray)(c)):void 0];return T.concat(N)}getKeepJobs(e,t){return typeof e>"u"?t||{count:e?0:-1}:typeof e=="object"?e:typeof e=="number"?{count:e}:{count:e?0:-1}}async moveToFinished(e,t){let n=await this.queue.client,i=await this.execCommand(n,"moveToFinished",t);if(i<0)throw this.finishedErrors({code:i,jobId:e,command:"moveToFinished",state:"active"});if(typeof i<"u")return sa(i)}drainArgs(e){let t=this.queue.keys,n=[t.wait,t.paused,t.delayed,t.prioritized,t.repeat],i=[t[""],e?"1":"0"];return n.concat(i)}async drain(e){let t=await this.queue.client,n=this.drainArgs(e);return this.execCommand(t,"drain",n)}removeChildDependencyArgs(e,t){let i=[this.queue.keys[""]],s=[this.queue.toKey(e),t];return i.concat(s)}async removeChildDependency(e,t){let n=await this.queue.client,i=this.removeChildDependencyArgs(e,t),s=await this.execCommand(n,"removeChildDependency",i);switch(s){case 0:return!0;case 1:return!1;default:throw this.finishedErrors({code:s,jobId:e,parentKey:t,command:"removeChildDependency"})}}getRangesArgs(e,t,n,i){let s=this.queue.keys,a=e.map(c=>c==="waiting"?"wait":c),o=[s[""]],l=[t,n,i?"1":"0",...a];return o.concat(l)}async getRanges(e,t=0,n=1,i=!1){let s=await this.queue.client,a=this.getRangesArgs(e,t,n,i);return await this.execCommand(s,"getRanges",a)}getCountsArgs(e){let t=this.queue.keys,n=e.map(a=>a==="waiting"?"wait":a),i=[t[""]],s=[...n];return i.concat(s)}async getCounts(e){let t=await this.queue.client,n=this.getCountsArgs(e);return await this.execCommand(t,"getCounts",n)}getCountsPerPriorityArgs(e){let t=[this.queue.keys.wait,this.queue.keys.paused,this.queue.keys.meta,this.queue.keys.prioritized],n=e;return t.concat(n)}async getCountsPerPriority(e){let t=await this.queue.client,n=this.getCountsPerPriorityArgs(e);return await this.execCommand(t,"getCountsPerPriority",n)}getDependencyCountsArgs(e,t){let n=[`${e}:processed`,`${e}:dependencies`,`${e}:failed`,`${e}:unsuccessful`].map(s=>this.queue.toKey(s)),i=t;return n.concat(i)}async getDependencyCounts(e,t){let n=await this.queue.client,i=this.getDependencyCountsArgs(e,t);return await this.execCommand(n,"getDependencyCounts",i)}moveToCompletedArgs(e,t,n,i,s=!1){let a=Date.now();return this.moveToFinishedArgs(e,t,"returnvalue",n,"completed",i,a,s)}moveToFailedArgs(e,t,n,i,s=!1,a){let o=Date.now();return this.moveToFinishedArgs(e,t,"failedReason",n,"failed",i,o,s,a)}async isFinished(e,t=!1){let n=await this.queue.client,i=["completed","failed",e].map(s=>this.queue.toKey(s));return this.execCommand(n,"isFinished",i.concat([e,t?"1":""]))}async getState(e){let t=await this.queue.client,n=["completed","failed","delayed","active","wait","paused","waiting-children","prioritized"].map(i=>this.queue.toKey(i));return(0,xr.isRedisVersionLowerThan)(this.queue.redisVersion,"6.0.6",this.queue.databaseType)?this.execCommand(t,"getState",n.concat([e])):this.execCommand(t,"getStateV2",n.concat([e]))}async changeDelay(e,t){let n=await this.queue.client,i=this.changeDelayArgs(e,t),s=await this.execCommand(n,"changeDelay",i);if(s<0)throw this.finishedErrors({code:s,jobId:e,command:"changeDelay",state:"delayed"})}changeDelayArgs(e,t){let n=Date.now();return[this.queue.keys.delayed,this.queue.keys.meta,this.queue.keys.marker,this.queue.keys.events].concat([t,JSON.stringify(n),e,this.queue.toKey(e)])}async changePriority(e,t=0,n=!1){let i=await this.queue.client,s=this.changePriorityArgs(e,t,n),a=await this.execCommand(i,"changePriority",s);if(a<0)throw this.finishedErrors({code:a,jobId:e,command:"changePriority"})}changePriorityArgs(e,t=0,n=!1){return[this.queue.keys.wait,this.queue.keys.paused,this.queue.keys.meta,this.queue.keys.prioritized,this.queue.keys.active,this.queue.keys.pc,this.queue.keys.marker].concat([t,this.queue.toKey(""),e,n?1:0])}moveToDelayedArgs(e,t,n,i,s={}){let a=this.queue.keys,o=this.queue.opts,l=[a.marker,a.active,a.prioritized,a.delayed,this.queue.toKey(e),a.events,a.meta,a.stalled,a.wait,a.limiter,a.paused,a.pc],c=s.fetchNext&&!this.queue.closing?1:0;return l.concat([this.queue.keys[""],t,e,n,i,s.skipAttempt?"1":"0",s.fieldsToUpdate?Pe((0,xr.objectToFlatArray)(s.fieldsToUpdate)):void 0,c,c?Pe({token:n,lockDuration:o.lockDuration,limiter:o.limiter,name:o.name}):void 0])}moveToWaitingChildrenArgs(e,t,n){let i=Date.now(),s=(0,xr.getParentKey)(n.child);return["active","waiting-children",e,`${e}:dependencies`,`${e}:unsuccessful`,"stalled","events"].map(o=>this.queue.toKey(o)).concat([t,s??"",JSON.stringify(i),e,this.queue.toKey("")])}isMaxedArgs(){let e=this.queue.keys;return[e.meta,e.active]}async isMaxed(){let e=await this.queue.client,t=this.isMaxedArgs();return!!await this.execCommand(e,"isMaxed",t)}async moveToDelayed(e,t,n,i="0",s={}){let a=await this.queue.client,o=this.moveToDelayedArgs(e,t,i,n,s),l=await this.execCommand(a,"moveToDelayed",o);if(l<0)throw this.finishedErrors({code:l,jobId:e,command:"moveToDelayed",state:"active"});if(typeof l<"u")return sa(l)}async moveToWaitingChildren(e,t,n={}){let i=await this.queue.client,s=this.moveToWaitingChildrenArgs(e,t,n),a=await this.execCommand(i,"moveToWaitingChildren",s);switch(a){case 0:return!0;case 1:return!1;default:throw this.finishedErrors({code:a,jobId:e,command:"moveToWaitingChildren",state:"active"})}}getRateLimitTtlArgs(e){return[this.queue.keys.limiter,this.queue.keys.meta].concat([e??"0"])}async getRateLimitTtl(e){let t=await this.queue.client,n=this.getRateLimitTtlArgs(e);return this.execCommand(t,"getRateLimitTtl",n)}async cleanJobsInSet(e,t,n=0){let i=await this.queue.client;return this.execCommand(i,"cleanJobsInSet",[this.queue.toKey(e),this.queue.toKey("events"),this.queue.toKey("repeat"),this.queue.toKey(""),t,n,e])}getJobSchedulerArgs(e){return[this.queue.keys.repeat].concat([e])}async getJobScheduler(e){let t=await this.queue.client,n=this.getJobSchedulerArgs(e);return this.execCommand(t,"getJobScheduler",n)}retryJobArgs(e,t,n,i={}){let s=[this.queue.keys.active,this.queue.keys.wait,this.queue.keys.paused,this.queue.toKey(e),this.queue.keys.meta,this.queue.keys.events,this.queue.keys.delayed,this.queue.keys.prioritized,this.queue.keys.pc,this.queue.keys.marker,this.queue.keys.stalled],a=(t?"R":"L")+"PUSH";return s.concat([this.queue.toKey(""),Date.now(),a,e,n,i.fieldsToUpdate?Pe((0,xr.objectToFlatArray)(i.fieldsToUpdate)):void 0])}async retryJob(e,t,n="0",i={}){let s=await this.queue.client,a=this.retryJobArgs(e,t,n,i),o=await this.execCommand(s,"retryJob",a);if(o<0)throw this.finishedErrors({code:o,jobId:e,command:"retryJob",state:"active"})}moveJobsToWaitArgs(e,t,n){let i=[this.queue.toKey(""),this.queue.keys.events,this.queue.toKey(e),this.queue.toKey("wait"),this.queue.toKey("paused"),this.queue.keys.meta,this.queue.keys.active,this.queue.keys.marker],s=[t,n,e];return i.concat(s)}async retryJobs(e="failed",t=1e3,n=new Date().getTime()){let i=await this.queue.client,s=this.moveJobsToWaitArgs(e,t,n);return this.execCommand(i,"moveJobsToWait",s)}async promoteJobs(e=1e3){let t=await this.queue.client,n=this.moveJobsToWaitArgs("delayed",e,Number.MAX_VALUE);return this.execCommand(t,"moveJobsToWait",n)}async reprocessJob(e,t,n={}){let i=await this.queue.client,s=[this.queue.toKey(e.id),this.queue.keys.events,this.queue.toKey(t),this.queue.keys.wait,this.queue.keys.meta,this.queue.keys.paused,this.queue.keys.active,this.queue.keys.marker],a=[e.id,(e.opts.lifo?"R":"L")+"PUSH",t==="failed"?"failedReason":"returnvalue",t,n.resetAttemptsMade?"1":"0",n.resetAttemptsStarted?"1":"0"],o=await this.execCommand(i,"reprocessJob",s.concat(a));if(o!==1)throw this.finishedErrors({code:o,jobId:e.id,command:"reprocessJob",state:t})}async getMetrics(e,t=0,n=-1){let i=await this.queue.client,s=[this.queue.toKey(`metrics:${e}`),this.queue.toKey(`metrics:${e}:data`)],a=[t,n];return await this.execCommand(i,"getMetrics",s.concat(a))}async moveToActive(e,t,n){let i=this.queue.opts,s=this.queue.keys,a=[s.wait,s.active,s.prioritized,s.events,s.stalled,s.limiter,s.delayed,s.paused,s.meta,s.pc,s.marker],o=[s[""],Date.now(),Pe({token:t,lockDuration:i.lockDuration,limiter:i.limiter,name:n})],l=await this.execCommand(e,"moveToActive",a.concat(o));return sa(l)}async promote(e){let t=await this.queue.client,n=[this.queue.keys.delayed,this.queue.keys.wait,this.queue.keys.paused,this.queue.keys.meta,this.queue.keys.prioritized,this.queue.keys.active,this.queue.keys.pc,this.queue.keys.events,this.queue.keys.marker],i=[this.queue.toKey(""),e],s=await this.execCommand(t,"promote",n.concat(i));if(s<0)throw this.finishedErrors({code:s,jobId:e,command:"promote",state:"delayed"})}moveStalledJobsToWaitArgs(){let e=this.queue.opts,t=[this.queue.keys.stalled,this.queue.keys.wait,this.queue.keys.active,this.queue.keys["stalled-check"],this.queue.keys.meta,this.queue.keys.paused,this.queue.keys.marker,this.queue.keys.events],n=[e.maxStalledCount,this.queue.toKey(""),Date.now(),e.stalledInterval];return t.concat(n)}async moveStalledJobsToWait(){let e=await this.queue.client,t=this.moveStalledJobsToWaitArgs();return this.execCommand(e,"moveStalledJobsToWait",t)}async moveJobFromActiveToWait(e,t="0"){let n=await this.queue.client,i=[this.queue.keys.active,this.queue.keys.wait,this.queue.keys.stalled,this.queue.keys.paused,this.queue.keys.meta,this.queue.keys.limiter,this.queue.keys.prioritized,this.queue.keys.marker,this.queue.keys.events],s=[e,t,this.queue.toKey(e)],a=await this.execCommand(n,"moveJobFromActiveToWait",i.concat(s));if(a<0)throw this.finishedErrors({code:a,jobId:e,command:"moveJobFromActiveToWait",state:"active"});return a}async obliterate(e){let t=await this.queue.client,n=[this.queue.keys.meta,this.queue.toKey("")],i=[e.count,e.force?"force":null],s=await this.execCommand(t,"obliterate",n.concat(i));if(s<0)switch(s){case-1:throw new Error("Cannot obliterate non-paused queue");case-2:throw new Error("Cannot obliterate queue with active jobs")}return s}async paginate(e,t){let n=await this.queue.client,i=[e],s=5,a=t.end>=0?t.end-t.start+1:1/0,o="0",l=0,c,d,u,f=[],p=[];do{let y=[t.start+f.length,t.end,o,l,s];t.fetchJobs&&y.push(1),[o,l,c,d,u]=await this.execCommand(n,"paginate",i.concat(y)),f=f.concat(c),u&&u.length&&(p=p.concat(u.map(xr.array2obj)))}while(o!="0"&&f.length<a);if(f.length&&Array.isArray(f[0])){let y=[];for(let g=0;g<f.length;g++){let[E,S]=f[g];try{y.push({id:E,v:JSON.parse(S)})}catch(x){y.push({id:E,err:x.message})}}return{cursor:o,items:y,total:d,jobs:p}}else return{cursor:o,items:f.map(y=>({id:y})),total:d,jobs:p}}finishedErrors({code:e,jobId:t,parentKey:n,command:i,state:s}){let a;switch(e){case Rt.ErrorCode.JobNotExist:a=new Error(`Missing key for job ${t}. ${i}`);break;case Rt.ErrorCode.JobLockNotExist:a=new Error(`Missing lock for job ${t}. ${i}`);break;case Rt.ErrorCode.JobNotInState:a=new Error(`Job ${t} is not in the ${s} state. ${i}`);break;case Rt.ErrorCode.JobPendingChildren:a=new Error(`Job ${t} has pending dependencies. ${i}`);break;case Rt.ErrorCode.ParentJobNotExist:a=new Error(`Missing key for parent job ${n}. ${i}`);break;case Rt.ErrorCode.JobLockMismatch:a=new Error(`Lock mismatch for job ${t}. Cmd ${i} from ${s}`);break;case Rt.ErrorCode.ParentJobCannotBeReplaced:a=new Error(`The parent job ${n} cannot be replaced. ${i}`);break;case Rt.ErrorCode.JobBelongsToJobScheduler:a=new Error(`Job ${t} belongs to a job scheduler and cannot be removed directly. ${i}`);break;case Rt.ErrorCode.JobHasFailedChildren:a=new zA.UnrecoverableError(`Cannot complete job ${t} because it has at least one failed child. ${i}`);break;case Rt.ErrorCode.SchedulerJobIdCollision:a=new Error(`Cannot create job scheduler iteration - job ID already exists. ${i}`);break;case Rt.ErrorCode.SchedulerJobSlotsBusy:a=new Error(`Cannot create job scheduler iteration - current and next time slots already have jobs. ${i}`);break;default:a=new Error(`Unknown code ${e} error for ${t}. ${i}`)}return a.code=e,a}async removeOrphanedJobs(e,t,n){let i=await this.queue.client,s=[this.queue.toKey(""),t.length,...t,n.length,...n,...e];return this.execCommand(i,"removeOrphanedJobs",s)}};vi.Scripts=Cd;function sa(r){if(r){let e=[null,r[1],r[2],r[3]];return r[0]&&(e[0]=(0,xr.array2obj)(r[0])),e}return[]}});var oa=h(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.createScripts=void 0;var $A=_d(),HA=r=>new $A.Scripts({keys:r.keys,client:r.client,get redisVersion(){return r.redisVersion},toKey:r.toKey,opts:r.opts,closing:r.closing,databaseType:r.databaseType});aa.createScripts=HA});var Pn=h(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.Job=wr.PRIORITY_LIMIT=void 0;var tg=(Qe(),it(He)),QA=V("util"),tt=ut(),ZA=oa(),rg=Rc(),XA=fd(),ot=at(),eD=(0,QA.debuglog)("bull");wr.PRIORITY_LIMIT=2**21;var Md=class r{constructor(e,t,n,i={},s){this.queue=e,this.name=t,this.data=n,this.opts=i,this.id=s,this.progress=0,this.returnvalue=null,this.stacktrace=null,this.delay=0,this.priority=0,this.attemptsStarted=0,this.attemptsMade=0,this.stalledCounter=0;let a=this.opts,{repeatJobKey:o}=a,l=tg.__rest(a,["repeatJobKey"]);this.opts=Object.assign({attempts:0},l),this.delay=this.opts.delay,this.priority=this.opts.priority||0,this.repeatJobKey=o,this.timestamp=i.timestamp?i.timestamp:Date.now(),this.opts.backoff=rg.Backoffs.normalize(i.backoff),this.parentKey=(0,tt.getParentKey)(i.parent),i.parent&&(this.parent={id:i.parent.id,queueKey:i.parent.queue},i.failParentOnFailure&&(this.parent.fpof=!0),i.removeDependencyOnFailure&&(this.parent.rdof=!0),i.ignoreDependencyOnFailure&&(this.parent.idof=!0),i.continueParentOnFailure&&(this.parent.cpof=!0)),this.debounceId=i.debounce?i.debounce.id:void 0,this.deduplicationId=i.deduplication?i.deduplication.id:this.debounceId,this.toKey=e.toKey.bind(e),this.createScripts(),this.queueQualifiedName=e.qualifiedName}static async create(e,t,n,i){let s=await e.client,a=new this(e,t,n,i,i&&i.jobId);return a.id=await a.addJob(s,{parentKey:a.parentKey,parentDependenciesKey:a.parentKey?`${a.parentKey}:dependencies`:""}),a}static async createBulk(e,t){let n=await e.client,i=t.map(o=>{var l;return new this(e,o.name,o.data,o.opts,(l=o.opts)===null||l===void 0?void 0:l.jobId)}),s=n.pipeline();for(let o of i)o.addJob(s,{parentKey:o.parentKey,parentDependenciesKey:o.parentKey?`${o.parentKey}:dependencies`:""});let a=await s.exec();for(let o=0;o<a.length;++o){let[l,c]=a[o];if(l)throw l;i[o].id=c}return i}static fromJSON(e,t,n){let i=JSON.parse(t.data||"{}"),s=r.optsFromJSON(t.opts),a=new this(e,t.name,i,s,t.id||n);return a.progress=JSON.parse(t.progress||"0"),a.delay=parseInt(t.delay),a.priority=parseInt(t.priority),a.timestamp=parseInt(t.timestamp),t.finishedOn&&(a.finishedOn=parseInt(t.finishedOn)),t.processedOn&&(a.processedOn=parseInt(t.processedOn)),t.rjk&&(a.repeatJobKey=t.rjk),t.deid&&(a.debounceId=t.deid,a.deduplicationId=t.deid),t.failedReason&&(a.failedReason=t.failedReason),a.attemptsStarted=parseInt(t.ats||"0"),a.attemptsMade=parseInt(t.attemptsMade||t.atm||"0"),a.stalledCounter=parseInt(t.stc||"0"),t.defa&&(a.deferredFailure=t.defa),a.stacktrace=tD(t.stacktrace),typeof t.returnvalue=="string"&&(a.returnvalue=ng(t.returnvalue)),t.parentKey&&(a.parentKey=t.parentKey),t.parent&&(a.parent=JSON.parse(t.parent)),t.pb&&(a.processedBy=t.pb),t.nrjid&&(a.nextRepeatableJobId=t.nrjid),a}createScripts(){this.scripts=(0,ZA.createScripts)(this.queue)}static optsFromJSON(e,t=tt.optsDecodeMap){let n=JSON.parse(e||"{}"),i=Object.entries(n),s={};for(let a of i){let[o,l]=a;t[o]?s[t[o]]=l:o==="tm"?s.telemetry=Object.assign(Object.assign({},s.telemetry),{metadata:l}):o==="omc"?s.telemetry=Object.assign(Object.assign({},s.telemetry),{omitContext:l}):s[o]=l}return s}static async fromId(e,t){if(t){let i=await(await e.client).hgetall(e.toKey(t));return(0,tt.isEmpty)(i)?void 0:this.fromJSON(e,i,t)}}static addJobLog(e,t,n,i){return e.scripts.addLog(t,n,i)}toJSON(){let e=this,{queue:t,scripts:n}=e;return tg.__rest(e,["queue","scripts"])}asJSON(){return(0,tt.removeUndefinedFields)({id:this.id,name:this.name,data:JSON.stringify(typeof this.data>"u"?{}:this.data),opts:r.optsAsJSON(this.opts),parent:this.parent?Object.assign({},this.parent):void 0,parentKey:this.parentKey,progress:this.progress,attemptsMade:this.attemptsMade,attemptsStarted:this.attemptsStarted,stalledCounter:this.stalledCounter,finishedOn:this.finishedOn,processedOn:this.processedOn,timestamp:this.timestamp,failedReason:JSON.stringify(this.failedReason),stacktrace:JSON.stringify(this.stacktrace),debounceId:this.debounceId,deduplicationId:this.deduplicationId,repeatJobKey:this.repeatJobKey,returnvalue:JSON.stringify(this.returnvalue),nrjid:this.nextRepeatableJobId})}static optsAsJSON(e={},t=tt.optsEncodeMap){let n=Object.entries(e),i={};for(let[s,a]of n)if(!(typeof a>"u"))if(s in t){let l=t[s];i[l]=a}else s==="telemetry"?(a.metadata!==void 0&&(i.tm=a.metadata),a.omitContext!==void 0&&(i.omc=a.omitContext)):i[s]=a;return i}asJSONSandbox(){return Object.assign(Object.assign({},this.asJSON()),{queueName:this.queueName,queueQualifiedName:this.queueQualifiedName,prefix:this.prefix})}updateData(e){return this.data=e,this.scripts.updateData(this,e)}async updateProgress(e){this.progress=e,await this.scripts.updateProgress(this.id,e),this.queue.emit("progress",this,e)}async log(e){return r.addJobLog(this.queue,this.id,e,this.opts.keepLogs)}async removeChildDependency(){return await this.scripts.removeChildDependency(this.id,this.parentKey)?(this.parent=void 0,this.parentKey=void 0,!0):!1}async clearLogs(e){let t=await this.queue.client,n=this.toKey(this.id)+":logs";e?await t.ltrim(n,-e,-1):await t.del(n)}async remove({removeChildren:e=!0}={}){await this.queue.waitUntilReady();let t=this.queue,n=this;if(await this.scripts.remove(n.id,e))t.emit("removed",n);else throw new Error(`Job ${this.id} could not be removed because it is locked by another worker`)}async removeUnprocessedChildren(){let e=this.id;await this.scripts.removeUnprocessedChildren(e)}extendLock(e,t){return this.scripts.extendLock(this.id,e,t)}async moveToCompleted(e,t,n=!0){return this.queue.trace(ot.SpanKind.INTERNAL,"complete",this.queue.name,async i=>{this.setSpanJobAttributes(i),await this.queue.waitUntilReady(),this.returnvalue=e||void 0;let s=(0,tt.tryCatch)(JSON.stringify,JSON,[e]);if(s===tt.errorObject)throw tt.errorObject.value;let a=this.scripts.moveToCompletedArgs(this,s,this.opts.removeOnComplete,t,n),o=await this.scripts.moveToFinished(this.id,a);return this.finishedOn=a[this.scripts.moveToFinishedKeys.length+1],this.attemptsMade+=1,this.recordJobMetrics("completed"),o})}async moveToWait(e){let t=await this.scripts.moveJobFromActiveToWait(this.id,e);return this.recordJobMetrics("waiting"),t}async shouldRetryJob(e){if(this.attemptsMade+1<this.opts.attempts&&!this.discarded&&!(e instanceof XA.UnrecoverableError||e.name=="UnrecoverableError")){let t=this.queue.opts,n=await rg.Backoffs.calculate(this.opts.backoff,this.attemptsMade+1,e,this,t.settings&&t.settings.backoffStrategy);return[n!=-1,n==-1?0:n]}else return[!1,0]}async moveToFailed(e,t,n=!1){this.failedReason=e?.message;let[i,s]=await this.shouldRetryJob(e);return this.queue.trace(ot.SpanKind.INTERNAL,this.getSpanOperation(i,s),this.queue.name,async(a,o)=>{var l,c;this.setSpanJobAttributes(a);let d;!(!((c=(l=this.opts)===null||l===void 0?void 0:l.telemetry)===null||c===void 0)&&c.omitContext)&&o&&(d=o);let u;this.updateStacktrace(e);let f={failedReason:this.failedReason,stacktrace:JSON.stringify(this.stacktrace),tm:d},p;if(i)s?(u=await this.scripts.moveToDelayed(this.id,Date.now(),s,t,{fieldsToUpdate:f,fetchNext:n}),this.recordJobMetrics("delayed")):(u=await this.scripts.retryJob(this.id,this.opts.lifo,t,{fieldsToUpdate:f}),this.recordJobMetrics("retried"));else{let y=this.scripts.moveToFailedArgs(this,this.failedReason,this.opts.removeOnFail,t,n,f);u=await this.scripts.moveToFinished(this.id,y),p=y[this.scripts.moveToFinishedKeys.length+1],this.recordJobMetrics("failed")}return p&&typeof p=="number"&&(this.finishedOn=p),s&&typeof s=="number"&&(this.delay=s),this.attemptsMade+=1,u})}getSpanOperation(e,t){return e?t?"delay":"retry":"fail"}recordJobMetrics(e){var t,n;let i=(n=(t=this.queue.opts)===null||t===void 0?void 0:t.telemetry)===null||n===void 0?void 0:n.meter;if(!i)return;let s={[ot.TelemetryAttributes.QueueName]:this.queue.name,[ot.TelemetryAttributes.JobName]:this.name,[ot.TelemetryAttributes.JobStatus]:e},o={completed:ot.MetricNames.JobsCompleted,failed:ot.MetricNames.JobsFailed,delayed:ot.MetricNames.JobsDelayed,retried:ot.MetricNames.JobsRetried,waiting:ot.MetricNames.JobsWaiting,"waiting-children":ot.MetricNames.JobsWaitingChildren}[e];if(i.createCounter(o,{description:`Number of jobs ${e}`,unit:"1"}).add(1,s),this.processedOn){let c=Date.now()-this.processedOn;i.createHistogram(ot.MetricNames.JobDuration,{description:"Job processing duration",unit:"ms"}).record(c,s)}}isCompleted(){return this.isInZSet("completed")}isFailed(){return this.isInZSet("failed")}isDelayed(){return this.isInZSet("delayed")}isWaitingChildren(){return this.isInZSet("waiting-children")}isActive(){return this.isInList("active")}async isWaiting(){return await this.isInList("wait")||await this.isInList("paused")}get queueName(){return this.queue.name}get prefix(){return this.queue.opts.prefix}getState(){return this.scripts.getState(this.id)}async changeDelay(e){await this.scripts.changeDelay(this.id,e),this.delay=e}async changePriority(e){await this.scripts.changePriority(this.id,e.priority,e.lifo),this.priority=e.priority||0}async getChildrenValues(){let t=await(await this.queue.client).hgetall(this.toKey(`${this.id}:processed`));if(t)return(0,tt.parseObjectValues)(t)}async getIgnoredChildrenFailures(){return(await this.queue.client).hgetall(this.toKey(`${this.id}:failed`))}async getFailedChildrenValues(){return(await this.queue.client).hgetall(this.toKey(`${this.id}:failed`))}async getDependencies(e={}){let n=(await this.queue.client).multi();if(!e.processed&&!e.unprocessed&&!e.ignored&&!e.failed){n.hgetall(this.toKey(`${this.id}:processed`)),n.smembers(this.toKey(`${this.id}:dependencies`)),n.hgetall(this.toKey(`${this.id}:failed`)),n.zrange(this.toKey(`${this.id}:unsuccessful`),0,-1);let[[i,s],[a,o],[l,c],[d,u]]=await n.exec();return{processed:(0,tt.parseObjectValues)(s),unprocessed:o,failed:u,ignored:c}}else{let i={cursor:0,count:20},s=[];if(e.processed){s.push("processed");let g=Object.assign(Object.assign({},i),e.processed);n.hscan(this.toKey(`${this.id}:processed`),g.cursor,"COUNT",g.count)}if(e.unprocessed){s.push("unprocessed");let g=Object.assign(Object.assign({},i),e.unprocessed);n.sscan(this.toKey(`${this.id}:dependencies`),g.cursor,"COUNT",g.count)}if(e.ignored){s.push("ignored");let g=Object.assign(Object.assign({},i),e.ignored);n.hscan(this.toKey(`${this.id}:failed`),g.cursor,"COUNT",g.count)}let a;if(e.failed){s.push("failed");let g=Object.assign(Object.assign({},i),e.failed);a=g.cursor+g.count,n.zrange(this.toKey(`${this.id}:unsuccessful`),g.cursor,g.count-1)}let o=await n.exec(),l,c,d,u,f,p,y;return s.forEach((g,E)=>{switch(g){case"processed":{l=o[E][1][0];let S=o[E][1][1],x={};for(let C=0;C<S.length;++C)C%2&&(x[S[C-1]]=JSON.parse(S[C]));c=x;break}case"failed":{f=o[E][1];break}case"ignored":{p=o[E][1][0];let S=o[E][1][1],x={};for(let C=0;C<S.length;++C)C%2&&(x[S[C-1]]=S[C]);y=x;break}case"unprocessed":{d=o[E][1][0],u=o[E][1][1];break}}}),Object.assign(Object.assign(Object.assign(Object.assign({},l?{processed:c,nextProcessedCursor:Number(l)}:{}),p?{ignored:y,nextIgnoredCursor:Number(p)}:{}),a?{failed:f,nextFailedCursor:a}:{}),d?{unprocessed:u,nextUnprocessedCursor:Number(d)}:{})}}async getDependenciesCount(e={}){let t=[];Object.entries(e).forEach(([a,o])=>{o&&t.push(a)});let n=t.length?t:["processed","unprocessed","ignored","failed"],i=await this.scripts.getDependencyCounts(this.id,n),s={};return i.forEach((a,o)=>{s[`${n[o]}`]=a||0}),s}async waitUntilFinished(e,t){await this.queue.waitUntilReady();let n=this.id;return new Promise(async(i,s)=>{let a;t&&(a=setTimeout(()=>l(`Job wait ${this.name} timed out before finishing, no finish notification arrived after ${t}ms (id=${n})`),t));function o(g){u(),i(g.returnvalue)}function l(g){u(),s(new Error(g.failedReason||g))}let c=`completed:${n}`,d=`failed:${n}`;e.on(c,o),e.on(d,l),this.queue.on("closing",l);let u=()=>{clearInterval(a),e.removeListener(c,o),e.removeListener(d,l),this.queue.removeListener("closing",l)};await e.waitUntilReady();let[f,p]=await this.scripts.isFinished(n,!0);f!=0&&(f==-1||f==2?l({failedReason:p}):o({returnvalue:ng(p)}))})}async moveToDelayed(e,t){let n=Date.now(),i=e-n,s=i>0?i:0;await this.scripts.moveToDelayed(this.id,n,s,t,{skipAttempt:!0}),this.delay=s,this.recordJobMetrics("delayed")}async moveToWaitingChildren(e,t={}){let n=await this.scripts.moveToWaitingChildren(this.id,e,t);return n&&this.recordJobMetrics("waiting-children"),n}async promote(){let e=this.id;await this.scripts.promote(e),this.delay=0}async retry(e="failed",t={}){await this.scripts.reprocessJob(this,e,t),this.failedReason=null,this.finishedOn=null,this.processedOn=null,this.returnvalue=null,t.resetAttemptsMade&&(this.attemptsMade=0),t.resetAttemptsStarted&&(this.attemptsStarted=0)}discard(){this.discarded=!0}async isInZSet(e){return await(await this.queue.client).zscore(this.queue.toKey(e),this.id)!==null}async isInList(e){return this.scripts.isJobInList(this.queue.toKey(e),this.id)}addJob(e,t){let n=this.asJSON();return this.validateOptions(n),this.scripts.addJob(e,n,n.opts,this.id,t)}async removeDeduplicationKey(){return this.deduplicationId?await this.scripts.removeDeduplicationKey(this.deduplicationId,this.id)>0:!1}validateOptions(e){var t,n,i,s,a,o,l,c;let d=["removeDependencyOnFailure","failParentOnFailure","continueParentOnFailure","ignoreDependencyOnFailure"];if(this.opts.sizeLimit&&(0,tt.lengthInUtf8Bytes)(e.data)>this.opts.sizeLimit)throw new Error(`The size of job ${this.name} exceeds the limit ${this.opts.sizeLimit} bytes`);if(this.opts.delay&&this.opts.repeat&&!(!((t=this.opts.repeat)===null||t===void 0)&&t.count))throw new Error("Delay and repeat options cannot be used together");let f=d.filter(p=>this.opts[p]);if(f.length>1){let p=f.join(", ");throw new Error(`The following options cannot be used together: ${p}`)}if(!((n=this.opts)===null||n===void 0)&&n.jobId){if(`${parseInt(this.opts.jobId,10)}`===((i=this.opts)===null||i===void 0?void 0:i.jobId))throw new Error("Custom Id cannot be integers");if(!((s=this.opts)===null||s===void 0)&&s.jobId.includes(":")&&((o=(a=this.opts)===null||a===void 0?void 0:a.jobId)===null||o===void 0?void 0:o.split(":").length)!==3)throw new Error("Custom Id cannot contain :")}if(this.opts.priority){if(Math.trunc(this.opts.priority)!==this.opts.priority)throw new Error("Priority should not be float");if(this.opts.priority>wr.PRIORITY_LIMIT)throw new Error(`Priority should be between 0 and ${wr.PRIORITY_LIMIT}`)}if(this.opts.deduplication){if(!(!((l=this.opts.deduplication)===null||l===void 0)&&l.id))throw new Error("Deduplication id must be provided");if(this.parentKey)throw new Error("Deduplication and parent options cannot be used together")}if(this.opts.debounce){if(!(!((c=this.opts.debounce)===null||c===void 0)&&c.id))throw new Error("Debounce id must be provided");if(this.parentKey)throw new Error("Debounce and parent options cannot be used together")}if(typeof this.opts.backoff=="object"&&typeof this.opts.backoff.jitter=="number"&&(this.opts.backoff.jitter<0||this.opts.backoff.jitter>1))throw new Error("Jitter should be between 0 and 1")}updateStacktrace(e){this.stacktrace=this.stacktrace||[],e?.stack&&(this.stacktrace.push(e.stack),this.opts.stackTraceLimit===0?this.stacktrace=[]:this.opts.stackTraceLimit&&(this.stacktrace=this.stacktrace.slice(-this.opts.stackTraceLimit)))}setSpanJobAttributes(e){e?.setAttributes({[ot.TelemetryAttributes.JobName]:this.name,[ot.TelemetryAttributes.JobId]:this.id})}};wr.Job=Md;function tD(r){if(!r)return[];let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);return e===tt.errorObject||!(e instanceof Array)?[]:e}function ng(r){let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);if(e!==tt.errorObject)return e;eD("corrupted returnvalue: "+r,e)}});var ca=h(la=>{"use strict";Object.defineProperty(la,"__esModule",{value:!0});la.QueueKeys=void 0;var Pd=class{constructor(e="bull"){this.prefix=e}getKeys(e){let t={};return["","active","wait","waiting-children","paused","id","delayed","prioritized","stalled-check","completed","failed","stalled","repeat","limiter","meta","events","pc","marker","de"].forEach(n=>{t[n]=this.toKey(e,n)}),t}toKey(e,t){return`${this.getQueueQualifiedName(e)}:${t}`}getQueueQualifiedName(e){return`${this.prefix}:${e}`}};la.QueueKeys=Pd});var ig=h(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.addDelayedJob=void 0;var rD=`--[[
|
|
165
|
+
`),new Error(f);function p(g){var S=Su(Ot.join(g,"prebuilds")).map(fb),k=S.filter(hb(Ys,Gs)).sort(yb)[0];if(k)return y(Ot.join(g,"prebuilds",k.name))}function y(g){var S=Su(g).map(mb),k=S.filter(bb(gu,vu)),I=k.sort(gb(gu))[0];if(I)return Ot.join(g,I.file)}};function Su(r){try{return uA.readdirSync(r)}catch{return[]}}function ob(r,e){var t=Su(r).filter(e);return t[0]&&Ot.join(r,t[0])}function lb(r){return/\.node$/.test(r)}function fb(r){var e=r.split("-");if(e.length===2){var t=e[0],n=e[1].split("+");if(t&&n.length&&n.every(Boolean))return{name:r,platform:t,architectures:n}}}function hb(r,e){return function(t){return t==null||t.platform!==r?!1:t.architectures.includes(e)}}function yb(r,e){return r.architectures.length-e.architectures.length}function mb(r){var e=r.split("."),t=e.pop(),n={file:r,specificity:0};if(t==="node"){for(var i=0;i<e.length;i++){var s=e[i];if(s==="node"||s==="electron"||s==="node-webkit")n.runtime=s;else if(s==="napi")n.napi=!0;else if(s.slice(0,3)==="abi")n.abi=s.slice(3);else if(s.slice(0,2)==="uv")n.uv=s.slice(2);else if(s.slice(0,4)==="armv")n.armv=s.slice(4);else if(s==="glibc"||s==="musl")n.libc=s;else continue;n.specificity++}return n}}function bb(r,e){return function(t){return!(t==null||t.runtime!==r&&!hA(t)||t.abi!==e&&!t.napi||t.uv&&t.uv!==pb||t.armv&&t.armv!==Ku||t.libc&&t.libc!==db)}}function hA(r){return r.runtime==="node"&&r.napi}function gb(r){return function(e,t){return e.runtime!==t.runtime?e.runtime===r?-1:1:e.abi!==t.abi?e.abi?-1:1:e.specificity!==t.specificity?e.specificity>t.specificity?-1:1:0}}function yA(){return!!(process.versions&&process.versions.nw)}function mA(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}function bA(r){if(r!=="linux")return!1;let{familySync:e,MUSL:t}=ab();return e()===t}Bt.parseTags=mb;Bt.matchTags=bb;Bt.compareTags=gb;Bt.parseTuple=fb;Bt.matchTuple=hb;Bt.compareTuples=yb});var Sb=h((LP,Iu)=>{var ku=typeof __webpack_require__=="function"?__non_webpack_require__:V;typeof ku.addon=="function"?Iu.exports=ku.addon.bind(ku):Iu.exports=Kb()});var kb=h((JP,Eb)=>{Eb.exports=Sb()(__dirname)});var tg=h(ue=>{"use strict";var Lb=V("stream"),gA=V("module"),ju;try{ju=new TextDecoder}catch{}var _,pt,b=0,Au=[],Zr=Au,gi=0,he={},oe,tr,dt=0,xt=0,Me,rr,ze=[],ae,Ib={useRecords:!1,mapsAsObjects:!0},zs=class{},Du=new zs;Du.name="MessagePack 0xC1";var Ir=!1,xb=2,nr=class r{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.sequential&&e.trusted!==!1&&(e.trusted=!0,!e.structures&&e.useRecords!=!1&&(e.structures=[],e.maxSharedStructures||(e.maxSharedStructures=0))),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0),e.int64AsNumber&&(e.int64AsType="number")),Object.assign(this,e)}unpack(e,t){if(_)return Ub(()=>(Hs(),this?this.unpack(e,t):r.prototype.unpack.call(Ib,e,t)));!e.buffer&&e.constructor===ArrayBuffer&&(e=typeof Buffer<"u"?Buffer.from(e):new Uint8Array(e)),typeof t=="object"?(pt=t.end||e.length,b=t.start||0):(b=0,pt=t>-1?t:e.length),gi=0,xt=0,tr=null,Zr=Au,Me=null,_=e;try{ae=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(n){throw _=null,e instanceof Uint8Array?n:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof r){if(he=this,this.structures)return oe=this.structures,Bs(t);(!oe||oe.length>0)&&(oe=[])}else he=Ib,(!oe||oe.length>0)&&(oe=[]);return Bs(t)}unpackMultiple(e,t){let n,i=0;try{Ir=!0;let s=e.length,a=this?this.unpack(e,s):ra.unpack(e,s);if(t){if(t(a,i,b)===!1)return;for(;b<s;)if(i=b,t(Bs(),i,b)===!1)return}else{for(n=[a];b<s;)i=b,n.push(Bs());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Ir=!1,Hs()}}_mergeStructures(e,t){this._onLoadedStructures&&(e=this._onLoadedStructures(e)),e=e||[],Object.isFrozen(e)&&(e=e.map(n=>n.slice(0)));for(let n=0,i=e.length;n<i;n++){let s=e[n];s&&(s.isShared=!0,n>=32&&(s.highByte=n-32>>5))}e.sharedLength=e.length;for(let n in t||[])if(n>=0){let i=e[n],s=t[n];s&&(i&&((e.restoreStructures||(e.restoreStructures=[]))[n]=i),e[n]=s)}return this.structures=e}decode(e,t){return this.unpack(e,t)}};function Bs(r){try{if(!he.trusted&&!Ir){let t=oe.sharedLength||0;t<oe.length&&(oe.length=t)}let e;if(he._readStruct&&_[b]<64&&_[b]>=32?(e=he._readStruct(_,b,pt),_=null,!(r&&r.lazy)&&e&&(e=e.toJSON()),b=pt):e=De(),Me&&(b=Me.postBundlePosition,Me=null),Ir&&(oe.restoreStructures=null),b==pt)oe&&oe.restoreStructures&&wb(),oe=null,_=null,rr&&(rr=null);else{if(b>pt)throw new Error("Unexpected end of MessagePack data");if(!Ir){let t;try{t=JSON.stringify(e,(n,i)=>typeof i=="bigint"?`${i}n`:i).slice(0,100)}catch(n){t="(JSON view not available "+n+")"}throw new Error("Data read, but end of buffer not reached "+t)}}return e}catch(e){throw oe&&oe.restoreStructures&&wb(),Hs(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")||b>pt)&&(e.incomplete=!0),e}}function wb(){for(let r in oe.restoreStructures)oe[r]=oe.restoreStructures[r];oe.restoreStructures=null}function De(){let r=_[b++];if(r<160)if(r<128){if(r<64)return r;{let e=oe[r&63]||he.getStructures&&qb()[r&63];return e?(e.read||(e.read=Ou(e,r&63)),e.read()):r}}else if(r<144)if(r-=128,he.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=Yb();n==="__proto__"&&(n="__proto_"),e[n]=De()}return e}else{let e=new Map;for(let t=0;t<r;t++)e.set(De(),De());return e}else{r-=144;let e=new Array(r);for(let t=0;t<r;t++)e[t]=De();return he.freezeData?Object.freeze(e):e}else if(r<192){let e=r-160;if(xt>=b)return tr.slice(b-dt,(b+=e)-dt);if(xt==0&&pt<140){let t=e<16?Ru(e):Gb(e);if(t!=null)return t}return $s(e)}else{let e;switch(r){case 192:return null;case 193:return Me?(e=De(),e>0?Me[1].slice(Me.position1,Me.position1+=e):Me[0].slice(Me.position0,Me.position0-=e)):Du;case 194:return!1;case 195:return!0;case 196:if(e=_[b++],e===void 0)throw new Error("Unexpected end of buffer");return xu(e);case 197:return e=ae.getUint16(b),b+=2,xu(e);case 198:return e=ae.getUint32(b),b+=4,xu(e);case 199:return Qr(_[b++]);case 200:return e=ae.getUint16(b),b+=2,Qr(e);case 201:return e=ae.getUint32(b),b+=4,Qr(e);case 202:if(e=ae.getFloat32(b),he.useFloat32>2){let t=ta[(_[b]&127)<<1|_[b+1]>>7];return b+=4,(t*e+(e>0?.5:-.5)>>0)/t}return b+=4,e;case 203:return e=ae.getFloat64(b),b+=8,e;case 204:return _[b++];case 205:return e=ae.getUint16(b),b+=2,e;case 206:return e=ae.getUint32(b),b+=4,e;case 207:return he.int64AsType==="number"?(e=ae.getUint32(b)*4294967296,e+=ae.getUint32(b+4)):he.int64AsType==="string"?e=ae.getBigUint64(b).toString():he.int64AsType==="auto"?(e=ae.getBigUint64(b),e<=BigInt(2)<<BigInt(52)&&(e=Number(e))):e=ae.getBigUint64(b),b+=8,e;case 208:return ae.getInt8(b++);case 209:return e=ae.getInt16(b),b+=2,e;case 210:return e=ae.getInt32(b),b+=4,e;case 211:return he.int64AsType==="number"?(e=ae.getInt32(b)*4294967296,e+=ae.getUint32(b+4)):he.int64AsType==="string"?e=ae.getBigInt64(b).toString():he.int64AsType==="auto"?(e=ae.getBigInt64(b),e>=BigInt(-2)<<BigInt(52)&&e<=BigInt(2)<<BigInt(52)&&(e=Number(e))):e=ae.getBigInt64(b),b+=8,e;case 212:if(e=_[b++],e==114)return Rb(_[b++]&63);{let t=ze[e];if(t)return t.read?(b++,t.read(De())):t.noBuffer?(b++,t()):t(_.subarray(b,++b));throw new Error("Unknown extension "+e)}case 213:return e=_[b],e==114?(b++,Rb(_[b++]&63,_[b++])):Qr(2);case 214:return Qr(4);case 215:return Qr(8);case 216:return Qr(16);case 217:return e=_[b++],xt>=b?tr.slice(b-dt,(b+=e)-dt):Jb(e);case 218:return e=ae.getUint16(b),b+=2,xt>=b?tr.slice(b-dt,(b+=e)-dt):Fb(e);case 219:return e=ae.getUint32(b),b+=4,xt>=b?tr.slice(b-dt,(b+=e)-dt):Vb(e);case 220:return e=ae.getUint16(b),b+=2,jb(e);case 221:return e=ae.getUint32(b),b+=4,jb(e);case 222:return e=ae.getUint16(b),b+=2,Ab(e);case 223:return e=ae.getUint32(b),b+=4,Ab(e);default:if(r>=224)return r-256;if(r===void 0){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}throw new Error("Unknown MessagePack token "+r)}}}var vA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Ou(r,e){function t(){if(t.count++>xb){let i;try{i=r.read=new Function("r","return function(){return "+(he.freezeData?"Object.freeze":"")+"({"+r.map(s=>s==="__proto__"?"__proto_:r()":vA.test(s)?s+":r()":"["+JSON.stringify(s)+"]:r()").join(",")+"})}")(De)}catch{return xb=1/0,t()}return r.highByte===0&&(r.read=Tb(e,r.read)),i()}let n={};for(let i=0,s=r.length;i<s;i++){let a=r[i];a==="__proto__"&&(a="__proto_"),n[a]=De()}return he.freezeData?Object.freeze(n):n}return t.count=0,r.highByte===0?Tb(e,t):t}var Tb=(r,e)=>function(){let t=_[b++];if(t===0)return e();let n=r<32?-(r+(t<<5)):r+(t<<5),i=oe[n]||qb()[n];if(!i)throw new Error("Record id is not defined for "+n);return i.read||(i.read=Ou(i,r)),i.read()};function qb(){let r=Ub(()=>(_=null,he.getStructures()));return oe=he._mergeStructures(r,oe)}var $s=Mn,Jb=Mn,Fb=Mn,Vb=Mn;ue.isNativeAccelerationEnabled=!1;function KA(r){ue.isNativeAccelerationEnabled=!0,$s=e(1),Jb=e(2),Fb=e(3),Vb=e(5);function e(t){return function(i){let s=Zr[gi++];if(s==null){if(Me)return Mn(i);let o=_.byteOffset,l=r(b-t+o,pt+o,_.buffer);if(typeof l=="string")s=l,Zr=Au;else if(Zr=l,gi=1,xt=1,s=Zr[0],s===void 0)throw new Error("Unexpected end of buffer")}let a=s.length;return a<=i?(b+=i,s):(tr=s,dt=b,xt=b+a,b+=i,s.slice(0,i))}}}function Mn(r){let e;if(r<16&&(e=Ru(r)))return e;if(r>64&&ju)return ju.decode(_.subarray(b,b+=r));let t=b+r,n=[];for(e="";b<t;){let i=_[b++];if((i&128)===0)n.push(i);else if((i&224)===192){let s=_[b++]&63,a=(i&31)<<6|s;a<128?n.push(65533):n.push(a)}else if((i&240)===224){let s=_[b++]&63,a=_[b++]&63,o=(i&31)<<12|s<<6|a;o<2048||o>=55296&&o<=57343?n.push(65533):n.push(o)}else if((i&248)===240){let s=_[b++]&63,a=_[b++]&63,o=_[b++]&63,l=(i&7)<<18|s<<12|a<<6|o;l<65536||l>1114111?n.push(65533):(l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|l&1023),n.push(l))}else n.push(65533);n.length>=4096&&(e+=Je.apply(String,n),n.length=0)}return n.length>0&&(e+=Je.apply(String,n)),e}function jb(r){let e=new Array(r);for(let t=0;t<r;t++)e[t]=De();return he.freezeData?Object.freeze(e):e}function Ab(r){if(he.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=Yb();n==="__proto__"&&(n="__proto_"),e[n]=De()}return e}else{let e=new Map;for(let t=0;t<r;t++)e.set(De(),De());return e}}var Je=String.fromCharCode;function Gb(r){let e=b,t=new Array(r);for(let n=0;n<r;n++){let i=_[b++];if((i&128)>0){b=e;return}t[n]=i}return Je.apply(String,t)}function Ru(r){if(r<4)if(r<2){if(r===0)return"";{let e=_[b++];if((e&128)>1){b-=1;return}return Je(e)}}else{let e=_[b++],t=_[b++];if((e&128)>0||(t&128)>0){b-=2;return}if(r<3)return Je(e,t);let n=_[b++];if((n&128)>0){b-=3;return}return Je(e,t,n)}else{let e=_[b++],t=_[b++],n=_[b++],i=_[b++];if((e&128)>0||(t&128)>0||(n&128)>0||(i&128)>0){b-=4;return}if(r<6){if(r===4)return Je(e,t,n,i);{let s=_[b++];if((s&128)>0){b-=5;return}return Je(e,t,n,i,s)}}else if(r<8){let s=_[b++],a=_[b++];if((s&128)>0||(a&128)>0){b-=6;return}if(r<7)return Je(e,t,n,i,s,a);let o=_[b++];if((o&128)>0){b-=7;return}return Je(e,t,n,i,s,a,o)}else{let s=_[b++],a=_[b++],o=_[b++],l=_[b++];if((s&128)>0||(a&128)>0||(o&128)>0||(l&128)>0){b-=8;return}if(r<10){if(r===8)return Je(e,t,n,i,s,a,o,l);{let c=_[b++];if((c&128)>0){b-=9;return}return Je(e,t,n,i,s,a,o,l,c)}}else if(r<12){let c=_[b++],u=_[b++];if((c&128)>0||(u&128)>0){b-=10;return}if(r<11)return Je(e,t,n,i,s,a,o,l,c,u);let d=_[b++];if((d&128)>0){b-=11;return}return Je(e,t,n,i,s,a,o,l,c,u,d)}else{let c=_[b++],u=_[b++],d=_[b++],f=_[b++];if((c&128)>0||(u&128)>0||(d&128)>0||(f&128)>0){b-=12;return}if(r<14){if(r===12)return Je(e,t,n,i,s,a,o,l,c,u,d,f);{let p=_[b++];if((p&128)>0){b-=13;return}return Je(e,t,n,i,s,a,o,l,c,u,d,f,p)}}else{let p=_[b++],y=_[b++];if((p&128)>0||(y&128)>0){b-=14;return}if(r<15)return Je(e,t,n,i,s,a,o,l,c,u,d,f,p,y);let g=_[b++];if((g&128)>0){b-=15;return}return Je(e,t,n,i,s,a,o,l,c,u,d,f,p,y,g)}}}}}function Db(){let r=_[b++],e;if(r<192)e=r-160;else switch(r){case 217:e=_[b++];break;case 218:e=ae.getUint16(b),b+=2;break;case 219:e=ae.getUint32(b),b+=4;break;default:throw new Error("Expected string")}return Mn(e)}function xu(r){return he.copyBuffers?Uint8Array.prototype.slice.call(_,b,b+=r):_.subarray(b,b+=r)}function Qr(r){let e=_[b++];if(ze[e]){let t;return ze[e](_.subarray(b,t=b+=r),n=>{b=n;try{return De()}finally{b=t}})}else throw new Error("Unknown extension type "+e)}var Ob=new Array(4096);function Yb(){let r=_[b++];if(r>=160&&r<192){if(r=r-160,xt>=b)return tr.slice(b-dt,(b+=r)-dt);if(!(xt==0&&pt<180))return $s(r)}else return b--,Bb(De());let e=(r<<5^(r>1?ae.getUint16(b):r>0?_[b]:0))&4095,t=Ob[e],n=b,i=b+r-3,s,a=0;if(t&&t.bytes==r){for(;n<i;){if(s=ae.getUint32(n),s!=t[a++]){n=1879048192;break}n+=4}for(i+=3;n<i;)if(s=_[n++],s!=t[a++]){n=1879048192;break}if(n===i)return b=n,t.string;i-=3,n=b}for(t=[],Ob[e]=t,t.bytes=r;n<i;)s=ae.getUint32(n),t.push(s),n+=4;for(i+=3;n<i;)s=_[n++],t.push(s);let o=r<16?Ru(r):Gb(r);return o!=null?t.string=o:t.string=$s(r)}function Bb(r){if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean"||typeof r=="bigint")return r.toString();if(r==null)return r+"";if(he.allowArraysInMapKeys&&Array.isArray(r)&&r.flat().every(e=>["string","number","boolean","bigint"].includes(typeof e)))return r.flat().toString();throw new Error(`Invalid property type for record: ${typeof r}`)}var Rb=(r,e)=>{let t=De().map(Bb),n=r;e!==void 0&&(r=r<32?-((e<<5)+r):(e<<5)+r,t.highByte=e);let i=oe[r];return i&&(i.isShared||Ir)&&((oe.restoreStructures||(oe.restoreStructures=[]))[r]=i),oe[r]=t,t.read=Ou(t,n),t.read()};ze[0]=()=>{};ze[0].noBuffer=!0;ze[66]=r=>{let e=r.byteLength%8||8,t=BigInt(r[0]&128?r[0]-256:r[0]);for(let n=1;n<e;n++)t<<=BigInt(8),t+=BigInt(r[n]);if(r.byteLength!==e){let n=new DataView(r.buffer,r.byteOffset,r.byteLength),i=(s,a)=>{let o=a-s;if(o<=40){let d=n.getBigUint64(s);for(let f=s+8;f<a;f+=8)d<<=BigInt(64),d|=n.getBigUint64(f);return d}let l=s+(o>>4<<3),c=i(s,l),u=i(l,a);return c<<BigInt((a-l)*8)|u};t=t<<BigInt((n.byteLength-e)*8)|i(e,n.byteLength)}return t};var Cb={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError:typeof AggregateError=="function"?AggregateError:null};ze[101]=()=>{let r=De();if(!Cb[r[0]]){let e=Error(r[1],{cause:r[2]});return e.name=r[0],e}return Cb[r[0]](r[1],{cause:r[2]})};ze[105]=r=>{if(he.structuredClone===!1)throw new Error("Structured clone extension is disabled");let e=ae.getUint32(b-4);rr||(rr=new Map);let t=_[b],n;t>=144&&t<160||t==220||t==221?n=[]:t>=128&&t<144||t==222||t==223?n=new Map:(t>=199&&t<=201||t>=212&&t<=216)&&_[b+1]===115?n=new Set:n={};let i={target:n};rr.set(e,i);let s=De();if(i.used)Object.assign(n,s);else return i.target=s;if(n instanceof Map)for(let[a,o]of s.entries())n.set(a,o);if(n instanceof Set)for(let a of Array.from(s))n.add(a);return n};ze[112]=r=>{if(he.structuredClone===!1)throw new Error("Structured clone extension is disabled");let e=ae.getUint32(b-4),t=rr.get(e);return t.used=!0,t.target};ze[115]=()=>new Set(De());var Wb=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(r=>r+"Array"),SA=typeof globalThis=="object"?globalThis:window;ze[116]=r=>{let e=r[0],t=Uint8Array.prototype.slice.call(r,1).buffer,n=Wb[e];if(!n){if(e===16)return t;if(e===17)return new DataView(t);throw new Error("Could not find typed array for code "+e)}return new SA[n](t)};ze[120]=()=>{let r=De();return new RegExp(r[0],r[1])};var EA=[];ze[98]=r=>{let e=(r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3],t=b;return b+=e-r.length,Me=EA,Me=[Db(),Db()],Me.position0=0,Me.position1=0,Me.postBundlePosition=b,b=t,De()};ze[255]=r=>r.length==4?new Date((r[0]*16777216+(r[1]<<16)+(r[2]<<8)+r[3])*1e3):r.length==8?new Date(((r[0]<<22)+(r[1]<<14)+(r[2]<<6)+(r[3]>>2))/1e6+((r[3]&3)*4294967296+r[4]*16777216+(r[5]<<16)+(r[6]<<8)+r[7])*1e3):r.length==12?new Date(((r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3])/1e6+((r[4]&128?-281474976710656:0)+r[6]*1099511627776+r[7]*4294967296+r[8]*16777216+(r[9]<<16)+(r[10]<<8)+r[11])*1e3):new Date("invalid");function Ub(r){he&&he._onSaveState&&he._onSaveState();let e=pt,t=b,n=gi,i=dt,s=xt,a=tr,o=Zr,l=rr,c=Me,u=new Uint8Array(_.slice(0,pt)),d=oe,f=oe.slice(0,oe.length),p=he,y=Ir,g=r();return pt=e,b=t,gi=n,dt=i,xt=s,tr=a,Zr=o,rr=l,Me=c,_=u,Ir=y,oe=d,oe.splice(0,oe.length,...f),he=p,ae=new DataView(_.buffer,_.byteOffset,_.byteLength),g}function Hs(){_=null,rr=null,oe=null}function kA(r){r.unpack?ze[r.type]=r.unpack:ze[r.type]=r}var ta=new Array(147);for(let r=0;r<256;r++)ta[r]=+("1e"+Math.floor(45.15-r*.30103));var IA=nr,ra=new nr({useRecords:!1}),xA=ra.unpack,wA=ra.unpackMultiple,TA=ra.unpack,zb={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},$b=new Float32Array(1),_b=new Uint8Array($b.buffer,0,4);function jA(r){$b[0]=r;let e=ta[(_b[3]&127)<<1|_b[2]>>7];return(e*r+(r>0?.5:-.5)>>0)/e}nr.SUPPORTS_STRUCT_HOOKS=!0;var Us;try{Us=new TextEncoder}catch{}var Qs,Zs,_n=typeof Buffer<"u",Ws=_n?function(r){return Buffer.allocUnsafeSlow(r)}:Uint8Array,Hb=_n?Buffer:Uint8Array,Mb=_n?4294967296:2144337920,K,bi,ge,v=0,Ue,Te=null,AA=21760,DA=/[\u0080-\uFFFF]/,Cn=Symbol("record-id"),ir=class extends nr{constructor(e){super(e),this.offset=0;let t,n,i,s,a=Hb.prototype.utf8Write?function(m,A){return K.utf8Write(m,A,K.byteLength-A)}:Us&&Us.encodeInto?function(m,A){return Us.encodeInto(m,K.subarray(A)).written}:!1,o=this;e||(e={});let l=e&&e.sequential,c=e.structures||e.saveStructures,u=e.maxSharedStructures;if(u==null&&(u=c?32:0),u>8160)throw new Error("Maximum maxSharedStructure is 8160");e.structuredClone&&e.moreTypes==null&&(this.moreTypes=!0);let d=e.maxOwnStructures;d==null&&(d=c?32:64),!this.structures&&e.useRecords!=!1&&(this.structures=[]);let f=u>32||d+u>64,p=u+64,y=u+d+64;if(y>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let g=[],S=0,k=0;this.pack=this.encode=function(m,A){if(K||(K=new Ws(8192),ge=K.dataView||(K.dataView=new DataView(K.buffer,0,8192)),v=0),Ue=K.length-10,Ue-v<2048?(K=new Ws(K.length),ge=K.dataView||(K.dataView=new DataView(K.buffer,0,K.length)),Ue=K.length-10,v=0):v=v+7&2147483640,t=v,A&eg&&(v+=A&255),s=o.structuredClone?new Map:null,o.bundleStrings&&typeof m!="string"?(Te=[],Te.size=1/0):Te=null,i=o.structures,i){i.uninitialized&&(i=o._mergeStructures(o.getStructures()));let D=i.sharedLength||0;if(D>u)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+i.sharedLength);if(!i.transitions){i.transitions=Object.create(null);for(let T=0;T<D;T++){let Y=i[T];if(!Y)continue;let G,W=i.transitions;for(let ye=0,de=Y.length;ye<de;ye++){let nt=Y[ye];G=W[nt],G||(G=W[nt]=Object.create(null)),W=G}W[Cn]=T+64}this.lastNamedStructuresLength=D}l||(i.nextId=D+64)}n&&(n=!1);let j;try{o._writeStruct&&m&&typeof m=="object"?m.constructor===Object?C(m):m.constructor!==Map&&!Array.isArray(m)&&!Zs.some(T=>m instanceof T)?C(m.toJSON?m.toJSON():m):O(m):O(m);let D=Te;if(Te&&Nb(t,O,0),s&&s.idsToInsert){let T=s.idsToInsert.sort((ye,de)=>ye.offset>de.offset?1:-1),Y=T.length,G=-1;for(;D&&Y>0;){let ye=T[--Y].offset+t;ye<D.stringsPosition+t&&G===-1&&(G=0),ye>D.position+t?G>=0&&(G+=6):(G>=0&&(ge.setUint32(D.position+t,ge.getUint32(D.position+t)+G),G=-1),D=D.previous,Y++)}G>=0&&D&&ge.setUint32(D.position+t,ge.getUint32(D.position+t)+G),v+=T.length*6,v>Ue&&w(v),o.offset=v;let W=OA(K.subarray(t,v),T);return s=null,W}return o.offset=v,A&Zb?(K.start=t,K.end=v,K):K.subarray(t,v)}catch(D){throw j=D,D}finally{if(i&&(I(),n&&o.saveStructures)){let D=i.sharedLength||0,T=K.subarray(t,v),Y=(o._prepareStructures||CA)(i,o);if(!j)return o.saveStructures(Y,Y.isCompatible)===!1?o.pack(m,A):(o.lastNamedStructuresLength=D,K.length>1073741824&&(K=null),T)}K.length>1073741824&&(K=null),A&Xb&&(v=t)}};let I=()=>{k<10&&k++;let m=i.sharedLength||0;if(i.length>m&&!l&&(i.length=m),S>1e4)i.transitions=null,k=0,S=0,g.length>0&&(g=[]);else if(g.length>0&&!l){for(let A=0,j=g.length;A<j;A++)g[A][Cn]=0;g=[]}},R=m=>{var A=m.length;A<16?K[v++]=144|A:A<65536?(K[v++]=220,K[v++]=A>>8,K[v++]=A&255):(K[v++]=221,ge.setUint32(v,A),v+=4);for(let j=0;j<A;j++)O(m[j])},O=m=>{v>Ue&&(K=w(v));var A=typeof m,j;if(A==="string"){let D=m.length;if(Te&&D>=4&&D<4096){if((Te.size+=D)>AA){let W,ye=(Te[0]?Te[0].length*3+Te[1].length:0)+10;v+ye>Ue&&(K=w(v+ye));let de;Te.position?(de=Te,K[v]=200,v+=3,K[v++]=98,W=v-t,v+=4,Nb(t,O,0),ge.setUint16(W+t-3,v-t-W)):(K[v++]=214,K[v++]=98,W=v-t,v+=4),Te=["",""],Te.previous=de,Te.size=0,Te.position=W}let G=DA.test(m);Te[G?0:1]+=m,K[v++]=193,O(G?-D:D);return}let T;D<32?T=1:D<256?T=2:D<65536?T=3:T=5;let Y=D*3;if(v+Y>Ue&&(K=w(v+Y)),D<64||!a){let G,W,ye,de=v+T;for(G=0;G<D;G++)W=m.charCodeAt(G),W<128?K[de++]=W:W<2048?(K[de++]=W>>6|192,K[de++]=W&63|128):(W&64512)===55296&&((ye=m.charCodeAt(G+1))&64512)===56320?(W=65536+((W&1023)<<10)+(ye&1023),G++,K[de++]=W>>18|240,K[de++]=W>>12&63|128,K[de++]=W>>6&63|128,K[de++]=W&63|128):(K[de++]=W>>12|224,K[de++]=W>>6&63|128,K[de++]=W&63|128);j=de-v-T}else j=a(m,v+T);j<32?K[v++]=160|j:j<256?(T<2&&K.copyWithin(v+2,v+1,v+1+j),K[v++]=217,K[v++]=j):j<65536?(T<3&&K.copyWithin(v+3,v+2,v+2+j),K[v++]=218,K[v++]=j>>8,K[v++]=j&255):(T<5&&K.copyWithin(v+5,v+3,v+3+j),K[v++]=219,ge.setUint32(v,j),v+=4),v+=j}else if(A==="number")if(m>>>0===m)m<32||m<128&&this.useRecords===!1||m<64&&!this._writeStruct?K[v++]=m:m<256?(K[v++]=204,K[v++]=m):m<65536?(K[v++]=205,K[v++]=m>>8,K[v++]=m&255):(K[v++]=206,ge.setUint32(v,m),v+=4);else if(m>>0===m)m>=-32?K[v++]=256+m:m>=-128?(K[v++]=208,K[v++]=m+256):m>=-32768?(K[v++]=209,ge.setInt16(v,m),v+=2):(K[v++]=210,ge.setInt32(v,m),v+=4);else{let D;if((D=this.useFloat32)>0&&m<4294967296&&m>=-2147483648){K[v++]=202,ge.setFloat32(v,m);let T;if(D<4||(T=m*ta[(K[v]&127)<<1|K[v+1]>>7])>>0===T){v+=4;return}else v--}K[v++]=203,ge.setFloat64(v,m),v+=8}else if(A==="object"||A==="function")if(!m)K[v++]=192;else{if(s){let T=s.get(m);if(T){if(!T.id){let Y=s.idsToInsert||(s.idsToInsert=[]);T.id=Y.push(T)}K[v++]=214,K[v++]=112,ge.setUint32(v,T.id),v+=4;return}else s.set(m,{offset:v-t})}let D=m.constructor;if(D===Object)F(m);else if(D===Array)R(m);else if(D===Map)if(this.mapAsEmptyObject)K[v++]=128;else{j=m.size,j<16?K[v++]=128|j:j<65536?(K[v++]=222,K[v++]=j>>8,K[v++]=j&255):(K[v++]=223,ge.setUint32(v,j),v+=4);for(let[T,Y]of m)O(T),O(Y)}else{for(let T=0,Y=Qs.length;T<Y;T++){let G=Zs[T];if(m instanceof G){let W=Qs[T];if(W.write){W.type&&(K[v++]=212,K[v++]=W.type,K[v++]=0);let $t=W.write.call(this,m);$t===m?Array.isArray(m)?R(m):F(m):O($t);return}let ye=K,de=ge,nt=v;K=null;let At;try{At=W.pack.call(this,m,$t=>(K=ye,ye=null,v+=$t,v>Ue&&w(v),{target:K,targetView:ge,position:v-$t}),O)}finally{ye&&(K=ye,ge=de,v=nt,Ue=K.length-10)}At&&(At.length+v>Ue&&w(At.length+v),v=Pb(At,K,v,W.type));return}}if(Array.isArray(m))R(m);else{if(m.toJSON){let T=m.toJSON();if(T!==m)return O(T)}if(A==="function")return O(this.writeFunction&&this.writeFunction(m));F(m)}}}else if(A==="boolean")K[v++]=m?195:194;else if(A==="bigint"){if(m<9223372036854776e3&&m>=-9223372036854776e3)K[v++]=211,ge.setBigInt64(v,m);else if(m<18446744073709552e3&&m>0)K[v++]=207,ge.setBigUint64(v,m);else if(this.largeBigIntToFloat)K[v++]=203,ge.setFloat64(v,Number(m));else{if(this.largeBigIntToString)return O(m.toString());if(this.useBigIntExtension||this.moreTypes){let D=m<0?BigInt(-1):BigInt(0),T;if(m>>BigInt(65536)===D){let Y=BigInt(18446744073709552e3)-BigInt(1),G=[];for(;G.push(m&Y),m>>BigInt(63)!==D;)m>>=BigInt(64);T=new Uint8Array(new BigUint64Array(G).buffer),T.reverse()}else{let Y=m<0,G=(Y?~m:m).toString(16);if(G.length%2?G="0"+G:parseInt(G.charAt(0),16)>=8&&(G="00"+G),_n)T=Buffer.from(G,"hex");else{T=new Uint8Array(G.length/2);for(let W=0;W<T.length;W++)T[W]=parseInt(G.slice(W*2,W*2+2),16)}if(Y)for(let W=0;W<T.length;W++)T[W]=~T[W]}T.length+v>Ue&&w(T.length+v),v=Pb(T,K,v,66);return}else throw new RangeError(m+" was too large to fit in MessagePack 64-bit integer format, use useBigIntExtension, or set largeBigIntToFloat to convert to float-64, or set largeBigIntToString to convert to string")}v+=8}else if(A==="undefined")this.encodeUndefinedAsNil?K[v++]=192:(K[v++]=212,K[v++]=0,K[v++]=0);else throw new Error("Unknown type: "+A)},x=this.variableMapSize||this.coercibleKeyAsNumber||this.skipValues?m=>{let A;if(this.skipValues){A=[];for(let T in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(T))&&!this.skipValues.includes(m[T])&&A.push(T)}else A=Object.keys(m);let j=A.length;j<16?K[v++]=128|j:j<65536?(K[v++]=222,K[v++]=j>>8,K[v++]=j&255):(K[v++]=223,ge.setUint32(v,j),v+=4);let D;if(this.coercibleKeyAsNumber)for(let T=0;T<j;T++){D=A[T];let Y=Number(D);O(isNaN(Y)?D:Y),O(m[D])}else for(let T=0;T<j;T++)O(D=A[T]),O(m[D])}:m=>{K[v++]=222;let A=v-t;v+=2;let j=0;for(let D in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(D))&&(O(D),O(m[D]),j++);if(j>65535)throw new Error('Object is too large to serialize with fast 16-bit map size, use the "variableMapSize" option to serialize this object');K[A+++t]=j>>8,K[A+t]=j&255},E=this.useRecords===!1?x:e.progressiveRecords&&!f?m=>{let A,j=i.transitions||(i.transitions=Object.create(null)),D=v++-t,T;for(let Y in m)if(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(Y)){if(A=j[Y],A)j=A;else{let G=Object.keys(m),W=j;j=i.transitions;let ye=0;for(let de=0,nt=G.length;de<nt;de++){let At=G[de];A=j[At],A||(A=j[At]=Object.create(null),ye++),j=A}D+t+1==v?(v--,U(j,G,ye)):te(j,G,D,ye),T=!0,j=W[Y]}O(m[Y])}if(!T){let Y=j[Cn];Y?K[D+t]=Y:te(j,Object.keys(m),D,0)}}:m=>{let A,j=i.transitions||(i.transitions=Object.create(null)),D=0;for(let Y in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(Y))&&(A=j[Y],A||(A=j[Y]=Object.create(null),D++),j=A);let T=j[Cn];T?T>=96&&f?(K[v++]=((T-=96)&31)+96,K[v++]=T>>5):K[v++]=T:U(j,j.__keys__||Object.keys(m),D);for(let Y in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(Y))&&O(m[Y])},M=typeof this.useRecords=="function"&&this.useRecords,F=M?m=>{M(m)?E(m):x(m)}:E,C=m=>{let A=o._writeStruct(m,K,t,v,i,w,(j,D,T)=>{if(T)return n=!0;v=D;let Y=K;return O(j),I(),Y!==K?{position:v,targetView:ge,target:K}:v});if(A===0)return F(m);v=A},w=m=>{let A;if(m>16777216){if(m-t>Mb)throw new Error("Packed buffer would be larger than maximum buffer size");A=Math.min(Mb,Math.round(Math.max((m-t)*(m>67108864?1.25:2),4194304)/4096)*4096)}else A=(Math.max(m-t<<2,K.length-1)>>12)+1<<12;let j=new Ws(A);return ge=j.dataView||(j.dataView=new DataView(j.buffer,0,A)),m=Math.min(m,K.length),K.copy?K.copy(j,0,t,m):j.set(K.slice(t,m)),v-=t,t=0,Ue=j.length-10,K=j},U=(m,A,j)=>{let D=i.nextId;D||(D=64),D<p&&this.shouldShareStructure&&!this.shouldShareStructure(A)?(D=i.nextOwnId,D<y||(D=p),i.nextOwnId=D+1):(D>=y&&(D=p),i.nextId=D+1);let T=A.highByte=D>=96&&f?D-96>>5:-1;m[Cn]=D,m.__keys__=A,i[D-64]=A,D<p?(A.isShared=!0,i.sharedLength=D-63,n=!0,T>=0?(K[v++]=(D&31)+96,K[v++]=T):K[v++]=D):(T>=0?(K[v++]=213,K[v++]=114,K[v++]=(D&31)+96,K[v++]=T):(K[v++]=212,K[v++]=114,K[v++]=D),j&&(S+=k*j),g.length>=d&&(g.shift()[Cn]=0),g.push(m),O(A))},te=(m,A,j,D)=>{let T=K,Y=v,G=Ue,W=t;K=bi,v=0,t=0,K||(bi=K=new Ws(8192)),Ue=K.length-10,U(m,A,D),bi=K;let ye=v;if(K=T,v=Y,Ue=G,t=W,ye>1){let de=v+ye-1;de>Ue&&w(de);let nt=j+t;K.copyWithin(nt+ye,nt+1,v),K.set(bi.slice(0,ye),nt),v=de}else K[j+t]=bi[0]}}useBuffer(e){K=e,K.dataView||(K.dataView=new DataView(K.buffer,K.byteOffset,K.byteLength)),ge=K.dataView,v=0}set position(e){v=e}get position(){return v}clearSharedData(){this.structures&&(this.structures=[]),this.typedStructs&&(this.typedStructs=[])}};Zs=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,DataView,zs];Qs=[{pack(r,e,t){let n=r.getTime()/1e3;if((this.useTimestamp32||r.getMilliseconds()===0)&&n>=0&&n<4294967296){let{target:i,targetView:s,position:a}=e(6);i[a++]=214,i[a++]=255,s.setUint32(a,n)}else if(n>0&&n<4294967296){let{target:i,targetView:s,position:a}=e(10);i[a++]=215,i[a++]=255,s.setUint32(a,r.getMilliseconds()*4e6+(n/1e3/4294967296>>0)),s.setUint32(a+4,n)}else if(isNaN(n)){if(this.onInvalidDate)return e(0),t(this.onInvalidDate());let{target:i,targetView:s,position:a}=e(3);i[a++]=212,i[a++]=255,i[a++]=255}else{let{target:i,targetView:s,position:a}=e(15);i[a++]=199,i[a++]=12,i[a++]=255,s.setUint32(a,r.getMilliseconds()*1e6),s.setBigInt64(a+4,BigInt(Math.floor(n)))}}},{pack(r,e,t){if(this.setAsEmptyObject)return e(0),t({});let n=Array.from(r),{target:i,position:s}=e(this.moreTypes?3:0);this.moreTypes&&(i[s++]=212,i[s++]=115,i[s++]=0),t(n)}},{pack(r,e,t){let{target:n,position:i}=e(this.moreTypes?3:0);this.moreTypes&&(n[i++]=212,n[i++]=101,n[i++]=0),t([r.name,r.message,r.cause])}},{pack(r,e,t){let{target:n,position:i}=e(this.moreTypes?3:0);this.moreTypes&&(n[i++]=212,n[i++]=120,n[i++]=0),t([r.source,r.flags])}},{pack(r,e){this.moreTypes?wu(r,16,e):Tu(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let t=r.constructor;t!==Hb&&this.moreTypes?wu(r,Wb.indexOf(t.name),e):Tu(r,e)}},{pack(r,e){this.moreTypes?wu(r,17,e):Tu(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let{target:t,position:n}=e(1);t[n]=193}}];function wu(r,e,t,n){let i=r.byteLength;if(i+1<256){var{target:s,position:a}=t(4+i);s[a++]=199,s[a++]=i+1}else if(i+1<65536){var{target:s,position:a}=t(5+i);s[a++]=200,s[a++]=i+1>>8,s[a++]=i+1&255}else{var{target:s,position:a,targetView:o}=t(7+i);s[a++]=201,o.setUint32(a,i+1),a+=4}s[a++]=116,s[a++]=e,r.buffer||(r=new Uint8Array(r)),s.set(new Uint8Array(r.buffer,r.byteOffset,r.byteLength),a)}function Tu(r,e){let t=r.byteLength;var n,i;if(t<256){var{target:n,position:i}=e(t+2);n[i++]=196,n[i++]=t}else if(t<65536){var{target:n,position:i}=e(t+3);n[i++]=197,n[i++]=t>>8,n[i++]=t&255}else{var{target:n,position:i,targetView:s}=e(t+5);n[i++]=198,s.setUint32(i,t),i+=4}n.set(r,i)}function Pb(r,e,t,n){let i=r.length;switch(i){case 1:e[t++]=212;break;case 2:e[t++]=213;break;case 4:e[t++]=214;break;case 8:e[t++]=215;break;case 16:e[t++]=216;break;default:i<256?(e[t++]=199,e[t++]=i):i<65536?(e[t++]=200,e[t++]=i>>8,e[t++]=i&255):(e[t++]=201,e[t++]=i>>24,e[t++]=i>>16&255,e[t++]=i>>8&255,e[t++]=i&255)}return e[t++]=n,e.set(r,t),t+=i,t}function OA(r,e){let t,n=e.length*6,i=r.length-n;for(;t=e.pop();){let s=t.offset,a=t.id;r.copyWithin(s+n,s,i),n-=6;let o=s+n;r[o++]=214,r[o++]=105,r[o++]=a>>24,r[o++]=a>>16&255,r[o++]=a>>8&255,r[o++]=a&255,i=s}return r}function Nb(r,e,t){if(Te.length>0){ge.setUint32(Te.position+r,v+t-Te.position-r),Te.stringsPosition=v-r;let n=Te;Te=null,e(n[0]),e(n[1])}}function RA(r){if(r.Class){if(!r.pack&&!r.write)throw new Error("Extension has no pack or write function");if(r.pack&&!r.type)throw new Error("Extension has no type (numeric code to identify the extension)");Zs.unshift(r.Class),Qs.unshift(r)}kA(r)}function CA(r,e){return r.isCompatible=t=>{let n=!t||(e.lastNamedStructuresLength||0)===t.length;return n||e._mergeStructures(t),n},r}ir.SUPPORTS_STRUCT_HOOKS=!0;var Qb=new ir({useRecords:!1}),_A=Qb.pack,MA=Qb.pack,PA=ir,{NEVER:NA,ALWAYS:LA,DECIMAL_ROUND:qA,DECIMAL_FIT:JA}=zb,Zb=512,Xb=1024,eg=2048,Xs=class extends Lb.Transform{constructor(e){e||(e={}),e.writableObjectMode=!0,super(e),e.sequential=!0,this.packr=e.packr||new ir(e)}_transform(e,t,n){this.push(this.packr.pack(e)),n()}},ea=class extends Lb.Transform{constructor(e){e||(e={}),e.objectMode=!0,super(e),e.structures=[],this.maxIncompleteBufferSize=e.maxIncompleteBufferSize!==void 0?e.maxIncompleteBufferSize:67108864,this.unpackr=e.unpackr||new nr(e)}_transform(e,t,n){this.incompleteBuffer&&(e=Buffer.concat([this.incompleteBuffer,e]),this.incompleteBuffer=null);let i;try{i=this.unpackr.unpackMultiple(e)}catch(s){if(s.incomplete){let a=e.slice(s.lastPosition);if(a.length>this.maxIncompleteBufferSize)return this.incompleteBuffer=null,n(new Error("Maximum incomplete buffer size exceeded"));this.incompleteBuffer=a,i=s.values}else return n(s)}for(let s of i||[])s===null&&(s=this.getNullValue()),this.push(s);n()}getNullValue(){return Symbol.for(null)}};function FA(r,e={}){if(!r||typeof r!="object")throw new Error("first argument must be an Iterable, Async Iterable, or a Promise for an Async Iterable");if(typeof r[Symbol.iterator]=="function")return VA(r,e);if(typeof r.then=="function"||typeof r[Symbol.asyncIterator]=="function")return GA(r,e);throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a Promise")}function*VA(r,e){let t=new ir(e);for(let n of r)yield t.pack(n)}async function*GA(r,e){let t=new ir(e);for await(let n of r)yield t.pack(n)}function YA(r,e={}){if(!r||typeof r!="object")throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a promise");let t=new nr(e),n,i=s=>{let a;n&&(s=Buffer.concat([n,s]),n=void 0);try{a=t.unpackMultiple(s)}catch(o){if(o.incomplete)n=s.slice(o.lastPosition),a=o.values;else throw o}return a};if(typeof r[Symbol.iterator]=="function")return(function*(){for(let a of r)yield*i(a)})();if(typeof r[Symbol.asyncIterator]=="function")return(async function*(){for await(let a of r)yield*i(a)})()}var BA=YA,WA=FA,UA=!1,zA=!0,$A=process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!$A){let r;try{typeof V=="function"?r=kb():r=gA.createRequire(typeof document>"u"?new(V("url")).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("node.cjs",document.baseURI).href)("msgpackr-extract"),r&&KA(r.extractStrings)}catch{}}ue.ALWAYS=LA;ue.C1=Du;ue.DECIMAL_FIT=JA;ue.DECIMAL_ROUND=qA;ue.Decoder=IA;ue.DecoderStream=ea;ue.Encoder=PA;ue.EncoderStream=Xs;ue.FLOAT32_OPTIONS=zb;ue.NEVER=NA;ue.Packr=ir;ue.PackrStream=Xs;ue.RESERVE_START_SPACE=eg;ue.RESET_BUFFER_MODE=Xb;ue.REUSE_BUFFER_MODE=Zb;ue.Unpackr=nr;ue.UnpackrStream=ea;ue.addExtension=RA;ue.clearSource=Hs;ue.decode=TA;ue.decodeIter=BA;ue.encode=MA;ue.encodeIter=WA;ue.mapsAsObjects=zA;ue.pack=_A;ue.roundFloat32=jA;ue.unpack=xA;ue.unpackMultiple=wA;ue.useRecords=UA});var ia=h(na=>{"use strict";Object.defineProperty(na,"__esModule",{value:!0});na.version=void 0;na.version="5.76.6"});var _u=h(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.Scripts=void 0;vi.raw2NextJobData=sa;var HA=tg(),QA=new HA.Packr({useRecords:!1,encodeUndefinedAsNil:!0}),Pe=QA.pack,Rt=at(),xr=ut(),ZA=ia(),XA=qs(),Cu=class{constructor(e){this.queue=e,this.version=ZA.version;let t=this.queue.keys;this.moveToFinishedKeys=[t.wait,t.active,t.prioritized,t.events,t.stalled,t.limiter,t.delayed,t.paused,t.meta,t.pc,void 0,void 0,void 0,void 0]}execCommand(e,t,n){let i=`${t}:${this.version}`;return e[i](n)}async isJobInList(e,t){let n=await this.queue.client,i;return(0,xr.isRedisVersionLowerThan)(this.queue.redisVersion,"6.0.6",this.queue.databaseType)?i=await this.execCommand(n,"isJobInList",[e,t]):i=await n.lpos(e,t),Number.isInteger(i)}addDelayedJobArgs(e,t,n){let i=this.queue.keys,s=[i.marker,i.meta,i.id,i.delayed,i.completed,i.events];return s.push(Pe(n),e.data,t),s}addDelayedJob(e,t,n,i){let s=this.addDelayedJobArgs(t,n,i);return this.execCommand(e,"addDelayedJob",s)}addPrioritizedJobArgs(e,t,n){let i=this.queue.keys,s=[i.marker,i.meta,i.id,i.prioritized,i.delayed,i.completed,i.active,i.events,i.pc];return s.push(Pe(n),e.data,t),s}addPrioritizedJob(e,t,n,i){let s=this.addPrioritizedJobArgs(t,n,i);return this.execCommand(e,"addPrioritizedJob",s)}addParentJobArgs(e,t,n){let i=this.queue.keys,s=[i.meta,i.id,i.delayed,i["waiting-children"],i.completed,i.events];return s.push(Pe(n),e.data,t),s}addParentJob(e,t,n,i){let s=this.addParentJobArgs(t,n,i);return this.execCommand(e,"addParentJob",s)}addStandardJobArgs(e,t,n){let i=this.queue.keys,s=[i.wait,i.paused,i.meta,i.id,i.completed,i.delayed,i.active,i.events,i.marker];return s.push(Pe(n),e.data,t),s}addStandardJob(e,t,n,i){let s=this.addStandardJobArgs(t,n,i);return this.execCommand(e,"addStandardJob",s)}async addJob(e,t,n,i,s={}){let a=this.queue.keys,o=t.parent,l=[a[""],typeof i<"u"?i:"",t.name,t.timestamp,t.parentKey||null,s.parentDependenciesKey||null,o,t.repeatJobKey,t.deduplicationId?`${a.de}:${t.deduplicationId}`:null],c;if(n.repeat){let d=Object.assign({},n.repeat);d.startDate&&(d.startDate=+new Date(d.startDate)),d.endDate&&(d.endDate=+new Date(d.endDate)),c=Pe(Object.assign(Object.assign({},n),{repeat:d}))}else c=Pe(n);let u;if(s.addToWaitingChildren?u=await this.addParentJob(e,t,c,l):typeof n.delay=="number"&&n.delay>0?u=await this.addDelayedJob(e,t,c,l):n.priority?u=await this.addPrioritizedJob(e,t,c,l):u=await this.addStandardJob(e,t,c,l),u<0)throw this.finishedErrors({code:u,parentKey:s.parentKey,command:"addJob"});return u}pauseArgs(e){let t="wait",n="paused";e||(t="paused",n="wait");let i=[t,n,"meta","prioritized"].map(a=>this.queue.toKey(a));i.push(this.queue.keys.events,this.queue.keys.delayed,this.queue.keys.marker);let s=[e?"paused":"resumed"];return i.concat(s)}async pause(e){let t=await this.queue.client,n=this.pauseArgs(e);return this.execCommand(t,"pause",n)}addRepeatableJobArgs(e,t,n,i){let s=this.queue.keys,a=[s.repeat,s.delayed],o=[t,Pe(n),i,e,s[""]];return a.concat(o)}async addRepeatableJob(e,t,n,i){let s=await this.queue.client,a=this.addRepeatableJobArgs(e,t,n,i);return this.execCommand(s,"addRepeatableJob",a)}async removeDeduplicationKey(e,t){let n=await this.queue.client,s=[`${this.queue.keys.de}:${e}`],a=[t];return this.execCommand(n,"removeDeduplicationKey",s.concat(a))}async addJobScheduler(e,t,n,i,s,a,o){let l=await this.queue.client,c=this.queue.keys,u=[c.repeat,c.delayed,c.wait,c.paused,c.meta,c.prioritized,c.marker,c.id,c.events,c.pc,c.active],d=[t,Pe(s),e,n,Pe(i),Pe(a),Date.now(),c[""],o?this.queue.toKey(o):""],f=await this.execCommand(l,"addJobScheduler",u.concat(d));if(typeof f=="number"&&f<0)throw this.finishedErrors({code:f,command:"addJobScheduler"});return f}async updateRepeatableJobMillis(e,t,n,i){let s=[this.queue.keys.repeat,n,t,i];return this.execCommand(e,"updateRepeatableJobMillis",s)}async updateJobSchedulerNextMillis(e,t,n,i,s){let a=await this.queue.client,o=this.queue.keys,l=[o.repeat,o.delayed,o.wait,o.paused,o.meta,o.prioritized,o.marker,o.id,o.events,o.pc,s?this.queue.toKey(s):"",o.active],c=[t,e,n,Pe(i),Date.now(),o[""],s];return this.execCommand(a,"updateJobScheduler",l.concat(c))}removeRepeatableArgs(e,t,n){let i=this.queue.keys,s=[i.repeat,i.delayed,i.events],a=[e,this.getRepeatConcatOptions(t,n),n,i[""]];return s.concat(a)}getRepeatConcatOptions(e,t){return t&&t.split(":").length>2?t:e}async removeRepeatable(e,t,n){let i=await this.queue.client,s=this.removeRepeatableArgs(e,t,n);return this.execCommand(i,"removeRepeatable",s)}async removeJobScheduler(e){let t=await this.queue.client,n=this.queue.keys,i=[n.repeat,n.delayed,n.events],s=[e,n[""]];return this.execCommand(t,"removeJobScheduler",i.concat(s))}removeArgs(e,t){let n=[e,"repeat"].map(s=>this.queue.toKey(s)),i=[e,t?1:0,this.queue.toKey("")];return n.concat(i)}async remove(e,t){let n=await this.queue.client,i=this.removeArgs(e,t),s=await this.execCommand(n,"removeJob",i);if(s<0)throw this.finishedErrors({code:s,jobId:e,command:"removeJob"});return s}async removeUnprocessedChildren(e){let t=await this.queue.client,n=[this.queue.toKey(e),this.queue.keys.meta,this.queue.toKey(""),e];await this.execCommand(t,"removeUnprocessedChildren",n)}async extendLock(e,t,n,i){i=i||await this.queue.client;let s=[this.queue.toKey(e)+":lock",this.queue.keys.stalled,t,n,e];return this.execCommand(i,"extendLock",s)}async extendLocks(e,t,n){let i=await this.queue.client,s=[this.queue.keys.stalled,this.queue.toKey(""),Pe(t),Pe(e),n];return this.execCommand(i,"extendLocks",s)}async updateData(e,t){let n=await this.queue.client,i=[this.queue.toKey(e.id)],s=JSON.stringify(t),a=await this.execCommand(n,"updateData",i.concat([s]));if(a<0)throw this.finishedErrors({code:a,jobId:e.id,command:"updateData"})}async updateProgress(e,t){let n=await this.queue.client,i=[this.queue.toKey(e),this.queue.keys.events,this.queue.keys.meta],s=JSON.stringify(t),a=await this.execCommand(n,"updateProgress",i.concat([e,s]));if(a<0)throw this.finishedErrors({code:a,jobId:e,command:"updateProgress"})}async addLog(e,t,n){let i=await this.queue.client,s=[this.queue.toKey(e),this.queue.toKey(e)+":logs"],a=await this.execCommand(i,"addLog",s.concat([e,t,n||""]));if(a<0)throw this.finishedErrors({code:a,jobId:e,command:"addLog"});return a}moveToFinishedArgs(e,t,n,i,s,a,o,l=!0,c){var u,d,f,p,y,g,S;let k=this.queue.keys,I=this.queue.opts,R=s==="completed"?I.removeOnComplete:I.removeOnFail,O=this.queue.toKey(`metrics:${s}`),x=this.moveToFinishedKeys;x[10]=k[s],x[11]=this.queue.toKey((u=e.id)!==null&&u!==void 0?u:""),x[12]=O,x[13]=this.queue.keys.marker;let E=this.getKeepJobs(i,R),M=[e.id,o,n,typeof t>"u"?"null":t,s,!l||this.queue.closing?0:1,k[""],Pe({token:a,name:I.name,keepJobs:E,limiter:I.limiter,lockDuration:I.lockDuration,attempts:e.opts.attempts,maxMetricsSize:!((d=I.metrics)===null||d===void 0)&&d.maxDataPoints?(f=I.metrics)===null||f===void 0?void 0:f.maxDataPoints:"",fpof:!!(!((p=e.opts)===null||p===void 0)&&p.failParentOnFailure),cpof:!!(!((y=e.opts)===null||y===void 0)&&y.continueParentOnFailure),idof:!!(!((g=e.opts)===null||g===void 0)&&g.ignoreDependencyOnFailure),rdof:!!(!((S=e.opts)===null||S===void 0)&&S.removeDependencyOnFailure)}),c?Pe((0,xr.objectToFlatArray)(c)):void 0];return x.concat(M)}getKeepJobs(e,t){return typeof e>"u"?t||{count:e?0:-1}:typeof e=="object"?e:typeof e=="number"?{count:e}:{count:e?0:-1}}async moveToFinished(e,t){let n=await this.queue.client,i=await this.execCommand(n,"moveToFinished",t);if(i<0)throw this.finishedErrors({code:i,jobId:e,command:"moveToFinished",state:"active"});if(typeof i<"u")return sa(i)}drainArgs(e){let t=this.queue.keys,n=[t.wait,t.paused,t.delayed,t.prioritized,t.repeat],i=[t[""],e?"1":"0"];return n.concat(i)}async drain(e){let t=await this.queue.client,n=this.drainArgs(e);return this.execCommand(t,"drain",n)}removeChildDependencyArgs(e,t){let i=[this.queue.keys[""]],s=[this.queue.toKey(e),t];return i.concat(s)}async removeChildDependency(e,t){let n=await this.queue.client,i=this.removeChildDependencyArgs(e,t),s=await this.execCommand(n,"removeChildDependency",i);switch(s){case 0:return!0;case 1:return!1;default:throw this.finishedErrors({code:s,jobId:e,parentKey:t,command:"removeChildDependency"})}}getRangesArgs(e,t,n,i){let s=this.queue.keys,a=e.map(c=>c==="waiting"?"wait":c),o=[s[""]],l=[t,n,i?"1":"0",...a];return o.concat(l)}async getRanges(e,t=0,n=1,i=!1){let s=await this.queue.client,a=this.getRangesArgs(e,t,n,i);return await this.execCommand(s,"getRanges",a)}getCountsArgs(e){let t=this.queue.keys,n=e.map(a=>a==="waiting"?"wait":a),i=[t[""]],s=[...n];return i.concat(s)}async getCounts(e){let t=await this.queue.client,n=this.getCountsArgs(e);return await this.execCommand(t,"getCounts",n)}getCountsPerPriorityArgs(e){let t=[this.queue.keys.wait,this.queue.keys.paused,this.queue.keys.meta,this.queue.keys.prioritized],n=e;return t.concat(n)}async getCountsPerPriority(e){let t=await this.queue.client,n=this.getCountsPerPriorityArgs(e);return await this.execCommand(t,"getCountsPerPriority",n)}getDependencyCountsArgs(e,t){let n=[`${e}:processed`,`${e}:dependencies`,`${e}:failed`,`${e}:unsuccessful`].map(s=>this.queue.toKey(s)),i=t;return n.concat(i)}async getDependencyCounts(e,t){let n=await this.queue.client,i=this.getDependencyCountsArgs(e,t);return await this.execCommand(n,"getDependencyCounts",i)}moveToCompletedArgs(e,t,n,i,s=!1){let a=Date.now();return this.moveToFinishedArgs(e,t,"returnvalue",n,"completed",i,a,s)}moveToFailedArgs(e,t,n,i,s=!1,a){let o=Date.now();return this.moveToFinishedArgs(e,t,"failedReason",n,"failed",i,o,s,a)}async isFinished(e,t=!1){let n=await this.queue.client,i=["completed","failed",e].map(s=>this.queue.toKey(s));return this.execCommand(n,"isFinished",i.concat([e,t?"1":""]))}async getState(e){let t=await this.queue.client,n=["completed","failed","delayed","active","wait","paused","waiting-children","prioritized"].map(i=>this.queue.toKey(i));return(0,xr.isRedisVersionLowerThan)(this.queue.redisVersion,"6.0.6",this.queue.databaseType)?this.execCommand(t,"getState",n.concat([e])):this.execCommand(t,"getStateV2",n.concat([e]))}async changeDelay(e,t){let n=await this.queue.client,i=this.changeDelayArgs(e,t),s=await this.execCommand(n,"changeDelay",i);if(s<0)throw this.finishedErrors({code:s,jobId:e,command:"changeDelay",state:"delayed"})}changeDelayArgs(e,t){let n=Date.now();return[this.queue.keys.delayed,this.queue.keys.meta,this.queue.keys.marker,this.queue.keys.events].concat([t,JSON.stringify(n),e,this.queue.toKey(e)])}async changePriority(e,t=0,n=!1){let i=await this.queue.client,s=this.changePriorityArgs(e,t,n),a=await this.execCommand(i,"changePriority",s);if(a<0)throw this.finishedErrors({code:a,jobId:e,command:"changePriority"})}changePriorityArgs(e,t=0,n=!1){return[this.queue.keys.wait,this.queue.keys.paused,this.queue.keys.meta,this.queue.keys.prioritized,this.queue.keys.active,this.queue.keys.pc,this.queue.keys.marker].concat([t,this.queue.toKey(""),e,n?1:0])}moveToDelayedArgs(e,t,n,i,s={}){let a=this.queue.keys,o=this.queue.opts,l=[a.marker,a.active,a.prioritized,a.delayed,this.queue.toKey(e),a.events,a.meta,a.stalled,a.wait,a.limiter,a.paused,a.pc],c=s.fetchNext&&!this.queue.closing?1:0;return l.concat([this.queue.keys[""],t,e,n,i,s.skipAttempt?"1":"0",s.fieldsToUpdate?Pe((0,xr.objectToFlatArray)(s.fieldsToUpdate)):void 0,c,c?Pe({token:n,lockDuration:o.lockDuration,limiter:o.limiter,name:o.name}):void 0])}moveToWaitingChildrenArgs(e,t,n){let i=Date.now(),s=(0,xr.getParentKey)(n.child);return["active","waiting-children",e,`${e}:dependencies`,`${e}:unsuccessful`,"stalled","events"].map(o=>this.queue.toKey(o)).concat([t,s??"",JSON.stringify(i),e,this.queue.toKey("")])}isMaxedArgs(){let e=this.queue.keys;return[e.meta,e.active]}async isMaxed(){let e=await this.queue.client,t=this.isMaxedArgs();return!!await this.execCommand(e,"isMaxed",t)}async moveToDelayed(e,t,n,i="0",s={}){let a=await this.queue.client,o=this.moveToDelayedArgs(e,t,i,n,s),l=await this.execCommand(a,"moveToDelayed",o);if(l<0)throw this.finishedErrors({code:l,jobId:e,command:"moveToDelayed",state:"active"});if(typeof l<"u")return sa(l)}async moveToWaitingChildren(e,t,n={}){let i=await this.queue.client,s=this.moveToWaitingChildrenArgs(e,t,n),a=await this.execCommand(i,"moveToWaitingChildren",s);switch(a){case 0:return!0;case 1:return!1;default:throw this.finishedErrors({code:a,jobId:e,command:"moveToWaitingChildren",state:"active"})}}getRateLimitTtlArgs(e){return[this.queue.keys.limiter,this.queue.keys.meta].concat([e??"0"])}async getRateLimitTtl(e){let t=await this.queue.client,n=this.getRateLimitTtlArgs(e);return this.execCommand(t,"getRateLimitTtl",n)}async cleanJobsInSet(e,t,n=0){let i=await this.queue.client;return this.execCommand(i,"cleanJobsInSet",[this.queue.toKey(e),this.queue.toKey("events"),this.queue.toKey("repeat"),this.queue.toKey(""),t,n,e])}getJobSchedulerArgs(e){return[this.queue.keys.repeat].concat([e])}async getJobScheduler(e){let t=await this.queue.client,n=this.getJobSchedulerArgs(e);return this.execCommand(t,"getJobScheduler",n)}retryJobArgs(e,t,n,i={}){let s=[this.queue.keys.active,this.queue.keys.wait,this.queue.keys.paused,this.queue.toKey(e),this.queue.keys.meta,this.queue.keys.events,this.queue.keys.delayed,this.queue.keys.prioritized,this.queue.keys.pc,this.queue.keys.marker,this.queue.keys.stalled],a=(t?"R":"L")+"PUSH";return s.concat([this.queue.toKey(""),Date.now(),a,e,n,i.fieldsToUpdate?Pe((0,xr.objectToFlatArray)(i.fieldsToUpdate)):void 0])}async retryJob(e,t,n="0",i={}){let s=await this.queue.client,a=this.retryJobArgs(e,t,n,i),o=await this.execCommand(s,"retryJob",a);if(o<0)throw this.finishedErrors({code:o,jobId:e,command:"retryJob",state:"active"})}moveJobsToWaitArgs(e,t,n){let i=[this.queue.toKey(""),this.queue.keys.events,this.queue.toKey(e),this.queue.toKey("wait"),this.queue.toKey("paused"),this.queue.keys.meta,this.queue.keys.active,this.queue.keys.marker],s=[t,n,e];return i.concat(s)}async retryJobs(e="failed",t=1e3,n=new Date().getTime()){let i=await this.queue.client,s=this.moveJobsToWaitArgs(e,t,n);return this.execCommand(i,"moveJobsToWait",s)}async promoteJobs(e=1e3){let t=await this.queue.client,n=this.moveJobsToWaitArgs("delayed",e,Number.MAX_VALUE);return this.execCommand(t,"moveJobsToWait",n)}async reprocessJob(e,t,n={}){let i=await this.queue.client,s=[this.queue.toKey(e.id),this.queue.keys.events,this.queue.toKey(t),this.queue.keys.wait,this.queue.keys.meta,this.queue.keys.paused,this.queue.keys.active,this.queue.keys.marker],a=[e.id,(e.opts.lifo?"R":"L")+"PUSH",t==="failed"?"failedReason":"returnvalue",t,n.resetAttemptsMade?"1":"0",n.resetAttemptsStarted?"1":"0"],o=await this.execCommand(i,"reprocessJob",s.concat(a));if(o!==1)throw this.finishedErrors({code:o,jobId:e.id,command:"reprocessJob",state:t})}async getMetrics(e,t=0,n=-1){let i=await this.queue.client,s=[this.queue.toKey(`metrics:${e}`),this.queue.toKey(`metrics:${e}:data`)],a=[t,n];return await this.execCommand(i,"getMetrics",s.concat(a))}async moveToActive(e,t,n){let i=this.queue.opts,s=this.queue.keys,a=[s.wait,s.active,s.prioritized,s.events,s.stalled,s.limiter,s.delayed,s.paused,s.meta,s.pc,s.marker],o=[s[""],Date.now(),Pe({token:t,lockDuration:i.lockDuration,limiter:i.limiter,name:n})],l=await this.execCommand(e,"moveToActive",a.concat(o));return sa(l)}async promote(e){let t=await this.queue.client,n=[this.queue.keys.delayed,this.queue.keys.wait,this.queue.keys.paused,this.queue.keys.meta,this.queue.keys.prioritized,this.queue.keys.active,this.queue.keys.pc,this.queue.keys.events,this.queue.keys.marker],i=[this.queue.toKey(""),e],s=await this.execCommand(t,"promote",n.concat(i));if(s<0)throw this.finishedErrors({code:s,jobId:e,command:"promote",state:"delayed"})}moveStalledJobsToWaitArgs(){let e=this.queue.opts,t=[this.queue.keys.stalled,this.queue.keys.wait,this.queue.keys.active,this.queue.keys["stalled-check"],this.queue.keys.meta,this.queue.keys.paused,this.queue.keys.marker,this.queue.keys.events],n=[e.maxStalledCount,this.queue.toKey(""),Date.now(),e.stalledInterval];return t.concat(n)}async moveStalledJobsToWait(){let e=await this.queue.client,t=this.moveStalledJobsToWaitArgs();return this.execCommand(e,"moveStalledJobsToWait",t)}async moveJobFromActiveToWait(e,t="0"){let n=await this.queue.client,i=[this.queue.keys.active,this.queue.keys.wait,this.queue.keys.stalled,this.queue.keys.paused,this.queue.keys.meta,this.queue.keys.limiter,this.queue.keys.prioritized,this.queue.keys.marker,this.queue.keys.events],s=[e,t,this.queue.toKey(e)],a=await this.execCommand(n,"moveJobFromActiveToWait",i.concat(s));if(a<0)throw this.finishedErrors({code:a,jobId:e,command:"moveJobFromActiveToWait",state:"active"});return a}async obliterate(e){let t=await this.queue.client,n=[this.queue.keys.meta,this.queue.toKey("")],i=[e.count,e.force?"force":null],s=await this.execCommand(t,"obliterate",n.concat(i));if(s<0)switch(s){case-1:throw new Error("Cannot obliterate non-paused queue");case-2:throw new Error("Cannot obliterate queue with active jobs")}return s}async paginate(e,t){let n=await this.queue.client,i=[e],s=5,a=t.end>=0?t.end-t.start+1:1/0,o="0",l=0,c,u,d,f=[],p=[];do{let y=[t.start+f.length,t.end,o,l,s];t.fetchJobs&&y.push(1),[o,l,c,u,d]=await this.execCommand(n,"paginate",i.concat(y)),f=f.concat(c),d&&d.length&&(p=p.concat(d.map(xr.array2obj)))}while(o!="0"&&f.length<a);if(f.length&&Array.isArray(f[0])){let y=[];for(let g=0;g<f.length;g++){let[S,k]=f[g];try{y.push({id:S,v:JSON.parse(k)})}catch(I){y.push({id:S,err:I.message})}}return{cursor:o,items:y,total:u,jobs:p}}else return{cursor:o,items:f.map(y=>({id:y})),total:u,jobs:p}}finishedErrors({code:e,jobId:t,parentKey:n,command:i,state:s}){let a;switch(e){case Rt.ErrorCode.JobNotExist:a=new Error(`Missing key for job ${t}. ${i}`);break;case Rt.ErrorCode.JobLockNotExist:a=new Error(`Missing lock for job ${t}. ${i}`);break;case Rt.ErrorCode.JobNotInState:a=new Error(`Job ${t} is not in the ${s} state. ${i}`);break;case Rt.ErrorCode.JobPendingChildren:a=new Error(`Job ${t} has pending dependencies. ${i}`);break;case Rt.ErrorCode.ParentJobNotExist:a=new Error(`Missing key for parent job ${n}. ${i}`);break;case Rt.ErrorCode.JobLockMismatch:a=new Error(`Lock mismatch for job ${t}. Cmd ${i} from ${s}`);break;case Rt.ErrorCode.ParentJobCannotBeReplaced:a=new Error(`The parent job ${n} cannot be replaced. ${i}`);break;case Rt.ErrorCode.JobBelongsToJobScheduler:a=new Error(`Job ${t} belongs to a job scheduler and cannot be removed directly. ${i}`);break;case Rt.ErrorCode.JobHasFailedChildren:a=new XA.UnrecoverableError(`Cannot complete job ${t} because it has at least one failed child. ${i}`);break;case Rt.ErrorCode.SchedulerJobIdCollision:a=new Error(`Cannot create job scheduler iteration - job ID already exists. ${i}`);break;case Rt.ErrorCode.SchedulerJobSlotsBusy:a=new Error(`Cannot create job scheduler iteration - current and next time slots already have jobs. ${i}`);break;default:a=new Error(`Unknown code ${e} error for ${t}. ${i}`)}return a.code=e,a}async removeOrphanedJobs(e,t,n){let i=await this.queue.client,s=[this.queue.toKey(""),t.length,...t,n.length,...n,...e];return this.execCommand(i,"removeOrphanedJobs",s)}};vi.Scripts=Cu;function sa(r){if(r){let e=[null,r[1],r[2],r[3]];return r[0]&&(e[0]=(0,xr.array2obj)(r[0])),e}return[]}});var oa=h(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.createScripts=void 0;var eD=_u(),tD=r=>new eD.Scripts({keys:r.keys,client:r.client,get redisVersion(){return r.redisVersion},toKey:r.toKey,opts:r.opts,closing:r.closing,databaseType:r.databaseType});aa.createScripts=tD});var Pn=h(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.Job=wr.PRIORITY_LIMIT=void 0;var rg=(Qe(),it(He)),rD=V("util"),tt=ut(),nD=oa(),ng=Rc(),iD=fu(),ot=at(),sD=(0,rD.debuglog)("bull");wr.PRIORITY_LIMIT=2**21;var Mu=class r{constructor(e,t,n,i={},s){this.queue=e,this.name=t,this.data=n,this.opts=i,this.id=s,this.progress=0,this.returnvalue=null,this.stacktrace=null,this.delay=0,this.priority=0,this.attemptsStarted=0,this.attemptsMade=0,this.stalledCounter=0;let a=this.opts,{repeatJobKey:o}=a,l=rg.__rest(a,["repeatJobKey"]);this.opts=Object.assign({attempts:0},l),this.delay=this.opts.delay,this.priority=this.opts.priority||0,this.repeatJobKey=o,this.timestamp=i.timestamp?i.timestamp:Date.now(),this.opts.backoff=ng.Backoffs.normalize(i.backoff),this.parentKey=(0,tt.getParentKey)(i.parent),i.parent&&(this.parent={id:i.parent.id,queueKey:i.parent.queue},i.failParentOnFailure&&(this.parent.fpof=!0),i.removeDependencyOnFailure&&(this.parent.rdof=!0),i.ignoreDependencyOnFailure&&(this.parent.idof=!0),i.continueParentOnFailure&&(this.parent.cpof=!0)),this.debounceId=i.debounce?i.debounce.id:void 0,this.deduplicationId=i.deduplication?i.deduplication.id:this.debounceId,this.toKey=e.toKey.bind(e),this.createScripts(),this.queueQualifiedName=e.qualifiedName}static async create(e,t,n,i){let s=await e.client,a=new this(e,t,n,i,i&&i.jobId);return a.id=await a.addJob(s,{parentKey:a.parentKey,parentDependenciesKey:a.parentKey?`${a.parentKey}:dependencies`:""}),a}static async createBulk(e,t){let n=await e.client,i=t.map(o=>{var l;return new this(e,o.name,o.data,o.opts,(l=o.opts)===null||l===void 0?void 0:l.jobId)}),s=n.pipeline();for(let o of i)o.addJob(s,{parentKey:o.parentKey,parentDependenciesKey:o.parentKey?`${o.parentKey}:dependencies`:""});let a=await s.exec();for(let o=0;o<a.length;++o){let[l,c]=a[o];if(l)throw l;i[o].id=c}return i}static fromJSON(e,t,n){let i=JSON.parse(t.data||"{}"),s=r.optsFromJSON(t.opts),a=new this(e,t.name,i,s,t.id||n);return a.progress=JSON.parse(t.progress||"0"),a.delay=parseInt(t.delay),a.priority=parseInt(t.priority),a.timestamp=parseInt(t.timestamp),t.finishedOn&&(a.finishedOn=parseInt(t.finishedOn)),t.processedOn&&(a.processedOn=parseInt(t.processedOn)),t.rjk&&(a.repeatJobKey=t.rjk),t.deid&&(a.debounceId=t.deid,a.deduplicationId=t.deid),t.failedReason&&(a.failedReason=t.failedReason),a.attemptsStarted=parseInt(t.ats||"0"),a.attemptsMade=parseInt(t.attemptsMade||t.atm||"0"),a.stalledCounter=parseInt(t.stc||"0"),t.defa&&(a.deferredFailure=t.defa),a.stacktrace=aD(t.stacktrace),typeof t.returnvalue=="string"&&(a.returnvalue=ig(t.returnvalue)),t.parentKey&&(a.parentKey=t.parentKey),t.parent&&(a.parent=JSON.parse(t.parent)),t.pb&&(a.processedBy=t.pb),t.nrjid&&(a.nextRepeatableJobId=t.nrjid),a}createScripts(){this.scripts=(0,nD.createScripts)(this.queue)}static optsFromJSON(e,t=tt.optsDecodeMap){let n=JSON.parse(e||"{}"),i=Object.entries(n),s={};for(let a of i){let[o,l]=a;t[o]?s[t[o]]=l:o==="tm"?s.telemetry=Object.assign(Object.assign({},s.telemetry),{metadata:l}):o==="omc"?s.telemetry=Object.assign(Object.assign({},s.telemetry),{omitContext:l}):s[o]=l}return s}static async fromId(e,t){if(t){let i=await(await e.client).hgetall(e.toKey(t));return(0,tt.isEmpty)(i)?void 0:this.fromJSON(e,i,t)}}static addJobLog(e,t,n,i){return e.scripts.addLog(t,n,i)}toJSON(){let e=this,{queue:t,scripts:n}=e;return rg.__rest(e,["queue","scripts"])}asJSON(){return(0,tt.removeUndefinedFields)({id:this.id,name:this.name,data:JSON.stringify(typeof this.data>"u"?{}:this.data),opts:r.optsAsJSON(this.opts),parent:this.parent?Object.assign({},this.parent):void 0,parentKey:this.parentKey,progress:this.progress,attemptsMade:this.attemptsMade,attemptsStarted:this.attemptsStarted,stalledCounter:this.stalledCounter,finishedOn:this.finishedOn,processedOn:this.processedOn,timestamp:this.timestamp,failedReason:JSON.stringify(this.failedReason),stacktrace:JSON.stringify(this.stacktrace),debounceId:this.debounceId,deduplicationId:this.deduplicationId,repeatJobKey:this.repeatJobKey,returnvalue:JSON.stringify(this.returnvalue),nrjid:this.nextRepeatableJobId})}static optsAsJSON(e={},t=tt.optsEncodeMap){let n=Object.entries(e),i={};for(let[s,a]of n)if(!(typeof a>"u"))if(s in t){let l=t[s];i[l]=a}else s==="telemetry"?(a.metadata!==void 0&&(i.tm=a.metadata),a.omitContext!==void 0&&(i.omc=a.omitContext)):i[s]=a;return i}asJSONSandbox(){return Object.assign(Object.assign({},this.asJSON()),{queueName:this.queueName,queueQualifiedName:this.queueQualifiedName,prefix:this.prefix})}updateData(e){return this.data=e,this.scripts.updateData(this,e)}async updateProgress(e){this.progress=e,await this.scripts.updateProgress(this.id,e),this.queue.emit("progress",this,e)}async log(e){return r.addJobLog(this.queue,this.id,e,this.opts.keepLogs)}async removeChildDependency(){return await this.scripts.removeChildDependency(this.id,this.parentKey)?(this.parent=void 0,this.parentKey=void 0,!0):!1}async clearLogs(e){let t=await this.queue.client,n=this.toKey(this.id)+":logs";e?await t.ltrim(n,-e,-1):await t.del(n)}async remove({removeChildren:e=!0}={}){await this.queue.waitUntilReady();let t=this.queue,n=this;if(await this.scripts.remove(n.id,e))t.emit("removed",n);else throw new Error(`Job ${this.id} could not be removed because it is locked by another worker`)}async removeUnprocessedChildren(){let e=this.id;await this.scripts.removeUnprocessedChildren(e)}extendLock(e,t){return this.scripts.extendLock(this.id,e,t)}async moveToCompleted(e,t,n=!0){return this.queue.trace(ot.SpanKind.INTERNAL,"complete",this.queue.name,async i=>{this.setSpanJobAttributes(i),await this.queue.waitUntilReady(),this.returnvalue=e||void 0;let s=(0,tt.tryCatch)(JSON.stringify,JSON,[e]);if(s===tt.errorObject)throw tt.errorObject.value;let a=this.scripts.moveToCompletedArgs(this,s,this.opts.removeOnComplete,t,n),o=await this.scripts.moveToFinished(this.id,a);return this.finishedOn=a[this.scripts.moveToFinishedKeys.length+1],this.attemptsMade+=1,this.recordJobMetrics("completed"),o})}async moveToWait(e){let t=await this.scripts.moveJobFromActiveToWait(this.id,e);return this.recordJobMetrics("waiting"),t}async shouldRetryJob(e){if(this.attemptsMade+1<this.opts.attempts&&!this.discarded&&!(e instanceof iD.UnrecoverableError||e.name=="UnrecoverableError")){let t=this.queue.opts,n=await ng.Backoffs.calculate(this.opts.backoff,this.attemptsMade+1,e,this,t.settings&&t.settings.backoffStrategy);return[n!=-1,n==-1?0:n]}else return[!1,0]}async moveToFailed(e,t,n=!1){this.failedReason=e?.message;let[i,s]=await this.shouldRetryJob(e);return this.queue.trace(ot.SpanKind.INTERNAL,this.getSpanOperation(i,s),this.queue.name,async(a,o)=>{var l,c;this.setSpanJobAttributes(a);let u;!(!((c=(l=this.opts)===null||l===void 0?void 0:l.telemetry)===null||c===void 0)&&c.omitContext)&&o&&(u=o);let d;this.updateStacktrace(e);let f={failedReason:this.failedReason,stacktrace:JSON.stringify(this.stacktrace),tm:u},p;if(i)s?(d=await this.scripts.moveToDelayed(this.id,Date.now(),s,t,{fieldsToUpdate:f,fetchNext:n}),this.recordJobMetrics("delayed")):(d=await this.scripts.retryJob(this.id,this.opts.lifo,t,{fieldsToUpdate:f}),this.recordJobMetrics("retried"));else{let y=this.scripts.moveToFailedArgs(this,this.failedReason,this.opts.removeOnFail,t,n,f);d=await this.scripts.moveToFinished(this.id,y),p=y[this.scripts.moveToFinishedKeys.length+1],this.recordJobMetrics("failed")}return p&&typeof p=="number"&&(this.finishedOn=p),s&&typeof s=="number"&&(this.delay=s),this.attemptsMade+=1,d})}getSpanOperation(e,t){return e?t?"delay":"retry":"fail"}recordJobMetrics(e){var t,n;let i=(n=(t=this.queue.opts)===null||t===void 0?void 0:t.telemetry)===null||n===void 0?void 0:n.meter;if(!i)return;let s={[ot.TelemetryAttributes.QueueName]:this.queue.name,[ot.TelemetryAttributes.JobName]:this.name,[ot.TelemetryAttributes.JobStatus]:e},o={completed:ot.MetricNames.JobsCompleted,failed:ot.MetricNames.JobsFailed,delayed:ot.MetricNames.JobsDelayed,retried:ot.MetricNames.JobsRetried,waiting:ot.MetricNames.JobsWaiting,"waiting-children":ot.MetricNames.JobsWaitingChildren}[e];if(i.createCounter(o,{description:`Number of jobs ${e}`,unit:"1"}).add(1,s),this.processedOn){let c=Date.now()-this.processedOn;i.createHistogram(ot.MetricNames.JobDuration,{description:"Job processing duration",unit:"ms"}).record(c,s)}}isCompleted(){return this.isInZSet("completed")}isFailed(){return this.isInZSet("failed")}isDelayed(){return this.isInZSet("delayed")}isWaitingChildren(){return this.isInZSet("waiting-children")}isActive(){return this.isInList("active")}async isWaiting(){return await this.isInList("wait")||await this.isInList("paused")}get queueName(){return this.queue.name}get prefix(){return this.queue.opts.prefix}getState(){return this.scripts.getState(this.id)}async changeDelay(e){await this.scripts.changeDelay(this.id,e),this.delay=e}async changePriority(e){await this.scripts.changePriority(this.id,e.priority,e.lifo),this.priority=e.priority||0}async getChildrenValues(){let t=await(await this.queue.client).hgetall(this.toKey(`${this.id}:processed`));if(t)return(0,tt.parseObjectValues)(t)}async getIgnoredChildrenFailures(){return(await this.queue.client).hgetall(this.toKey(`${this.id}:failed`))}async getFailedChildrenValues(){return(await this.queue.client).hgetall(this.toKey(`${this.id}:failed`))}async getDependencies(e={}){let n=(await this.queue.client).multi();if(!e.processed&&!e.unprocessed&&!e.ignored&&!e.failed){n.hgetall(this.toKey(`${this.id}:processed`)),n.smembers(this.toKey(`${this.id}:dependencies`)),n.hgetall(this.toKey(`${this.id}:failed`)),n.zrange(this.toKey(`${this.id}:unsuccessful`),0,-1);let[[i,s],[a,o],[l,c],[u,d]]=await n.exec();return{processed:(0,tt.parseObjectValues)(s),unprocessed:o,failed:d,ignored:c}}else{let i={cursor:0,count:20},s=[];if(e.processed){s.push("processed");let g=Object.assign(Object.assign({},i),e.processed);n.hscan(this.toKey(`${this.id}:processed`),g.cursor,"COUNT",g.count)}if(e.unprocessed){s.push("unprocessed");let g=Object.assign(Object.assign({},i),e.unprocessed);n.sscan(this.toKey(`${this.id}:dependencies`),g.cursor,"COUNT",g.count)}if(e.ignored){s.push("ignored");let g=Object.assign(Object.assign({},i),e.ignored);n.hscan(this.toKey(`${this.id}:failed`),g.cursor,"COUNT",g.count)}let a;if(e.failed){s.push("failed");let g=Object.assign(Object.assign({},i),e.failed);a=g.cursor+g.count,n.zrange(this.toKey(`${this.id}:unsuccessful`),g.cursor,g.count-1)}let o=await n.exec(),l,c,u,d,f,p,y;return s.forEach((g,S)=>{switch(g){case"processed":{l=o[S][1][0];let k=o[S][1][1],I={};for(let R=0;R<k.length;++R)R%2&&(I[k[R-1]]=JSON.parse(k[R]));c=I;break}case"failed":{f=o[S][1];break}case"ignored":{p=o[S][1][0];let k=o[S][1][1],I={};for(let R=0;R<k.length;++R)R%2&&(I[k[R-1]]=k[R]);y=I;break}case"unprocessed":{u=o[S][1][0],d=o[S][1][1];break}}}),Object.assign(Object.assign(Object.assign(Object.assign({},l?{processed:c,nextProcessedCursor:Number(l)}:{}),p?{ignored:y,nextIgnoredCursor:Number(p)}:{}),a?{failed:f,nextFailedCursor:a}:{}),u?{unprocessed:d,nextUnprocessedCursor:Number(u)}:{})}}async getDependenciesCount(e={}){let t=[];Object.entries(e).forEach(([a,o])=>{o&&t.push(a)});let n=t.length?t:["processed","unprocessed","ignored","failed"],i=await this.scripts.getDependencyCounts(this.id,n),s={};return i.forEach((a,o)=>{s[`${n[o]}`]=a||0}),s}async waitUntilFinished(e,t){await this.queue.waitUntilReady();let n=this.id;return new Promise(async(i,s)=>{let a;t&&(a=setTimeout(()=>l(`Job wait ${this.name} timed out before finishing, no finish notification arrived after ${t}ms (id=${n})`),t));function o(g){d(),i(g.returnvalue)}function l(g){d(),s(new Error(g.failedReason||g))}let c=`completed:${n}`,u=`failed:${n}`;e.on(c,o),e.on(u,l),this.queue.on("closing",l);let d=()=>{clearInterval(a),e.removeListener(c,o),e.removeListener(u,l),this.queue.removeListener("closing",l)};await e.waitUntilReady();let[f,p]=await this.scripts.isFinished(n,!0);f!=0&&(f==-1||f==2?l({failedReason:p}):o({returnvalue:ig(p)}))})}async moveToDelayed(e,t){let n=Date.now(),i=e-n,s=i>0?i:0;await this.scripts.moveToDelayed(this.id,n,s,t,{skipAttempt:!0}),this.delay=s,this.recordJobMetrics("delayed")}async moveToWaitingChildren(e,t={}){let n=await this.scripts.moveToWaitingChildren(this.id,e,t);return n&&this.recordJobMetrics("waiting-children"),n}async promote(){let e=this.id;await this.scripts.promote(e),this.delay=0}async retry(e="failed",t={}){await this.scripts.reprocessJob(this,e,t),this.failedReason=null,this.finishedOn=null,this.processedOn=null,this.returnvalue=null,t.resetAttemptsMade&&(this.attemptsMade=0),t.resetAttemptsStarted&&(this.attemptsStarted=0)}discard(){this.discarded=!0}async isInZSet(e){return await(await this.queue.client).zscore(this.queue.toKey(e),this.id)!==null}async isInList(e){return this.scripts.isJobInList(this.queue.toKey(e),this.id)}addJob(e,t){let n=this.asJSON();return this.validateOptions(n),this.scripts.addJob(e,n,n.opts,this.id,t)}async removeDeduplicationKey(){return this.deduplicationId?await this.scripts.removeDeduplicationKey(this.deduplicationId,this.id)>0:!1}validateOptions(e){var t,n,i,s,a,o,l,c;let u=["removeDependencyOnFailure","failParentOnFailure","continueParentOnFailure","ignoreDependencyOnFailure"];if(this.opts.sizeLimit&&(0,tt.lengthInUtf8Bytes)(e.data)>this.opts.sizeLimit)throw new Error(`The size of job ${this.name} exceeds the limit ${this.opts.sizeLimit} bytes`);if(this.opts.delay&&this.opts.repeat&&!(!((t=this.opts.repeat)===null||t===void 0)&&t.count))throw new Error("Delay and repeat options cannot be used together");let f=u.filter(p=>this.opts[p]);if(f.length>1){let p=f.join(", ");throw new Error(`The following options cannot be used together: ${p}`)}if(!((n=this.opts)===null||n===void 0)&&n.jobId){if(`${parseInt(this.opts.jobId,10)}`===((i=this.opts)===null||i===void 0?void 0:i.jobId))throw new Error("Custom Id cannot be integers");if(!((s=this.opts)===null||s===void 0)&&s.jobId.includes(":")&&((o=(a=this.opts)===null||a===void 0?void 0:a.jobId)===null||o===void 0?void 0:o.split(":").length)!==3)throw new Error("Custom Id cannot contain :")}if(this.opts.priority){if(Math.trunc(this.opts.priority)!==this.opts.priority)throw new Error("Priority should not be float");if(this.opts.priority>wr.PRIORITY_LIMIT)throw new Error(`Priority should be between 0 and ${wr.PRIORITY_LIMIT}`)}if(this.opts.deduplication){if(!(!((l=this.opts.deduplication)===null||l===void 0)&&l.id))throw new Error("Deduplication id must be provided");if(this.parentKey)throw new Error("Deduplication and parent options cannot be used together")}if(this.opts.debounce){if(!(!((c=this.opts.debounce)===null||c===void 0)&&c.id))throw new Error("Debounce id must be provided");if(this.parentKey)throw new Error("Debounce and parent options cannot be used together")}if(typeof this.opts.backoff=="object"&&typeof this.opts.backoff.jitter=="number"&&(this.opts.backoff.jitter<0||this.opts.backoff.jitter>1))throw new Error("Jitter should be between 0 and 1")}updateStacktrace(e){this.stacktrace=this.stacktrace||[],e?.stack&&(this.stacktrace.push(e.stack),this.opts.stackTraceLimit===0?this.stacktrace=[]:this.opts.stackTraceLimit&&(this.stacktrace=this.stacktrace.slice(-this.opts.stackTraceLimit)))}setSpanJobAttributes(e){e?.setAttributes({[ot.TelemetryAttributes.JobName]:this.name,[ot.TelemetryAttributes.JobId]:this.id})}};wr.Job=Mu;function aD(r){if(!r)return[];let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);return e===tt.errorObject||!(e instanceof Array)?[]:e}function ig(r){let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);if(e!==tt.errorObject)return e;sD("corrupted returnvalue: "+r,e)}});var ca=h(la=>{"use strict";Object.defineProperty(la,"__esModule",{value:!0});la.QueueKeys=void 0;var Pu=class{constructor(e="bull"){this.prefix=e}getKeys(e){let t={};return["","active","wait","waiting-children","paused","id","delayed","prioritized","stalled-check","completed","failed","stalled","repeat","limiter","meta","events","pc","marker","de"].forEach(n=>{t[n]=this.toKey(e,n)}),t}toKey(e,t){return`${this.getQueueQualifiedName(e)}:${t}`}getQueueQualifiedName(e){return`${this.prefix}:${e}`}};la.QueueKeys=Pu});var sg=h(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});ua.addDelayedJob=void 0;var oD=`--[[
|
|
166
166
|
Adds a delayed job to the queue by doing the following:
|
|
167
167
|
- Increases the job counter if needed.
|
|
168
168
|
- Creates a new job key with the job data.
|
|
@@ -730,7 +730,7 @@ if parentDependenciesKey ~= nil then
|
|
|
730
730
|
rcall("SADD", parentDependenciesKey, jobIdKey)
|
|
731
731
|
end
|
|
732
732
|
return jobId .. "" -- convert to string
|
|
733
|
-
`;
|
|
733
|
+
`;ua.addDelayedJob={name:"addDelayedJob",content:oD,keys:6}});var ag=h(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.addJobScheduler=void 0;var lD=`--[[
|
|
734
734
|
Adds a job scheduler, i.e. a job factory that creates jobs based on a given schedule (repeat options).
|
|
735
735
|
Input:
|
|
736
736
|
KEYS[1] 'repeat' key
|
|
@@ -1304,7 +1304,7 @@ if ARGV[9] ~= "" then
|
|
|
1304
1304
|
rcall("HSET", ARGV[9], "nrjid", jobId)
|
|
1305
1305
|
end
|
|
1306
1306
|
return {jobId .. "", delay}
|
|
1307
|
-
`;
|
|
1307
|
+
`;da.addJobScheduler={name:"addJobScheduler",content:lD,keys:11}});var og=h(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.addLog=void 0;var cD=`--[[
|
|
1308
1308
|
Add job log
|
|
1309
1309
|
Input:
|
|
1310
1310
|
KEYS[1] job id key
|
|
@@ -1327,7 +1327,7 @@ if rcall("EXISTS", KEYS[1]) == 1 then -- // Make sure job exists
|
|
|
1327
1327
|
else
|
|
1328
1328
|
return -1
|
|
1329
1329
|
end
|
|
1330
|
-
`;pa.addLog={name:"addLog",content:
|
|
1330
|
+
`;pa.addLog={name:"addLog",content:cD,keys:2}});var lg=h(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.addParentJob=void 0;var uD=`--[[
|
|
1331
1331
|
Adds a parent job to the queue by doing the following:
|
|
1332
1332
|
- Increases the job counter if needed.
|
|
1333
1333
|
- Creates a new job key with the job data.
|
|
@@ -1792,7 +1792,7 @@ if parentDependenciesKey ~= nil then
|
|
|
1792
1792
|
rcall("SADD", parentDependenciesKey, jobIdKey)
|
|
1793
1793
|
end
|
|
1794
1794
|
return jobId .. "" -- convert to string
|
|
1795
|
-
`;fa.addParentJob={name:"addParentJob",content:
|
|
1795
|
+
`;fa.addParentJob={name:"addParentJob",content:uD,keys:6}});var cg=h(ha=>{"use strict";Object.defineProperty(ha,"__esModule",{value:!0});ha.addPrioritizedJob=void 0;var dD=`--[[
|
|
1796
1796
|
Adds a priotitized job to the queue by doing the following:
|
|
1797
1797
|
- Increases the job counter if needed.
|
|
1798
1798
|
- Creates a new job key with the job data.
|
|
@@ -2330,7 +2330,7 @@ if parentDependenciesKey ~= nil then
|
|
|
2330
2330
|
rcall("SADD", parentDependenciesKey, jobIdKey)
|
|
2331
2331
|
end
|
|
2332
2332
|
return jobId .. "" -- convert to string
|
|
2333
|
-
`;ha.addPrioritizedJob={name:"addPrioritizedJob",content:
|
|
2333
|
+
`;ha.addPrioritizedJob={name:"addPrioritizedJob",content:dD,keys:9}});var ug=h(ya=>{"use strict";Object.defineProperty(ya,"__esModule",{value:!0});ya.addRepeatableJob=void 0;var pD=`--[[
|
|
2334
2334
|
Adds a repeatable job
|
|
2335
2335
|
Input:
|
|
2336
2336
|
KEYS[1] 'repeat' key
|
|
@@ -2558,7 +2558,7 @@ if rcall("ZSCORE", repeatKey, legacyCustomKey) ~= false then
|
|
|
2558
2558
|
return storeRepeatableJob(repeatKey, legacyCustomKey, nextMillis, ARGV[2])
|
|
2559
2559
|
end
|
|
2560
2560
|
return storeRepeatableJob(repeatKey, customKey, nextMillis, ARGV[2])
|
|
2561
|
-
`;ya.addRepeatableJob={name:"addRepeatableJob",content:
|
|
2561
|
+
`;ya.addRepeatableJob={name:"addRepeatableJob",content:pD,keys:2}});var dg=h(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.addStandardJob=void 0;var fD=`--[[
|
|
2562
2562
|
Adds a job to the queue by doing the following:
|
|
2563
2563
|
- Increases the job counter if needed.
|
|
2564
2564
|
- Creates a new job key with the job data.
|
|
@@ -3100,7 +3100,7 @@ if parentDependenciesKey ~= nil then
|
|
|
3100
3100
|
rcall("SADD", parentDependenciesKey, jobIdKey)
|
|
3101
3101
|
end
|
|
3102
3102
|
return jobId .. "" -- convert to string
|
|
3103
|
-
`;ma.addStandardJob={name:"addStandardJob",content:
|
|
3103
|
+
`;ma.addStandardJob={name:"addStandardJob",content:fD,keys:9}});var pg=h(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.changeDelay=void 0;var hD=`--[[
|
|
3104
3104
|
Change job delay when it is in delayed set.
|
|
3105
3105
|
Input:
|
|
3106
3106
|
KEYS[1] delayed key
|
|
@@ -3197,7 +3197,7 @@ if rcall("EXISTS", ARGV[4]) == 1 then
|
|
|
3197
3197
|
return 0
|
|
3198
3198
|
else
|
|
3199
3199
|
return -1
|
|
3200
|
-
end`;ba.changeDelay={name:"changeDelay",content:
|
|
3200
|
+
end`;ba.changeDelay={name:"changeDelay",content:hD,keys:4}});var fg=h(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.changePriority=void 0;var yD=`--[[
|
|
3201
3201
|
Change job priority
|
|
3202
3202
|
Input:
|
|
3203
3203
|
KEYS[1] 'wait',
|
|
@@ -3315,7 +3315,7 @@ if rcall("EXISTS", jobKey) == 1 then
|
|
|
3315
3315
|
else
|
|
3316
3316
|
return -1
|
|
3317
3317
|
end
|
|
3318
|
-
`;ga.changePriority={name:"changePriority",content:
|
|
3318
|
+
`;ga.changePriority={name:"changePriority",content:yD,keys:7}});var hg=h(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.cleanJobsInSet=void 0;var mD=`--[[
|
|
3319
3319
|
Remove jobs from the specific set.
|
|
3320
3320
|
Input:
|
|
3321
3321
|
KEYS[1] set key,
|
|
@@ -3674,7 +3674,7 @@ else
|
|
|
3674
3674
|
end
|
|
3675
3675
|
rcall("XADD", KEYS[2], "*", "event", "cleaned", "count", result[2])
|
|
3676
3676
|
return result[1]
|
|
3677
|
-
`;va.cleanJobsInSet={name:"cleanJobsInSet",content:
|
|
3677
|
+
`;va.cleanJobsInSet={name:"cleanJobsInSet",content:mD,keys:3}});var yg=h(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.drain=void 0;var bD=`--[[
|
|
3678
3678
|
Drains the queue, removes all jobs that are waiting
|
|
3679
3679
|
or delayed, but not active, completed or failed
|
|
3680
3680
|
Input:
|
|
@@ -3939,7 +3939,7 @@ if ARGV[2] == "1" then
|
|
|
3939
3939
|
removeZSetJobs(KEYS[3], true, queueBaseKey, 0, scheduledJobs) -- delayed
|
|
3940
3940
|
end
|
|
3941
3941
|
removeZSetJobs(KEYS[4], true, queueBaseKey, 0, scheduledJobs) -- prioritized
|
|
3942
|
-
`;Ka.drain={name:"drain",content:
|
|
3942
|
+
`;Ka.drain={name:"drain",content:bD,keys:5}});var mg=h(Sa=>{"use strict";Object.defineProperty(Sa,"__esModule",{value:!0});Sa.extendLock=void 0;var gD=`--[[
|
|
3943
3943
|
Extend lock and removes the job from the stalled set.
|
|
3944
3944
|
Input:
|
|
3945
3945
|
KEYS[1] 'lock',
|
|
@@ -3959,7 +3959,7 @@ if rcall("GET", KEYS[1]) == ARGV[1] then
|
|
|
3959
3959
|
end
|
|
3960
3960
|
end
|
|
3961
3961
|
return 0
|
|
3962
|
-
`;Sa.extendLock={name:"extendLock",content:
|
|
3962
|
+
`;Sa.extendLock={name:"extendLock",content:gD,keys:2}});var bg=h(Ea=>{"use strict";Object.defineProperty(Ea,"__esModule",{value:!0});Ea.extendLocks=void 0;var vD=`--[[
|
|
3963
3963
|
Extend locks for multiple jobs and remove them from the stalled set if successful.
|
|
3964
3964
|
Return the list of job IDs for which the operation failed.
|
|
3965
3965
|
KEYS[1] = stalled key
|
|
@@ -3999,7 +3999,7 @@ for i = 1, jobCount, 1 do
|
|
|
3999
3999
|
end
|
|
4000
4000
|
end
|
|
4001
4001
|
return failedJobs
|
|
4002
|
-
`;Ea.extendLocks={name:"extendLocks",content:
|
|
4002
|
+
`;Ea.extendLocks={name:"extendLocks",content:vD,keys:1}});var gg=h(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.getCounts=void 0;var KD=`--[[
|
|
4003
4003
|
Get counts per provided states
|
|
4004
4004
|
Input:
|
|
4005
4005
|
KEYS[1] 'prefix'
|
|
@@ -4031,7 +4031,7 @@ for i = 1, #ARGV do
|
|
|
4031
4031
|
end
|
|
4032
4032
|
end
|
|
4033
4033
|
return results
|
|
4034
|
-
`;ka.getCounts={name:"getCounts",content:
|
|
4034
|
+
`;ka.getCounts={name:"getCounts",content:KD,keys:1}});var vg=h(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.getCountsPerPriority=void 0;var SD=`--[[
|
|
4035
4035
|
Get counts per provided states
|
|
4036
4036
|
Input:
|
|
4037
4037
|
KEYS[1] wait key
|
|
@@ -4067,7 +4067,7 @@ for i = 1, #ARGV do
|
|
|
4067
4067
|
end
|
|
4068
4068
|
end
|
|
4069
4069
|
return results
|
|
4070
|
-
`;Ia.getCountsPerPriority={name:"getCountsPerPriority",content:
|
|
4070
|
+
`;Ia.getCountsPerPriority={name:"getCountsPerPriority",content:SD,keys:4}});var Kg=h(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.getDependencyCounts=void 0;var ED=`--[[
|
|
4071
4071
|
Get counts per child states
|
|
4072
4072
|
Input:
|
|
4073
4073
|
KEYS[1] processed key
|
|
@@ -4094,7 +4094,7 @@ for i = 1, #ARGV do
|
|
|
4094
4094
|
end
|
|
4095
4095
|
end
|
|
4096
4096
|
return results
|
|
4097
|
-
`;xa.getDependencyCounts={name:"getDependencyCounts",content:
|
|
4097
|
+
`;xa.getDependencyCounts={name:"getDependencyCounts",content:ED,keys:4}});var Sg=h(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.getJobScheduler=void 0;var kD=`--[[
|
|
4098
4098
|
Get job scheduler record.
|
|
4099
4099
|
Input:
|
|
4100
4100
|
KEYS[1] 'repeat' key
|
|
@@ -4107,7 +4107,7 @@ if score then
|
|
|
4107
4107
|
return {rcall("HGETALL", jobSchedulerKey), score} -- get job data
|
|
4108
4108
|
end
|
|
4109
4109
|
return {nil, nil}
|
|
4110
|
-
`;wa.getJobScheduler={name:"getJobScheduler",content:
|
|
4110
|
+
`;wa.getJobScheduler={name:"getJobScheduler",content:kD,keys:1}});var Eg=h(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.getMetrics=void 0;var ID=`--[[
|
|
4111
4111
|
Get metrics
|
|
4112
4112
|
Input:
|
|
4113
4113
|
KEYS[1] 'metrics' key
|
|
@@ -4122,7 +4122,7 @@ local metrics = rcall("HMGET", metricsKey, "count", "prevTS", "prevCount")
|
|
|
4122
4122
|
local data = rcall("LRANGE", dataKey, tonumber(ARGV[1]), tonumber(ARGV[2]))
|
|
4123
4123
|
local numPoints = rcall("LLEN", dataKey)
|
|
4124
4124
|
return {metrics, data, numPoints}
|
|
4125
|
-
`;
|
|
4125
|
+
`;Ta.getMetrics={name:"getMetrics",content:ID,keys:2}});var kg=h(ja=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});ja.getRanges=void 0;var xD=`--[[
|
|
4126
4126
|
Get job ids per provided states
|
|
4127
4127
|
Input:
|
|
4128
4128
|
KEYS[1] 'prefix'
|
|
@@ -4185,7 +4185,7 @@ for i = 4, #ARGV do
|
|
|
4185
4185
|
end
|
|
4186
4186
|
end
|
|
4187
4187
|
return results
|
|
4188
|
-
`;
|
|
4188
|
+
`;ja.getRanges={name:"getRanges",content:xD,keys:1}});var Ig=h(Aa=>{"use strict";Object.defineProperty(Aa,"__esModule",{value:!0});Aa.getRateLimitTtl=void 0;var wD=`--[[
|
|
4189
4189
|
Get rate limit ttl
|
|
4190
4190
|
Input:
|
|
4191
4191
|
KEYS[1] 'limiter'
|
|
@@ -4219,7 +4219,7 @@ else
|
|
|
4219
4219
|
end
|
|
4220
4220
|
return rcall("PTTL", rateLimiterKey)
|
|
4221
4221
|
end
|
|
4222
|
-
`;Aa.getRateLimitTtl={name:"getRateLimitTtl",content:
|
|
4222
|
+
`;Aa.getRateLimitTtl={name:"getRateLimitTtl",content:wD,keys:2}});var xg=h(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.getState=void 0;var TD=`--[[
|
|
4223
4223
|
Get a job state
|
|
4224
4224
|
Input:
|
|
4225
4225
|
KEYS[1] 'completed' key,
|
|
@@ -4282,7 +4282,7 @@ if rcall("ZSCORE", KEYS[7], ARGV[1]) then
|
|
|
4282
4282
|
return "waiting-children"
|
|
4283
4283
|
end
|
|
4284
4284
|
return "unknown"
|
|
4285
|
-
`;Da.getState={name:"getState",content:
|
|
4285
|
+
`;Da.getState={name:"getState",content:TD,keys:8}});var wg=h(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.getStateV2=void 0;var jD=`--[[
|
|
4286
4286
|
Get a job state
|
|
4287
4287
|
Input:
|
|
4288
4288
|
KEYS[1] 'completed' key,
|
|
@@ -4329,7 +4329,7 @@ if rcall("ZSCORE", KEYS[7] , ARGV[1]) then
|
|
|
4329
4329
|
return "waiting-children"
|
|
4330
4330
|
end
|
|
4331
4331
|
return "unknown"
|
|
4332
|
-
`;Oa.getStateV2={name:"getStateV2",content:
|
|
4332
|
+
`;Oa.getStateV2={name:"getStateV2",content:jD,keys:8}});var Tg=h(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.isFinished=void 0;var AD=`--[[
|
|
4333
4333
|
Checks if a job is finished (.i.e. is in the completed or failed set)
|
|
4334
4334
|
Input:
|
|
4335
4335
|
KEYS[1] completed key
|
|
@@ -4368,7 +4368,7 @@ if ARGV[2] == "1" then
|
|
|
4368
4368
|
return {0}
|
|
4369
4369
|
end
|
|
4370
4370
|
return 0
|
|
4371
|
-
`;Ra.isFinished={name:"isFinished",content:
|
|
4371
|
+
`;Ra.isFinished={name:"isFinished",content:AD,keys:3}});var jg=h(Ca=>{"use strict";Object.defineProperty(Ca,"__esModule",{value:!0});Ca.isJobInList=void 0;var DD=`--[[
|
|
4372
4372
|
Checks if job is in a given list.
|
|
4373
4373
|
Input:
|
|
4374
4374
|
KEYS[1]
|
|
@@ -4390,7 +4390,7 @@ local function checkItemInList(list, item)
|
|
|
4390
4390
|
end
|
|
4391
4391
|
local items = redis.call("LRANGE", KEYS[1] , 0, -1)
|
|
4392
4392
|
return checkItemInList(items, ARGV[1])
|
|
4393
|
-
`;Ca.isJobInList={name:"isJobInList",content:
|
|
4393
|
+
`;Ca.isJobInList={name:"isJobInList",content:DD,keys:1}});var Ag=h(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.isMaxed=void 0;var OD=`--[[
|
|
4394
4394
|
Checks if queue is maxed.
|
|
4395
4395
|
Input:
|
|
4396
4396
|
KEYS[1] meta key
|
|
@@ -4414,7 +4414,7 @@ local function isQueueMaxed(queueMetaKey, activeKey)
|
|
|
4414
4414
|
return false
|
|
4415
4415
|
end
|
|
4416
4416
|
return isQueueMaxed(KEYS[1], KEYS[2])
|
|
4417
|
-
`;_a.isMaxed={name:"isMaxed",content:
|
|
4417
|
+
`;_a.isMaxed={name:"isMaxed",content:OD,keys:2}});var Dg=h(Ma=>{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.moveJobFromActiveToWait=void 0;var RD=`--[[
|
|
4418
4418
|
Function to move job from active state to wait.
|
|
4419
4419
|
Input:
|
|
4420
4420
|
KEYS[1] active key
|
|
@@ -4538,7 +4538,7 @@ if pttl > 0 then
|
|
|
4538
4538
|
else
|
|
4539
4539
|
return 0
|
|
4540
4540
|
end
|
|
4541
|
-
`;Ma.moveJobFromActiveToWait={name:"moveJobFromActiveToWait",content:
|
|
4541
|
+
`;Ma.moveJobFromActiveToWait={name:"moveJobFromActiveToWait",content:RD,keys:9}});var Og=h(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.moveJobsToWait=void 0;var CD=`--[[
|
|
4542
4542
|
Move completed, failed or delayed jobs to wait.
|
|
4543
4543
|
Note: Does not support jobs with priorities.
|
|
4544
4544
|
Input:
|
|
@@ -4646,7 +4646,7 @@ end
|
|
|
4646
4646
|
maxCount = maxCount - #jobs
|
|
4647
4647
|
if (maxCount <= 0) then return 1 end
|
|
4648
4648
|
return 0
|
|
4649
|
-
`;Pa.moveJobsToWait={name:"moveJobsToWait",content:
|
|
4649
|
+
`;Pa.moveJobsToWait={name:"moveJobsToWait",content:CD,keys:8}});var Rg=h(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.moveStalledJobsToWait=void 0;var _D=`--[[
|
|
4650
4650
|
Move stalled jobs to wait.
|
|
4651
4651
|
Input:
|
|
4652
4652
|
KEYS[1] 'stalled' (SET)
|
|
@@ -4821,7 +4821,7 @@ if (#active > 0) then
|
|
|
4821
4821
|
end
|
|
4822
4822
|
end
|
|
4823
4823
|
return stalled
|
|
4824
|
-
`;Na.moveStalledJobsToWait={name:"moveStalledJobsToWait",content:
|
|
4824
|
+
`;Na.moveStalledJobsToWait={name:"moveStalledJobsToWait",content:_D,keys:8}});var Cg=h(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.moveToActive=void 0;var MD=`--[[
|
|
4825
4825
|
Move next job to be processed to active, lock it and fetch its data. The job
|
|
4826
4826
|
may be delayed, in that case we need to move it to the delayed set instead.
|
|
4827
4827
|
This operation guarantees that the worker owns the job during the lock
|
|
@@ -5055,7 +5055,7 @@ end
|
|
|
5055
5055
|
local nextTimestamp = getNextDelayedTimestamp(delayedKey)
|
|
5056
5056
|
if nextTimestamp ~= nil then return {0, 0, 0, nextTimestamp} end
|
|
5057
5057
|
return {0, 0, 0, 0}
|
|
5058
|
-
`;
|
|
5058
|
+
`;La.moveToActive={name:"moveToActive",content:MD,keys:11}});var _g=h(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.moveToDelayed=void 0;var PD=`--[[
|
|
5059
5059
|
Moves job from active to delayed set.
|
|
5060
5060
|
Input:
|
|
5061
5061
|
KEYS[1] marker key
|
|
@@ -5444,7 +5444,7 @@ if rcall("EXISTS", jobKey) == 1 then
|
|
|
5444
5444
|
else
|
|
5445
5445
|
return -1
|
|
5446
5446
|
end
|
|
5447
|
-
`;
|
|
5447
|
+
`;qa.moveToDelayed={name:"moveToDelayed",content:PD,keys:12}});var Mg=h(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.moveToFinished=void 0;var ND=`--[[
|
|
5448
5448
|
Move job from active to a finished status (completed o failed)
|
|
5449
5449
|
A job can only be moved to completed if it was active.
|
|
5450
5450
|
The job must be locked before it can be moved to a finished status,
|
|
@@ -6471,7 +6471,7 @@ if rcall("EXISTS", jobIdKey) == 1 then -- Make sure job exists
|
|
|
6471
6471
|
else
|
|
6472
6472
|
return -1
|
|
6473
6473
|
end
|
|
6474
|
-
`;
|
|
6474
|
+
`;Ja.moveToFinished={name:"moveToFinished",content:ND,keys:14}});var Pg=h(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});Fa.moveToWaitingChildren=void 0;var LD=`--[[
|
|
6475
6475
|
Moves job from active to waiting children set.
|
|
6476
6476
|
Input:
|
|
6477
6477
|
KEYS[1] active key
|
|
@@ -6568,7 +6568,7 @@ if rcall("EXISTS", jobKey) == 1 then
|
|
|
6568
6568
|
end
|
|
6569
6569
|
end
|
|
6570
6570
|
return -1
|
|
6571
|
-
`;Fa.moveToWaitingChildren={name:"moveToWaitingChildren",content:
|
|
6571
|
+
`;Fa.moveToWaitingChildren={name:"moveToWaitingChildren",content:LD,keys:7}});var Ng=h(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});Va.obliterate=void 0;var qD=`--[[
|
|
6572
6572
|
Completely obliterates a queue and all of its contents
|
|
6573
6573
|
This command completely destroys a queue including all of its jobs, current or past
|
|
6574
6574
|
leaving no trace of its existence. Since this script needs to iterate to find all the job
|
|
@@ -6902,7 +6902,7 @@ if(maxCount > 0) then
|
|
|
6902
6902
|
else
|
|
6903
6903
|
return 1
|
|
6904
6904
|
end
|
|
6905
|
-
`;Va.obliterate={name:"obliterate",content:
|
|
6905
|
+
`;Va.obliterate={name:"obliterate",content:qD,keys:2}});var Lg=h(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.paginate=void 0;var JD=`--[[
|
|
6906
6906
|
Paginate a set or hash
|
|
6907
6907
|
Input:
|
|
6908
6908
|
KEYS[1] key pointing to the set or hash to be paginated.
|
|
@@ -7002,7 +7002,7 @@ local cursor, offset, items, jobs = findPage(key, scanCommand, startOffset,
|
|
|
7002
7002
|
pageSize, ARGV[3], tonumber(ARGV[4]),
|
|
7003
7003
|
tonumber(ARGV[5]), ARGV[6])
|
|
7004
7004
|
return {cursor, offset, items, numItems, jobs}
|
|
7005
|
-
`;Ga.paginate={name:"paginate",content:
|
|
7005
|
+
`;Ga.paginate={name:"paginate",content:JD,keys:1}});var qg=h(Ya=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});Ya.pause=void 0;var FD=`--[[
|
|
7006
7006
|
Pauses or resumes a queue globably.
|
|
7007
7007
|
Input:
|
|
7008
7008
|
KEYS[1] 'wait' or 'paused''
|
|
@@ -7059,7 +7059,7 @@ else
|
|
|
7059
7059
|
end
|
|
7060
7060
|
end
|
|
7061
7061
|
rcall("XADD", KEYS[5], "*", "event", ARGV[1]);
|
|
7062
|
-
`;Ya.pause={name:"pause",content:
|
|
7062
|
+
`;Ya.pause={name:"pause",content:FD,keys:7}});var Jg=h(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.promote=void 0;var VD=`--[[
|
|
7063
7063
|
Promotes a job that is currently "delayed" to the "waiting" state
|
|
7064
7064
|
Input:
|
|
7065
7065
|
KEYS[1] 'delayed'
|
|
@@ -7159,7 +7159,7 @@ if rcall("ZREM", KEYS[1], jobId) == 1 then
|
|
|
7159
7159
|
else
|
|
7160
7160
|
return -3
|
|
7161
7161
|
end
|
|
7162
|
-
`;Ba.promote={name:"promote",content:
|
|
7162
|
+
`;Ba.promote={name:"promote",content:VD,keys:9}});var Fg=h(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});Wa.releaseLock=void 0;var GD=`--[[
|
|
7163
7163
|
Release lock
|
|
7164
7164
|
Input:
|
|
7165
7165
|
KEYS[1] 'lock',
|
|
@@ -7174,7 +7174,7 @@ if rcall("GET", KEYS[1]) == ARGV[1] then
|
|
|
7174
7174
|
else
|
|
7175
7175
|
return 0
|
|
7176
7176
|
end
|
|
7177
|
-
`;Wa.releaseLock={name:"releaseLock",content:
|
|
7177
|
+
`;Wa.releaseLock={name:"releaseLock",content:GD,keys:1}});var Vg=h(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.removeChildDependency=void 0;var YD=`--[[
|
|
7178
7178
|
Break parent-child dependency by removing
|
|
7179
7179
|
child reference from parent
|
|
7180
7180
|
Input:
|
|
@@ -7329,7 +7329,7 @@ if removeParentDependencyKey(jobKey, false, parentKey, KEYS[1], nil) then
|
|
|
7329
7329
|
return 0
|
|
7330
7330
|
else
|
|
7331
7331
|
return 1
|
|
7332
|
-
end`;Ua.removeChildDependency={name:"removeChildDependency",content:
|
|
7332
|
+
end`;Ua.removeChildDependency={name:"removeChildDependency",content:YD,keys:1}});var Gg=h(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.removeDeduplicationKey=void 0;var BD=`--[[
|
|
7333
7333
|
Remove deduplication key if it matches the job id.
|
|
7334
7334
|
Input:
|
|
7335
7335
|
KEYS[1] deduplication key
|
|
@@ -7346,7 +7346,7 @@ if currentJobId and currentJobId == jobId then
|
|
|
7346
7346
|
return rcall("DEL", deduplicationKey)
|
|
7347
7347
|
end
|
|
7348
7348
|
return 0
|
|
7349
|
-
`;za.removeDeduplicationKey={name:"removeDeduplicationKey",content:
|
|
7349
|
+
`;za.removeDeduplicationKey={name:"removeDeduplicationKey",content:BD,keys:1}});var Yg=h($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});$a.removeJob=void 0;var WD=`--[[
|
|
7350
7350
|
Remove a job from all the statuses it may be in as well as all its data.
|
|
7351
7351
|
In order to be able to remove a job, it cannot be active.
|
|
7352
7352
|
Input:
|
|
@@ -7688,7 +7688,7 @@ if not isLocked(prefix, jobId, shouldRemoveChildren) then
|
|
|
7688
7688
|
return 1
|
|
7689
7689
|
end
|
|
7690
7690
|
return 0
|
|
7691
|
-
`;$a.removeJob={name:"removeJob",content:
|
|
7691
|
+
`;$a.removeJob={name:"removeJob",content:WD,keys:2}});var Bg=h(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.removeJobScheduler=void 0;var UD=`--[[
|
|
7692
7692
|
Removes a job scheduler and its next scheduled job.
|
|
7693
7693
|
Input:
|
|
7694
7694
|
KEYS[1] job schedulers key
|
|
@@ -7727,7 +7727,7 @@ if(rcall("ZREM", KEYS[1], jobSchedulerId) == 1) then
|
|
|
7727
7727
|
return 0
|
|
7728
7728
|
end
|
|
7729
7729
|
return 1
|
|
7730
|
-
`;Ha.removeJobScheduler={name:"removeJobScheduler",content:
|
|
7730
|
+
`;Ha.removeJobScheduler={name:"removeJobScheduler",content:UD,keys:3}});var Wg=h(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.removeOrphanedJobs=void 0;var zD=`--[[
|
|
7731
7731
|
Removes orphaned job keys that exist in Redis but are not referenced
|
|
7732
7732
|
in any queue state set. Checks each candidate atomically.
|
|
7733
7733
|
Input:
|
|
@@ -7794,7 +7794,7 @@ for c = candidateStart, #ARGV do
|
|
|
7794
7794
|
end
|
|
7795
7795
|
end
|
|
7796
7796
|
return removedCount
|
|
7797
|
-
`;Qa.removeOrphanedJobs={name:"removeOrphanedJobs",content:
|
|
7797
|
+
`;Qa.removeOrphanedJobs={name:"removeOrphanedJobs",content:zD,keys:1}});var Ug=h(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.removeRepeatable=void 0;var $D=`--[[
|
|
7798
7798
|
Removes a repeatable job
|
|
7799
7799
|
Input:
|
|
7800
7800
|
KEYS[1] repeat jobs key
|
|
@@ -7847,7 +7847,7 @@ if(rcall("ZREM", KEYS[1], ARGV[3]) == 1) then
|
|
|
7847
7847
|
return 0
|
|
7848
7848
|
end
|
|
7849
7849
|
return 1
|
|
7850
|
-
`;Za.removeRepeatable={name:"removeRepeatable",content
|
|
7850
|
+
`;Za.removeRepeatable={name:"removeRepeatable",content:$D,keys:3}});var zg=h(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.removeUnprocessedChildren=void 0;var HD=`--[[
|
|
7851
7851
|
Remove a job from all the statuses it may be in as well as all its data.
|
|
7852
7852
|
In order to be able to remove a job, it cannot be active.
|
|
7853
7853
|
Input:
|
|
@@ -8179,7 +8179,7 @@ local options = {
|
|
|
8179
8179
|
ignoreLocked = true
|
|
8180
8180
|
}
|
|
8181
8181
|
removeJobChildren(prefix, jobKey, options)
|
|
8182
|
-
`;Xa.removeUnprocessedChildren={name:"removeUnprocessedChildren",content:
|
|
8182
|
+
`;Xa.removeUnprocessedChildren={name:"removeUnprocessedChildren",content:HD,keys:2}});var $g=h(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.reprocessJob=void 0;var QD=`--[[
|
|
8183
8183
|
Attempts to reprocess a job
|
|
8184
8184
|
Input:
|
|
8185
8185
|
KEYS[1] job key
|
|
@@ -8288,7 +8288,7 @@ if rcall("EXISTS", jobKey) == 1 then
|
|
|
8288
8288
|
else
|
|
8289
8289
|
return -1
|
|
8290
8290
|
end
|
|
8291
|
-
`;eo.reprocessJob={name:"reprocessJob",content:
|
|
8291
|
+
`;eo.reprocessJob={name:"reprocessJob",content:QD,keys:8}});var Hg=h(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.retryJob=void 0;var ZD=`--[[
|
|
8292
8292
|
Retries a failed job by moving it back to the wait queue.
|
|
8293
8293
|
Input:
|
|
8294
8294
|
KEYS[1] 'active',
|
|
@@ -8492,7 +8492,7 @@ if rcall("EXISTS", jobKey) == 1 then
|
|
|
8492
8492
|
else
|
|
8493
8493
|
return -1
|
|
8494
8494
|
end
|
|
8495
|
-
`;to.retryJob={name:"retryJob",content:
|
|
8495
|
+
`;to.retryJob={name:"retryJob",content:ZD,keys:11}});var Qg=h(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.saveStacktrace=void 0;var XD=`--[[
|
|
8496
8496
|
Save stacktrace and failedReason.
|
|
8497
8497
|
Input:
|
|
8498
8498
|
KEYS[1] job key
|
|
@@ -8509,7 +8509,7 @@ if rcall("EXISTS", KEYS[1]) == 1 then
|
|
|
8509
8509
|
else
|
|
8510
8510
|
return -1
|
|
8511
8511
|
end
|
|
8512
|
-
`;ro.saveStacktrace={name:"saveStacktrace",content:
|
|
8512
|
+
`;ro.saveStacktrace={name:"saveStacktrace",content:XD,keys:1}});var Zg=h(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.updateData=void 0;var eO=`--[[
|
|
8513
8513
|
Update job data
|
|
8514
8514
|
Input:
|
|
8515
8515
|
KEYS[1] Job id key
|
|
@@ -8525,7 +8525,7 @@ if rcall("EXISTS",KEYS[1]) == 1 then -- // Make sure job exists
|
|
|
8525
8525
|
else
|
|
8526
8526
|
return -1
|
|
8527
8527
|
end
|
|
8528
|
-
`;no.updateData={name:"updateData",content
|
|
8528
|
+
`;no.updateData={name:"updateData",content:eO,keys:1}});var Xg=h(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.updateJobScheduler=void 0;var tO=`--[[
|
|
8529
8529
|
Updates a job scheduler and adds next delayed job
|
|
8530
8530
|
Input:
|
|
8531
8531
|
KEYS[1] 'repeat' key
|
|
@@ -8847,7 +8847,7 @@ if prevMillis then
|
|
|
8847
8847
|
end
|
|
8848
8848
|
end
|
|
8849
8849
|
end
|
|
8850
|
-
`;io.updateJobScheduler={name:"updateJobScheduler",content:
|
|
8850
|
+
`;io.updateJobScheduler={name:"updateJobScheduler",content:tO,keys:12}});var e0=h(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.updateProgress=void 0;var rO=`--[[
|
|
8851
8851
|
Update job progress
|
|
8852
8852
|
Input:
|
|
8853
8853
|
KEYS[1] Job id key
|
|
@@ -8883,7 +8883,7 @@ if rcall("EXISTS", KEYS[1]) == 1 then -- // Make sure job exists
|
|
|
8883
8883
|
else
|
|
8884
8884
|
return -1
|
|
8885
8885
|
end
|
|
8886
|
-
`;so.updateProgress={name:"updateProgress",content:
|
|
8886
|
+
`;so.updateProgress={name:"updateProgress",content:rO,keys:3}});var t0=h(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.updateRepeatableJobMillis=void 0;var nO=`--[[
|
|
8887
8887
|
Adds a repeatable job
|
|
8888
8888
|
Input:
|
|
8889
8889
|
KEYS[1] 'repeat' key
|
|
@@ -8906,8 +8906,8 @@ elseif rcall("ZSCORE", repeatKey, legacyCustomKey) ~= false then
|
|
|
8906
8906
|
return legacyCustomKey
|
|
8907
8907
|
end
|
|
8908
8908
|
return ''
|
|
8909
|
-
`;ao.updateRepeatableJobMillis={name:"updateRepeatableJobMillis",content:
|
|
8910
|
-
Current: ${this.version}`)}this.capabilities={canDoubleTimeout:!(0,rt.isRedisVersionLowerThan)(this.version,"6.0.0",this.dbType),canBlockFor1Ms:!(0,rt.isRedisVersionLowerThan)(this.version,"7.0.8",this.dbType)},this.status="ready"}return this._client}patchBlockingClusterClient(){let e=this._client,t=e;if(!this.extraOptions.blocking||!(0,rt.isRedisCluster)(e)||typeof t.bzpopmin!="function"||(t[Nn]=(t[Nn]||0)+1,this.patchedBlockingClusterClient=t,t[Nd]))return;let n=t.bzpopmin,i=async(...s)=>{await r.reconnectClusterIfNeeded(t);try{return await n.apply(t,s)}catch(a){let o=a;if(r.shouldReconnectClusterAfterError(t,o))try{await r.reconnectCluster(t)}catch{}throw o}};t[lo]=n,t[qd]=i,t[Nd]=!0,t.bzpopmin=i}disableBlockingClusterReconnect(){let e=this.patchedBlockingClusterClient;!e||this.disabledBlockingClusterReconnect||(e[Xr]=(e[Xr]||0)+1,this.disabledBlockingClusterReconnect=!0)}releaseBlockingClusterClientPatch(){let e=this.patchedBlockingClusterClient;if(!e)return;if(this.disabledBlockingClusterReconnect){let n=(e[Xr]||1)-1;n>0?e[Xr]=n:delete e[Xr],this.disabledBlockingClusterReconnect=!1}let t=(e[Nn]||1)-1;if(t>0){e[Nn]=t,this.patchedBlockingClusterClient=void 0;return}e[lo]&&e.bzpopmin===e[qd]&&(e.bzpopmin=e[lo]),delete e[Nn],delete e[Xr],delete e[lo],delete e[qd],delete e[Nd],this.patchedBlockingClusterClient=void 0}static isClusterWithEmptyNodes(e){return typeof e.nodes=="function"&&e.nodes().length===0}static isReconnectingDisabled(e){let t=e[Nn]||0,n=e[Xr]||0;return t===0||n>=t||e.status==="end"||e.status==="closing"}static async reconnectClusterIfNeeded(e){!r.isReconnectingDisabled(e)&&r.isClusterWithEmptyNodes(e)&&await r.reconnectCluster(e)}static shouldReconnectClusterAfterError(e,t){var n,i;if(r.isReconnectingDisabled(e))return!1;let s=[t.message,(n=t.cause)===null||n===void 0?void 0:n.message,(i=t.lastNodeError)===null||i===void 0?void 0:i.message].join(" ");return r.isClusterWithEmptyNodes(e)||/Command timed out|Failed to refresh slots cache/i.test(s)}static async reconnectCluster(e){r.isReconnectingDisabled(e)||(e[oo]||(e[oo]=(async()=>{e.disconnect(!1),await e.connect()})().finally(()=>{e[oo]=null})),await e[oo])}async disconnect(e=!0){let t=await this.client;if(t.status!=="end"){let n,i;if(!e)return t.disconnect();let s=new Promise((a,o)=>{(0,rt.increaseMaxListeners)(t,2),t.once("end",a),t.once("error",o),n=a,i=o});t.disconnect();try{await s}finally{(0,rt.decreaseMaxListeners)(t,2),t.removeListener("end",n),t.removeListener("error",i)}}}async reconnect(){return(await this.client).connect()}async close(e=!1){if(!this.closing){let t=this.status;this.status="closing",this.closing=!0,this.disableBlockingClusterReconnect();try{t==="ready"&&await this.initializing,this.extraOptions.shared||(t=="initializing"||e?this._client.disconnect():await this._client.quit(),this._client.status="end")}catch(n){if((0,rt.isNotConnectionError)(n))throw n}finally{this.releaseBlockingClusterClientPatch(),this._client.off("error",this.handleClientError),this._client.off("close",this.handleClientClose),this._client.off("ready",this.handleClientReady),(0,rt.decreaseMaxListeners)(this._client,3),this.removeAllListeners(),this.status="closed"}}}async getRedisVersionAndType(){if(this.skipVersionCheck)return{version:r.minimumVersion,databaseType:"redis"};let e=await this._client.info(),t="redis_version:",n="maxmemory_policy:",i=e.split(/\r?\n/),s,a="redis";for(let o=0;o<i.length;o++){let l=i[o];if(l.includes("dragonfly_version:")||l.includes("server:Dragonfly")?(a="dragonfly",l.indexOf("dragonfly_version:")===0&&(s=l.substr(18))):l.includes("valkey_version:")||l.includes("server:Valkey")?(a="valkey",l.indexOf("valkey_version:")===0&&(s=l.substr(15))):l.indexOf(t)===0&&(s=l.substr(t.length),a==="redis"&&(a="redis")),l.indexOf(n)===0){let c=l.substr(n.length);c!=="noeviction"&&console.warn(`IMPORTANT! Eviction policy is ${c}. It should be "noeviction"`)}}if(!s){for(let o of i)if(o.includes("version:")){let l=o.split(":");if(l.length>=2){s=l[1];break}}}return{version:s||r.minimumVersion,databaseType:a}}get redisVersion(){return this.version}get databaseType(){return this.dbType}};co.RedisConnection=Ki;Ki.minimumVersion="5.0.0";Ki.recommendedMinimumVersion="6.2.0"});var i0=h(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.FlowProducer=void 0;var sO=V("events"),jr=ut(),aO=Pn(),uo=ca(),oO=Si(),Wt=at(),Jd=class extends sO.EventEmitter{constructor(e={connection:{}},t=oO.RedisConnection){super(),this.opts=e,this.opts=Object.assign({prefix:"bull"},e),this.connection=new t(e.connection,{shared:(0,jr.isRedisInstance)(e.connection),blocking:!1,skipVersionCheck:e.skipVersionCheck,skipWaitingForReady:e.skipWaitingForReady}),this.connection.on("error",n=>this.emit("error",n)),this.connection.on("close",()=>{this.closing||this.emit("ioredis:close")}),this.queueKeys=new uo.QueueKeys(e.prefix),e?.telemetry&&(this.telemetry=e.telemetry)}emit(e,...t){return super.emit(e,...t)}off(e,t){return super.off(e,t),this}on(e,t){return super.on(e,t),this}once(e,t){return super.once(e,t),this}get client(){return this.connection.client}get Job(){return aO.Job}waitUntilReady(){return this.client}async add(e,t){var n;if(this.closing)return;let s=(await this.connection.client).multi(),a=(n=e?.opts)===null||n===void 0?void 0:n.parent,o=(0,jr.getParentKey)(a),l=o?`${o}:dependencies`:void 0;return(0,jr.trace)(this.telemetry,Wt.SpanKind.PRODUCER,e.queueName,"addFlow",e.queueName,async c=>{c?.setAttributes({[Wt.TelemetryAttributes.FlowName]:e.name});let d=await this.addNode({multi:s,node:e,queuesOpts:t?.queuesOptions,parent:{parentOpts:a,parentDependenciesKey:l}}),u=await s.exec(),[f]=u||[];if(f){let[p,y]=f;if(p)throw p;if(typeof y=="number"&&y<0)throw this.toFlowError(y,o);typeof y=="string"&&(d.job.id=y)}return d})}async getFlow(e){if(this.closing)return;let t=await this.connection.client,n=Object.assign({depth:10,maxChildren:20,prefix:this.opts.prefix},e);return this.getNode(t,n)}async addBulk(e){if(this.closing)return;let n=(await this.connection.client).multi();return(0,jr.trace)(this.telemetry,Wt.SpanKind.PRODUCER,"","addBulkFlows","",async i=>{i?.setAttributes({[Wt.TelemetryAttributes.BulkCount]:e.length,[Wt.TelemetryAttributes.BulkNames]:e.map(o=>o.name).join(",")});let s=await this.addNodes(n,e),a=await n.exec();for(let o=0;o<s.length;++o){let l=a?.[o];if(!l)continue;let[c,d]=l;!c&&typeof d=="string"&&(s[o].job.id=d)}return s})}async addNode({multi:e,node:t,parent:n,queuesOpts:i}){var s,a;let o=t.prefix||this.opts.prefix,l=this.queueFromNode(t,new uo.QueueKeys(o),o),c=i&&i[t.queueName],d=(s=c?.defaultJobOptions)!==null&&s!==void 0?s:{},u=((a=t.opts)===null||a===void 0?void 0:a.jobId)||(0,jr.randomUUID)();return(0,jr.trace)(this.telemetry,Wt.SpanKind.PRODUCER,t.queueName,"addNode",t.queueName,async(f,p)=>{var y,g;f?.setAttributes({[Wt.TelemetryAttributes.JobName]:t.name,[Wt.TelemetryAttributes.JobId]:u});let E=t.opts,S=E?.telemetry;if(p&&E){let R=(y=E.telemetry)===null||y===void 0?void 0:y.omitContext,T=((g=E.telemetry)===null||g===void 0?void 0:g.metadata)||!R&&p;(T||R)&&(S={metadata:T,omitContext:R})}let x=new this.Job(l,t.name,t.data,Object.assign(Object.assign(Object.assign({},d),E),{parent:n?.parentOpts,telemetry:S}),u),C=(0,jr.getParentKey)(n?.parentOpts);if(t.children&&t.children.length>0){let R=u,T=new uo.QueueKeys(t.prefix||this.opts.prefix);await x.addJob(e,{parentDependenciesKey:n?.parentDependenciesKey,addToWaitingChildren:!0,parentKey:C});let k=`${T.toKey(t.queueName,R)}:dependencies`,N=await this.addChildren({multi:e,nodes:t.children,parent:{parentOpts:{id:R,queue:T.getQueueQualifiedName(t.queueName)},parentDependenciesKey:k},queuesOpts:i});return{job:x,children:N}}else return await x.addJob(e,{parentDependenciesKey:n?.parentDependenciesKey,parentKey:C}),{job:x}})}addNodes(e,t){return Promise.all(t.map(n=>{var i;let s=(i=n?.opts)===null||i===void 0?void 0:i.parent,a=(0,jr.getParentKey)(s),o=a?`${a}:dependencies`:void 0;return this.addNode({multi:e,node:n,parent:{parentOpts:s,parentDependenciesKey:o}})}))}async getNode(e,t){let n=this.queueFromNode(t,new uo.QueueKeys(t.prefix),t.prefix),i=await this.Job.fromId(n,t.id);if(i){let{processed:s={},unprocessed:a=[],failed:o=[],ignored:l={}}=await i.getDependencies({failed:{count:t.maxChildren},processed:{count:t.maxChildren},unprocessed:{count:t.maxChildren},ignored:{count:t.maxChildren}}),c=Object.keys(s),d=Object.keys(l),u=c.length+a.length+d.length+o.length,f=t.depth-1;if(u>0&&f){let p=await this.getChildren(e,[...c,...a,...o,...d],f,t.maxChildren);return{job:i,children:p}}else return{job:i}}}addChildren({multi:e,nodes:t,parent:n,queuesOpts:i}){return Promise.all(t.map(s=>this.addNode({multi:e,node:s,parent:n,queuesOpts:i})))}getChildren(e,t,n,i){let s=a=>{let[o,l,c]=a.split(":");return this.getNode(e,{id:c,queueName:l,prefix:o,depth:n,maxChildren:i})};return Promise.all([...t.map(s)])}queueFromNode(e,t,n){return{client:this.connection.client,name:e.queueName,keys:t.getKeys(e.queueName),toKey:i=>t.toKey(e.queueName,i),opts:{prefix:n,connection:{}},qualifiedName:t.getQueueQualifiedName(e.queueName),closing:this.closing,waitUntilReady:async()=>this.connection.client,removeListener:this.removeListener.bind(this),emit:this.emit.bind(this),on:this.on.bind(this),redisVersion:this.connection.redisVersion,databaseType:this.connection.databaseType,trace:async()=>{}}}toFlowError(e,t){let n;switch(e){case Wt.ErrorCode.ParentJobNotExist:n=new Error(`Missing key for parent job ${t}. addJob`);break;case Wt.ErrorCode.ParentJobCannotBeReplaced:n=new Error(`The parent job ${t} cannot be replaced. addJob`);break;default:n=new Error(`Unknown code ${e} error for addJob`)}return n.code=e,n}async close(){this.closing||(this.closing=this.connection.close()),await this.closing}disconnect(){return this.connection.disconnect()}};po.FlowProducer=Jd});var _v=h(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});var ar=class extends Error{},$d=class extends ar{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Hd=class extends ar{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Qd=class extends ar{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Dr=class extends ar{},Ko=class extends ar{constructor(e){super(`Invalid unit ${e}`)}},Fe=class extends ar{},Ut=class extends ar{constructor(){super("Zone is an abstract class")}},P="numeric",Mt="short",mt="long",So={year:P,month:P,day:P},M0={year:P,month:Mt,day:P},lO={year:P,month:Mt,day:P,weekday:Mt},P0={year:P,month:mt,day:P},N0={year:P,month:mt,day:P,weekday:mt},q0={hour:P,minute:P},J0={hour:P,minute:P,second:P},L0={hour:P,minute:P,second:P,timeZoneName:Mt},F0={hour:P,minute:P,second:P,timeZoneName:mt},V0={hour:P,minute:P,hourCycle:"h23"},G0={hour:P,minute:P,second:P,hourCycle:"h23"},Y0={hour:P,minute:P,second:P,hourCycle:"h23",timeZoneName:Mt},B0={hour:P,minute:P,second:P,hourCycle:"h23",timeZoneName:mt},W0={year:P,month:P,day:P,hour:P,minute:P},U0={year:P,month:P,day:P,hour:P,minute:P,second:P},z0={year:P,month:Mt,day:P,hour:P,minute:P},$0={year:P,month:Mt,day:P,hour:P,minute:P,second:P},cO={year:P,month:Mt,day:P,weekday:Mt,hour:P,minute:P},H0={year:P,month:mt,day:P,hour:P,minute:P,timeZoneName:Mt},Q0={year:P,month:mt,day:P,hour:P,minute:P,second:P,timeZoneName:Mt},Z0={year:P,month:mt,day:P,weekday:mt,hour:P,minute:P,timeZoneName:mt},X0={year:P,month:mt,day:P,weekday:mt,hour:P,minute:P,second:P,timeZoneName:mt},Rr=class{get type(){throw new Ut}get name(){throw new Ut}get ianaName(){return this.name}get isUniversal(){throw new Ut}offsetName(e,t){throw new Ut}formatOffset(e,t){throw new Ut}offset(e){throw new Ut}equals(e){throw new Ut}get isValid(){throw new Ut}},Ld=null,ji=class r extends Rr{static get instance(){return Ld===null&&(Ld=new r),Ld}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return dv(e,t,n)}formatOffset(e,t){return wi(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Zd=new Map;function dO(r){let e=Zd.get(r);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:r,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),Zd.set(r,e)),e}var uO={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function pO(r,e){let t=r.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(t),[,i,s,a,o,l,c,d]=n;return[a,i,s,o,l,c,d]}function fO(r,e){let t=r.formatToParts(e),n=[];for(let i=0;i<t.length;i++){let{type:s,value:a}=t[i],o=uO[s];s==="era"?n[o]=a:Q(o)||(n[o]=parseInt(a,10))}return n}var Fd=new Map,or=class r extends Rr{static create(e){let t=Fd.get(e);return t===void 0&&Fd.set(e,t=new r(e)),t}static resetCache(){Fd.clear(),Zd.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=r.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return dv(e,t,n,this.name)}formatOffset(e,t){return wi(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=dO(this.name),[i,s,a,o,l,c,d]=n.formatToParts?fO(n,t):pO(n,t);o==="BC"&&(i=-Math.abs(i)+1);let f=To({year:i,month:s,day:a,hour:l===24?0:l,minute:c,second:d,millisecond:0}),p=+t,y=p%1e3;return p-=y>=0?y:1e3+y,(f-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},s0={};function hO(r,e={}){let t=JSON.stringify([r,e]),n=s0[t];return n||(n=new Intl.ListFormat(r,e),s0[t]=n),n}var Xd=new Map;function eu(r,e={}){let t=JSON.stringify([r,e]),n=Xd.get(t);return n===void 0&&(n=new Intl.DateTimeFormat(r,e),Xd.set(t,n)),n}var tu=new Map;function yO(r,e={}){let t=JSON.stringify([r,e]),n=tu.get(t);return n===void 0&&(n=new Intl.NumberFormat(r,e),tu.set(t,n)),n}var ru=new Map;function mO(r,e={}){let{base:t,...n}=e,i=JSON.stringify([r,n]),s=ru.get(i);return s===void 0&&(s=new Intl.RelativeTimeFormat(r,e),ru.set(i,s)),s}var ki=null;function bO(){return ki||(ki=new Intl.DateTimeFormat().resolvedOptions().locale,ki)}var nu=new Map;function ev(r){let e=nu.get(r);return e===void 0&&(e=new Intl.DateTimeFormat(r).resolvedOptions(),nu.set(r,e)),e}var iu=new Map;function gO(r){let e=iu.get(r);if(!e){let t=new Intl.Locale(r);e="getWeekInfo"in t?t.getWeekInfo():t.weekInfo,"minimalDays"in e||(e={...tv,...e}),iu.set(r,e)}return e}function vO(r){let e=r.indexOf("-x-");e!==-1&&(r=r.substring(0,e));let t=r.indexOf("-u-");if(t===-1)return[r];{let n,i;try{n=eu(r).resolvedOptions(),i=r}catch{let l=r.substring(0,t);n=eu(l).resolvedOptions(),i=l}let{numberingSystem:s,calendar:a}=n;return[i,s,a]}}function KO(r,e,t){return(t||e)&&(r.includes("-u-")||(r+="-u"),t&&(r+=`-ca-${t}`),e&&(r+=`-nu-${e}`)),r}function SO(r){let e=[];for(let t=1;t<=12;t++){let n=xe.utc(2009,t,1);e.push(r(n))}return e}function EO(r){let e=[];for(let t=1;t<=7;t++){let n=xe.utc(2016,11,13+t);e.push(r(n))}return e}function fo(r,e,t,n){let i=r.listingMode();return i==="error"?null:i==="en"?t(e):n(e)}function kO(r){return r.numberingSystem&&r.numberingSystem!=="latn"?!1:r.numberingSystem==="latn"||!r.locale||r.locale.startsWith("en")||ev(r.locale).numberingSystem==="latn"}var su=class{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...a}=n;if(!t||Object.keys(a).length>0){let o={useGrouping:!1,...n};n.padTo>0&&(o.minimumIntegerDigits=n.padTo),this.inf=yO(e,o)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{let t=this.floor?Math.floor(e):mu(e,3);return Ce(t,this.padTo)}}},au=class{constructor(e,t,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),o=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&or.create(o).valid?(i=o,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=eu(t,s)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(t=>{if(t.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...t,value:n}}else return t}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},ou=class{constructor(e,t,n){this.opts={style:"long",...n},!t&&lv()&&(this.rtf=mO(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):YO(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},tv={firstDay:1,minimalDays:4,weekend:[6,7]},ge=class r{static fromOpts(e){return r.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,n,i,s=!1){let a=e||Ie.defaultLocale,o=a||(s?"en-US":bO()),l=t||Ie.defaultNumberingSystem,c=n||Ie.defaultOutputCalendar,d=cu(i)||Ie.defaultWeekSettings;return new r(o,l,c,d,a)}static resetCache(){ki=null,Xd.clear(),tu.clear(),ru.clear(),nu.clear(),iu.clear()}static fromObject({locale:e,numberingSystem:t,outputCalendar:n,weekSettings:i}={}){return r.create(e,t,n,i)}constructor(e,t,n,i,s){let[a,o,l]=vO(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||l||null,this.weekSettings=i,this.intl=KO(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=kO(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:r.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,cu(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return fo(this,e,fv,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");t&=!n;let i=t?{month:e,day:"numeric"}:{month:e},s=t?"format":"standalone";if(!this.monthsCache[s][e]){let a=n?o=>this.dtFormatter(o,i).format():o=>this.extract(o,i,"month");this.monthsCache[s][e]=SO(a)}return this.monthsCache[s][e]})}weekdays(e,t=!1){return fo(this,e,mv,()=>{let n=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=t?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=EO(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return fo(this,void 0,()=>bv,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[xe.utc(2016,11,13,9),xe.utc(2016,11,13,19)].map(t=>this.extract(t,e,"dayperiod"))}return this.meridiemCache})}eras(e){return fo(this,e,gv,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[xe.utc(-40,1,1),xe.utc(2017,1,1)].map(n=>this.extract(n,t,"era"))),this.eraCache[e]})}extract(e,t,n){let i=this.dtFormatter(e,t),s=i.formatToParts(),a=s.find(o=>o.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new su(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new au(e,this.intl,t)}relFormatter(e={}){return new ou(this.intl,this.isEnglish(),e)}listFormatter(e={}){return hO(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||ev(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:cv()?gO(this.locale):tv}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Vd=null,bt=class r extends Rr{static get utcInstance(){return Vd===null&&(Vd=new r(0)),Vd}static instance(e){return e===0?r.utcInstance:new r(e)}static parseSpecifier(e){if(e){let t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new r(Ao(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${wi(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${wi(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return wi(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Eo=class extends Rr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Ar(r,e){if(Q(r)||r===null)return e;if(r instanceof Rr)return r;if(AO(r)){let t=r.toLowerCase();return t==="default"?e:t==="local"||t==="system"?ji.instance:t==="utc"||t==="gmt"?bt.utcInstance:bt.parseSpecifier(t)||or.create(r)}else return Or(r)?bt.instance(r):typeof r=="object"&&"offset"in r&&typeof r.offset=="function"?r:new Eo(r)}var pu={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},a0={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},IO=pu.hanidec.replace(/[\[|\]]/g,"").split("");function xO(r){let e=parseInt(r,10);if(isNaN(e)){e="";for(let t=0;t<r.length;t++){let n=r.charCodeAt(t);if(r[t].search(pu.hanidec)!==-1)e+=IO.indexOf(r[t]);else for(let i in a0){let[s,a]=a0[i];n>=s&&n<=a&&(e+=n-s)}}return parseInt(e,10)}else return e}var lu=new Map;function wO(){lu.clear()}function Ct({numberingSystem:r},e=""){let t=r||"latn",n=lu.get(t);n===void 0&&(n=new Map,lu.set(t,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${pu[t]}${e}`),n.set(e,i)),i}var o0=()=>Date.now(),l0="system",c0=null,d0=null,u0=null,p0=60,f0,h0=null,Ie=class{static get now(){return o0}static set now(e){o0=e}static set defaultZone(e){l0=e}static get defaultZone(){return Ar(l0,ji.instance)}static get defaultLocale(){return c0}static set defaultLocale(e){c0=e}static get defaultNumberingSystem(){return d0}static set defaultNumberingSystem(e){d0=e}static get defaultOutputCalendar(){return u0}static set defaultOutputCalendar(e){u0=e}static get defaultWeekSettings(){return h0}static set defaultWeekSettings(e){h0=cu(e)}static get twoDigitCutoffYear(){return p0}static set twoDigitCutoffYear(e){p0=e%100}static get throwOnInvalid(){return f0}static set throwOnInvalid(e){f0=e}static resetCaches(){ge.resetCache(),or.resetCache(),xe.resetCache(),wO()}},yt=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},rv=[0,31,59,90,120,151,181,212,243,273,304,334],nv=[0,31,60,91,121,152,182,213,244,274,305,335];function jt(r,e){return new yt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${r}, which is invalid`)}function fu(r,e,t){let n=new Date(Date.UTC(r,e-1,t));r<100&&r>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}function iv(r,e,t){return t+(Ai(r)?nv:rv)[e-1]}function sv(r,e){let t=Ai(r)?nv:rv,n=t.findIndex(s=>s<e),i=e-t[n];return{month:n+1,day:i}}function hu(r,e){return(r-e+7)%7+1}function ko(r,e=4,t=1){let{year:n,month:i,day:s}=r,a=iv(n,i,s),o=hu(fu(n,i,s),t),l=Math.floor((a-o+14-e)/7),c;return l<1?(c=n-1,l=Ti(c,e,t)):l>Ti(n,e,t)?(c=n+1,l=1):c=n,{weekYear:c,weekNumber:l,weekday:o,...Do(r)}}function y0(r,e=4,t=1){let{weekYear:n,weekNumber:i,weekday:s}=r,a=hu(fu(n,1,e),t),o=Fn(n),l=i*7+s-a-7+e,c;l<1?(c=n-1,l+=Fn(c)):l>o?(c=n+1,l-=Fn(n)):c=n;let{month:d,day:u}=sv(c,l);return{year:c,month:d,day:u,...Do(r)}}function Gd(r){let{year:e,month:t,day:n}=r,i=iv(e,t,n);return{year:e,ordinal:i,...Do(r)}}function m0(r){let{year:e,ordinal:t}=r,{month:n,day:i}=sv(e,t);return{year:e,month:n,day:i,...Do(r)}}function b0(r,e){if(!Q(r.localWeekday)||!Q(r.localWeekNumber)||!Q(r.localWeekYear)){if(!Q(r.weekday)||!Q(r.weekNumber)||!Q(r.weekYear))throw new Dr("Cannot mix locale-based week fields with ISO-based week fields");return Q(r.localWeekday)||(r.weekday=r.localWeekday),Q(r.localWeekNumber)||(r.weekNumber=r.localWeekNumber),Q(r.localWeekYear)||(r.weekYear=r.localWeekYear),delete r.localWeekday,delete r.localWeekNumber,delete r.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function jO(r,e=4,t=1){let n=jo(r.weekYear),i=Tt(r.weekNumber,1,Ti(r.weekYear,e,t)),s=Tt(r.weekday,1,7);return n?i?s?!1:jt("weekday",r.weekday):jt("week",r.weekNumber):jt("weekYear",r.weekYear)}function TO(r){let e=jo(r.year),t=Tt(r.ordinal,1,Fn(r.year));return e?t?!1:jt("ordinal",r.ordinal):jt("year",r.year)}function av(r){let e=jo(r.year),t=Tt(r.month,1,12),n=Tt(r.day,1,Io(r.year,r.month));return e?t?n?!1:jt("day",r.day):jt("month",r.month):jt("year",r.year)}function ov(r){let{hour:e,minute:t,second:n,millisecond:i}=r,s=Tt(e,0,23)||e===24&&t===0&&n===0&&i===0,a=Tt(t,0,59),o=Tt(n,0,59),l=Tt(i,0,999);return s?a?o?l?!1:jt("millisecond",i):jt("second",n):jt("minute",t):jt("hour",e)}function Q(r){return typeof r>"u"}function Or(r){return typeof r=="number"}function jo(r){return typeof r=="number"&&r%1===0}function AO(r){return typeof r=="string"}function DO(r){return Object.prototype.toString.call(r)==="[object Date]"}function lv(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function cv(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function OO(r){return Array.isArray(r)?r:[r]}function g0(r,e,t){if(r.length!==0)return r.reduce((n,i)=>{let s=[e(i),i];return n&&t(n[0],s[0])===n[0]?n:s},null)[1]}function RO(r,e){return e.reduce((t,n)=>(t[n]=r[n],t),{})}function Gn(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function cu(r){if(r==null)return null;if(typeof r!="object")throw new Fe("Week settings must be an object");if(!Tt(r.firstDay,1,7)||!Tt(r.minimalDays,1,7)||!Array.isArray(r.weekend)||r.weekend.some(e=>!Tt(e,1,7)))throw new Fe("Invalid week settings");return{firstDay:r.firstDay,minimalDays:r.minimalDays,weekend:Array.from(r.weekend)}}function Tt(r,e,t){return jo(r)&&r>=e&&r<=t}function CO(r,e){return r-e*Math.floor(r/e)}function Ce(r,e=2){let t=r<0,n;return t?n="-"+(""+-r).padStart(e,"0"):n=(""+r).padStart(e,"0"),n}function Tr(r){if(!(Q(r)||r===null||r===""))return parseInt(r,10)}function en(r){if(!(Q(r)||r===null||r===""))return parseFloat(r)}function yu(r){if(!(Q(r)||r===null||r==="")){let e=parseFloat("0."+r)*1e3;return Math.floor(e)}}function mu(r,e,t="round"){let n=10**e;switch(t){case"expand":return r>0?Math.ceil(r*n)/n:Math.floor(r*n)/n;case"trunc":return Math.trunc(r*n)/n;case"round":return Math.round(r*n)/n;case"floor":return Math.floor(r*n)/n;case"ceil":return Math.ceil(r*n)/n;default:throw new RangeError(`Value rounding ${t} is out of range`)}}function Ai(r){return r%4===0&&(r%100!==0||r%400===0)}function Fn(r){return Ai(r)?366:365}function Io(r,e){let t=CO(e-1,12)+1,n=r+(e-t)/12;return t===2?Ai(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function To(r){let e=Date.UTC(r.year,r.month-1,r.day,r.hour,r.minute,r.second,r.millisecond);return r.year<100&&r.year>=0&&(e=new Date(e),e.setUTCFullYear(r.year,r.month-1,r.day)),+e}function v0(r,e,t){return-hu(fu(r,1,e),t)+e-1}function Ti(r,e=4,t=1){let n=v0(r,e,t),i=v0(r+1,e,t);return(Fn(r)-n+i)/7}function du(r){return r>99?r:r>Ie.twoDigitCutoffYear?1900+r:2e3+r}function dv(r,e,t,n=null){let i=new Date(r),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let a={timeZoneName:e,...s},o=new Intl.DateTimeFormat(t,a).formatToParts(i).find(l=>l.type.toLowerCase()==="timezonename");return o?o.value:null}function Ao(r,e){let t=parseInt(r,10);Number.isNaN(t)&&(t=0);let n=parseInt(e,10)||0,i=t<0||Object.is(t,-0)?-n:n;return t*60+i}function uv(r){let e=Number(r);if(typeof r=="boolean"||r===""||!Number.isFinite(e))throw new Fe(`Invalid unit value ${r}`);return e}function xo(r,e){let t={};for(let n in r)if(Gn(r,n)){let i=r[n];if(i==null)continue;t[e(n)]=uv(i)}return t}function wi(r,e){let t=Math.trunc(Math.abs(r/60)),n=Math.trunc(Math.abs(r%60)),i=r>=0?"+":"-";switch(e){case"short":return`${i}${Ce(t,2)}:${Ce(n,2)}`;case"narrow":return`${i}${t}${n>0?`:${n}`:""}`;case"techie":return`${i}${Ce(t,2)}${Ce(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Do(r){return RO(r,["hour","minute","second","millisecond"])}var _O=["January","February","March","April","May","June","July","August","September","October","November","December"],pv=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],MO=["J","F","M","A","M","J","J","A","S","O","N","D"];function fv(r){switch(r){case"narrow":return[...MO];case"short":return[...pv];case"long":return[..._O];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var hv=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],yv=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],PO=["M","T","W","T","F","S","S"];function mv(r){switch(r){case"narrow":return[...PO];case"short":return[...yv];case"long":return[...hv];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var bv=["AM","PM"],NO=["Before Christ","Anno Domini"],qO=["BC","AD"],JO=["B","A"];function gv(r){switch(r){case"narrow":return[...JO];case"short":return[...qO];case"long":return[...NO];default:return null}}function LO(r){return bv[r.hour<12?0:1]}function FO(r,e){return mv(e)[r.weekday-1]}function VO(r,e){return fv(e)[r.month-1]}function GO(r,e){return gv(e)[r.year<0?0:1]}function YO(r,e,t="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(r)===-1;if(t==="auto"&&s){let u=r==="days";switch(e){case 1:return u?"tomorrow":`next ${i[r][0]}`;case-1:return u?"yesterday":`last ${i[r][0]}`;case 0:return u?"today":`this ${i[r][0]}`}}let a=Object.is(e,-0)||e<0,o=Math.abs(e),l=o===1,c=i[r],d=n?l?c[1]:c[2]||c[1]:l?i[r][0]:r;return a?`${o} ${d} ago`:`in ${o} ${d}`}function K0(r,e){let t="";for(let n of r)n.literal?t+=n.val:t+=e(n.val);return t}var BO={D:So,DD:M0,DDD:P0,DDDD:N0,t:q0,tt:J0,ttt:L0,tttt:F0,T:V0,TT:G0,TTT:Y0,TTTT:B0,f:W0,ff:z0,fff:H0,ffff:Z0,F:U0,FF:$0,FFF:Q0,FFFF:X0},ht=class r{static create(e,t={}){return new r(e,t)}static parseFormat(e){let t=null,n="",i=!1,s=[];for(let a=0;a<e.length;a++){let o=e.charAt(a);o==="'"?((n.length>0||i)&&s.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),t=null,n="",i=!i):i||o===t?n+=o:(n.length>0&&s.push({literal:/^\s+$/.test(n),val:n}),n=o,t=o)}return n.length>0&&s.push({literal:i||/^\s+$/.test(n),val:n}),s}static macroTokenToFormatOpts(e){return BO[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0,n=void 0){if(this.opts.forceSimple)return Ce(e,t);let i={...this.opts};return t>0&&(i.padTo=t),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,t){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,y)=>this.loc.extract(e,p,y),a=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",o=()=>n?LO(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(p,y)=>n?VO(e,p):s(y?{month:p}:{month:p,day:"numeric"},"month"),c=(p,y)=>n?FO(e,p):s(y?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),d=p=>{let y=r.macroTokenToFormatOpts(p);return y?this.formatWithSystemDefault(e,y):p},u=p=>n?GO(e,p):s({era:p},"era"),f=p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return o();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return u("short");case"GG":return u("long");case"GGGGG":return u("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(p)}};return K0(r.parseFormat(t),f)}formatDurationFromString(e,t){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=d=>{switch(d[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},s=(d,u)=>f=>{let p=i(f);if(p){let y=u.isNegativeDuration&&p!==u.largestUnit?n:1,g;return this.opts.signMode==="negativeLargestOnly"&&p!==u.largestUnit?g="never":this.opts.signMode==="all"?g="always":g="auto",this.num(d.get(p)*y,f.length,g)}else return f},a=r.parseFormat(t),o=a.reduce((d,{literal:u,val:f})=>u?d:d.concat(f),[]),l=e.shiftTo(...o.map(i).filter(d=>d)),c={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return K0(a,s(l,c))}},vv=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Yn(...r){let e=r.reduce((t,n)=>t+n.source,"");return RegExp(`^${e}$`)}function Bn(...r){return e=>r.reduce(([t,n,i],s)=>{let[a,o,l]=s(e,i);return[{...t,...a},o||n,l]},[{},null,1]).slice(0,2)}function Wn(r,...e){if(r==null)return[null,null];for(let[t,n]of e){let i=t.exec(r);if(i)return n(i)}return[null,null]}function Kv(...r){return(e,t)=>{let n={},i;for(i=0;i<r.length;i++)n[r[i]]=Tr(e[t+i]);return[n,null,t+i]}}var Sv=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,WO=`(?:${Sv.source}?(?:\\[(${vv.source})\\])?)?`,bu=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Ev=RegExp(`${bu.source}${WO}`),gu=RegExp(`(?:[Tt]${Ev.source})?`),UO=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,zO=/(\d{4})-?W(\d\d)(?:-?(\d))?/,$O=/(\d{4})-?(\d{3})/,HO=Kv("weekYear","weekNumber","weekDay"),QO=Kv("year","ordinal"),ZO=/(\d{4})-(\d\d)-(\d\d)/,kv=RegExp(`${bu.source} ?(?:${Sv.source}|(${vv.source}))?`),XO=RegExp(`(?: ${kv.source})?`);function Vn(r,e,t){let n=r[e];return Q(n)?t:Tr(n)}function eR(r,e){return[{year:Vn(r,e),month:Vn(r,e+1,1),day:Vn(r,e+2,1)},null,e+3]}function Un(r,e){return[{hours:Vn(r,e,0),minutes:Vn(r,e+1,0),seconds:Vn(r,e+2,0),milliseconds:yu(r[e+3])},null,e+4]}function Di(r,e){let t=!r[e]&&!r[e+1],n=Ao(r[e+1],r[e+2]),i=t?null:bt.instance(n);return[{},i,e+3]}function Oi(r,e){let t=r[e]?or.create(r[e]):null;return[{},t,e+1]}var tR=RegExp(`^T?${bu.source}$`),rR=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function nR(r){let[e,t,n,i,s,a,o,l,c]=r,d=e[0]==="-",u=l&&l[0]==="-",f=(p,y=!1)=>p!==void 0&&(y||p&&d)?-p:p;return[{years:f(en(t)),months:f(en(n)),weeks:f(en(i)),days:f(en(s)),hours:f(en(a)),minutes:f(en(o)),seconds:f(en(l),l==="-0"),milliseconds:f(yu(c),u)}]}var iR={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function vu(r,e,t,n,i,s,a){let o={year:e.length===2?du(Tr(e)):Tr(e),month:pv.indexOf(t)+1,day:Tr(n),hour:Tr(i),minute:Tr(s)};return a&&(o.second=Tr(a)),r&&(o.weekday=r.length>3?hv.indexOf(r)+1:yv.indexOf(r)+1),o}var sR=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function aR(r){let[,e,t,n,i,s,a,o,l,c,d,u]=r,f=vu(e,i,n,t,s,a,o),p;return l?p=iR[l]:c?p=0:p=Ao(d,u),[f,new bt(p)]}function oR(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var lR=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,cR=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,dR=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function S0(r){let[,e,t,n,i,s,a,o]=r;return[vu(e,i,n,t,s,a,o),bt.utcInstance]}function uR(r){let[,e,t,n,i,s,a,o]=r;return[vu(e,o,t,n,i,s,a),bt.utcInstance]}var pR=Yn(UO,gu),fR=Yn(zO,gu),hR=Yn($O,gu),yR=Yn(Ev),Iv=Bn(eR,Un,Di,Oi),mR=Bn(HO,Un,Di,Oi),bR=Bn(QO,Un,Di,Oi),gR=Bn(Un,Di,Oi);function vR(r){return Wn(r,[pR,Iv],[fR,mR],[hR,bR],[yR,gR])}function KR(r){return Wn(oR(r),[sR,aR])}function SR(r){return Wn(r,[lR,S0],[cR,S0],[dR,uR])}function ER(r){return Wn(r,[rR,nR])}var kR=Bn(Un);function IR(r){return Wn(r,[tR,kR])}var xR=Yn(ZO,XO),wR=Yn(kv),jR=Bn(Un,Di,Oi);function TR(r){return Wn(r,[xR,Iv],[wR,jR])}var E0="Invalid Duration",xv={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},AR={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...xv},wt=146097/400,qn=146097/4800,DR={years:{quarters:4,months:12,weeks:wt/7,days:wt,hours:wt*24,minutes:wt*24*60,seconds:wt*24*60*60,milliseconds:wt*24*60*60*1e3},quarters:{months:3,weeks:wt/28,days:wt/4,hours:wt*24/4,minutes:wt*24*60/4,seconds:wt*24*60*60/4,milliseconds:wt*24*60*60*1e3/4},months:{weeks:qn/7,days:qn,hours:qn*24,minutes:qn*24*60,seconds:qn*24*60*60,milliseconds:qn*24*60*60*1e3},...xv},rn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],OR=rn.slice(0).reverse();function sr(r,e,t=!1){let n={values:t?e.values:{...r.values,...e.values||{}},loc:r.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||r.conversionAccuracy,matrix:e.matrix||r.matrix};return new Ne(n)}function wv(r,e){var t;let n=(t=e.milliseconds)!=null?t:0;for(let i of OR.slice(1))e[i]&&(n+=e[i]*r[i].milliseconds);return n}function k0(r,e){let t=wv(r,e)<0?-1:1;rn.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let s=e[n]*t,a=r[i][n],o=Math.floor(s/a);e[i]+=o*t,e[n]-=o*a*t}return i},null),rn.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let s=e[n]%1;e[n]-=s,e[i]+=s*r[n][i]}return i},null)}function I0(r){let e={};for(let[t,n]of Object.entries(r))n!==0&&(e[t]=n);return e}var Ne=class r{constructor(e){let t=e.conversionAccuracy==="longterm"||!1,n=t?DR:AR;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||ge.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,t){return r.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!="object")throw new Fe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new r({values:xo(e,r.normalizeUnit),loc:ge.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(Or(e))return r.fromMillis(e);if(r.isDuration(e))return e;if(typeof e=="object")return r.fromObject(e);throw new Fe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){let[n]=ER(e);return n?r.fromObject(n,t):r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){let[n]=IR(e);return n?r.fromObject(n,t):r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new Fe("need to specify a reason the Duration is invalid");let n=e instanceof yt?e:new yt(e,t);if(Ie.throwOnInvalid)throw new Qd(n);return new r({invalid:n})}static normalizeUnit(e){let t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!t)throw new Ko(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let n={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?ht.create(this.loc,n).formatDurationFromString(this,e):E0}toHuman(e={}){if(!this.isValid)return E0;let t=e.showZeros!==!1,n=rn.map(i=>{let s=this.values[i];return Q(s)||s===0&&!t?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(s)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=mu(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},xe.fromMillis(t,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?wv(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let t=r.fromDurationLike(e),n={};for(let i of rn)(Gn(t.values,i)||Gn(this.values,i))&&(n[i]=t.get(i)+this.get(i));return sr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let t=r.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let n of Object.keys(this.values))t[n]=uv(e(this.values[n],n));return sr(this,{values:t},!0)}get(e){return this[r.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let t={...this.values,...xo(e,r.normalizeUnit)};return sr(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:i,conversionAccuracy:n};return sr(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return k0(this.matrix,e),sr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=I0(this.normalize().shiftToAll().toObject());return sr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>r.normalizeUnit(a));let t={},n={},i=this.toObject(),s;for(let a of rn)if(e.indexOf(a)>=0){s=a;let o=0;for(let c in n)o+=this.matrix[c][a]*n[c],n[c]=0;Or(i[a])&&(o+=i[a]);let l=Math.trunc(o);t[a]=l,n[a]=(o*1e3-l*1e3)/1e3}else Or(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(t[s]+=a===s?n[a]:n[a]/this.matrix[s][a]);return k0(this.matrix,t),sr(this,{values:t},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return sr(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=I0(this.values);return sr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of rn)if(!t(this.values[n],e.values[n]))return!1;return!0}},Jn="Invalid Interval";function RR(r,e){return!r||!r.isValid?sn.invalid("missing or invalid start"):!e||!e.isValid?sn.invalid("missing or invalid end"):e<r?sn.invalid("end before start",`The end of an interval must be after its start, but you had start=${r.toISO()} and end=${e.toISO()}`):null}var sn=class r{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,t=null){if(!e)throw new Fe("need to specify a reason the Interval is invalid");let n=e instanceof yt?e:new yt(e,t);if(Ie.throwOnInvalid)throw new Hd(n);return new r({invalid:n})}static fromDateTimes(e,t){let n=Ei(e),i=Ei(t),s=RR(n,i);return s??new r({start:n,end:i})}static after(e,t){let n=Ne.fromDurationLike(t),i=Ei(e);return r.fromDateTimes(i,i.plus(n))}static before(e,t){let n=Ne.fromDurationLike(t),i=Ei(e);return r.fromDateTimes(i.minus(n),i)}static fromISO(e,t){let[n,i]=(e||"").split("/",2);if(n&&i){let s,a;try{s=xe.fromISO(n,t),a=s.isValid}catch{a=!1}let o,l;try{o=xe.fromISO(i,t),l=o.isValid}catch{l=!1}if(a&&l)return r.fromDateTimes(s,o);if(a){let c=Ne.fromISO(i,t);if(c.isValid)return r.after(s,c)}else if(l){let c=Ne.fromISO(n,t);if(c.isValid)return r.before(o,c)}}return r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",t){if(!this.isValid)return NaN;let n=this.start.startOf(e,t),i;return t!=null&&t.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,t),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:t}={}){return this.isValid?r.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];let t=e.map(Ei).filter(a=>this.contains(a)).sort((a,o)=>a.toMillis()-o.toMillis()),n=[],{s:i}=this,s=0;for(;i<this.e;){let a=t[s]||this.e,o=+a>+this.e?this.e:a;n.push(r.fromDateTimes(i,o)),i=o,s+=1}return n}splitBy(e){let t=Ne.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,a=[];for(;n<this.e;){let o=this.start.plus(t.mapUnits(l=>l*i));s=+o>+this.e?this.e:o,a.push(r.fromDateTimes(n,s)),n=s,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let t=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return t>=n?null:r.fromDateTimes(t,n)}union(e){if(!this.isValid)return this;let t=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return r.fromDateTimes(t,n)}static merge(e){let[t,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],a)=>s?s.overlaps(a)||s.abutsStart(a)?[i,s.union(a)]:[i.concat([s]),a]:[i,a],[[],null]);return n&&t.push(n),t}static xor(e){let t=null,n=0,i=[],s=e.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...s),o=a.sort((l,c)=>l.time-c.time);for(let l of o)n+=l.type==="s"?1:-1,n===1?t=l.time:(t&&+t!=+l.time&&i.push(r.fromDateTimes(t,l.time)),t=null);return r.merge(i)}difference(...e){return r.xor([this].concat(e)).map(t=>this.intersection(t)).filter(t=>t&&!t.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Jn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=So,t={}){return this.isValid?ht.create(this.s.loc.clone(t),e).formatInterval(this):Jn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Jn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Jn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Jn}toFormat(e,{separator:t=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Jn}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Ne.invalid(this.invalidReason)}mapEndpoints(e){return r.fromDateTimes(e(this.s),e(this.e))}},nn=class{static hasDST(e=Ie.defaultZone){let t=xe.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return or.isValidZone(e)}static normalizeZone(e){return Ar(e,Ie.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||ge.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||ge.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||ge.create(e)).getWeekendDays().slice()}static months(e="long",{locale:t=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||ge.create(t,n,s)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||ge.create(t,n,s)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ge.create(t,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ge.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ge.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return ge.create(t,null,"gregory").eras(e)}static features(){return{relative:lv(),localeWeek:cv()}}};function x0(r,e){let t=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=t(e)-t(r);return Math.floor(Ne.fromMillis(n).as("days"))}function CR(r,e,t){let n=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{let d=x0(l,c);return(d-d%7)/7}],["days",x0]],i={},s=r,a,o;for(let[l,c]of n)t.indexOf(l)>=0&&(a=l,i[l]=c(r,e),o=s.plus(i),o>e?(i[l]--,r=s.plus(i),r>e&&(o=r,i[l]--,r=s.plus(i))):r=o);return[r,i,o,a]}function _R(r,e,t,n){let[i,s,a,o]=CR(r,e,t),l=e-i,c=t.filter(u=>["hours","minutes","seconds","milliseconds"].indexOf(u)>=0);c.length===0&&(a<e&&(a=i.plus({[o]:1})),a!==i&&(s[o]=(s[o]||0)+l/(a-i)));let d=Ne.fromObject(s,n);return c.length>0?Ne.fromMillis(l,n).shiftTo(...c).plus(d):d}var MR="missing Intl.DateTimeFormat.formatToParts support";function fe(r,e=t=>t){return{regex:r,deser:([t])=>e(xO(t))}}var PR="\xA0",jv=`[ ${PR}]`,Tv=new RegExp(jv,"g");function NR(r){return r.replace(/\./g,"\\.?").replace(Tv,jv)}function w0(r){return r.replace(/\./g,"").replace(Tv," ").toLowerCase()}function _t(r,e){return r===null?null:{regex:RegExp(r.map(NR).join("|")),deser:([t])=>r.findIndex(n=>w0(t)===w0(n))+e}}function j0(r,e){return{regex:r,deser:([,t,n])=>Ao(t,n),groups:e}}function ho(r){return{regex:r,deser:([e])=>e}}function qR(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function JR(r,e){let t=Ct(e),n=Ct(e,"{2}"),i=Ct(e,"{3}"),s=Ct(e,"{4}"),a=Ct(e,"{6}"),o=Ct(e,"{1,2}"),l=Ct(e,"{1,3}"),c=Ct(e,"{1,6}"),d=Ct(e,"{1,9}"),u=Ct(e,"{2,4}"),f=Ct(e,"{4,6}"),p=E=>({regex:RegExp(qR(E.val)),deser:([S])=>S,literal:!0}),g=(E=>{if(r.literal)return p(E);switch(E.val){case"G":return _t(e.eras("short"),0);case"GG":return _t(e.eras("long"),0);case"y":return fe(c);case"yy":return fe(u,du);case"yyyy":return fe(s);case"yyyyy":return fe(f);case"yyyyyy":return fe(a);case"M":return fe(o);case"MM":return fe(n);case"MMM":return _t(e.months("short",!0),1);case"MMMM":return _t(e.months("long",!0),1);case"L":return fe(o);case"LL":return fe(n);case"LLL":return _t(e.months("short",!1),1);case"LLLL":return _t(e.months("long",!1),1);case"d":return fe(o);case"dd":return fe(n);case"o":return fe(l);case"ooo":return fe(i);case"HH":return fe(n);case"H":return fe(o);case"hh":return fe(n);case"h":return fe(o);case"mm":return fe(n);case"m":return fe(o);case"q":return fe(o);case"qq":return fe(n);case"s":return fe(o);case"ss":return fe(n);case"S":return fe(l);case"SSS":return fe(i);case"u":return ho(d);case"uu":return ho(o);case"uuu":return fe(t);case"a":return _t(e.meridiems(),0);case"kkkk":return fe(s);case"kk":return fe(u,du);case"W":return fe(o);case"WW":return fe(n);case"E":case"c":return fe(t);case"EEE":return _t(e.weekdays("short",!1),1);case"EEEE":return _t(e.weekdays("long",!1),1);case"ccc":return _t(e.weekdays("short",!0),1);case"cccc":return _t(e.weekdays("long",!0),1);case"Z":case"ZZ":return j0(new RegExp(`([+-]${o.source})(?::(${n.source}))?`),2);case"ZZZ":return j0(new RegExp(`([+-]${o.source})(${n.source})?`),2);case"z":return ho(/[a-z_+-/]{1,256}?/i);case" ":return ho(/[^\S\n\r]/);default:return p(E)}})(r)||{invalidReason:MR};return g.token=r,g}var LR={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function FR(r,e,t){let{type:n,value:i}=r;if(n==="literal"){let l=/^\s+$/.test(i);return{literal:!l,val:l?" ":i}}let s=e[n],a=n;n==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=t.hour12?"hour12":"hour24");let o=LR[a];if(typeof o=="object"&&(o=o[s]),o)return{literal:!1,val:o}}function VR(r){return[`^${r.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,r]}function GR(r,e,t){let n=r.match(e);if(n){let i={},s=1;for(let a in t)if(Gn(t,a)){let o=t[a],l=o.groups?o.groups+1:1;!o.literal&&o.token&&(i[o.token.val[0]]=o.deser(n.slice(s,s+l))),s+=l}return[n,i]}else return[n,{}]}function YR(r){let e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},t=null,n;return Q(r.z)||(t=or.create(r.z)),Q(r.Z)||(t||(t=new bt(r.Z)),n=r.Z),Q(r.q)||(r.M=(r.q-1)*3+1),Q(r.h)||(r.h<12&&r.a===1?r.h+=12:r.h===12&&r.a===0&&(r.h=0)),r.G===0&&r.y&&(r.y=-r.y),Q(r.u)||(r.S=yu(r.u)),[Object.keys(r).reduce((s,a)=>{let o=e(a);return o&&(s[o]=r[a]),s},{}),t,n]}var Yd=null;function BR(){return Yd||(Yd=xe.fromMillis(1555555555555)),Yd}function WR(r,e){if(r.literal)return r;let t=ht.macroTokenToFormatOpts(r.val),n=Ov(t,e);return n==null||n.includes(void 0)?r:n}function Av(r,e){return Array.prototype.concat(...r.map(t=>WR(t,e)))}var wo=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Av(ht.parseFormat(t),e),this.units=this.tokens.map(n=>JR(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=VR(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[t,n]=GR(e,this.regex,this.handlers),[i,s,a]=n?YR(n):[null,null,void 0];if(Gn(n,"a")&&Gn(n,"H"))throw new Dr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:i,zone:s,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function Dv(r,e,t){return new wo(r,t).explainFromTokens(e)}function UR(r,e,t){let{result:n,zone:i,specificOffset:s,invalidReason:a}=Dv(r,e,t);return[n,i,s,a]}function Ov(r,e){if(!r)return null;let n=ht.create(e,r).dtFormatter(BR()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(a=>FR(a,r,s))}var Bd="Invalid DateTime",T0=864e13;function Ii(r){return new yt("unsupported zone",`the zone "${r.name}" is not supported`)}function Wd(r){return r.weekData===null&&(r.weekData=ko(r.c)),r.weekData}function Ud(r){return r.localWeekData===null&&(r.localWeekData=ko(r.c,r.loc.getMinDaysInFirstWeek(),r.loc.getStartOfWeek())),r.localWeekData}function tn(r,e){let t={ts:r.ts,zone:r.zone,c:r.c,o:r.o,loc:r.loc,invalid:r.invalid};return new xe({...t,...e,old:t})}function Rv(r,e,t){let n=r-e*60*1e3,i=t.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let s=t.offset(n);return i===s?[n,i]:[r-Math.min(i,s)*60*1e3,Math.max(i,s)]}function yo(r,e){r+=e*60*1e3;let t=new Date(r);return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),millisecond:t.getUTCMilliseconds()}}function bo(r,e,t){return Rv(To(r),e,t)}function A0(r,e){let t=r.o,n=r.c.year+Math.trunc(e.years),i=r.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...r.c,year:n,month:i,day:Math.min(r.c.day,Io(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=Ne.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),o=To(s),[l,c]=Rv(o,t,r.zone);return a!==0&&(l+=a,c=r.zone.offset(l)),{ts:l,o:c}}function Ln(r,e,t,n,i,s){let{setZone:a,zone:o}=t;if(r&&Object.keys(r).length!==0||e){let l=e||o,c=xe.fromObject(r,{...t,zone:l,specificOffset:s});return a?c:c.setZone(o)}else return xe.invalid(new yt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function mo(r,e,t=!0){return r.isValid?ht.create(ge.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(r,e):null}function zd(r,e,t){let n=r.c.year>9999||r.c.year<0,i="";if(n&&r.c.year>=0&&(i+="+"),i+=Ce(r.c.year,n?6:4),t==="year")return i;if(e){if(i+="-",i+=Ce(r.c.month),t==="month")return i;i+="-"}else if(i+=Ce(r.c.month),t==="month")return i;return i+=Ce(r.c.day),i}function D0(r,e,t,n,i,s,a){let o=!t||r.c.millisecond!==0||r.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=Ce(r.c.hour),a==="hour")break;if(e){if(l+=":",l+=Ce(r.c.minute),a==="minute")break;o&&(l+=":",l+=Ce(r.c.second))}else{if(l+=Ce(r.c.minute),a==="minute")break;o&&(l+=Ce(r.c.second))}if(a==="second")break;o&&(!n||r.c.millisecond!==0)&&(l+=".",l+=Ce(r.c.millisecond,3))}return i&&(r.isOffsetFixed&&r.offset===0&&!s?l+="Z":r.o<0?(l+="-",l+=Ce(Math.trunc(-r.o/60)),l+=":",l+=Ce(Math.trunc(-r.o%60))):(l+="+",l+=Ce(Math.trunc(r.o/60)),l+=":",l+=Ce(Math.trunc(r.o%60)))),s&&(l+="["+r.zone.ianaName+"]"),l}var Cv={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},zR={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},$R={ordinal:1,hour:0,minute:0,second:0,millisecond:0},go=["year","month","day","hour","minute","second","millisecond"],HR=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],QR=["year","ordinal","hour","minute","second","millisecond"];function vo(r){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[r.toLowerCase()];if(!e)throw new Ko(r);return e}function O0(r){switch(r.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return vo(r)}}function ZR(r){if(xi===void 0&&(xi=Ie.now()),r.type!=="iana")return r.offset(xi);let e=r.name,t=uu.get(e);return t===void 0&&(t=r.offset(xi),uu.set(e,t)),t}function R0(r,e){let t=Ar(e.zone,Ie.defaultZone);if(!t.isValid)return xe.invalid(Ii(t));let n=ge.fromObject(e),i,s;if(Q(r.year))i=Ie.now();else{for(let l of go)Q(r[l])&&(r[l]=Cv[l]);let a=av(r)||ov(r);if(a)return xe.invalid(a);let o=ZR(t);[i,s]=bo(r,o,t)}return new xe({ts:i,zone:t,loc:n,o:s})}function C0(r,e,t){let n=Q(t.round)?!0:t.round,i=Q(t.rounding)?"trunc":t.rounding,s=(o,l)=>(o=mu(o,n||t.calendary?0:2,t.calendary?"round":i),e.loc.clone(t).relFormatter(t).format(o,l)),a=o=>t.calendary?e.hasSame(r,o)?0:e.startOf(o).diff(r.startOf(o),o).get(o):e.diff(r,o).get(o);if(t.unit)return s(a(t.unit),t.unit);for(let o of t.units){let l=a(o);if(Math.abs(l)>=1)return s(l,o)}return s(r>e?-0:0,t.units[t.units.length-1])}function _0(r){let e={},t;return r.length>0&&typeof r[r.length-1]=="object"?(e=r[r.length-1],t=Array.from(r).slice(0,r.length-1)):t=Array.from(r),[e,t]}var xi,uu=new Map,xe=class r{constructor(e){let t=e.zone||Ie.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new yt("invalid input"):null)||(t.isValid?null:Ii(t));this.ts=Q(e.ts)?Ie.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[i,s]=[e.old.c,e.old.o];else{let o=Or(e.o)&&!e.old?e.o:t.offset(this.ts);i=yo(this.ts,o),n=Number.isNaN(i.year)?new yt("invalid input"):null,i=n?null:i,s=n?null:o}this._zone=t,this.loc=e.loc||ge.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new r({})}static local(){let[e,t]=_0(arguments),[n,i,s,a,o,l,c]=t;return R0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static utc(){let[e,t]=_0(arguments),[n,i,s,a,o,l,c]=t;return e.zone=bt.utcInstance,R0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static fromJSDate(e,t={}){let n=DO(e)?e.valueOf():NaN;if(Number.isNaN(n))return r.invalid("invalid input");let i=Ar(t.zone,Ie.defaultZone);return i.isValid?new r({ts:n,zone:i,loc:ge.fromObject(t)}):r.invalid(Ii(i))}static fromMillis(e,t={}){if(Or(e))return e<-T0||e>T0?r.invalid("Timestamp out of range"):new r({ts:e,zone:Ar(t.zone,Ie.defaultZone),loc:ge.fromObject(t)});throw new Fe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(Or(e))return new r({ts:e*1e3,zone:Ar(t.zone,Ie.defaultZone),loc:ge.fromObject(t)});throw new Fe("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};let n=Ar(t.zone,Ie.defaultZone);if(!n.isValid)return r.invalid(Ii(n));let i=ge.fromObject(t),s=xo(e,O0),{minDaysInFirstWeek:a,startOfWeek:o}=b0(s,i),l=Ie.now(),c=Q(t.specificOffset)?n.offset(l):t.specificOffset,d=!Q(s.ordinal),u=!Q(s.year),f=!Q(s.month)||!Q(s.day),p=u||f,y=s.weekYear||s.weekNumber;if((p||d)&&y)throw new Dr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(f&&d)throw new Dr("Can't mix ordinal dates with month/day");let g=y||s.weekday&&!p,E,S,x=yo(l,c);g?(E=HR,S=zR,x=ko(x,a,o)):d?(E=QR,S=$R,x=Gd(x)):(E=go,S=Cv);let C=!1;for(let I of E){let B=s[I];Q(B)?C?s[I]=S[I]:s[I]=x[I]:C=!0}let R=g?jO(s,a,o):d?TO(s):av(s),T=R||ov(s);if(T)return r.invalid(T);let k=g?y0(s,a,o):d?m0(s):s,[N,F]=bo(k,c,n),O=new r({ts:N,zone:n,o:F,loc:i});return s.weekday&&p&&e.weekday!==O.weekday?r.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${O.toISO()}`):O.isValid?O:r.invalid(O.invalid)}static fromISO(e,t={}){let[n,i]=vR(e);return Ln(n,i,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[n,i]=KR(e);return Ln(n,i,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[n,i]=SR(e);return Ln(n,i,t,"HTTP",t)}static fromFormat(e,t,n={}){if(Q(e)||Q(t))throw new Fe("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,a=ge.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[o,l,c,d]=UR(a,e,t);return d?r.invalid(d):Ln(o,l,n,`format ${t}`,e,c)}static fromString(e,t,n={}){return r.fromFormat(e,t,n)}static fromSQL(e,t={}){let[n,i]=TR(e);return Ln(n,i,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new Fe("need to specify a reason the DateTime is invalid");let n=e instanceof yt?e:new yt(e,t);if(Ie.throwOnInvalid)throw new $d(n);return new r({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=Ov(e,ge.fromObject(t));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,t={}){return Av(ht.parseFormat(e),ge.fromObject(t)).map(i=>i.val).join("")}static resetCache(){xi=void 0,uu.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Wd(this).weekYear:NaN}get weekNumber(){return this.isValid?Wd(this).weekNumber:NaN}get weekday(){return this.isValid?Wd(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Ud(this).weekday:NaN}get localWeekNumber(){return this.isValid?Ud(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Ud(this).weekYear:NaN}get ordinal(){return this.isValid?Gd(this.c).ordinal:NaN}get monthShort(){return this.isValid?nn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?nn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?nn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?nn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,n=To(this.c),i=this.zone.offset(n-e),s=this.zone.offset(n+e),a=this.zone.offset(n-i*t),o=this.zone.offset(n-s*t);if(a===o)return[this];let l=n-a*t,c=n-o*t,d=yo(l,a),u=yo(c,o);return d.hour===u.hour&&d.minute===u.minute&&d.second===u.second&&d.millisecond===u.millisecond?[tn(this,{ts:l}),tn(this,{ts:c})]:[this]}get isInLeapYear(){return Ai(this.year)}get daysInMonth(){return Io(this.year,this.month)}get daysInYear(){return this.isValid?Fn(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ti(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Ti(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:i}=ht.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:i}}toUTC(e=0,t={}){return this.setZone(bt.instance(e),t)}toLocal(){return this.setZone(Ie.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:n=!1}={}){if(e=Ar(e,Ie.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(t||n){let s=e.offset(this.ts),a=this.toObject();[i]=bo(a,s,e)}return tn(this,{ts:i,zone:e})}else return r.invalid(Ii(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return tn(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=xo(e,O0),{minDaysInFirstWeek:n,startOfWeek:i}=b0(t,this.loc),s=!Q(t.weekYear)||!Q(t.weekNumber)||!Q(t.weekday),a=!Q(t.ordinal),o=!Q(t.year),l=!Q(t.month)||!Q(t.day),c=o||l,d=t.weekYear||t.weekNumber;if((c||a)&&d)throw new Dr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new Dr("Can't mix ordinal dates with month/day");let u;s?u=y0({...ko(this.c,n,i),...t},n,i):Q(t.ordinal)?(u={...this.toObject(),...t},Q(t.day)&&(u.day=Math.min(Io(u.year,u.month),u.day))):u=m0({...Gd(this.c),...t});let[f,p]=bo(u,this.o,this.zone);return tn(this,{ts:f,o:p})}plus(e){if(!this.isValid)return this;let t=Ne.fromDurationLike(e);return tn(this,A0(this,t))}minus(e){if(!this.isValid)return this;let t=Ne.fromDurationLike(e).negate();return tn(this,A0(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},i=Ne.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(t){let s=this.loc.getStartOfWeek(),{weekday:a}=this;a<s&&(n.weekNumber=this.weekNumber-1),n.weekday=s}else n.weekday=1;if(i==="quarters"){let s=Math.ceil(this.month/3);n.month=(s-1)*3+1}return this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?ht.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Bd}toLocaleString(e=So,t={}){return this.isValid?ht.create(this.loc.clone(t),e).formatDateTime(this):Bd}toLocaleParts(e={}){return this.isValid?ht.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=vo(a);let o=e==="extended",l=zd(this,o,a);return go.indexOf(a)>=3&&(l+="T"),l+=D0(this,o,t,n,i,s,a),l}toISODate({format:e="extended",precision:t="day"}={}){return this.isValid?zd(this,e==="extended",vo(t)):null}toISOWeekDate(){return mo(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:a="extended",precision:o="milliseconds"}={}){return this.isValid?(o=vo(o),(i&&go.indexOf(o)>=3?"T":"")+D0(this,a==="extended",t,e,n,s,o)):null}toRFC2822(){return mo(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return mo(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?zd(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(t||e)&&(n&&(i+=" "),t?i+="z":e&&(i+="ZZ")),mo(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Bd}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",n={}){if(!this.isValid||!e.isValid)return Ne.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=OO(t).map(Ne.normalizeUnit),a=e.valueOf()>this.valueOf(),o=a?this:e,l=a?e:this,c=_R(o,l,s,i);return a?c.negate():c}diffNow(e="milliseconds",t={}){return this.diff(r.now(),e,t)}until(e){return this.isValid?sn.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;let i=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(t,n)<=i&&i<=s.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let t=e.base||r.fromObject({},{zone:this.zone}),n=e.padding?this<t?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),C0(t,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?C0(e.base||r.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(r.isDateTime))throw new Fe("min requires all arguments be DateTimes");return g0(e,t=>t.valueOf(),Math.min)}static max(...e){if(!e.every(r.isDateTime))throw new Fe("max requires all arguments be DateTimes");return g0(e,t=>t.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:i=null,numberingSystem:s=null}=n,a=ge.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return Dv(a,e,t)}static fromStringExplain(e,t,n={}){return r.fromFormatExplain(e,t,n)}static buildFormatParser(e,t={}){let{locale:n=null,numberingSystem:i=null}=t,s=ge.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new wo(s,e)}static fromFormatParser(e,t,n={}){if(Q(e)||Q(t))throw new Fe("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:s=null}=n,a=ge.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});if(!a.equals(t.locale))throw new Fe(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${t.locale}`);let{result:o,zone:l,specificOffset:c,invalidReason:d}=t.explainFromTokens(e);return d?r.invalid(d):Ln(o,l,n,`format ${t.format}`,e,c)}static get DATE_SHORT(){return So}static get DATE_MED(){return M0}static get DATE_MED_WITH_WEEKDAY(){return lO}static get DATE_FULL(){return P0}static get DATE_HUGE(){return N0}static get TIME_SIMPLE(){return q0}static get TIME_WITH_SECONDS(){return J0}static get TIME_WITH_SHORT_OFFSET(){return L0}static get TIME_WITH_LONG_OFFSET(){return F0}static get TIME_24_SIMPLE(){return V0}static get TIME_24_WITH_SECONDS(){return G0}static get TIME_24_WITH_SHORT_OFFSET(){return Y0}static get TIME_24_WITH_LONG_OFFSET(){return B0}static get DATETIME_SHORT(){return W0}static get DATETIME_SHORT_WITH_SECONDS(){return U0}static get DATETIME_MED(){return z0}static get DATETIME_MED_WITH_SECONDS(){return $0}static get DATETIME_MED_WITH_WEEKDAY(){return cO}static get DATETIME_FULL(){return H0}static get DATETIME_FULL_WITH_SECONDS(){return Q0}static get DATETIME_HUGE(){return Z0}static get DATETIME_HUGE_WITH_SECONDS(){return X0}};function Ei(r){if(xe.isDateTime(r))return r;if(r&&r.valueOf&&Or(r.valueOf()))return xe.fromJSDate(r);if(r&&typeof r=="object")return xe.fromObject(r);throw new Fe(`Unknown datetime argument: ${r}, of type ${typeof r}`)}var XR="3.7.2";gt.DateTime=xe;gt.Duration=Ne;gt.FixedOffsetZone=bt;gt.IANAZone=or;gt.Info=nn;gt.Interval=sn;gt.InvalidZone=Eo;gt.Settings=Ie;gt.SystemZone=ji;gt.VERSION=XR;gt.Zone=Rr});var Pv=h((LN,Mv)=>{"use strict";var an=_v();X.prototype.addYear=function(){this._date=this._date.plus({years:1})};X.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};X.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};X.prototype.addHour=function(){var r=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=r&&(this._date=this._date.plus({hours:1}))};X.prototype.addMinute=function(){var r=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<r&&(this._date=this._date.plus({hours:1}))};X.prototype.addSecond=function(){var r=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<r&&(this._date=this._date.plus({hours:1}))};X.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};X.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};X.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};X.prototype.subtractHour=function(){var r=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=r&&(this._date=this._date.minus({hours:1}))};X.prototype.subtractMinute=function(){var r=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>r&&(this._date=this._date.minus({hours:1}))};X.prototype.subtractSecond=function(){var r=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>r&&(this._date=this._date.minus({hours:1}))};X.prototype.getDate=function(){return this._date.day};X.prototype.getFullYear=function(){return this._date.year};X.prototype.getDay=function(){var r=this._date.weekday;return r==7?0:r};X.prototype.getMonth=function(){return this._date.month-1};X.prototype.getHours=function(){return this._date.hour};X.prototype.getMinutes=function(){return this._date.minute};X.prototype.getSeconds=function(){return this._date.second};X.prototype.getMilliseconds=function(){return this._date.millisecond};X.prototype.getTime=function(){return this._date.valueOf()};X.prototype.getUTCDate=function(){return this._getUTC().day};X.prototype.getUTCFullYear=function(){return this._getUTC().year};X.prototype.getUTCDay=function(){var r=this._getUTC().weekday;return r==7?0:r};X.prototype.getUTCMonth=function(){return this._getUTC().month-1};X.prototype.getUTCHours=function(){return this._getUTC().hour};X.prototype.getUTCMinutes=function(){return this._getUTC().minute};X.prototype.getUTCSeconds=function(){return this._getUTC().second};X.prototype.toISOString=function(){return this._date.toUTC().toISO()};X.prototype.toJSON=function(){return this._date.toJSON()};X.prototype.setDate=function(r){this._date=this._date.set({day:r})};X.prototype.setFullYear=function(r){this._date=this._date.set({year:r})};X.prototype.setDay=function(r){this._date=this._date.set({weekday:r})};X.prototype.setMonth=function(r){this._date=this._date.set({month:r+1})};X.prototype.setHours=function(r){this._date=this._date.set({hour:r})};X.prototype.setMinutes=function(r){this._date=this._date.set({minute:r})};X.prototype.setSeconds=function(r){this._date=this._date.set({second:r})};X.prototype.setMilliseconds=function(r){this._date=this._date.set({millisecond:r})};X.prototype._getUTC=function(){return this._date.toUTC()};X.prototype.toString=function(){return this.toDate().toString()};X.prototype.toDate=function(){return this._date.toJSDate()};X.prototype.isLastDayOfMonth=function(){var r=this._date.plus({days:1}).startOf("day");return this._date.month!==r.month};X.prototype.isLastWeekdayOfMonth=function(){var r=this._date.plus({days:7}).startOf("day");return this._date.month!==r.month};function X(r,e){var t={zone:e};if(r?r instanceof X?this._date=r._date:r instanceof Date?this._date=an.DateTime.fromJSDate(r,t):typeof r=="number"?this._date=an.DateTime.fromMillis(r,t):typeof r=="string"&&(this._date=an.DateTime.fromISO(r,t),this._date.isValid||(this._date=an.DateTime.fromRFC2822(r,t)),this._date.isValid||(this._date=an.DateTime.fromSQL(r,t)),this._date.isValid||(this._date=an.DateTime.fromFormat(r,"EEE, d MMM yyyy HH:mm:ss",t))):this._date=an.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(r));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}Mv.exports=X});var Jv=h((FN,qv)=>{"use strict";function on(r){return{start:r,count:1}}function Nv(r,e){r.end=e,r.step=e-r.start,r.count=2}function Ku(r,e,t){e&&(e.count===2?(r.push(on(e.start)),r.push(on(e.end))):r.push(e)),t&&r.push(t)}function eC(r){for(var e=[],t=void 0,n=0;n<r.length;n++){var i=r[n];typeof i!="number"?(Ku(e,t,on(i)),t=void 0):t?t.count===1?Nv(t,i):t.step===i-t.end?(t.count++,t.end=i):t.count===2?(e.push(on(t.start)),t=on(t.end),Nv(t,i)):(Ku(e,t),t=on(i)):t=on(i)}return Ku(e,t),e}qv.exports=eC});var Fv=h((VN,Lv)=>{"use strict";var tC=Jv();function rC(r,e,t){var n=tC(r);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===t)return"*";if(s!==1&&i.start===e&&i.end===t-s+1)return"*/"+s}for(var a=[],o=0,l=n.length;o<l;++o){var c=n[o];if(c.count===1){a.push(c.start);continue}var s=c.step;if(c.step===1){a.push(c.start+"-"+c.end);continue}var d=c.start==0?c.count-1:c.count;c.step*d>c.end?a=a.concat(Array.from({length:c.end-c.start+1}).map(function(f,p){var y=c.start+p;return(y-c.start)%c.step===0?y:null}).filter(function(f){return f!=null})):c.end===t-c.step+1?a.push(c.start+"/"+c.step):a.push(c.start+"-"+c.end+"/"+c.step)}return a.join(",")}Lv.exports=rC});var Yv=h((GN,Gv)=>{"use strict";var ln=Pv(),nC=Fv(),Vv=1e4;function q(r,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new ln(e.currentDate,this._tz),this._startDate=e.startDate?new ln(e.startDate,this._tz):null,this._endDate=e.endDate?new ln(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=q._freezeFields(r)}q.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];q.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};q.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];q.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];q.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};q.parseDefaults=["0","*","*","*","*","*"];q.standardValidCharacters=/^[,*\d/-]+$/;q.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;q.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;q.validCharacters={second:q.standardValidCharacters,minute:q.standardValidCharacters,hour:q.standardValidCharacters,dayOfMonth:q.dayOfMonthValidCharacters,month:q.standardValidCharacters,dayOfWeek:q.dayOfWeekValidCharacters};q._isValidConstraintChar=function(e,t){return typeof t!="string"?!1:e.chars.some(function(n){return t.indexOf(n)>-1})};q._parseField=function(e,t,n){switch(e){case"month":case"dayOfWeek":var i=q.aliases[e];t=t.replace(/[a-z]{3}/gi,function(l){if(l=l.toLowerCase(),typeof i[l]<"u")return i[l];throw new Error('Validation error, cannot resolve alias "'+l+'"')});break}if(!q.validCharacters[e].test(t))throw new Error("Invalid characters, got value: "+t);t.indexOf("*")!==-1?t=t.replace(/\*/g,n.min+"-"+n.max):t.indexOf("?")!==-1&&(t=t.replace(/\?/g,n.min+"-"+n.max));function s(l){var c=[];function d(y){if(y instanceof Array)for(var g=0,E=y.length;g<E;g++){var S=y[g];if(q._isValidConstraintChar(n,S)){c.push(S);continue}if(typeof S!="number"||Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+S+" expected range "+n.min+"-"+n.max);c.push(S)}else{if(q._isValidConstraintChar(n,y)){c.push(y);return}var x=+y;if(Number.isNaN(x)||x<n.min||x>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(x=x%7),c.push(x)}}var u=l.split(",");if(!u.every(function(y){return y.length>0}))throw new Error("Invalid list value format");if(u.length>1)for(var f=0,p=u.length;f<p;f++)d(a(u[f]));else d(a(l));return c.sort(q._sortCompareFn),c}function a(l){var c=1,d=l.split("/");if(d.length>2)throw new Error("Invalid repeat: "+l);return d.length>1?(d[0]==+d[0]&&(d=[d[0]+"-"+n.max,d[1]]),o(d[0],d[d.length-1])):o(l,c)}function o(l,c){var d=[],u=l.split("-");if(u.length>1){if(u.length<2)return+l;if(!u[0].length){if(!u[1].length)throw new Error("Invalid range: "+l);return+l}var f=+u[0],p=+u[1];if(Number.isNaN(f)||Number.isNaN(p)||f<n.min||p>n.max)throw new Error("Constraint error, got range "+f+"-"+p+" expected range "+n.min+"-"+n.max);if(f>p)throw new Error("Invalid range: "+l);var y=+c;if(Number.isNaN(y)||y<=0)throw new Error("Constraint error, cannot repeat at every "+y+" time.");e==="dayOfWeek"&&p%7===0&&d.push(0);for(var g=f,E=p;g<=E;g++){var S=d.indexOf(g)!==-1;!S&&y>0&&y%c===0?(y=1,d.push(g)):y++}return d}return Number.isNaN(+l)?l:+l}return s(t)};q._sortCompareFn=function(r,e){var t=typeof r=="number",n=typeof e=="number";return t&&n?r-e:!t&&n?1:t&&!n?-1:r.localeCompare(e)};q._handleMaxDaysInMonth=function(r){if(r.month.length===1){var e=q.daysInMonth[r.month[0]-1];if(r.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return r.dayOfMonth.filter(function(t){return t==="L"?!0:t<=e}).sort(q._sortCompareFn)}};q._freezeFields=function(r){for(var e=0,t=q.map.length;e<t;++e){var n=q.map[e],i=r[n];r[n]=Object.freeze(i)}return Object.freeze(r)};q.prototype._applyTimezoneShift=function(r,e,t){if(t==="Month"||t==="Day"){var n=r.getTime();r[e+t]();var i=r.getTime();n===i&&(r.getMinutes()===0&&r.getSeconds()===0?r.addHour():r.getMinutes()===59&&r.getSeconds()===59&&r.subtractHour())}else{var s=r.getHours();r[e+t]();var a=r.getHours(),o=a-s;o===2?this.fields.hour.length!==24&&(this._dstStart=a):o===0&&r.getMinutes()===0&&r.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};q.prototype._findSchedule=function(e){function t(S,x){for(var C=0,R=x.length;C<R;C++)if(x[C]>=S)return x[C]===S;return x[0]===S}function n(S,x){if(x<6){if(S.getDate()<8&&x===1)return!0;var C=S.getDate()%7?1:0,R=S.getDate()-S.getDate()%7,T=Math.floor(R/7)+C;return T===x}return!1}function i(S){return S.length>0&&S.some(function(x){return typeof x=="string"&&x.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",a=new ln(this._currentDate,this._tz),o=this._startDate,l=this._endDate,c=a.getTime(),d=0;function u(S){return S.some(function(x){if(!i([x]))return!1;var C=Number.parseInt(x[0])%7;if(Number.isNaN(C))throw new Error("Invalid last weekday of the month expression: "+x);return a.getDay()===C&&a.isLastWeekdayOfMonth()})}for(;d<Vv;){if(d++,e){if(o&&a.getTime()-o.getTime()<0)throw new Error("Out of the timespan range")}else if(l&&l.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var f=t(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(f=f||a.isLastDayOfMonth());var p=t(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||u(this.fields.dayOfWeek));var y=this.fields.dayOfMonth.length>=q.daysInMonth[a.getMonth()],g=this.fields.dayOfWeek.length===q.constraints[5].max-q.constraints[5].min+1,E=a.getHours();if(!f&&(!p||g)){this._applyTimezoneShift(a,s,"Day");continue}if(!y&&g&&!f){this._applyTimezoneShift(a,s,"Day");continue}if(y&&!g&&!p){this._applyTimezoneShift(a,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,s,"Day");continue}if(!t(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,s,"Month");continue}if(t(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(a,s,"Hour");continue}else if(!t(E-1,this.fields.hour)){a[s+"Hour"]();continue}if(!t(a.getMinutes(),this.fields.minute)){this._applyTimezoneShift(a,s,"Minute");continue}if(!t(a.getSeconds(),this.fields.second)){this._applyTimezoneShift(a,s,"Second");continue}if(c===a.getTime()){s==="add"||a.getMilliseconds()===0?this._applyTimezoneShift(a,s,"Second"):a.setMilliseconds(0);continue}break}if(d>=Vv)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new ln(a,this._tz),this._hasIterated=!0,a};q.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};q.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};q.prototype.hasNext=function(){var r=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=r,this._hasIterated=e}};q.prototype.hasPrev=function(){var r=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=r,this._hasIterated=e}};q.prototype.iterate=function(e,t){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var a=this.next();n.push(a),t&&t(a,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var a=this.prev();n.push(a),t&&t(a,i)}catch{break}return n};q.prototype.reset=function(e){this._currentDate=new ln(e||this._options.currentDate)};q.prototype.stringify=function(e){for(var t=[],n=e?0:1,i=q.map.length;n<i;++n){var s=q.map[n],a=this.fields[s],o=q.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?o={min:1,max:q.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(o={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),t.push(nC(a,o.min,o.max))}return t.join(" ")};q.parse=function(e,t){var n=this;typeof t=="function"&&(t={});function i(s,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new ln(void 0,n._tz)),q.predefined[s]&&(s=q.predefined[s]);var o=[],l=(s+"").trim().split(/\s+/);if(l.length>6)throw new Error("Invalid cron expression");for(var c=q.map.length-l.length,d=0,u=q.map.length;d<u;++d){var f=q.map[d],p=l[l.length>u?d:d-c];if(d<c||!p)o.push(q._parseField(f,q.parseDefaults[d],q.constraints[d]));else{var y=f==="dayOfWeek"?x(p):p;o.push(q._parseField(f,y,q.constraints[d]))}}for(var g={},d=0,u=q.map.length;d<u;d++){var E=q.map[d];g[E]=o[d]}var S=q._handleMaxDaysInMonth(g);return g.dayOfMonth=S||g.dayOfMonth,new q(g,a);function x(C){var R=C.split("#");if(R.length>1){var T=+R[R.length-1];if(/,/.test(C))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(C))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(C))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(R.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=T,R[0]}return C}}return i(e,t)};q.fieldsToExpression=function(e,t){function n(f,p,y){if(!p)throw new Error("Validation error, Field "+f+" is missing");if(p.length===0)throw new Error("Validation error, Field "+f+" contains no values");for(var g=0,E=p.length;g<E;g++){var S=p[g];if(!q._isValidConstraintChar(y,S)&&(typeof S!="number"||Number.isNaN(S)||S<y.min||S>y.max))throw new Error("Constraint error, got value "+S+" expected range "+y.min+"-"+y.max)}}for(var i={},s=0,a=q.map.length;s<a;++s){var o=q.map[s],l=e[o];n(o,l,q.constraints[s]);for(var c=[],d=-1;++d<l.length;)c[d]=l[d];if(l=c.sort(q._sortCompareFn).filter(function(f,p,y){return!p||f!==y[p-1]}),l.length!==c.length)throw new Error("Validation error, Field "+o+" contains duplicate values");i[o]=l}var u=q._handleMaxDaysInMonth(i);return i.dayOfMonth=u||i.dayOfMonth,new q(i,t||{})};Gv.exports=q});var Su=h((YN,Bv)=>{"use strict";var Oo=Yv();function Cr(){}Cr._parseEntry=function(e){var t=e.split(" ");if(t.length===6)return{interval:Oo.parse(e)};if(t.length>6)return{interval:Oo.parse(t.slice(0,6).join(" ")),command:t.slice(6,t.length)};throw new Error("Invalid entry: "+e)};Cr.parseExpression=function(e,t){return Oo.parse(e,t)};Cr.fieldsToExpression=function(e,t){return Oo.fieldsToExpression(e,t)};Cr.parseString=function(e){for(var t=e.split(`
|
|
8911
|
-
`),n={variables:{},expressions:[],errors:{}},i=0,s=t.length;i<s;i++){var a=t[i],o=null,l=a.trim();if(l.length>0){if(l.match(/^#/))continue;if(o=l.match(/^(.*)=(.*)$/))n.variables[o[1]]=o[2];else{var c=null;try{c=Cr._parseEntry("0 "+l),n.expressions.push(c.interval)}catch(d){n.errors[l]=d}}}}return n};Cr.parseFile=function(e,t){V("fs").readFile(e,function(n,i){if(n){t(n);return}return t(null,Cr.parseString(i.toString()))})};Bv.exports=Cr});var _r=h(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.QueueBase=void 0;var iC=V("events"),Ri=ut(),sC=oa(),aC=Si(),oC=Pn(),lC=ca(),Eu=class extends iC.EventEmitter{constructor(e,t={connection:{}},n=aC.RedisConnection,i=!1){if(super(),this.name=e,this.opts=t,this.closed=!1,this.hasBlockingConnection=!1,this.hasBlockingConnection=i,this.opts=Object.assign({prefix:"bull"},t),!e)throw new Error("Queue name must be provided");if(e.includes(":"))throw new Error("Queue name cannot contain :");this.connection=new n(t.connection,{shared:(0,Ri.isRedisInstance)(t.connection),blocking:i,skipVersionCheck:t.skipVersionCheck,skipWaitingForReady:t.skipWaitingForReady}),this.connection.on("error",a=>this.emit("error",a)),this.connection.on("close",()=>{this.closing||this.emit("ioredis:close")});let s=new lC.QueueKeys(t.prefix);this.qualifiedName=s.getQueueQualifiedName(e),this.keys=s.getKeys(e),this.toKey=a=>s.toKey(e,a),this.createScripts()}get client(){return this.connection.client}createScripts(){this.scripts=(0,sC.createScripts)(this)}get redisVersion(){return this.connection.redisVersion}get databaseType(){return this.connection.databaseType}get Job(){return oC.Job}emit(e,...t){try{return super.emit(e,...t)}catch(n){try{return super.emit("error",n)}catch(i){return console.error(i),!1}}}waitUntilReady(){return this.client}base64Name(){return Buffer.from(this.name).toString("base64")}clientName(e=""){let t=this.base64Name();return`${this.opts.prefix}:${t}${e}`}async close(){this.closing||(this.closing=this.connection.close()),await this.closing,this.closed=!0}disconnect(){return this.connection.disconnect()}async checkConnectionError(e,t=Ri.DELAY_TIME_5){try{return await e()}catch(n){if((0,Ri.isNotConnectionError)(n)&&this.emit("error",n),!this.closing&&t)await(0,Ri.delay)(t);else return}}trace(e,t,n,i,s){return(0,Ri.trace)(this.opts.telemetry,e,this.name,t,n,i,s)}};Ro.QueueBase=Eu});var _o=h(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.defaultRepeatStrategy=cn.JobScheduler=void 0;var cC=(Qe(),it(He)),dC=Su(),Co=Pn(),uC=_r(),Ci=at(),pC=ut(),ku=class extends uC.QueueBase{constructor(e,t,n){super(e,t,n),this.repeatStrategy=t.settings&&t.settings.repeatStrategy||cn.defaultRepeatStrategy}async upsertJobScheduler(e,t,n,i,s,{override:a,producerId:o}){let{every:l,limit:c,pattern:d,offset:u}=t;if(d&&l)throw new Error("Both .pattern and .every options are defined for this repeatable job");if(!d&&!l)throw new Error("Either .pattern or .every options must be defined for this repeatable job");if(t.immediately&&t.startDate)throw new Error("Both .immediately and .startDate options are defined for this repeatable job");t.immediately&&t.every&&console.warn("Using option immediately with every does not affect the job's schedule. Job will run immediately anyway.");let f=t.count?t.count+1:1;if(typeof t.limit<"u"&&f>t.limit)return;let p=Date.now(),{endDate:y}=t;if(y&&p>new Date(y).getTime())return;let g=s.prevMillis||0;p=g<p?p:g;let{immediately:E}=t,S=cC.__rest(t,["immediately"]),x,C=null;if(d&&(x=await this.repeatStrategy(p,t,n),x<p&&(x=p)),x||l)return this.trace(Ci.SpanKind.PRODUCER,"add",`${this.name}.${n}`,async(R,T)=>{var k,N;let F=s.telemetry;if(T){let I=(k=s.telemetry)===null||k===void 0?void 0:k.omitContext,B=((N=s.telemetry)===null||N===void 0?void 0:N.metadata)||!I&&T;(B||I)&&(F={metadata:B,omitContext:I})}let O=this.getNextJobOpts(x,e,Object.assign(Object.assign({},s),{repeat:S,telemetry:F}),f,C);if(a){x<p&&(x=p);let[I,B]=await this.scripts.addJobScheduler(e,x,JSON.stringify(typeof i>"u"?{}:i),Co.Job.optsAsJSON(s),{name:n,startDate:t.startDate?new Date(t.startDate).getTime():void 0,endDate:y?new Date(y).getTime():void 0,tz:t.tz,pattern:d,every:l,limit:c,offset:C},Co.Job.optsAsJSON(O),o),te=typeof B=="string"?parseInt(B,10):B,m=new this.Job(this,n,i,Object.assign(Object.assign({},O),{delay:te}),I);return m.id=I,R?.setAttributes({[Ci.TelemetryAttributes.JobSchedulerId]:e,[Ci.TelemetryAttributes.JobId]:m.id}),m}else{let I=await this.scripts.updateJobSchedulerNextMillis(e,x,JSON.stringify(typeof i>"u"?{}:i),Co.Job.optsAsJSON(O),o);if(I){let B=new this.Job(this,n,i,O,I);return B.id=I,R?.setAttributes({[Ci.TelemetryAttributes.JobSchedulerId]:e,[Ci.TelemetryAttributes.JobId]:B.id}),B}}})}getNextJobOpts(e,t,n,i,s){var a,o;let l=this.getSchedulerNextJobId({jobSchedulerId:t,nextMillis:e}),c=Date.now(),d=e+s-c,u=Object.assign(Object.assign({},n),{jobId:l,delay:d<0?0:d,timestamp:c,prevMillis:e,repeatJobKey:t});return u.repeat=Object.assign(Object.assign({},n.repeat),{offset:s,count:i,startDate:!((a=n.repeat)===null||a===void 0)&&a.startDate?new Date(n.repeat.startDate).getTime():void 0,endDate:!((o=n.repeat)===null||o===void 0)&&o.endDate?new Date(n.repeat.endDate).getTime():void 0}),u}async removeJobScheduler(e){return this.scripts.removeJobScheduler(e)}async getSchedulerData(e,t,n){let i=await e.hgetall(this.toKey("repeat:"+t));return this.transformSchedulerData(t,i,n)}transformSchedulerData(e,t,n){if(t&&Object.keys(t).length>0){let i={key:e,name:t.name,next:n};return t.ic&&(i.iterationCount=parseInt(t.ic)),t.limit&&(i.limit=parseInt(t.limit)),t.startDate&&(i.startDate=parseInt(t.startDate)),t.endDate&&(i.endDate=parseInt(t.endDate)),t.tz&&(i.tz=t.tz),t.pattern&&(i.pattern=t.pattern),t.every&&(i.every=parseInt(t.every)),t.offset&&(i.offset=parseInt(t.offset)),(t.data||t.opts)&&(i.template=this.getTemplateFromJSON(t.data,t.opts)),i}if(e.includes(":"))return this.keyToData(e,n)}keyToData(e,t){let n=e.split(":"),i=n.slice(4).join(":")||null;return{key:e,name:n[0],id:n[1]||null,endDate:parseInt(n[2])||null,tz:n[3]||null,pattern:i,next:t}}async isJobScheduler(e){return await(await this.client).hexists(`${this.keys.repeat}:${e}`,"ic")===1}async getScheduler(e){let[t,n]=await this.scripts.getJobScheduler(e);return this.transformSchedulerData(e,t?(0,pC.array2obj)(t):null,n?parseInt(n):null)}getTemplateFromJSON(e,t){let n={};return e&&(n.data=JSON.parse(e)),t&&(n.opts=Co.Job.optsFromJSON(t)),n}async getJobSchedulers(e=0,t=-1,n=!1){let i=await this.client,s=this.keys.repeat,a=n?await i.zrange(s,e,t,"WITHSCORES"):await i.zrevrange(s,e,t,"WITHSCORES"),o=[];for(let l=0;l<a.length;l+=2)o.push(this.getSchedulerData(i,a[l],parseInt(a[l+1])));return Promise.all(o)}async getSchedulersCount(){let e=this.keys.repeat;return(await this.client).zcard(e)}getSchedulerNextJobId({nextMillis:e,jobSchedulerId:t}){return`repeat:${t}:${e}`}};cn.JobScheduler=ku;var fC=(r,e)=>{let{pattern:t}=e,n=new Date(r),i=e.startDate&&new Date(e.startDate),s=i>n?i:n,a=(0,dC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:s}));try{return e.immediately?new Date().getTime():a.next().getTime()}catch{}};cn.defaultRepeatStrategy=fC});var xu=h(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.LockManager=void 0;var hC=xs(),Mo=at(),Iu=class{constructor(e,t){this.worker=e,this.opts=t,this.trackedJobs=new Map,this.closed=!1}start(){this.closed||this.opts.lockRenewTime>0&&this.startLockExtenderTimer()}async extendLocks(e){await this.worker.trace(Mo.SpanKind.INTERNAL,"extendLocks",this.worker.name,async t=>{t?.setAttributes({[Mo.TelemetryAttributes.WorkerId]:this.opts.workerId,[Mo.TelemetryAttributes.WorkerName]:this.opts.workerName,[Mo.TelemetryAttributes.WorkerJobsToExtendLocks]:e});try{let n=e.map(a=>{var o;return((o=this.trackedJobs.get(a))===null||o===void 0?void 0:o.token)||""}),i=await this.worker.extendJobLocks(e,n,this.opts.lockDuration);if(i.length>0){this.worker.emit("lockRenewalFailed",i);for(let a of i)this.worker.emit("error",new Error(`could not renew lock for job ${a}`))}let s=e.filter(a=>!i.includes(a));s.length>0&&this.worker.emit("locksRenewed",{count:s.length,jobIds:s})}catch(n){this.worker.emit("error",n)}})}startLockExtenderTimer(){clearTimeout(this.lockRenewalTimer),this.closed||(this.lockRenewalTimer=setTimeout(async()=>{let e=Date.now(),t=[];for(let n of this.trackedJobs.keys()){let i=this.trackedJobs.get(n),{ts:s,token:a,abortController:o}=i;if(!s){this.trackedJobs.set(n,{token:a,ts:e,abortController:o});continue}s+this.opts.lockRenewTime/2<e&&(this.trackedJobs.set(n,{token:a,ts:e,abortController:o}),t.push(n))}t.length&&await this.extendLocks(t),this.startLockExtenderTimer()},this.opts.lockRenewTime/2))}async close(){this.closed||(this.closed=!0,this.lockRenewalTimer&&(clearTimeout(this.lockRenewalTimer),this.lockRenewalTimer=void 0),this.trackedJobs.clear())}trackJob(e,t,n,i=!1){let s=i?new hC.AbortController:void 0;return!this.closed&&e&&this.trackedJobs.set(e,{token:t,ts:n,abortController:s}),s}untrackJob(e){this.trackedJobs.delete(e)}getActiveJobCount(){return this.trackedJobs.size}isRunning(){return!this.closed&&this.lockRenewalTimer!==void 0}cancelJob(e,t){let n=this.trackedJobs.get(e);return n?.abortController?(n.abortController.abort(t),!0):!1}cancelAllJobs(e){for(let t of this.trackedJobs.values())t.abortController&&t.abortController.abort(e)}getTrackedJobIds(){return Array.from(this.trackedJobs.keys())}};Po.LockManager=Iu});var Uv=h(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.QueueEvents=void 0;var Wv=(Qe(),it(He)),No=ut(),yC=_r(),wu=class extends yC.QueueBase{constructor(e,t={connection:{}},n){var i,{connection:s,autorun:a=!0}=t,o=Wv.__rest(t,["connection","autorun"]);super(e,Object.assign(Object.assign({},o),{connection:(0,No.isRedisInstance)(s)?s.isCluster?s.duplicate(void 0,{redisOptions:(i=s.options)===null||i===void 0?void 0:i.redisOptions}):s.duplicate():s}),n,!0),this.running=!1,this.blocking=!1,this.opts=Object.assign({blockingTimeout:1e4},this.opts),a&&this.run().catch(l=>this.emit("error",l))}emit(e,...t){return super.emit(e,...t)}off(e,t){return super.off(e,t),this}on(e,t){return super.on(e,t),this}once(e,t){return super.once(e,t),this}async run(){if(this.running)throw new Error("Queue Events is already running.");try{this.running=!0;let e=await this.client;try{await e.client("SETNAME",this.clientName(No.QUEUE_EVENT_SUFFIX))}catch(t){if(!No.clientCommandMessageReg.test(t.message))throw t}await this.consumeEvents(e)}catch(e){throw this.running=!1,e}}async consumeEvents(e){let t=this.opts,n=this.keys.events,i=t.lastEventId||"$";for(;!this.closing;){this.blocking=!0;let s=await this.checkConnectionError(()=>e.xread("BLOCK",t.blockingTimeout,"STREAMS",n,i));if(this.blocking=!1,s){let o=s[0][1];for(let l=0;l<o.length;l++){i=o[l][0];let c=(0,No.array2obj)(o[l][1]);switch(c.event){case"progress":c.data=JSON.parse(c.data);break;case"completed":c.returnvalue=JSON.parse(c.returnvalue);break}let{event:d}=c,u=Wv.__rest(c,["event"]);d==="drained"?this.emit(d,i):(this.emit(d,u,i),u.jobId&&this.emit(`${d}:${u.jobId}`,u,i))}}}}async close(){return this.closing||(this.closing=(async()=>{try{(await this.client).disconnect(),await this.connection.close(this.blocking)}finally{this.closed=!0}})()),this.closing}};qo.QueueEvents=wu});var zv=h(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.QueueEventsProducer=void 0;var mC=(Qe(),it(He)),bC=_r(),ju=class extends bC.QueueBase{constructor(e,t={connection:{}},n){super(e,Object.assign({blockingConnection:!1},t),n),this.opts=t}async publishEvent(e,t=1e3){let n=await this.client,i=this.keys.events,{eventName:s}=e,a=mC.__rest(e,["eventName"]),o=["MAXLEN","~",t,"*","event",s];for(let[l,c]of Object.entries(a))o.push(l,c);await n.xadd(i,...o)}async close(){this.closing||(this.closing=this.connection.close()),await this.closing}};Jo.QueueEventsProducer=ju});var Du=h(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.QueueGetters=void 0;var gC=(Qe(),it(He)),vC=_r(),$v=ut(),Tu=at();function Hv(r){return String(r).replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}var Au=class extends vC.QueueBase{getJob(e){return this.Job.fromId(this,e)}commandByType(e,t,n){return e.map(i=>{i=i==="waiting"?"wait":i;let s=this.toKey(i);switch(i){case"completed":case"failed":case"delayed":case"prioritized":case"repeat":case"waiting-children":return n(s,t?"zcard":"zrange");case"active":case"wait":case"paused":return n(s,t?"llen":"lrange")}})}sanitizeJobTypes(e){let t=typeof e=="string"?[e]:e;if(Array.isArray(t)&&t.length>0){let n=[...t];return n.indexOf("waiting")!==-1&&n.push("paused"),[...new Set(n)]}return["active","completed","delayed","failed","paused","prioritized","waiting","waiting-children"]}async count(){return await this.getJobCountByTypes("waiting","paused","delayed","prioritized","waiting-children")}async getRateLimitTtl(e){return this.scripts.getRateLimitTtl(e)}async getDebounceJobId(e){return(await this.client).get(`${this.keys.de}:${e}`)}async getDeduplicationJobId(e){return(await this.client).get(`${this.keys.de}:${e}`)}async getGlobalConcurrency(){let t=await(await this.client).hget(this.keys.meta,"concurrency");return t?Number(t):null}async getGlobalRateLimit(){let e=await this.client,[t,n]=await e.hmget(this.keys.meta,"max","duration");return t&&n?{max:Number(t),duration:Number(n)}:null}async getJobCountByTypes(...e){let t=await this.getJobCounts(...e);return Object.values(t).reduce((n,i)=>n+i,0)}async getJobCounts(...e){let t=this.sanitizeJobTypes(e),n=await this.scripts.getCounts(t),i={};return n.forEach((s,a)=>{i[t[a]]=s||0}),i}async recordJobCountsMetric(...e){var t;let n=await this.getJobCounts(...e),i=(t=this.opts.telemetry)===null||t===void 0?void 0:t.meter;if(i&&typeof i.createGauge=="function"){let s=i.createGauge(Tu.MetricNames.QueueJobsCount,{description:"Number of jobs in the queue by state",unit:"{jobs}"});for(let[a,o]of Object.entries(n))s.record(o,{[Tu.TelemetryAttributes.QueueName]:this.name,[Tu.TelemetryAttributes.QueueJobsState]:a})}return n}getJobState(e){return this.scripts.getState(e)}async getMeta(){let t=await(await this.client).hgetall(this.keys.meta),{concurrency:n,max:i,duration:s,paused:a,"opts.maxLenEvents":o}=t,c=gC.__rest(t,["concurrency","max","duration","paused","opts.maxLenEvents"]);return n&&(c.concurrency=Number(n)),o&&(c.maxLenEvents=Number(o)),i&&(c.max=Number(i)),s&&(c.duration=Number(s)),c.paused=a==="1",c}getCompletedCount(){return this.getJobCountByTypes("completed")}getFailedCount(){return this.getJobCountByTypes("failed")}getDelayedCount(){return this.getJobCountByTypes("delayed")}getActiveCount(){return this.getJobCountByTypes("active")}getPrioritizedCount(){return this.getJobCountByTypes("prioritized")}async getCountsPerPriority(e){let t=[...new Set(e)],n=await this.scripts.getCountsPerPriority(t),i={};return n.forEach((s,a)=>{i[`${t[a]}`]=s||0}),i}getWaitingCount(){return this.getJobCountByTypes("waiting")}getWaitingChildrenCount(){return this.getJobCountByTypes("waiting-children")}getWaiting(e=0,t=-1){return this.getJobs(["waiting"],e,t,!0)}getWaitingChildren(e=0,t=-1){return this.getJobs(["waiting-children"],e,t,!0)}getActive(e=0,t=-1){return this.getJobs(["active"],e,t,!0)}getDelayed(e=0,t=-1){return this.getJobs(["delayed"],e,t,!0)}getPrioritized(e=0,t=-1){return this.getJobs(["prioritized"],e,t,!0)}getCompleted(e=0,t=-1){return this.getJobs(["completed"],e,t,!1)}getFailed(e=0,t=-1){return this.getJobs(["failed"],e,t,!1)}async getDependencies(e,t,n,i){let s=this.toKey(t=="processed"?`${e}:processed`:`${e}:dependencies`),{items:a,total:o,jobs:l}=await this.scripts.paginate(s,{start:n,end:i,fetchJobs:!0});return{items:a,jobs:l,total:o}}async getRanges(e,t=0,n=1,i=!1){let s=[];this.commandByType(e,!1,(l,c)=>{switch(c){case"lrange":s.push("lrange");break;case"zrange":s.push("zrange");break}});let a=await this.scripts.getRanges(e,t,n,i),o=[];return a.forEach((l,c)=>{let d=l||[];i&&s[c]==="lrange"?o=o.concat(d.reverse()):o=o.concat(d)}),[...new Set(o)]}async getJobs(e,t=0,n=-1,i=!1){let s=this.sanitizeJobTypes(e),a=await this.getRanges(s,t,n,i);return Promise.all(a.map(o=>this.Job.fromId(this,o)))}async getJobLogs(e,t=0,n=-1,i=!0){let a=(await this.client).multi(),o=this.toKey(e+":logs");i?a.lrange(o,t,n):a.lrange(o,-(n+1),-(t+1)),a.llen(o);let l=await a.exec();return i||l[0][1].reverse(),{logs:l[0][1],count:l[1][1]}}async baseGetClients(e){let t=await this.client;try{if(t.isCluster){let n=t.nodes(),i=[];for(let a=0;a<n.length;a++){let l=await n[a].client("LIST"),c=this.parseClientList(l,e);i.push(c)}return i.reduce((a,o)=>a.length>o.length?a:o,[])}else{let n=await t.client("LIST");return this.parseClientList(n,e)}}catch(n){if(!$v.clientCommandMessageReg.test(n.message))throw n;return[{name:"GCP does not support client list"}]}}getWorkers(){let e=`${this.clientName()}`,t=`${this.clientName()}:w:`,n=i=>i&&(i===e||i.startsWith(t));return this.baseGetClients(n)}async getWorkersCount(){return(await this.getWorkers()).length}async getQueueEvents(){let e=`${this.clientName()}${$v.QUEUE_EVENT_SUFFIX}`;return this.baseGetClients(t=>t===e)}async getMetrics(e,t=0,n=-1){let[i,s,a]=await this.scripts.getMetrics(e,t,n);return{meta:{count:parseInt(i[0]||"0",10),prevTS:parseInt(i[1]||"0",10),prevCount:parseInt(i[2]||"0",10)},data:s.map(o=>+o||0),count:a}}parseClientList(e,t){let n=e.split(/\r?\n/),i=[];return n.forEach(s=>{let a={};s.split(" ").forEach(function(c){let d=c.indexOf("="),u=c.substring(0,d),f=c.substring(d+1);a[u]=f});let l=a.name;t(l)&&(a.name=this.name,a.rawname=l,i.push(a))}),i}async exportPrometheusMetrics(e){let t=await this.getJobCounts(),n=[];n.push("# HELP bullmq_job_count Number of jobs in the queue by state"),n.push("# TYPE bullmq_job_count gauge");let i=Hv(this.name),s=e?Object.keys(e).reduce((l,c)=>`${l}, ${c}="${Hv(e[c])}"`,""):"";for(let[l,c]of Object.entries(t))n.push(`bullmq_job_count{queue="${i}", state="${l}"${s}} ${c}`);let[a,o]=await Promise.all([this.getMetrics("completed"),this.getMetrics("failed")]);return n.push("# HELP bullmq_job_completed_total Total number of completed jobs"),n.push("# TYPE bullmq_job_completed_total counter"),n.push(`bullmq_job_completed_total{queue="${i}"${s}} ${a.meta.count}`),n.push("# HELP bullmq_job_failed_total Total number of failed jobs"),n.push("# TYPE bullmq_job_failed_total counter"),n.push(`bullmq_job_failed_total{queue="${i}"${s}} ${o.meta.count}`),n.join(`
|
|
8912
|
-
`)}};Lo.QueueGetters=Au});var Fo=h(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});dn.getNextMillis=dn.Repeat=void 0;var KC=(Qe(),it(He)),SC=Su(),EC=V("crypto"),kC=_r(),Ou=class extends kC.QueueBase{constructor(e,t,n){super(e,t,n),this.repeatStrategy=t.settings&&t.settings.repeatStrategy||dn.getNextMillis,this.repeatKeyHashAlgorithm=t.settings&&t.settings.repeatKeyHashAlgorithm||"md5"}async updateRepeatableJob(e,t,n,{override:i}){var s,a;let o=Object.assign({},n.repeat);(s=o.pattern)!==null&&s!==void 0||(o.pattern=o.cron),delete o.cron;let l=o.count?o.count+1:1;if(typeof o.limit<"u"&&l>o.limit)return;let c=Date.now(),{endDate:d}=o;if(d&&c>new Date(d).getTime())return;let u=n.prevMillis||0;c=u<c?c:u;let f=await this.repeatStrategy(c,o,e),{every:p,pattern:y}=o,g=!!((p||y)&&o.immediately),E=g&&p?c-f:void 0;if(f){!u&&n.jobId&&(o.jobId=n.jobId);let S=Qv(e,o),x=(a=n.repeat.key)!==null&&a!==void 0?a:this.hash(S),C;if(i)C=await this.scripts.addRepeatableJob(x,f,{name:e,endDate:d?new Date(d).getTime():void 0,tz:o.tz,pattern:y,every:p},S);else{let k=await this.client;C=await this.scripts.updateRepeatableJobMillis(k,x,f,S)}let{immediately:R}=o,T=KC.__rest(o,["immediately"]);return this.createNextJob(e,f,C,Object.assign(Object.assign({},n),{repeat:Object.assign({offset:E},T)}),t,l,g)}}async createNextJob(e,t,n,i,s,a,o){let l=this.getRepeatJobKey(e,t,n,s),c=Date.now(),d=t+(i.repeat.offset?i.repeat.offset:0)-c,u=Object.assign(Object.assign({},i),{jobId:l,delay:d<0||o?0:d,timestamp:c,prevMillis:t,repeatJobKey:n});return u.repeat=Object.assign(Object.assign({},i.repeat),{count:a}),this.Job.create(this,e,s,u)}getRepeatJobKey(e,t,n,i){return n.split(":").length>2?this.getRepeatJobId({name:e,nextMillis:t,namespace:this.hash(n),jobId:i?.id}):this.getRepeatDelayedJobId({customKey:n,nextMillis:t})}async removeRepeatable(e,t,n){var i;let s=Qv(e,Object.assign(Object.assign({},t),{jobId:n})),a=(i=t.key)!==null&&i!==void 0?i:this.hash(s),o=this.getRepeatJobId({name:e,nextMillis:"",namespace:this.hash(s),jobId:n??t.jobId,key:t.key});return this.scripts.removeRepeatable(o,s,a)}async removeRepeatableByKey(e){let t=this.keyToData(e),n=this.getRepeatJobId({name:t.name,nextMillis:"",namespace:this.hash(e),jobId:t.id});return this.scripts.removeRepeatable(n,"",e)}async getRepeatableData(e,t,n){let i=await e.hgetall(this.toKey("repeat:"+t));return i?{key:t,name:i.name,endDate:parseInt(i.endDate)||null,tz:i.tz||null,pattern:i.pattern||null,every:i.every||null,next:n}:this.keyToData(t,n)}keyToData(e,t){let n=e.split(":"),i=n.slice(4).join(":")||null;return{key:e,name:n[0],id:n[1]||null,endDate:parseInt(n[2])||null,tz:n[3]||null,pattern:i,next:t}}async getRepeatableJobs(e=0,t=-1,n=!1){let i=await this.client,s=this.keys.repeat,a=n?await i.zrange(s,e,t,"WITHSCORES"):await i.zrevrange(s,e,t,"WITHSCORES"),o=[];for(let l=0;l<a.length;l+=2)o.push(this.getRepeatableData(i,a[l],parseInt(a[l+1])));return Promise.all(o)}async getRepeatableCount(){return(await this.client).zcard(this.toKey("repeat"))}hash(e){return(0,EC.createHash)(this.repeatKeyHashAlgorithm).update(e).digest("hex")}getRepeatDelayedJobId({nextMillis:e,customKey:t}){return`repeat:${t}:${e}`}getRepeatJobId({name:e,nextMillis:t,namespace:n,jobId:i,key:s}){return`repeat:${s??this.hash(`${e}${i||""}${n}`)}:${t}`}};dn.Repeat=Ou;function Qv(r,e){let t=e.endDate?new Date(e.endDate).getTime():"",n=e.tz||"",i=e.pattern,s=i||String(e.every)||"",a=e.jobId?e.jobId:"";return`${r}:${a}:${t}:${n}:${s}`}var IC=(r,e)=>{let t=e.pattern;if(t&&e.every)throw new Error("Both .pattern and .every options are defined for this repeatable job");if(e.every)return Math.floor(r/e.every)*e.every+(e.immediately?0:e.every);let n=e.startDate&&new Date(e.startDate)>new Date(r)?new Date(e.startDate):new Date(r),i=(0,SC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:n}));try{return e.immediately?new Date().getTime():i.next().getTime()}catch{}};dn.getNextMillis=IC});var Zv=h(Vo=>{"use strict";Object.defineProperty(Vo,"__esModule",{value:!0});Vo.Queue=void 0;var xC=Pn(),wC=Du(),jC=Fo(),ne=at(),TC=_o(),AC=ia(),DC=ut(),Ru=class extends wC.QueueGetters{constructor(e,t,n){var i;super(e,Object.assign({},t),n),this.token=(0,DC.randomUUID)(),this.libName="bullmq",this.jobsOpts=(i=t?.defaultJobOptions)!==null&&i!==void 0?i:{},this.waitUntilReady().then(s=>{if(!this.closing&&!t?.skipMetasUpdate)return s.hmset(this.keys.meta,this.metaValues)}).catch(s=>{})}emit(e,...t){return super.emit(e,...t)}off(e,t){return super.off(e,t),this}on(e,t){return super.on(e,t),this}once(e,t){return super.once(e,t),this}get defaultJobOptions(){return Object.assign({},this.jobsOpts)}get metaValues(){var e,t,n,i;return{"opts.maxLenEvents":(i=(n=(t=(e=this.opts)===null||e===void 0?void 0:e.streams)===null||t===void 0?void 0:t.events)===null||n===void 0?void 0:n.maxLen)!==null&&i!==void 0?i:1e4,version:`${this.libName}:${AC.version}`}}async getVersion(){return await(await this.client).hget(this.keys.meta,"version")}get repeat(){return new Promise(async e=>{this._repeat||(this._repeat=new jC.Repeat(this.name,Object.assign(Object.assign({},this.opts),{connection:await this.client})),this._repeat.on("error",this.emit.bind(this,"error"))),e(this._repeat)})}get jobScheduler(){return new Promise(async e=>{this._jobScheduler||(this._jobScheduler=new TC.JobScheduler(this.name,Object.assign(Object.assign({},this.opts),{connection:await this.client})),this._jobScheduler.on("error",this.emit.bind(this,"error"))),e(this._jobScheduler)})}async setGlobalConcurrency(e){return(await this.client).hset(this.keys.meta,"concurrency",e)}async setGlobalRateLimit(e,t){return(await this.client).hset(this.keys.meta,"max",e,"duration",t)}async removeGlobalConcurrency(){return(await this.client).hdel(this.keys.meta,"concurrency")}async removeGlobalRateLimit(){return(await this.client).hdel(this.keys.meta,"max","duration")}async add(e,t,n){return this.trace(ne.SpanKind.PRODUCER,"add",`${this.name}.${e}`,async(i,s)=>{var a;if(s&&!(!((a=n?.telemetry)===null||a===void 0)&&a.omitContext)){let l={metadata:s};n=Object.assign(Object.assign({},n),{telemetry:l})}let o=await this.addJob(e,t,n);return i?.setAttributes({[ne.TelemetryAttributes.JobName]:e,[ne.TelemetryAttributes.JobId]:o.id}),o})}async addJob(e,t,n){if(n&&n.repeat){if(n.repeat.endDate&&+new Date(n.repeat.endDate)<Date.now())throw new Error("End date must be greater than current timestamp");return(await this.repeat).updateRepeatableJob(e,t,Object.assign(Object.assign({},this.jobsOpts),n),{override:!0})}else{let i=n?.jobId;if(i=="0"||i?.startsWith("0:"))throw new Error("JobId cannot be '0' or start with 0:");let s=Object.assign(Object.assign(Object.assign({},this.jobsOpts),n),{jobId:i}),a=await this.Job.create(this,e,t,s);return this.emit("waiting",a),a}}async addBulk(e){return this.trace(ne.SpanKind.PRODUCER,"addBulk",this.name,async(t,n)=>(t&&t.setAttributes({[ne.TelemetryAttributes.BulkNames]:e.map(i=>i.name),[ne.TelemetryAttributes.BulkCount]:e.length}),await this.Job.createBulk(this,e.map(i=>{var s,a,o,l,c,d;let u=(s=i.opts)===null||s===void 0?void 0:s.telemetry;if(n){let p=(o=(a=i.opts)===null||a===void 0?void 0:a.telemetry)===null||o===void 0?void 0:o.omitContext,y=((c=(l=i.opts)===null||l===void 0?void 0:l.telemetry)===null||c===void 0?void 0:c.metadata)||!p&&n;(y||p)&&(u={metadata:y,omitContext:p})}let f=Object.assign(Object.assign(Object.assign({},this.jobsOpts),i.opts),{jobId:(d=i.opts)===null||d===void 0?void 0:d.jobId,telemetry:u});return{name:i.name,data:i.data,opts:f}}))))}async upsertJobScheduler(e,t,n){var i,s;if(t.endDate&&+new Date(t.endDate)<Date.now())throw new Error("End date must be greater than current timestamp");return(await this.jobScheduler).upsertJobScheduler(e,t,(i=n?.name)!==null&&i!==void 0?i:e,(s=n?.data)!==null&&s!==void 0?s:{},Object.assign(Object.assign({},this.jobsOpts),n?.opts),{override:!0})}async pause(){await this.trace(ne.SpanKind.INTERNAL,"pause",this.name,async()=>{await this.scripts.pause(!0),this.emit("paused")})}async close(){await this.trace(ne.SpanKind.INTERNAL,"close",this.name,async()=>{this.closing||this._repeat&&await this._repeat.close(),await super.close()})}async rateLimit(e){await this.trace(ne.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[ne.TelemetryAttributes.QueueRateLimit]:e}),await this.client.then(n=>n.set(this.keys.limiter,Number.MAX_SAFE_INTEGER,"PX",e))})}async resume(){await this.trace(ne.SpanKind.INTERNAL,"resume",this.name,async()=>{await this.scripts.pause(!1),this.emit("resumed")})}async isPaused(){return await(await this.client).hexists(this.keys.meta,"paused")===1}isMaxed(){return this.scripts.isMaxed()}async getRepeatableJobs(e,t,n){return(await this.repeat).getRepeatableJobs(e,t,n)}async getJobScheduler(e){return(await this.jobScheduler).getScheduler(e)}async getJobSchedulers(e,t,n){return(await this.jobScheduler).getJobSchedulers(e,t,n)}async getJobSchedulersCount(){return(await this.jobScheduler).getSchedulersCount()}async removeRepeatable(e,t,n){return this.trace(ne.SpanKind.INTERNAL,"removeRepeatable",`${this.name}.${e}`,async i=>(i?.setAttributes({[ne.TelemetryAttributes.JobName]:e,[ne.TelemetryAttributes.JobId]:n}),!await(await this.repeat).removeRepeatable(e,t,n)))}async removeJobScheduler(e){return!await(await this.jobScheduler).removeJobScheduler(e)}async removeDebounceKey(e){return this.trace(ne.SpanKind.INTERNAL,"removeDebounceKey",`${this.name}`,async t=>(t?.setAttributes({[ne.TelemetryAttributes.JobKey]:e}),await(await this.client).del(`${this.keys.de}:${e}`)))}async removeDeduplicationKey(e){return this.trace(ne.SpanKind.INTERNAL,"removeDeduplicationKey",`${this.name}`,async t=>(t?.setAttributes({[ne.TelemetryAttributes.DeduplicationKey]:e}),(await this.client).del(`${this.keys.de}:${e}`)))}async removeRateLimitKey(){return(await this.client).del(this.keys.limiter)}async removeRepeatableByKey(e){return this.trace(ne.SpanKind.INTERNAL,"removeRepeatableByKey",`${this.name}`,async t=>(t?.setAttributes({[ne.TelemetryAttributes.JobKey]:e}),!await(await this.repeat).removeRepeatableByKey(e)))}async remove(e,{removeChildren:t=!0}={}){return this.trace(ne.SpanKind.INTERNAL,"remove",this.name,async n=>{n?.setAttributes({[ne.TelemetryAttributes.JobId]:e,[ne.TelemetryAttributes.JobOptions]:JSON.stringify({removeChildren:t})});let i=await this.scripts.remove(e,t);return i===1&&this.emit("removed",e),i})}async updateJobProgress(e,t){await this.trace(ne.SpanKind.INTERNAL,"updateJobProgress",this.name,async n=>{n?.setAttributes({[ne.TelemetryAttributes.JobId]:e,[ne.TelemetryAttributes.JobProgress]:JSON.stringify(t)}),await this.scripts.updateProgress(e,t),this.emit("progress",e,t)})}async addJobLog(e,t,n){return xC.Job.addJobLog(this,e,t,n)}async drain(e=!1){await this.trace(ne.SpanKind.INTERNAL,"drain",this.name,async t=>{t?.setAttributes({[ne.TelemetryAttributes.QueueDrainDelay]:e}),await this.scripts.drain(e)})}async clean(e,t,n="completed"){return this.trace(ne.SpanKind.INTERNAL,"clean",this.name,async i=>{let s=t||1/0,a=Math.min(1e4,s),o=Date.now()-e,l=0,c=[],d=n==="waiting"?"wait":n;for(;l<s;){let u=await this.scripts.cleanJobsInSet(d,o,a);if(this.emit("cleaned",u,d),l+=u.length,c.push(...u),u.length<a)break}return i?.setAttributes({[ne.TelemetryAttributes.QueueGrace]:e,[ne.TelemetryAttributes.JobType]:n,[ne.TelemetryAttributes.QueueCleanLimit]:s,[ne.TelemetryAttributes.JobIds]:c}),c})}async obliterate(e){await this.trace(ne.SpanKind.INTERNAL,"obliterate",this.name,async()=>{await this.pause();let t=0;do t=await this.scripts.obliterate(Object.assign({force:!1,count:1e3},e));while(t)})}async retryJobs(e={}){await this.trace(ne.SpanKind.PRODUCER,"retryJobs",this.name,async t=>{t?.setAttributes({[ne.TelemetryAttributes.QueueOptions]:JSON.stringify(e)});let n=0;do n=await this.scripts.retryJobs(e.state,e.count,e.timestamp);while(n)})}async promoteJobs(e={}){await this.trace(ne.SpanKind.INTERNAL,"promoteJobs",this.name,async t=>{t?.setAttributes({[ne.TelemetryAttributes.QueueOptions]:JSON.stringify(e)});let n=0;do n=await this.scripts.promoteJobs(e.count);while(n)})}async trimEvents(e){return this.trace(ne.SpanKind.INTERNAL,"trimEvents",this.name,async t=>(t?.setAttributes({[ne.TelemetryAttributes.QueueEventMaxLength]:e}),await(await this.client).xtrim(this.keys.events,"MAXLEN","~",e)))}async removeDeprecatedPriorityKey(){return(await this.client).del(this.toKey("priority"))}async removeOrphanedJobs(e=1e3,t=0){let n=await this.client,i=new Set(Object.keys(this.keys)),s=Object.keys(this.keys).filter(u=>u!==""),a=["logs","dependencies","processed","failed","unsuccessful","lock"],o=this.qualifiedName+":",l=o+"*",c=0,d="0";do{let[u,f]=await n.scan(d,"MATCH",l,"COUNT",e);d=u;let p=new Set;for(let g of f){let E=g.slice(o.length);if(i.has(E))continue;let S=E.indexOf(":");if(S!==-1){let C=E.slice(0,S);if(i.has(C))continue}let x=S===-1?E:E.slice(0,S);if(S!==-1){let C=E.slice(S+1);if(!a.includes(C))continue}p.add(x)}if(p.size===0)continue;let y=await this.scripts.removeOrphanedJobs([...p],s,a);if(c+=y||0,t>0&&c>=t)break}while(d!=="0");return c}};Vo.Queue=Ru});var _u=h(Cu=>{"use strict";Object.defineProperty(Cu,"__esModule",{value:!0});var _e=at(),OC=(r,e)=>async function(n,i,s){let a,o,l,c;try{let d=new Promise((u,f)=>{(async()=>{try{l=(y,g)=>{f(new Error("Unexpected exit code: "+y+" signal: "+g))},a=await e.retain(r),a.on("exit",l),o=async y=>{var g,E,S,x,C;try{switch(y.cmd){case _e.ParentCommand.Completed:u(y.value);break;case _e.ParentCommand.Failed:case _e.ParentCommand.Error:{let R=new Error;Object.assign(R,y.value),f(R);break}case _e.ParentCommand.Progress:await n.updateProgress(y.value);break;case _e.ParentCommand.Log:await n.log(y.value);break;case _e.ParentCommand.MoveToDelayed:await n.moveToDelayed((g=y.value)===null||g===void 0?void 0:g.timestamp,(E=y.value)===null||E===void 0?void 0:E.token);break;case _e.ParentCommand.MoveToWait:await n.moveToWait((S=y.value)===null||S===void 0?void 0:S.token);break;case _e.ParentCommand.MoveToWaitingChildren:{let R=await n.moveToWaitingChildren((x=y.value)===null||x===void 0?void 0:x.token,(C=y.value)===null||C===void 0?void 0:C.opts);a.send({requestId:y.requestId,cmd:_e.ChildCommand.MoveToWaitingChildrenResponse,value:R})}break;case _e.ParentCommand.Update:await n.updateData(y.value);break;case _e.ParentCommand.GetChildrenValues:{let R=await n.getChildrenValues();a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetChildrenValuesResponse,value:R})}break;case _e.ParentCommand.GetIgnoredChildrenFailures:{let R=await n.getIgnoredChildrenFailures();a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetIgnoredChildrenFailuresResponse,value:R})}break;case _e.ParentCommand.GetDependenciesCount:{let R=await n.getDependenciesCount(y.value);a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetDependenciesCountResponse,value:R})}break;case _e.ParentCommand.GetDependencies:{let R=await n.getDependencies(y.value);a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetDependenciesResponse,value:R})}break}}catch(R){f(R)}},a.on("message",o),a.send({cmd:_e.ChildCommand.Start,job:n.asJSONSandbox(),token:i}),s&&(c=()=>{try{a.send({cmd:_e.ChildCommand.Cancel,value:s.reason})}catch{}},s.aborted?c():s.addEventListener("abort",c,{once:!0}))}catch(y){f(y)}})()});return await d,d}finally{s&&c&&s.removeEventListener("abort",c),a&&(a.off("message",o),a.off("exit",l),a.exitCode===null&&a.signalCode===null&&e.release(a))}};Cu.default=OC});var eK=h((Yo,Xv)=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.Worker=void 0;var Go=V("fs"),RC=V("url"),_i=V("path"),CC=xs(),zn=ut(),_C=_r(),MC=Fo(),PC=Nc(),NC=Si(),qC=_u(),JC=Oc(),$n=Js(),ie=at(),LC=_o(),FC=xu(),VC=10,Mu=class extends _C.QueueBase{static RateLimitError(){return new $n.RateLimitError}constructor(e,t,n,i){var s;if(super(e,Object.assign(Object.assign({drainDelay:5,concurrency:1,lockDuration:3e4,maximumRateLimitDelay:3e4,maxStalledCount:1,stalledInterval:3e4,autorun:!0,runRetryDelay:15e3},n),{blockingConnection:!0}),i),this.abortDelayController=null,this.blockUntil=0,this.drained=!1,this.limitUntil=0,this.processorAcceptsSignal=!1,this.stalledCheckerRunning=!1,this.waiting=null,this.running=!1,this.mainLoopRunning=null,!n||!n.connection)throw new Error("Worker requires a connection");if(typeof this.opts.maxStalledCount!="number"||this.opts.maxStalledCount<0)throw new Error("maxStalledCount must be greater or equal than 0");if(typeof this.opts.maxStartedAttempts=="number"&&this.opts.maxStartedAttempts<0)throw new Error("maxStartedAttempts must be greater or equal than 0");if(typeof this.opts.stalledInterval!="number"||this.opts.stalledInterval<=0)throw new Error("stalledInterval must be greater than 0");if(typeof this.opts.drainDelay!="number"||this.opts.drainDelay<=0)throw new Error("drainDelay must be greater than 0");if(this.concurrency=this.opts.concurrency,this.opts.lockRenewTime=this.opts.lockRenewTime||this.opts.lockDuration/2,this.id=(0,zn.randomUUID)(),this.createLockManager(),t){if(typeof t=="function")this.processFn=t,this.processorAcceptsSignal=t.length>=3;else{if(t instanceof RC.URL){if(!Go.existsSync(t))throw new Error(`URL ${t} does not exist in the local file system`);t=t.href}else{let f=t+([".js",".ts",".flow",".cjs",".mjs"].includes(_i.extname(t))?"":".js");if(!Go.existsSync(f))throw new Error(`File ${f} does not exist`)}let o=_i.dirname(Xv.filename||__filename),l=_i.join(o,"main-worker.js"),c=_i.join(o,"main.js"),d=this.opts.useWorkerThreads?l:c;try{Go.statSync(d)}catch{let f=this.opts.useWorkerThreads?"main-worker.js":"main.js";d=_i.join(process.cwd(),`dist/cjs/classes/${f}`),Go.statSync(d)}this.childPool=new PC.ChildPool({mainFile:d,useWorkerThreads:this.opts.useWorkerThreads,workerForkOptions:this.opts.workerForkOptions,workerThreadsOptions:this.opts.workerThreadsOptions}),this.createSandbox(t),this.processorAcceptsSignal=!0}this.opts.autorun&&this.run().catch(o=>this.emit("error",o))}let a=this.clientName()+(this.opts.name?`:w:${this.opts.name}`:"");this.blockingConnection=new NC.RedisConnection((0,zn.isRedisInstance)(n.connection)?n.connection.isCluster?n.connection.duplicate(void 0,{redisOptions:Object.assign(Object.assign({},((s=n.connection.options)===null||s===void 0?void 0:s.redisOptions)||{}),{connectionName:a})}):n.connection.duplicate({connectionName:a}):Object.assign(Object.assign({},n.connection),{connectionName:a}),{shared:!1,blocking:!0,skipVersionCheck:n.skipVersionCheck}),this.blockingConnection.on("error",o=>this.emit("error",o)),this.blockingConnection.on("ready",()=>setTimeout(()=>this.emit("ready"),0))}createLockManager(){this.lockManager=new FC.LockManager(this,{lockRenewTime:this.opts.lockRenewTime,lockDuration:this.opts.lockDuration,workerId:this.id,workerName:this.opts.name})}createSandbox(e){this.processFn=(0,qC.default)(e,this.childPool).bind(this)}async extendJobLocks(e,t,n){return this.scripts.extendLocks(e,t,n)}emit(e,...t){return super.emit(e,...t)}off(e,t){return super.off(e,t),this}on(e,t){return super.on(e,t),this}once(e,t){return super.once(e,t),this}callProcessJob(e,t,n){return this.processFn(e,t,n)}createJob(e,t){return this.Job.fromJSON(this,e,t)}async waitUntilReady(){return await super.waitUntilReady(),this.blockingConnection.client}cancelJob(e,t){return this.lockManager.cancelJob(e,t)}cancelAllJobs(e){this.lockManager.cancelAllJobs(e)}set concurrency(e){if(typeof e!="number"||e<1||!isFinite(e))throw new Error("concurrency must be a finite number greater than 0");this._concurrency=e}get concurrency(){return this._concurrency}get repeat(){return new Promise(async e=>{if(!this._repeat){let t=await this.client;this._repeat=new MC.Repeat(this.name,Object.assign(Object.assign({},this.opts),{connection:t})),this._repeat.on("error",this.emit.bind(this,"error"))}e(this._repeat)})}get jobScheduler(){return new Promise(async e=>{if(!this._jobScheduler){let t=await this.client;this._jobScheduler=new LC.JobScheduler(this.name,Object.assign(Object.assign({},this.opts),{connection:t})),this._jobScheduler.on("error",this.emit.bind(this,"error"))}e(this._jobScheduler)})}async run(){if(!this.processFn)throw new Error("No process function is defined.");if(this.running)throw new Error("Worker is already running.");try{if(this.running=!0,this.closing||this.paused)return;await this.startStalledCheckTimer(),this.opts.skipLockRenewal||this.lockManager.start();let e=await this.client,t=await this.blockingConnection.client;this.mainLoopRunning=this.mainLoop(e,t),await this.mainLoopRunning}finally{this.running=!1}}async waitForRateLimit(){var e;let t=this.limitUntil;if(t>Date.now()){(e=this.abortDelayController)===null||e===void 0||e.abort(),this.abortDelayController=new CC.AbortController;let n=this.getRateLimitDelay(t-Date.now());await this.delay(n,this.abortDelayController),this.drained=!1,this.limitUntil=0}}async mainLoop(e,t){let n=new JC.AsyncFifoQueue,i=0;for(;!this.closing&&!this.paused||n.numTotal()>0;){for(;!this.closing&&!this.paused&&!this.waiting&&n.numTotal()<this._concurrency&&!this.isRateLimited();){let a=`${this.id}:${i++}`,o=this.retryIfFailed(()=>this._getNextJob(e,t,a,{block:!0}),{delayInMs:this.opts.runRetryDelay,onlyEmitError:!0});if(n.add(o),this.waiting&&n.numTotal()>1||!await o&&n.numTotal()>1||this.blockUntil)break}let s;do s=await n.fetch();while(!s&&n.numQueued()>0);if(s){let a=s.token;n.add(this.processJob(s,a,()=>n.numTotal()<=this._concurrency))}else n.numQueued()===0&&await this.waitForRateLimit()}}async getNextJob(e,{block:t=!0}={}){var n,i;let s=await this._getNextJob(await this.client,await this.blockingConnection.client,e,{block:t});return this.trace(ie.SpanKind.INTERNAL,"getNextJob",this.name,async a=>(a?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.QueueName]:this.name,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.WorkerOptions]:JSON.stringify({block:t}),[ie.TelemetryAttributes.JobId]:s?.id}),s),(i=(n=s?.opts)===null||n===void 0?void 0:n.telemetry)===null||i===void 0?void 0:i.metadata)}async _getNextJob(e,t,n,{block:i=!0}={}){if(this.paused||this.closing)return;let s;if(this.drained&&i&&!this.limitUntil&&!this.waiting){this.waiting=this.waitForJob(t,this.blockUntil);try{this.blockUntil=await this.waiting,(this.blockUntil<=0||this.blockUntil-Date.now()<1)&&(s=await this.moveToActive(e,n,this.opts.name))}finally{this.waiting=null}}else this.isRateLimited()||(s=await this.moveToActive(e,n,this.opts.name));return s&&this.emit("active",s,"waiting"),s}async rateLimit(e){await this.trace(ie.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerRateLimit]:e}),await this.client.then(n=>n.set(this.keys.limiter,Number.MAX_SAFE_INTEGER,"PX",e))})}get minimumBlockTimeout(){return this.blockingConnection.capabilities.canBlockFor1Ms?.001:.002}isRateLimited(){return this.limitUntil>Date.now()}async moveToActive(e,t,n){let[i,s,a,o]=await this.scripts.moveToActive(e,t,n);return this.updateDelays(a,o),this.nextJobFromJobData(i,s,t)}async waitForJob(e,t){if(this.paused)return 1/0;let n;try{if(!this.closing&&!this.isRateLimited()){let i=this.getBlockTimeout(t);if(i>0){i=this.blockingConnection.capabilities.canDoubleTimeout?i:Math.ceil(i),n=setTimeout(async()=>{e.disconnect(!this.closing)},i*1e3+1e3),this.updateDelays();let s=await e.bzpopmin(this.keys.marker,i);if(s){let[a,o,l]=s;if(o){let c=parseInt(l);return t&&c>t?t:c}}}return 0}}catch(i){(0,zn.isNotConnectionError)(i)&&this.emit("error",i),this.closing||await this.delay()}finally{clearTimeout(n)}return 1/0}getBlockTimeout(e){let t=this.opts;if(e){let n=e-Date.now();return n<=0?n:n<this.minimumBlockTimeout*1e3?this.minimumBlockTimeout:Math.min(n/1e3,VC)}else return Math.max(t.drainDelay,this.minimumBlockTimeout)}getRateLimitDelay(e){return Math.min(e,this.opts.maximumRateLimitDelay)}async delay(e,t){await(0,zn.delay)(e||zn.DELAY_TIME_1,t)}updateDelays(e=0,t=0){let n=Math.max(e,0);n>0?this.limitUntil=Date.now()+n:this.limitUntil=0,this.blockUntil=Math.max(t,0)||0}async nextJobFromJobData(e,t,n){if(!e)this.drained||(this.emit("drained"),this.drained=!0);else{this.drained=!1;let i=this.createJob(e,t);i.token=n;try{await this.retryIfFailed(async()=>{let s=!!i.repeatJobKey,a=s&&i.repeatJobKey.split(":").length>=5,o=s&&!a;a&&(o=await(await this.jobScheduler).isJobScheduler(i.repeatJobKey)),o?await(await this.jobScheduler).upsertJobScheduler(i.repeatJobKey,i.opts.repeat,i.name,i.data,i.opts,{override:!1,producerId:i.id}):i.opts.repeat&&await(await this.repeat).updateRepeatableJob(i.name,i.data,i.opts,{override:!1})},{delayInMs:this.opts.runRetryDelay})}catch(s){let a=s instanceof Error?s.message:String(s),o=new Error(`Failed to add repeatable job for next iteration: ${a}`);this.emit("error",o);return}return i}}async processJob(e,t,n=()=>!0){var i,s;let a=(s=(i=e.opts)===null||i===void 0?void 0:i.telemetry)===null||s===void 0?void 0:s.metadata;return this.trace(ie.SpanKind.CONSUMER,"process",this.name,async o=>{o?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.JobId]:e.id,[ie.TelemetryAttributes.JobName]:e.name});let l=this.lockManager.trackJob(e.id,t,e.processedOn,this.processorAcceptsSignal);try{let c=this.getUnrecoverableErrorMessage(e);if(c)return await this.retryIfFailed(()=>(this.lockManager.untrackJob(e.id),this.handleFailed(new $n.UnrecoverableError(c),e,t,n,o)),{delayInMs:this.opts.runRetryDelay,span:o});let d=await this.callProcessJob(e,t,l?l.signal:void 0);return await this.retryIfFailed(()=>(this.lockManager.untrackJob(e.id),this.handleCompleted(d,e,t,n,o)),{delayInMs:this.opts.runRetryDelay,span:o})}catch(c){return await this.retryIfFailed(()=>(this.lockManager.untrackJob(e.id),this.handleFailed(c,e,t,n,o)),{delayInMs:this.opts.runRetryDelay,span:o,onlyEmitError:!0})}finally{this.lockManager.untrackJob(e.id);let c=Date.now();o?.setAttributes({[ie.TelemetryAttributes.JobFinishedTimestamp]:c,[ie.TelemetryAttributes.JobAttemptFinishedTimestamp]:e.finishedOn||c,[ie.TelemetryAttributes.JobProcessedTimestamp]:e.processedOn})}},a)}getUnrecoverableErrorMessage(e){if(e.deferredFailure)return e.deferredFailure;if(this.opts.maxStartedAttempts&&this.opts.maxStartedAttempts<e.attemptsStarted)return"job started more than allowable limit"}async handleCompleted(e,t,n,i=()=>!0,s){if(!this.connection.closing){let a=await t.moveToCompleted(e,n,i()&&!(this.closing||this.paused));if(this.emit("completed",t,e,"active"),s?.addEvent("job completed",{[ie.TelemetryAttributes.JobResult]:JSON.stringify(e)}),s?.setAttributes({[ie.TelemetryAttributes.JobAttemptsMade]:t.attemptsMade}),Array.isArray(a)){let[o,l,c,d]=a;return this.updateDelays(c,d),this.nextJobFromJobData(o,l,n)}}}async handleFailed(e,t,n,i=()=>!0,s){if(!this.connection.closing){if(e.message===$n.RATE_LIMIT_ERROR){let o=await this.moveLimitedBackToWait(t,n);this.limitUntil=o>0?Date.now()+o:0;return}if(e instanceof $n.DelayedError||e.name=="DelayedError"||e instanceof $n.WaitingError||e.name=="WaitingError"||e instanceof $n.WaitingChildrenError||e.name=="WaitingChildrenError"){let o=await this.client;return this.moveToActive(o,n,this.opts.name)}let a=await t.moveToFailed(e,n,i()&&!(this.closing||this.paused));if(this.emit("failed",t,e,"active"),s?.addEvent("job failed",{[ie.TelemetryAttributes.JobFailedReason]:e.message}),s?.setAttributes({[ie.TelemetryAttributes.JobAttemptsMade]:t.attemptsMade}),Array.isArray(a)){let[o,l,c,d]=a;return this.updateDelays(c,d),this.nextJobFromJobData(o,l,n)}}}async pause(e){await this.trace(ie.SpanKind.INTERNAL,"pause",this.name,async t=>{var n;t?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.WorkerDoNotWaitActive]:e}),this.paused||(this.paused=!0,e||await this.whenCurrentJobsFinished(),(n=this.stalledCheckStopper)===null||n===void 0||n.call(this),this.emit("paused"))})}resume(){(!this.running||this.paused)&&this.trace(ie.SpanKind.INTERNAL,"resume",this.name,e=>{e?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name}),this.paused=!1,this.running?this.startStalledCheckTimer().catch(t=>{this.emit("error",t)}):this.processFn&&this.run(),this.emit("resumed")}).catch(e=>{this.emit("error",e)})}isPaused(){return!!this.paused}isRunning(){return this.running}async close(e=!1){return this.closing?this.closing:(this.closing=(async()=>{await this.trace(ie.SpanKind.INTERNAL,"close",this.name,async t=>{var n,i;t?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.WorkerForceClose]:e}),this.emit("closing","closing queue"),(n=this.abortDelayController)===null||n===void 0||n.abort();let s=[()=>e||this.whenCurrentJobsFinished(!1),()=>this.lockManager.close(),()=>{var a;return(a=this.childPool)===null||a===void 0?void 0:a.clean()},()=>this.blockingConnection.close(e),()=>this.connection.close(e)];for(let a of s)try{await a()}catch(o){this.emit("error",o)}(i=this.stalledCheckStopper)===null||i===void 0||i.call(this),this.closed=!0,this.emit("closed")})})(),await this.closing)}async startStalledCheckTimer(){this.opts.skipStalledCheck||!this.closing&&!this.stalledCheckerRunning&&await this.trace(ie.SpanKind.INTERNAL,"startStalledCheckTimer",this.name,async e=>{e?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name}),this.stalledCheckerRunning=!0,this.stalledChecker().catch(t=>{this.emit("error",t)}).finally(()=>{this.stalledCheckerRunning=!1})})}async stalledChecker(){for(;!(this.closing||this.paused);)await this.checkConnectionError(()=>this.moveStalledJobsToWait()),await new Promise(e=>{let t=setTimeout(e,this.opts.stalledInterval);this.stalledCheckStopper=()=>{clearTimeout(t),e()}})}async whenCurrentJobsFinished(e=!0){this.waiting?await this.blockingConnection.disconnect(e):e=!1,this.mainLoopRunning&&await this.mainLoopRunning,e&&await this.blockingConnection.reconnect()}async retryIfFailed(e,t){var n;let i=0,s=t.maxRetries||1/0;do try{return await e()}catch(a){if((n=t.span)===null||n===void 0||n.recordException(a.message),(0,zn.isNotConnectionError)(a)){if(!this.paused&&!this.closing&&this.emit("error",a),t.onlyEmitError)return;throw a}else if(t.delayInMs&&!this.closing&&!this.closed&&await this.delay(t.delayInMs,this.abortDelayController),i+1>=s)throw a}while(++i<s)}async moveStalledJobsToWait(){await this.trace(ie.SpanKind.INTERNAL,"moveStalledJobsToWait",this.name,async e=>{let t=await this.scripts.moveStalledJobsToWait();e?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.WorkerStalledJobs]:t}),t.forEach(n=>{e?.addEvent("job stalled",{[ie.TelemetryAttributes.JobId]:n}),this.emit("stalled",n,"active")})})}moveLimitedBackToWait(e,t){return e.moveToWait(t)}};Yo.Worker=Mu});var tK=h(Te=>{"use strict";Object.defineProperty(Te,"__esModule",{value:!0});var Oe=(Qe(),it(He));Oe.__exportStar(Oc(),Te);Oe.__exportStar(Rc(),Te);Oe.__exportStar(_c(),Te);Oe.__exportStar(Nc(),Te);Oe.__exportStar(Am(),Te);Oe.__exportStar(Js(),Te);Oe.__exportStar(i0(),Te);Oe.__exportStar(Pn(),Te);Oe.__exportStar(_o(),Te);Oe.__exportStar(xu(),Te);Oe.__exportStar(_r(),Te);Oe.__exportStar(Uv(),Te);Oe.__exportStar(zv(),Te);Oe.__exportStar(Du(),Te);Oe.__exportStar(ca(),Te);Oe.__exportStar(Zv(),Te);Oe.__exportStar(Si(),Te);Oe.__exportStar(Fo(),Te);Oe.__exportStar(_u(),Te);Oe.__exportStar(_d(),Te);Oe.__exportStar(eK(),Te)});var nK=h(rK=>{"use strict";Object.defineProperty(rK,"__esModule",{value:!0})});var sK=h(iK=>{"use strict";Object.defineProperty(iK,"__esModule",{value:!0})});var oK=h(aK=>{"use strict";Object.defineProperty(aK,"__esModule",{value:!0})});var cK=h(lK=>{"use strict";Object.defineProperty(lK,"__esModule",{value:!0})});var uK=h(dK=>{"use strict";Object.defineProperty(dK,"__esModule",{value:!0})});var fK=h(pK=>{"use strict";Object.defineProperty(pK,"__esModule",{value:!0})});var yK=h(hK=>{"use strict";Object.defineProperty(hK,"__esModule",{value:!0})});var bK=h(mK=>{"use strict";Object.defineProperty(mK,"__esModule",{value:!0})});var vK=h(gK=>{"use strict";Object.defineProperty(gK,"__esModule",{value:!0})});var SK=h(KK=>{"use strict";Object.defineProperty(KK,"__esModule",{value:!0})});var kK=h(EK=>{"use strict";Object.defineProperty(EK,"__esModule",{value:!0})});var xK=h(IK=>{"use strict";Object.defineProperty(IK,"__esModule",{value:!0})});var jK=h(wK=>{"use strict";Object.defineProperty(wK,"__esModule",{value:!0})});var AK=h(TK=>{"use strict";Object.defineProperty(TK,"__esModule",{value:!0})});var OK=h(DK=>{"use strict";Object.defineProperty(DK,"__esModule",{value:!0})});var CK=h(RK=>{"use strict";Object.defineProperty(RK,"__esModule",{value:!0})});var MK=h(_K=>{"use strict";Object.defineProperty(_K,"__esModule",{value:!0})});var NK=h(PK=>{"use strict";Object.defineProperty(PK,"__esModule",{value:!0})});var JK=h(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.ClientType=void 0;var qK;(function(r){r.blocking="blocking",r.normal="normal"})(qK||(Bo.ClientType=qK={}))});var FK=h(LK=>{"use strict";Object.defineProperty(LK,"__esModule",{value:!0})});var GK=h(VK=>{"use strict";Object.defineProperty(VK,"__esModule",{value:!0})});var BK=h(YK=>{"use strict";Object.defineProperty(YK,"__esModule",{value:!0})});var UK=h(WK=>{"use strict";Object.defineProperty(WK,"__esModule",{value:!0})});var $K=h(zK=>{"use strict";Object.defineProperty(zK,"__esModule",{value:!0})});var QK=h(HK=>{"use strict";Object.defineProperty(HK,"__esModule",{value:!0})});var XK=h(ZK=>{"use strict";Object.defineProperty(ZK,"__esModule",{value:!0})});var tS=h(eS=>{"use strict";Object.defineProperty(eS,"__esModule",{value:!0})});var nS=h(rS=>{"use strict";Object.defineProperty(rS,"__esModule",{value:!0})});var sS=h(iS=>{"use strict";Object.defineProperty(iS,"__esModule",{value:!0})});var oS=h(aS=>{"use strict";Object.defineProperty(aS,"__esModule",{value:!0})});var cS=h(lS=>{"use strict";Object.defineProperty(lS,"__esModule",{value:!0})});var uS=h(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0})});var fS=h(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0})});var hS=h(le=>{"use strict";Object.defineProperty(le,"__esModule",{value:!0});var ce=(Qe(),it(He));ce.__exportStar(nK(),le);ce.__exportStar(sK(),le);ce.__exportStar(oK(),le);ce.__exportStar(cK(),le);ce.__exportStar(uK(),le);ce.__exportStar(fK(),le);ce.__exportStar(yK(),le);ce.__exportStar(bK(),le);ce.__exportStar(vK(),le);ce.__exportStar(SK(),le);ce.__exportStar(kK(),le);ce.__exportStar(xK(),le);ce.__exportStar(jK(),le);ce.__exportStar(AK(),le);ce.__exportStar(OK(),le);ce.__exportStar(CK(),le);ce.__exportStar(MK(),le);ce.__exportStar(NK(),le);ce.__exportStar(JK(),le);ce.__exportStar(FK(),le);ce.__exportStar(GK(),le);ce.__exportStar(BK(),le);ce.__exportStar(UK(),le);ce.__exportStar($K(),le);ce.__exportStar(QK(),le);ce.__exportStar(XK(),le);ce.__exportStar(tS(),le);ce.__exportStar(nS(),le);ce.__exportStar(sS(),le);ce.__exportStar(oS(),le);ce.__exportStar(cS(),le);ce.__exportStar(uS(),le);ce.__exportStar(fS(),le)});var mS=h(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0})});var gS=h(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0})});var KS=h(vS=>{"use strict";Object.defineProperty(vS,"__esModule",{value:!0})});var ES=h(SS=>{"use strict";Object.defineProperty(SS,"__esModule",{value:!0})});var IS=h(kS=>{"use strict";Object.defineProperty(kS,"__esModule",{value:!0})});var wS=h(xS=>{"use strict";Object.defineProperty(xS,"__esModule",{value:!0})});var TS=h(jS=>{"use strict";Object.defineProperty(jS,"__esModule",{value:!0})});var DS=h(AS=>{"use strict";Object.defineProperty(AS,"__esModule",{value:!0})});var RS=h(OS=>{"use strict";Object.defineProperty(OS,"__esModule",{value:!0})});var _S=h(CS=>{"use strict";Object.defineProperty(CS,"__esModule",{value:!0})});var PS=h(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0})});var NS=h(vt=>{"use strict";Object.defineProperty(vt,"__esModule",{value:!0});var Pt=(Qe(),it(He));Pt.__exportStar(mS(),vt);Pt.__exportStar(gS(),vt);Pt.__exportStar(KS(),vt);Pt.__exportStar(ES(),vt);Pt.__exportStar(IS(),vt);Pt.__exportStar(wS(),vt);Pt.__exportStar(TS(),vt);Pt.__exportStar(DS(),vt);Pt.__exportStar(RS(),vt);Pt.__exportStar(_S(),vt);Pt.__exportStar(PS(),vt)});var JS=h(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0})});var LS=h(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});var un=(Qe(),it(He));un.__exportStar(tK(),lr);un.__exportStar(at(),lr);un.__exportStar(hS(),lr);un.__exportStar(NS(),lr);un.__exportStar(ut(),lr);un.__exportStar(JS(),lr);un.__exportStar(oa(),lr)});var Ju=Gu(ds(),1);var Ho=Gu(LS(),1);import{MessageId as QC}from"@workflow/world";import Wo from"node:crypto";var Mi="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Pi=32;var GC=16,Pu=10,FS=0xffffffffffff;var cr;(function(r){r.Base32IncorrectEncoding="B32_ENC_INVALID",r.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",r.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",r.EncodeTimeNegative="ENC_TIME_NEG",r.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",r.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",r.PRNGDetectFailure="PRNG_DETECT",r.ULIDInvalid="ULID_INVALID",r.Unexpected="UNEXPECTED",r.UUIDInvalid="UUID_INVALID"})(cr||(cr={}));var dr=class extends Error{constructor(e,t){super(`${t} (${e})`),this.name="ULIDError",this.code=e}};function YC(r){let e=Math.floor(r()*Pi)%Pi;return Mi.charAt(e)}function VS(r,e,t){return e>r.length-1?r:r.substr(0,e)+t+r.substr(e+1)}function BC(r){let e,t=r.length,n,i,s=r,a=Pi-1;for(;!e&&t-->=0;){if(n=s[t],i=Mi.indexOf(n),i===-1)throw new dr(cr.Base32IncorrectEncoding,"Incorrectly encoded string");if(i===a){s=VS(s,t,Mi[0]);continue}e=VS(s,t,Mi[i+1])}if(typeof e=="string")return e;throw new dr(cr.Base32IncorrectEncoding,"Failed incrementing string")}function WC(r){let e=UC(),t=e&&(e.crypto||e.msCrypto)||(typeof Wo<"u"?Wo:null);if(typeof t?.getRandomValues=="function")return()=>{let n=new Uint8Array(1);return t.getRandomValues(n),n[0]/256};if(typeof t?.randomBytes=="function")return()=>t.randomBytes(1).readUInt8()/256;if(Wo?.randomBytes)return()=>Wo.randomBytes(1).readUInt8()/256;throw new dr(cr.PRNGDetectFailure,"Failed to find a reliable PRNG")}function UC(){return $C()?self:typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:null}function zC(r,e){let t="";for(;r>0;r--)t=YC(e)+t;return t}function GS(r,e=Pu){if(isNaN(r))throw new dr(cr.EncodeTimeValueMalformed,`Time must be a number: ${r}`);if(r>FS)throw new dr(cr.EncodeTimeSizeExceeded,`Cannot encode a time larger than ${FS}: ${r}`);if(r<0)throw new dr(cr.EncodeTimeNegative,`Time must be positive: ${r}`);if(Number.isInteger(r)===!1)throw new dr(cr.EncodeTimeValueMalformed,`Time must be an integer: ${r}`);let t,n="";for(let i=e;i>0;i--)t=r%Pi,n=Mi.charAt(t)+n,r=(r-t)/Pi;return n}function $C(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function Uo(r){let e=r||WC(),t=0,n;return function(s){let a=!s||isNaN(s)?Date.now():s;if(a<=t){let l=n=BC(n);return GS(t,Pu)+l}t=a;let o=n=zC(GC,e);return GS(a,Pu)+o}}var zo=class{promise=Promise.resolve();andThen(e){return this.promise=this.promise.then(()=>e(),()=>e()),this.promise}};function Ee(r){let e={};for(let t in r)r[t]!==null?e[t]=r[t]:e[t]=void 0;return e}var $o=class{count=0;disposeFn;constructor(e){this.disposeFn=e}inc(){this.count++}async dec(){this.count--,this.count===0&&this.disposeFn&&await this.disposeFn()}getCount(){return this.count}};function HC(r){return(...e)=>{let t=process.env.WORKFLOW_DEBUG;if(!t||!(t==="1"||t==="true"||t==="*"||t.split(",").some(o=>o.trim()===r)))return;let s=`[${new Date().toISOString()}] [${r}]`,a=e.map(o=>typeof o=="object"?JSON.stringify(o,null,2):String(o)).join(" ");process.stderr.write(`${s} ${a}
|
|
8913
|
-
`)}}var Nu=HC("stackbone-workflow-world");var ZC={workflow:"flow",step:"step"},XC=r=>{let e=/^__(?:[a-z][a-z0-9]*_)?wkf_(workflow|step)_/.exec(r);if(!e)throw new Error(`Invalid queue name: ${r}`);return e[1]};function YS(r,e){return Promise.race([r,new Promise(t=>{setTimeout(t,e).unref?.()})])}function e_(r){return r.baseUrl?r.baseUrl:process.env.WORKFLOW_BASE_URL?process.env.WORKFLOW_BASE_URL:`http://localhost:${process.env.PORT??"3000"}`}function BS(r,e){let t=Uo(),n=e.jobPrefix||"workflow_",i={workflow:`${n}flows`,step:`${n}steps`},s=e.maxAttempts??5,a=e.backoffType??"exponential",o=e.backoffDelayMs??1e3,l=e.httpTimeoutMs??3e5,c=e.stalledInterval??3e4,d=e.maxStalledCount??1,u=e.idempotencyTtlMs??6e4,f=e.closeTimeoutMs??5e3,p={host:r.options.host,port:r.options.port,password:r.options.password,db:r.options.db,maxRetriesPerRequest:null},y=new Map,g=new Map;for(let[N,F]of Object.entries(i))y.set(N,new Ho.Queue(F,{connection:p}));let E=async(N,F,O)=>{let I=XC(N),B=y.get(I);if(!B)throw new Error(`No BullMQ queue registered for kind ${I}`);let te=QC.parse(`msg_${t()}`),m=O?.delaySeconds?Math.max(0,O.delaySeconds*1e3):void 0;try{await B.add(N,{queueName:N,message:F},{jobId:te,delay:m,attempts:s,backoff:{type:a,delay:o},...O?.idempotencyKey&&{deduplication:{id:O.idempotencyKey,ttl:u}},removeOnComplete:{age:86400,count:1e3},removeOnFail:{age:7*86400}})}catch(A){Nu("queue add returned:",A)}return{messageId:te}};function S(N){let F=ZC[N];return async O=>{let B=`${e_(e)}/.well-known/workflow/v1/${F}`,te=O.id??`msg_${t()}`,m=await fetch(B,{method:"POST",headers:{"content-type":"application/json","x-vqs-queue-name":O.data.queueName,"x-vqs-message-id":te,"x-vqs-message-attempt":String(O.attemptsMade+1)},body:JSON.stringify(O.data.message),signal:AbortSignal.timeout(l)});if(m.ok)return;let A=await m.text();if(m.status===503)try{let j=JSON.parse(A);if(typeof j?.timeoutSeconds=="number"){let D=j.timeoutSeconds*1e3;await O.moveToDelayed(Date.now()+D,O.token);return}}catch{}throw new Error(`HTTP ${m.status}: ${A}`)}}let x=(N,F)=>async O=>{let I=O.headers.get("x-vqs-queue-name"),B=O.headers.get("x-vqs-message-id"),te=O.headers.get("x-vqs-message-attempt");if(!I||!B||!te||!O.body)return Response.json({error:"Missing required headers or body"},{status:400});if(!I.startsWith(N))return Response.json({error:"Unhandled queue"},{status:400});let m=Number.parseInt(te,10);try{let A=await O.json(),j=await F(A,{attempt:m,queueName:I,messageId:B});return j&&typeof j.timeoutSeconds=="number"?Response.json({timeoutSeconds:j.timeoutSeconds},{status:503}):Response.json({ok:!0})}catch(A){return Nu("queue handler error:",A),Response.json({error:String(A)},{status:500})}},C=async()=>"redis";async function R(){let N=e.queueConcurrency||10;for(let[F,O]of Object.entries(i)){let I=new Ho.Worker(O,S(F),{connection:p,concurrency:N,stalledInterval:c,maxStalledCount:d,drainDelay:300});I.on("failed",(B,te)=>{console.error(`Job ${B?.id} failed:`,te)}),I.on("error",B=>{console.error("Worker error:",B)}),g.set(F,I)}await Promise.all(Array.from(g.values()).map(F=>F.waitUntilReady()))}async function T(){let N={waiting:0,active:0,completed:0,failed:0,delayed:0};for(let F of y.values()){let O=await F.getJobCounts("waiting","active","completed","failed","delayed");N.waiting+=O.waiting,N.active+=O.active,N.completed+=O.completed,N.failed+=O.failed,N.delayed+=O.delayed}return N}async function k(){await Promise.all(Array.from(g.values()).map(N=>YS(N.close(),f).catch(()=>{}))),await Promise.all(Array.from(y.values()).map(N=>YS(N.close(),f).catch(()=>{})))}return{createQueueHandler:x,getDeploymentId:C,queue:E,getQueueStats:T,async start(){await R()},async stop(){await k()}}}var WS=r=>`${r}events_notify`;function t_(r){let e;try{e=JSON.parse(r)}catch{return null}if(!e||typeof e!="object")return null;let{runId:t,eventId:n,eventType:i,correlationId:s}=e;return typeof t!="string"||typeof n!="string"||typeof i!="string"?null:{runId:t,eventId:n,eventType:i,...typeof s=="string"?{correlationId:s}:{}}}async function US(r,e,t){try{await r.publish(WS(e),JSON.stringify(t))}catch{}}function zS(r){let{redis:e,keyPrefix:t}=r,n=WS(t),i=e.duplicate(),s=new Set,a=i.subscribe(n).then(()=>{});return i.on("message",(o,l)=>{if(o!==n)return;let c=t_(l);if(c)for(let d of s)try{d(c)}catch(u){console.error("Error in events-notify subscriber handler:",u)}}),{on(o){return s.add(o),()=>{s.delete(o)}},ready(){return a},async stop(){s.clear(),i.removeAllListeners("message");try{await i.quit()}catch{i.disconnect()}}}}import{EntityConflictError as $S,RunExpiredError as r_,WorkflowWorldError as lt}from"@workflow/errors";import{EventSchema as pn,HookSchema as Qo,isLegacySpecVersion as n_,requiresNewerWorld as i_,SPEC_VERSION_CURRENT as qu,StepSchema as Mr,WorkflowRunSchema as zt}from"@workflow/world";var s_=new Set(["createdAt","updatedAt","startedAt","completedAt","retryAfter"]);function a_(r,e){if(s_.has(r)&&typeof e=="string"){let t=new Date(e);return Number.isNaN(t.getTime())?e:t}return e}function o_(r,e){return e instanceof Uint8Array?{__uint8array:!0,data:Array.from(e)}:e}function l_(r,e){let t=a_(r,e);return t&&typeof t=="object"&&t.__uint8array===!0?new Uint8Array(t.data):t}function Ve(r){return JSON.stringify(r,o_)}function ve(r){return JSON.parse(r,l_)}function HS(r,e){if(e==="none"&&"metadata"in r){let{metadata:t,...n}=r;return{metadata:void 0,...n}}return r}function QS(r,e){if(e==="none"){let{input:t,output:n,...i}=r;return{input:void 0,output:void 0,...i}}return r}function Zo(r,e){if(e==="none"){let{input:t,output:n,...i}=r;return{input:void 0,output:void 0,...i}}return r}function fn(r,e){if(e==="none"&&"eventData"in r){let{eventData:t,...n}=r;return n}return r}function ZS(r){let{redis:e,keyPrefix:t}=r,n=d=>`${t}run:${d}`,i=()=>`${t}runs:index`,s=d=>`${t}runs:by_name:${d}`,a=d=>`${t}runs:by_status:${d}`;function o(d){return d?.workflowName&&d?.status||d?.workflowName?s(d.workflowName):d?.status?a(d.status):i()}async function l(d,u){return u?(await e.zrevrank(d,u)??0)+1:0}function c(d,u){let f=[];for(let p of d??[]){if(!p?.[1])continue;let y=ve(p[1]),g=!u?.status||y.status===u.status,E=!u?.workflowName||y.workflowName===u.workflowName;if(g&&E){let S=u?.resolveData??"all",x=zt.parse(Ee(y));f.push(Zo(x,S))}}return f}return{get:(async(d,u)=>{let f=await e.get(n(d));if(!f)throw new lt(`Run not found: ${d}`,{status:404});let p=ve(f),y=zt.parse(Ee(p)),g=u?.resolveData??"all";return Zo(y,g)}),list:(async d=>{let u=d?.pagination?.limit??20,f=d?.pagination?.cursor,p=o(d),y=await l(p,f),g=await e.zrevrange(p,y,y+u),E=e.pipeline();for(let T of g)E.get(n(T));let S=await E.exec(),x=c(S,d),C=x.slice(0,u),R=x.length>u;return{data:C,hasMore:R,cursor:C.at(-1)?.runId??null}})}}function XS(r){let{redis:e,keyPrefix:t}=r,n=Uo(),i=T=>`${t}event:${T}`,s=T=>`${t}events:by_run:${T}`,a=T=>`${t}events:by_correlation:${T}`,o=T=>`${t}run:${T}`,l=()=>`${t}runs:index`,c=T=>`${t}runs:by_name:${T}`,d=T=>`${t}runs:by_status:${T}`,u=(T,k)=>`${t}step:${T}:${k}`,f=T=>`${t}steps:by_run:${T}`,p=T=>`${t}hook:${T}`,y=T=>`${t}hooks:by_token:${T}`,g=T=>`${t}hooks:by_run:${T}`;async function E(T){let k=g(T),N=await e.zrange(k,0,-1),F=e.pipeline();for(let O of N){let I=await e.get(p(O));if(I){let B=ve(I);F.del(p(O)),F.del(y(B.token))}}F.del(k),await F.exec()}async function S(T,k,N){return k?(await e[N==="desc"?"zrevrank":"zrank"](T,k)??0)+1:0}async function x(T,k,N,F){return e[F==="desc"?"zrevrange":"zrange"](T,k,k+N)}function C(T){let k=[];for(let N of T??[])if(N?.[1]){let F=ve(N[1]);k.push(F)}return k}async function R(T,k,N,F,O){let I=O?.resolveData??"all";switch(N.eventType){case"run_cancelled":{let B=new Date,te=await e.get(o(T));if(te){let m=ve(te),A={...m,status:"cancelled",completedAt:B,updatedAt:B};await e.set(o(T),Ve(A));let j=e.pipeline();j.zrem(d(m.status),T),j.zadd(d("cancelled"),B.getTime(),T),await j.exec(),await E(T);let D=zt.parse(Ee(A));return{run:Zo(D,I)}}return{}}case"wait_completed":case"hook_received":{let B=new Date,te={...N,runId:T,eventId:k,createdAt:B,specVersion:qu};await e.set(i(k),Ve(te));let m=B.getTime(),A=e.pipeline();A.zadd(s(T),m,k),N.correlationId&&A.zadd(a(N.correlationId),m,k),await A.exec();let j=pn.parse(te);return{event:fn(j,I)}}default:throw new Error(`Event type '${N.eventType}' not supported for legacy runs (specVersion: ${F.specVersion||"undefined"}). Please upgrade @workflow packages.`)}}return{async create(T,k,N){let F=`wevt_${n()}`,O=new Date,I;if(k.eventType==="run_created"&&(!T||T===""))I=`wrun_${n()}`;else if(T)I=T;else throw new Error("runId is required for non-run_created events");let B=k.specVersion??qu,te,m,A,j=M=>["completed","failed","cancelled"].includes(M),D=M=>["completed","failed","cancelled"].includes(M),w=null,Y=["step_completed","step_retrying"];if(k.eventType!=="run_created"&&!Y.includes(k.eventType)){let M=await e.get(o(I));if(M){let Z=ve(M);w={status:Z.status,specVersion:Z.specVersion}}}if(k.eventType==="run_started"&&!w&&"eventData"in k&&k.eventData){let M=k.eventData;if(M.deploymentId&&M.workflowName&&M.input!==void 0){let Z={runId:I,deploymentId:M.deploymentId,workflowName:M.workflowName,specVersion:B,input:M.input,executionContext:M.executionContext,status:"pending",output:void 0,error:void 0,completedAt:void 0,startedAt:void 0,createdAt:O,updatedAt:O};if(await e.setnx(o(I),Ve(Z))===1){let H=O.getTime();await e.pipeline().zadd(l(),H,I).zadd(c(M.workflowName),H,I).zadd(d("pending"),H,I).exec();let pe=`wevt_${n()}`,Nt={eventType:"run_created",eventData:{deploymentId:M.deploymentId,workflowName:M.workflowName,input:M.input,executionContext:M.executionContext},runId:I,eventId:pe,createdAt:O,specVersion:B};await e.set(i(pe),Ve(Nt)),await e.zadd(s(I),O.getTime(),pe),w={status:"pending",specVersion:B}}else{let H=await e.get(o(I));if(H){let pe=ve(H);w={status:pe.status,specVersion:pe.specVersion}}}}}if(w){if(i_(w.specVersion))throw new(await import("@workflow/errors")).RunNotSupportedError(w.specVersion,qu);if(n_(w.specVersion))return R(I,F,k,w,N)}if(w&&j(w.status)){let M=["run_started","run_completed","run_failed"];if(k.eventType==="run_cancelled"&&w.status==="cancelled"){let Z=await e.get(o(I)),se=new Date,H={...k,runId:I,eventId:F,createdAt:se,specVersion:B};await e.set(i(F),Ve(H));let pe=se.getTime();await e.zadd(s(I),pe,F);let Nt=pn.parse(H),Ni=N?.resolveData??"all";return{event:fn(Nt,Ni),run:Z?ve(Z):void 0}}if(k.eventType==="run_started")throw new r_(`Workflow run "${I}" is already in terminal state "${w.status}"`);if(M.includes(k.eventType)||k.eventType==="run_cancelled")throw new $S(`Cannot transition run from terminal state "${w.status}"`);if(k.eventType==="step_created"||k.eventType==="hook_created")throw new $S(`Cannot create new entities on run in terminal state "${w.status}"`)}let G=null;if(["step_started","step_retrying"].includes(k.eventType)&&k.correlationId){let M=await e.get(u(I,k.correlationId));if(M){let Z=ve(M);G={status:Z.status,startedAt:Z.startedAt}}if(!G)throw new lt(`Step "${k.correlationId}" not found`,{status:404});if(D(G.status))throw new lt(`Cannot modify step in terminal state "${G.status}"`,{status:410});if(w&&j(w.status)&&G.status!=="running")throw new lt(`Cannot modify non-running step on run in terminal state "${w.status}"`,{status:410})}if(["hook_disposed","hook_received"].includes(k.eventType)&&k.correlationId&&!await e.get(p(k.correlationId)))throw new lt(`Hook "${k.correlationId}" not found`,{status:404});if(k.eventType==="run_created"){let M=k.eventData,Z={runId:I,deploymentId:M.deploymentId,workflowName:M.workflowName,specVersion:B,input:M.input,executionContext:M.executionContext,status:"pending",output:void 0,error:void 0,completedAt:void 0,startedAt:void 0,createdAt:O,updatedAt:O},se=await e.setnx(o(I),Ve(Z)),H=O.getTime();if(await e.pipeline().zadd(l(),H,I).zadd(c(M.workflowName),H,I).zadd(d("pending"),H,I).exec(),se===1)te=zt.parse(Ee(Z));else{let pe=await e.get(o(I));pe&&(te=zt.parse(Ee(ve(pe))))}}if(k.eventType==="run_started"){if(w?.status==="running"){let Z=await e.get(o(I));Z&&(te=zt.parse(Ee(ve(Z))));let se=N?.resolveData??"all";return{run:te?Zo(te,se):void 0}}let M=await e.get(o(I));if(M){let Z=ve(M),se={...Z,status:"running",startedAt:O,updatedAt:O};await e.set(o(I),Ve(se));let H=e.pipeline();H.zrem(d(Z.status),I),H.zadd(d("running"),O.getTime(),I),await H.exec(),te=zt.parse(Ee(se))}}if(k.eventType==="run_completed"){let M=k.eventData,Z=await e.get(o(I));if(Z){let se=ve(Z),H={...se,status:"completed",output:M.output,completedAt:O,updatedAt:O};await e.set(o(I),Ve(H));let pe=e.pipeline();pe.zrem(d(se.status),I),pe.zadd(d("completed"),O.getTime(),I),await pe.exec(),await E(I),te=zt.parse(Ee(H))}}if(k.eventType==="run_failed"){let M=k.eventData,Z=typeof M.error=="string"?M.error:M.error?.message??"Unknown error",se=await e.get(o(I));if(se){let H=ve(se),pe={...H,status:"failed",error:{message:Z,stack:M.error?.stack,code:M.errorCode},completedAt:O,updatedAt:O};await e.set(o(I),Ve(pe));let Nt=e.pipeline();Nt.zrem(d(H.status),I),Nt.zadd(d("failed"),O.getTime(),I),await Nt.exec(),await E(I),te=zt.parse(Ee(pe))}}if(k.eventType==="run_cancelled"){let M=await e.get(o(I));if(M){let Z=ve(M),se={...Z,status:"cancelled",completedAt:O,updatedAt:O};await e.set(o(I),Ve(se));let H=e.pipeline();H.zrem(d(Z.status),I),H.zadd(d("cancelled"),O.getTime(),I),await H.exec(),await E(I),te=zt.parse(Ee(se))}}if(k.eventType==="step_created"){let M=k.eventData,Z={runId:I,stepId:k.correlationId,stepName:M.stepName,input:M.input,status:"pending",attempt:0,specVersion:B,createdAt:O,updatedAt:O},se=await e.setnx(u(I,k.correlationId),Ve(Z));if(await e.zadd(f(I),O.getTime(),k.correlationId),se===1)m=Mr.parse(Ee(Z));else{let H=await e.get(u(I,k.correlationId));H&&(m=Mr.parse(Ee(ve(H))))}}if(k.eventType==="step_started"){let M=!G?.startedAt,Z=await e.get(u(I,k.correlationId));if(Z){let se=ve(Z),H={...se,status:"running",attempt:se.attempt+1,...M?{startedAt:O}:{},updatedAt:O};await e.set(u(I,k.correlationId),Ve(H)),m=Mr.parse(Ee(H))}}if(k.eventType==="step_completed"){let M=k.eventData,Z=await e.get(u(I,k.correlationId));if(Z){let se=ve(Z);if(["completed","failed","cancelled"].includes(se.status))throw new lt(`Cannot modify step in terminal state "${se.status}"`,{status:410});let H={...se,status:"completed",output:M.result,completedAt:O,updatedAt:O};await e.set(u(I,k.correlationId),Ve(H)),m=Mr.parse(Ee(H))}else throw new lt(`Step "${k.correlationId}" not found`,{status:404})}if(k.eventType==="step_failed"){let M=k.eventData,Z=typeof M.error=="string"?M.error:M.error?.message??"Unknown error",se=await e.get(u(I,k.correlationId));if(se){let H=ve(se);if(["completed","failed","cancelled"].includes(H.status))throw new lt(`Cannot modify step in terminal state "${H.status}"`,{status:410});let pe={...H,status:"failed",error:{message:Z,stack:M.stack},completedAt:O,updatedAt:O};await e.set(u(I,k.correlationId),Ve(pe)),m=Mr.parse(Ee(pe))}else throw new lt(`Step "${k.correlationId}" not found`,{status:404})}if(k.eventType==="step_retrying"){let M=k.eventData,Z=typeof M.error=="string"?M.error:M.error?.message??"Unknown error",se=await e.get(u(I,k.correlationId));if(se){let pe={...ve(se),status:"pending",error:{message:Z,stack:M.stack},retryAfter:M.retryAfter,updatedAt:O};await e.set(u(I,k.correlationId),Ve(pe)),m=Mr.parse(Ee(pe))}}if(k.eventType==="hook_created"){let M=k.eventData;if(await e.get(y(M.token))){let pe={token:M.token},Nt=new Date,Ni={eventType:"hook_conflict",correlationId:k.correlationId,eventData:pe,runId:I,eventId:F,createdAt:Nt,specVersion:B};await e.set(i(F),Ve(Ni));let Fu=Nt.getTime(),el=e.pipeline();el.zadd(s(I),Fu,F),k.correlationId&&el.zadd(a(k.correlationId),Fu,F),await el.exec();let iE=pn.parse(Ni),sE=N?.resolveData??"all";return{event:fn(iE,sE),run:te,step:m,hook:void 0}}let se={runId:I,hookId:k.correlationId,token:M.token,ownerId:"",projectId:"",environment:"",metadata:M.metadata,specVersion:B,createdAt:O},H=await e.setnx(p(k.correlationId),Ve(se));if(await e.pipeline().set(y(M.token),k.correlationId).zadd(g(I),O.getTime(),k.correlationId).exec(),H===1)A=Qo.parse(Ee(se));else{let pe=await e.get(p(k.correlationId));pe&&(A=Qo.parse(Ee(ve(pe))))}}if(k.eventType==="hook_disposed"&&k.correlationId){let M=await e.get(p(k.correlationId));if(M){let Z=ve(M);await e.pipeline().del(p(k.correlationId)).del(y(Z.token)).zrem(g(I),k.correlationId).exec()}}let ue=new Date,nt={...k,runId:I,eventId:F,createdAt:ue,specVersion:B};k.eventType==="run_started"&&delete nt.eventData,await e.set(i(F),Ve(nt));let At=ue.getTime(),$t=e.pipeline();$t.zadd(s(I),At,F),k.correlationId&&$t.zadd(a(k.correlationId),At,F),await $t.exec(),await US(e,t,{runId:I,eventId:F,eventType:k.eventType,...k.correlationId?{correlationId:k.correlationId}:{}});let nE=pn.parse(nt),Lu=N?.resolveData??"all",Xo;if(k.eventType==="run_started"&&te){let M=await e.zrange(s(I),0,-1);if(M.length>0){let Z=e.pipeline();for(let H of M)Z.get(i(H));let se=await Z.exec();Xo=C(se).map(H=>{let pe=pn.parse(Ee(H));return fn(pe,Lu)})}else Xo=[]}return{event:fn(nE,Lu),run:te,step:m,hook:A,events:Xo}},async get(T,k){let N=await e.get(i(k));if(!N)throw new lt(`Event not found: ${k}`,{status:404});return ve(N)},async list(T){let k=T?.pagination?.limit??100,N=T.pagination?.sortOrder||"asc",F=T?.pagination?.cursor,O=s(T.runId),I=await S(O,F,N),B=await x(O,I,k,N),te=e.pipeline();for(let Y of B)te.get(i(Y));let m=await te.exec(),A=C(m),j=A.slice(0,k),D=A.length>k,w=T?.resolveData??"all";return{data:j.map(Y=>{let G=pn.parse(Ee(Y));return fn(G,w)}),cursor:j.at(-1)?.eventId??null,hasMore:D}},async listByCorrelationId(T){let k=T?.pagination?.limit??100,N=T.pagination?.sortOrder||"asc",F=T?.pagination?.cursor,O=a(T.correlationId),I=await S(O,F,N),B=await x(O,I,k,N),te=e.pipeline();for(let Y of B)te.get(i(Y));let m=await te.exec(),A=C(m),j=A.slice(0,k),D=A.length>k,w=T?.resolveData??"all";return{data:j.map(Y=>{let G=pn.parse(Ee(Y));return fn(G,w)}),cursor:j.at(-1)?.eventId??null,hasMore:D}}}}function eE(r){let{redis:e,keyPrefix:t}=r,n=(o,l)=>`${t}step:${o}:${l}`,i=o=>`${t}steps:by_run:${o}`;async function s(o){let l="0";do{let[c,d]=await e.scan(l,"MATCH",o,"COUNT",100);if(d.length>0)return d[0];l=c}while(l!=="0");return null}async function a(o,l,c){let d=await e.get(o);if(!d)throw new lt(`Step not found: ${l}`,{status:404});let u=ve(d),f=Mr.parse(Ee(u)),p=c?.resolveData??"all";return QS(f,p)}return{get:(async(o,l,c)=>{if(!o){let d=`${t}step:*:${l}`,u=await s(d);if(!u)throw new lt(`Step not found: ${l}`,{status:404});return a(u,l,c)}return a(n(o,l),l,c)}),list:(async o=>{let l=o?.pagination?.limit??20,c=o?.pagination?.cursor,d=i(o.runId),u=c?await e.zrevrank(d,c).then(C=>(C??0)+1):0,f=await e.zrevrange(d,u,u+l),p=e.pipeline();for(let C of f)p.get(n(o.runId,C));let y=await p.exec(),g=o?.resolveData??"all",E=[];for(let C of y??[])if(C?.[1]){let R=ve(C[1]),T=Mr.parse(Ee(R));E.push(QS(T,g))}let S=E.slice(0,l),x=E.length>l;return{data:S,hasMore:x,cursor:S.at(-1)?.stepId??null}})}}function tE(r){let{redis:e,keyPrefix:t}=r,n=a=>`${t}hook:${a}`,i=a=>`${t}hooks:by_token:${a}`,s=a=>`${t}hooks:by_run:${a}`;return{async get(a,o){let l=await e.get(n(a));if(!l)throw new lt(`Hook not found: ${a}`,{status:404});let c=ve(l),d=Qo.parse(Ee(c)),u=o?.resolveData??"all";return HS(d,u)},async getByToken(a,o){let l=await e.get(i(a));if(!l)throw new lt(`Hook not found for token: ${a}`,{status:404});return this.get(l,o)},async list(a){let o=a?.pagination?.limit??100,l=a?.pagination?.cursor;if(!a.runId)return{data:[],cursor:null,hasMore:!1};let c=s(a.runId),d=l?await e.zrevrank(c,l).then(S=>(S??0)+1):0,u=await e.zrevrange(c,d,d+o),f=e.pipeline();for(let S of u)f.get(n(S));let p=await f.exec(),y=[];for(let S of p??[])if(S?.[1]){let x=ve(S[1]),C=Qo.parse(Ee(x)),R=HS(C,a?.resolveData??"all");y.push(R)}let g=y.slice(0,o),E=y.length>o;return{data:g,cursor:g.at(-1)?.hookId??null,hasMore:E}}}}import{EventEmitter as c_}from"node:events";function d_(r){let e;try{e=JSON.parse(r)}catch{return null}if(!e||typeof e!="object")return null;let{streamId:t,entryId:n}=e;return typeof t!="string"||typeof n!="string"?null:{streamId:t,entryId:n}}function rE(r){let{redis:e,keyPrefix:t}=r,n=new c_,i=new Map,s=y=>{let g=i.get(y);return g||(g=new $o(async()=>{i.delete(y)}),i.set(y,g)),g.inc(),{mutex:new zo,[Symbol.dispose]:()=>g?.dec()}},a=y=>`${t}stream:${y}`,o=`${t}stream_notify`,l=e.duplicate(),c=l.subscribe(o).then(()=>{});l.on("message",async(y,g)=>{if(y===o)try{let E=d_(g);if(!E)return;let S=`strm:${E.streamId}`;if(!n.listenerCount(S))return;await s(S).mutex.andThen(async()=>{let C=await e.xrange(a(E.streamId),E.entryId,E.entryId);if(C.length===0)return;let[R,T]=C[0],k=Buffer.from(T[1],"base64"),N=T[3]==="true";n.emit(S,{id:R,data:k,eof:N})})}catch(E){console.error("Error processing stream notification:",E)}});async function d(y,g,E){let S=Buffer.isBuffer(E)?E:Buffer.from(E),x=await e.xadd(a(g),"*","data",S.toString("base64"),"eof","false");await c,await e.publish(o,JSON.stringify({streamId:g,entryId:x}))}async function u(y,g){let E=await e.xadd(a(g),"*","data","","eof","true");await c,await e.publish(o,JSON.stringify({streamId:g,entryId:E}))}async function f(y,g,E){let S=[];return new ReadableStream({async start(x){let C="",R=E??0,T=[],k=m=>C>=m,N=()=>R>0?(R--,!0):!1,F=m=>{m.data.byteLength&&x.enqueue(new Uint8Array(m.data)),m.eof&&x.close(),C=m.id};function O(m){k(m.id)||N()||F(m)}function I(m){if(T){T.push(m);return}O(m)}n.on(`strm:${g}`,I),S.push(()=>{n.off(`strm:${g}`,I)});let B=await e.xrange(a(g),"-","+"),te=[];for(let[m,A]of B){let j=Buffer.from(A[1],"base64"),D=A[3]==="true";te.push({id:m,data:j,eof:D})}for(let m of[...te,...T??[]])O(m);T=null},cancel(){S.forEach(x=>{x()})}})}async function p(y){let g=await e.xrange(a(y),"-","+"),E=[],S=!1;for(let[,x]of g){if(x[3]==="true"){S=!0;continue}E.push(new Uint8Array(Buffer.from(x[1],"base64")))}return{chunks:E,done:S}}return{streams:{write:d,close:u,get:f,async list(y){let g=`${t}stream:`,E=[],S="0";do{let[x,C]=await e.scan(S,"MATCH",`${g}*`,"COUNT",200);S=x;for(let R of C)E.push(R.slice(g.length))}while(S!=="0");return E},async getChunks(y,g,E){let S=Math.min(Math.max(E?.limit??100,1),1e3),x=E?.cursor&&Number.parseInt(E.cursor,10)||0,{chunks:C,done:R}=await p(g),T=C.slice(x,x+S).map((F,O)=>({index:x+O,data:F})),k=x+T.length,N=k<C.length;return{data:T,cursor:N?String(k):null,hasMore:N,done:R}},async getInfo(y,g){let{chunks:E,done:S}=await p(g);return{tailIndex:E.length-1,done:S}}},async stop(){l.removeAllListeners("message");try{await l.quit()}catch{l.disconnect()}}}}function u_(r,e){let t={redis:r,keyPrefix:e};return{runs:ZS(t),events:XS(t),hooks:tE(t),steps:eE(t)}}function mJ(r={redis:process.env.WORKFLOW_REDIS_URL||process.env.REDIS_URL||"redis://localhost:6379",jobPrefix:process.env.WORKFLOW_REDIS_JOB_PREFIX,queueConcurrency:Number.parseInt(process.env.WORKFLOW_REDIS_WORKER_CONCURRENCY||"10",10)||10,keyPrefix:process.env.WORKFLOW_REDIS_KEY_PREFIX||"workflow:"}){let e=typeof r.redis=="string"?new Ju.Redis(r.redis):new Ju.Redis(r.redis),t=r.keyPrefix||"workflow:",n=BS(e,r),i=u_(e,t),{stop:s,...a}=rE({redis:e,keyPrefix:t}),o=zS({redis:e,keyPrefix:t});return{...i,...a,...n,eventsSubscriber:o,specVersion:5,processExitTriggersQueueRedelivery:!1,async start(){await n.start()},async close(){try{await n.stop()}catch{}try{await s()}catch{}try{await o.stop()}catch{}try{await e.quit()}catch{}},async resolveLatestDeploymentId(){return"redis"}}}export{mJ as createWorld};
|
|
8909
|
+
`;ao.updateRepeatableJobMillis={name:"updateRepeatableJobMillis",content:nO,keys:1}});var r0=h(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});var z=(Qe(),it(He));z.__exportStar(sg(),B);z.__exportStar(ag(),B);z.__exportStar(og(),B);z.__exportStar(lg(),B);z.__exportStar(cg(),B);z.__exportStar(ug(),B);z.__exportStar(dg(),B);z.__exportStar(pg(),B);z.__exportStar(fg(),B);z.__exportStar(hg(),B);z.__exportStar(yg(),B);z.__exportStar(mg(),B);z.__exportStar(bg(),B);z.__exportStar(gg(),B);z.__exportStar(vg(),B);z.__exportStar(Kg(),B);z.__exportStar(Sg(),B);z.__exportStar(Eg(),B);z.__exportStar(kg(),B);z.__exportStar(Ig(),B);z.__exportStar(xg(),B);z.__exportStar(wg(),B);z.__exportStar(Tg(),B);z.__exportStar(jg(),B);z.__exportStar(Ag(),B);z.__exportStar(Dg(),B);z.__exportStar(Og(),B);z.__exportStar(Rg(),B);z.__exportStar(Cg(),B);z.__exportStar(_g(),B);z.__exportStar(Mg(),B);z.__exportStar(Pg(),B);z.__exportStar(Ng(),B);z.__exportStar(Lg(),B);z.__exportStar(qg(),B);z.__exportStar(Jg(),B);z.__exportStar(Fg(),B);z.__exportStar(Vg(),B);z.__exportStar(Gg(),B);z.__exportStar(Yg(),B);z.__exportStar(Bg(),B);z.__exportStar(Wg(),B);z.__exportStar(Ug(),B);z.__exportStar(zg(),B);z.__exportStar($g(),B);z.__exportStar(Hg(),B);z.__exportStar(Qg(),B);z.__exportStar(Zg(),B);z.__exportStar(Xg(),B);z.__exportStar(e0(),B);z.__exportStar(t0(),B)});var Si=h(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.RedisConnection=void 0;var iO=(Qe(),it(He)),sO=V("events"),n0=us(),i0=Re(),rt=ut(),aO=ia(),oO=r0(),lO=["BullMQ: WARNING! Your redis options maxRetriesPerRequest must be null","and will be overridden by BullMQ."].join(" "),cO="BullMQ: Your redis options maxRetriesPerRequest must be null.",oo=Symbol("bullmqClusterReconnectPromise"),Nu=Symbol("bullmqClusterPatchedForBlocking"),lo=Symbol("bullmqClusterOriginalBzpopmin"),Lu=Symbol("bullmqClusterWrappedBzpopmin"),Nn=Symbol("bullmqClusterPatchRefCount"),Xr=Symbol("bullmqClusterClosingRefCount"),Ki=class r extends sO.EventEmitter{constructor(e,t){if(super(),this.extraOptions=t,this.capabilities={canDoubleTimeout:!1,canBlockFor1Ms:!0},this.status="initializing",this.dbType="redis",this.packageVersion=aO.version,this.disabledBlockingClusterReconnect=!1,this.extraOptions=Object.assign({shared:!1,blocking:!0,skipVersionCheck:!1,skipWaitingForReady:!1},t),!(0,rt.isRedisInstance)(e))this.checkBlockingOptions(lO,e),this.opts=Object.assign({port:6379,host:"127.0.0.1",retryStrategy:function(n){return Math.max(Math.min(Math.exp(n),2e4),1e3)}},e),this.extraOptions.blocking&&(this.opts.maxRetriesPerRequest=null);else{if(this._client=e,this._client.options.keyPrefix)throw new Error("BullMQ: ioredis does not support ioredis prefixes, use the prefix option instead.");(0,rt.isRedisCluster)(this._client)?this.opts=this._client.options.redisOptions:this.opts=this._client.options,this.checkBlockingOptions(cO,this.opts,!0)}this.skipVersionCheck=t?.skipVersionCheck||!!(this.opts&&this.opts.skipVersionCheck),this.handleClientError=n=>{this.emit("error",n)},this.handleClientClose=()=>{this.emit("close")},this.handleClientReady=()=>{this.emit("ready")},this.initializing=this.init(),this.initializing.catch(n=>this.emit("error",n))}checkBlockingOptions(e,t,n=!1){if(this.extraOptions.blocking&&t&&t.maxRetriesPerRequest){if(n)throw new Error(e);console.error(e)}}static async waitUntilReady(e){if(e.status==="ready"||e.status==="connect"&&(0,rt.isRedisCluster)(e))return;if(e.status==="wait")return e.connect();if(e.status==="end")throw new Error(i0.CONNECTION_CLOSED_ERROR_MSG);let t,n,i;try{await new Promise((s,a)=>{let o;i=l=>{o=l},t=()=>{s()},n=()=>{e.status!=="end"?a(o||new Error(i0.CONNECTION_CLOSED_ERROR_MSG)):o?a(o):s()},(0,rt.increaseMaxListeners)(e,3),e.once("ready",t),e.on("end",n),e.once("error",i)})}finally{e.removeListener("end",n),e.removeListener("error",i),e.removeListener("ready",t),(0,rt.decreaseMaxListeners)(e,3)}}get client(){return this.initializing}loadCommands(e,t){let n=t||oO;for(let i in n){let s=`${n[i].name}:${e}`;this._client[s]||this._client.defineCommand(s,{numberOfKeys:n[i].keys,lua:n[i].content})}}async init(){if(!this._client){let e=this.opts,{url:t}=e,n=iO.__rest(e,["url"]);this._client=t?new n0.default(t,n):new n0.default(n)}if((0,rt.increaseMaxListeners)(this._client,3),this._client.on("error",this.handleClientError),this._client.on("close",this.handleClientClose),this._client.on("ready",this.handleClientReady),this.patchBlockingClusterClient(),this.extraOptions.skipWaitingForReady||await r.waitUntilReady(this._client),this.loadCommands(this.packageVersion),this._client.status!=="end"){let e=await this.getRedisVersionAndType();if(this.version=e.version,this.dbType=e.databaseType,this.skipVersionCheck!==!0&&!this.closing){if((0,rt.isRedisVersionLowerThan)(this.version,r.minimumVersion,this.dbType))throw new Error(`Redis version needs to be greater or equal than ${r.minimumVersion} Current: ${this.version}`);(0,rt.isRedisVersionLowerThan)(this.version,r.recommendedMinimumVersion,this.dbType)&&console.warn(`It is highly recommended to use a minimum Redis version of ${r.recommendedMinimumVersion}
|
|
8910
|
+
Current: ${this.version}`)}this.capabilities={canDoubleTimeout:!(0,rt.isRedisVersionLowerThan)(this.version,"6.0.0",this.dbType),canBlockFor1Ms:!(0,rt.isRedisVersionLowerThan)(this.version,"7.0.8",this.dbType)},this.status="ready"}return this._client}patchBlockingClusterClient(){let e=this._client,t=e;if(!this.extraOptions.blocking||!(0,rt.isRedisCluster)(e)||typeof t.bzpopmin!="function"||(t[Nn]=(t[Nn]||0)+1,this.patchedBlockingClusterClient=t,t[Nu]))return;let n=t.bzpopmin,i=async(...s)=>{await r.reconnectClusterIfNeeded(t);try{return await n.apply(t,s)}catch(a){let o=a;if(r.shouldReconnectClusterAfterError(t,o))try{await r.reconnectCluster(t)}catch{}throw o}};t[lo]=n,t[Lu]=i,t[Nu]=!0,t.bzpopmin=i}disableBlockingClusterReconnect(){let e=this.patchedBlockingClusterClient;!e||this.disabledBlockingClusterReconnect||(e[Xr]=(e[Xr]||0)+1,this.disabledBlockingClusterReconnect=!0)}releaseBlockingClusterClientPatch(){let e=this.patchedBlockingClusterClient;if(!e)return;if(this.disabledBlockingClusterReconnect){let n=(e[Xr]||1)-1;n>0?e[Xr]=n:delete e[Xr],this.disabledBlockingClusterReconnect=!1}let t=(e[Nn]||1)-1;if(t>0){e[Nn]=t,this.patchedBlockingClusterClient=void 0;return}e[lo]&&e.bzpopmin===e[Lu]&&(e.bzpopmin=e[lo]),delete e[Nn],delete e[Xr],delete e[lo],delete e[Lu],delete e[Nu],this.patchedBlockingClusterClient=void 0}static isClusterWithEmptyNodes(e){return typeof e.nodes=="function"&&e.nodes().length===0}static isReconnectingDisabled(e){let t=e[Nn]||0,n=e[Xr]||0;return t===0||n>=t||e.status==="end"||e.status==="closing"}static async reconnectClusterIfNeeded(e){!r.isReconnectingDisabled(e)&&r.isClusterWithEmptyNodes(e)&&await r.reconnectCluster(e)}static shouldReconnectClusterAfterError(e,t){var n,i;if(r.isReconnectingDisabled(e))return!1;let s=[t.message,(n=t.cause)===null||n===void 0?void 0:n.message,(i=t.lastNodeError)===null||i===void 0?void 0:i.message].join(" ");return r.isClusterWithEmptyNodes(e)||/Command timed out|Failed to refresh slots cache/i.test(s)}static async reconnectCluster(e){r.isReconnectingDisabled(e)||(e[oo]||(e[oo]=(async()=>{e.disconnect(!1),await e.connect()})().finally(()=>{e[oo]=null})),await e[oo])}async disconnect(e=!0){let t=await this.client;if(t.status!=="end"){let n,i;if(!e)return t.disconnect();let s=new Promise((a,o)=>{(0,rt.increaseMaxListeners)(t,2),t.once("end",a),t.once("error",o),n=a,i=o});t.disconnect();try{await s}finally{(0,rt.decreaseMaxListeners)(t,2),t.removeListener("end",n),t.removeListener("error",i)}}}async reconnect(){return(await this.client).connect()}async close(e=!1){if(!this.closing){let t=this.status;this.status="closing",this.closing=!0,this.disableBlockingClusterReconnect();try{t==="ready"&&await this.initializing,this.extraOptions.shared||(t=="initializing"||e?this._client.disconnect():await this._client.quit(),this._client.status="end")}catch(n){if((0,rt.isNotConnectionError)(n))throw n}finally{this.releaseBlockingClusterClientPatch(),this._client.off("error",this.handleClientError),this._client.off("close",this.handleClientClose),this._client.off("ready",this.handleClientReady),(0,rt.decreaseMaxListeners)(this._client,3),this.removeAllListeners(),this.status="closed"}}}async getRedisVersionAndType(){if(this.skipVersionCheck)return{version:r.minimumVersion,databaseType:"redis"};let e=await this._client.info(),t="redis_version:",n="maxmemory_policy:",i=e.split(/\r?\n/),s,a="redis";for(let o=0;o<i.length;o++){let l=i[o];if(l.includes("dragonfly_version:")||l.includes("server:Dragonfly")?(a="dragonfly",l.indexOf("dragonfly_version:")===0&&(s=l.substr(18))):l.includes("valkey_version:")||l.includes("server:Valkey")?(a="valkey",l.indexOf("valkey_version:")===0&&(s=l.substr(15))):l.indexOf(t)===0&&(s=l.substr(t.length),a==="redis"&&(a="redis")),l.indexOf(n)===0){let c=l.substr(n.length);c!=="noeviction"&&console.warn(`IMPORTANT! Eviction policy is ${c}. It should be "noeviction"`)}}if(!s){for(let o of i)if(o.includes("version:")){let l=o.split(":");if(l.length>=2){s=l[1];break}}}return{version:s||r.minimumVersion,databaseType:a}}get redisVersion(){return this.version}get databaseType(){return this.dbType}};co.RedisConnection=Ki;Ki.minimumVersion="5.0.0";Ki.recommendedMinimumVersion="6.2.0"});var s0=h(po=>{"use strict";Object.defineProperty(po,"__esModule",{value:!0});po.FlowProducer=void 0;var uO=V("events"),Tr=ut(),dO=Pn(),uo=ca(),pO=Si(),Wt=at(),qu=class extends uO.EventEmitter{constructor(e={connection:{}},t=pO.RedisConnection){super(),this.opts=e,this.opts=Object.assign({prefix:"bull"},e),this.connection=new t(e.connection,{shared:(0,Tr.isRedisInstance)(e.connection),blocking:!1,skipVersionCheck:e.skipVersionCheck,skipWaitingForReady:e.skipWaitingForReady}),this.connection.on("error",n=>this.emit("error",n)),this.connection.on("close",()=>{this.closing||this.emit("ioredis:close")}),this.queueKeys=new uo.QueueKeys(e.prefix),e?.telemetry&&(this.telemetry=e.telemetry)}emit(e,...t){return super.emit(e,...t)}off(e,t){return super.off(e,t),this}on(e,t){return super.on(e,t),this}once(e,t){return super.once(e,t),this}get client(){return this.connection.client}get Job(){return dO.Job}waitUntilReady(){return this.client}async add(e,t){var n;if(this.closing)return;let s=(await this.connection.client).multi(),a=(n=e?.opts)===null||n===void 0?void 0:n.parent,o=(0,Tr.getParentKey)(a),l=o?`${o}:dependencies`:void 0;return(0,Tr.trace)(this.telemetry,Wt.SpanKind.PRODUCER,e.queueName,"addFlow",e.queueName,async c=>{c?.setAttributes({[Wt.TelemetryAttributes.FlowName]:e.name});let u=await this.addNode({multi:s,node:e,queuesOpts:t?.queuesOptions,parent:{parentOpts:a,parentDependenciesKey:l}}),d=await s.exec(),[f]=d||[];if(f){let[p,y]=f;if(p)throw p;if(typeof y=="number"&&y<0)throw this.toFlowError(y,o);typeof y=="string"&&(u.job.id=y)}return u})}async getFlow(e){if(this.closing)return;let t=await this.connection.client,n=Object.assign({depth:10,maxChildren:20,prefix:this.opts.prefix},e);return this.getNode(t,n)}async addBulk(e){if(this.closing)return;let n=(await this.connection.client).multi();return(0,Tr.trace)(this.telemetry,Wt.SpanKind.PRODUCER,"","addBulkFlows","",async i=>{i?.setAttributes({[Wt.TelemetryAttributes.BulkCount]:e.length,[Wt.TelemetryAttributes.BulkNames]:e.map(o=>o.name).join(",")});let s=await this.addNodes(n,e),a=await n.exec();for(let o=0;o<s.length;++o){let l=a?.[o];if(!l)continue;let[c,u]=l;!c&&typeof u=="string"&&(s[o].job.id=u)}return s})}async addNode({multi:e,node:t,parent:n,queuesOpts:i}){var s,a;let o=t.prefix||this.opts.prefix,l=this.queueFromNode(t,new uo.QueueKeys(o),o),c=i&&i[t.queueName],u=(s=c?.defaultJobOptions)!==null&&s!==void 0?s:{},d=((a=t.opts)===null||a===void 0?void 0:a.jobId)||(0,Tr.randomUUID)();return(0,Tr.trace)(this.telemetry,Wt.SpanKind.PRODUCER,t.queueName,"addNode",t.queueName,async(f,p)=>{var y,g;f?.setAttributes({[Wt.TelemetryAttributes.JobName]:t.name,[Wt.TelemetryAttributes.JobId]:d});let S=t.opts,k=S?.telemetry;if(p&&S){let O=(y=S.telemetry)===null||y===void 0?void 0:y.omitContext,x=((g=S.telemetry)===null||g===void 0?void 0:g.metadata)||!O&&p;(x||O)&&(k={metadata:x,omitContext:O})}let I=new this.Job(l,t.name,t.data,Object.assign(Object.assign(Object.assign({},u),S),{parent:n?.parentOpts,telemetry:k}),d),R=(0,Tr.getParentKey)(n?.parentOpts);if(t.children&&t.children.length>0){let O=d,x=new uo.QueueKeys(t.prefix||this.opts.prefix);await I.addJob(e,{parentDependenciesKey:n?.parentDependenciesKey,addToWaitingChildren:!0,parentKey:R});let E=`${x.toKey(t.queueName,O)}:dependencies`,M=await this.addChildren({multi:e,nodes:t.children,parent:{parentOpts:{id:O,queue:x.getQueueQualifiedName(t.queueName)},parentDependenciesKey:E},queuesOpts:i});return{job:I,children:M}}else return await I.addJob(e,{parentDependenciesKey:n?.parentDependenciesKey,parentKey:R}),{job:I}})}addNodes(e,t){return Promise.all(t.map(n=>{var i;let s=(i=n?.opts)===null||i===void 0?void 0:i.parent,a=(0,Tr.getParentKey)(s),o=a?`${a}:dependencies`:void 0;return this.addNode({multi:e,node:n,parent:{parentOpts:s,parentDependenciesKey:o}})}))}async getNode(e,t){let n=this.queueFromNode(t,new uo.QueueKeys(t.prefix),t.prefix),i=await this.Job.fromId(n,t.id);if(i){let{processed:s={},unprocessed:a=[],failed:o=[],ignored:l={}}=await i.getDependencies({failed:{count:t.maxChildren},processed:{count:t.maxChildren},unprocessed:{count:t.maxChildren},ignored:{count:t.maxChildren}}),c=Object.keys(s),u=Object.keys(l),d=c.length+a.length+u.length+o.length,f=t.depth-1;if(d>0&&f){let p=await this.getChildren(e,[...c,...a,...o,...u],f,t.maxChildren);return{job:i,children:p}}else return{job:i}}}addChildren({multi:e,nodes:t,parent:n,queuesOpts:i}){return Promise.all(t.map(s=>this.addNode({multi:e,node:s,parent:n,queuesOpts:i})))}getChildren(e,t,n,i){let s=a=>{let[o,l,c]=a.split(":");return this.getNode(e,{id:c,queueName:l,prefix:o,depth:n,maxChildren:i})};return Promise.all([...t.map(s)])}queueFromNode(e,t,n){return{client:this.connection.client,name:e.queueName,keys:t.getKeys(e.queueName),toKey:i=>t.toKey(e.queueName,i),opts:{prefix:n,connection:{}},qualifiedName:t.getQueueQualifiedName(e.queueName),closing:this.closing,waitUntilReady:async()=>this.connection.client,removeListener:this.removeListener.bind(this),emit:this.emit.bind(this),on:this.on.bind(this),redisVersion:this.connection.redisVersion,databaseType:this.connection.databaseType,trace:async()=>{}}}toFlowError(e,t){let n;switch(e){case Wt.ErrorCode.ParentJobNotExist:n=new Error(`Missing key for parent job ${t}. addJob`);break;case Wt.ErrorCode.ParentJobCannotBeReplaced:n=new Error(`The parent job ${t} cannot be replaced. addJob`);break;default:n=new Error(`Unknown code ${e} error for addJob`)}return n.code=e,n}async close(){this.closing||(this.closing=this.connection.close()),await this.closing}disconnect(){return this.connection.disconnect()}};po.FlowProducer=qu});var Mv=h(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});var ar=class extends Error{},$u=class extends ar{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Hu=class extends ar{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Qu=class extends ar{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Dr=class extends ar{},Ko=class extends ar{constructor(e){super(`Invalid unit ${e}`)}},Fe=class extends ar{},Ut=class extends ar{constructor(){super("Zone is an abstract class")}},N="numeric",Mt="short",yt="long",So={year:N,month:N,day:N},P0={year:N,month:Mt,day:N},fO={year:N,month:Mt,day:N,weekday:Mt},N0={year:N,month:yt,day:N},L0={year:N,month:yt,day:N,weekday:yt},q0={hour:N,minute:N},J0={hour:N,minute:N,second:N},F0={hour:N,minute:N,second:N,timeZoneName:Mt},V0={hour:N,minute:N,second:N,timeZoneName:yt},G0={hour:N,minute:N,hourCycle:"h23"},Y0={hour:N,minute:N,second:N,hourCycle:"h23"},B0={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:Mt},W0={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:yt},U0={year:N,month:N,day:N,hour:N,minute:N},z0={year:N,month:N,day:N,hour:N,minute:N,second:N},$0={year:N,month:Mt,day:N,hour:N,minute:N},H0={year:N,month:Mt,day:N,hour:N,minute:N,second:N},hO={year:N,month:Mt,day:N,weekday:Mt,hour:N,minute:N},Q0={year:N,month:yt,day:N,hour:N,minute:N,timeZoneName:Mt},Z0={year:N,month:yt,day:N,hour:N,minute:N,second:N,timeZoneName:Mt},X0={year:N,month:yt,day:N,weekday:yt,hour:N,minute:N,timeZoneName:yt},ev={year:N,month:yt,day:N,weekday:yt,hour:N,minute:N,second:N,timeZoneName:yt},Rr=class{get type(){throw new Ut}get name(){throw new Ut}get ianaName(){return this.name}get isUniversal(){throw new Ut}offsetName(e,t){throw new Ut}formatOffset(e,t){throw new Ut}offset(e){throw new Ut}equals(e){throw new Ut}get isValid(){throw new Ut}},Ju=null,Ti=class r extends Rr{static get instance(){return Ju===null&&(Ju=new r),Ju}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return dv(e,t,n)}formatOffset(e,t){return wi(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Zu=new Map;function yO(r){let e=Zu.get(r);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:r,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),Zu.set(r,e)),e}var mO={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function bO(r,e){let t=r.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(t),[,i,s,a,o,l,c,u]=n;return[a,i,s,o,l,c,u]}function gO(r,e){let t=r.formatToParts(e),n=[];for(let i=0;i<t.length;i++){let{type:s,value:a}=t[i],o=mO[s];s==="era"?n[o]=a:Q(o)||(n[o]=parseInt(a,10))}return n}var Fu=new Map,or=class r extends Rr{static create(e){let t=Fu.get(e);return t===void 0&&Fu.set(e,t=new r(e)),t}static resetCache(){Fu.clear(),Zu.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=r.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return dv(e,t,n,this.name)}formatOffset(e,t){return wi(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=yO(this.name),[i,s,a,o,l,c,u]=n.formatToParts?gO(n,t):bO(n,t);o==="BC"&&(i=-Math.abs(i)+1);let f=jo({year:i,month:s,day:a,hour:l===24?0:l,minute:c,second:u,millisecond:0}),p=+t,y=p%1e3;return p-=y>=0?y:1e3+y,(f-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},a0={};function vO(r,e={}){let t=JSON.stringify([r,e]),n=a0[t];return n||(n=new Intl.ListFormat(r,e),a0[t]=n),n}var Xu=new Map;function ed(r,e={}){let t=JSON.stringify([r,e]),n=Xu.get(t);return n===void 0&&(n=new Intl.DateTimeFormat(r,e),Xu.set(t,n)),n}var td=new Map;function KO(r,e={}){let t=JSON.stringify([r,e]),n=td.get(t);return n===void 0&&(n=new Intl.NumberFormat(r,e),td.set(t,n)),n}var rd=new Map;function SO(r,e={}){let{base:t,...n}=e,i=JSON.stringify([r,n]),s=rd.get(i);return s===void 0&&(s=new Intl.RelativeTimeFormat(r,e),rd.set(i,s)),s}var ki=null;function EO(){return ki||(ki=new Intl.DateTimeFormat().resolvedOptions().locale,ki)}var nd=new Map;function tv(r){let e=nd.get(r);return e===void 0&&(e=new Intl.DateTimeFormat(r).resolvedOptions(),nd.set(r,e)),e}var id=new Map;function kO(r){let e=id.get(r);if(!e){let t=new Intl.Locale(r);e="getWeekInfo"in t?t.getWeekInfo():t.weekInfo,"minimalDays"in e||(e={...rv,...e}),id.set(r,e)}return e}function IO(r){let e=r.indexOf("-x-");e!==-1&&(r=r.substring(0,e));let t=r.indexOf("-u-");if(t===-1)return[r];{let n,i;try{n=ed(r).resolvedOptions(),i=r}catch{let l=r.substring(0,t);n=ed(l).resolvedOptions(),i=l}let{numberingSystem:s,calendar:a}=n;return[i,s,a]}}function xO(r,e,t){return(t||e)&&(r.includes("-u-")||(r+="-u"),t&&(r+=`-ca-${t}`),e&&(r+=`-nu-${e}`)),r}function wO(r){let e=[];for(let t=1;t<=12;t++){let n=xe.utc(2009,t,1);e.push(r(n))}return e}function TO(r){let e=[];for(let t=1;t<=7;t++){let n=xe.utc(2016,11,13+t);e.push(r(n))}return e}function fo(r,e,t,n){let i=r.listingMode();return i==="error"?null:i==="en"?t(e):n(e)}function jO(r){return r.numberingSystem&&r.numberingSystem!=="latn"?!1:r.numberingSystem==="latn"||!r.locale||r.locale.startsWith("en")||tv(r.locale).numberingSystem==="latn"}var sd=class{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...a}=n;if(!t||Object.keys(a).length>0){let o={useGrouping:!1,...n};n.padTo>0&&(o.minimumIntegerDigits=n.padTo),this.inf=KO(e,o)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{let t=this.floor?Math.floor(e):md(e,3);return Ce(t,this.padTo)}}},ad=class{constructor(e,t,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let a=-1*(e.offset/60),o=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&or.create(o).valid?(i=o,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=ed(t,s)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(t=>{if(t.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...t,value:n}}else return t}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},od=class{constructor(e,t,n){this.opts={style:"long",...n},!t&&cv()&&(this.rtf=SO(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):$O(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},rv={firstDay:1,minimalDays:4,weekend:[6,7]},ve=class r{static fromOpts(e){return r.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,n,i,s=!1){let a=e||Ie.defaultLocale,o=a||(s?"en-US":EO()),l=t||Ie.defaultNumberingSystem,c=n||Ie.defaultOutputCalendar,u=cd(i)||Ie.defaultWeekSettings;return new r(o,l,c,u,a)}static resetCache(){ki=null,Xu.clear(),td.clear(),rd.clear(),nd.clear(),id.clear()}static fromObject({locale:e,numberingSystem:t,outputCalendar:n,weekSettings:i}={}){return r.create(e,t,n,i)}constructor(e,t,n,i,s){let[a,o,l]=IO(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||l||null,this.weekSettings=i,this.intl=xO(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=jO(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:r.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,cd(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return fo(this,e,hv,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");t&=!n;let i=t?{month:e,day:"numeric"}:{month:e},s=t?"format":"standalone";if(!this.monthsCache[s][e]){let a=n?o=>this.dtFormatter(o,i).format():o=>this.extract(o,i,"month");this.monthsCache[s][e]=wO(a)}return this.monthsCache[s][e]})}weekdays(e,t=!1){return fo(this,e,bv,()=>{let n=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=t?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=TO(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return fo(this,void 0,()=>gv,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[xe.utc(2016,11,13,9),xe.utc(2016,11,13,19)].map(t=>this.extract(t,e,"dayperiod"))}return this.meridiemCache})}eras(e){return fo(this,e,vv,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[xe.utc(-40,1,1),xe.utc(2017,1,1)].map(n=>this.extract(n,t,"era"))),this.eraCache[e]})}extract(e,t,n){let i=this.dtFormatter(e,t),s=i.formatToParts(),a=s.find(o=>o.type.toLowerCase()===n);return a?a.value:null}numberFormatter(e={}){return new sd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new ad(e,this.intl,t)}relFormatter(e={}){return new od(this.intl,this.isEnglish(),e)}listFormatter(e={}){return vO(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||tv(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:uv()?kO(this.locale):rv}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Vu=null,mt=class r extends Rr{static get utcInstance(){return Vu===null&&(Vu=new r(0)),Vu}static instance(e){return e===0?r.utcInstance:new r(e)}static parseSpecifier(e){if(e){let t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new r(Ao(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${wi(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${wi(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return wi(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Eo=class extends Rr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Ar(r,e){if(Q(r)||r===null)return e;if(r instanceof Rr)return r;if(_O(r)){let t=r.toLowerCase();return t==="default"?e:t==="local"||t==="system"?Ti.instance:t==="utc"||t==="gmt"?mt.utcInstance:mt.parseSpecifier(t)||or.create(r)}else return Or(r)?mt.instance(r):typeof r=="object"&&"offset"in r&&typeof r.offset=="function"?r:new Eo(r)}var pd={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},o0={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},AO=pd.hanidec.replace(/[\[|\]]/g,"").split("");function DO(r){let e=parseInt(r,10);if(isNaN(e)){e="";for(let t=0;t<r.length;t++){let n=r.charCodeAt(t);if(r[t].search(pd.hanidec)!==-1)e+=AO.indexOf(r[t]);else for(let i in o0){let[s,a]=o0[i];n>=s&&n<=a&&(e+=n-s)}}return parseInt(e,10)}else return e}var ld=new Map;function OO(){ld.clear()}function Ct({numberingSystem:r},e=""){let t=r||"latn",n=ld.get(t);n===void 0&&(n=new Map,ld.set(t,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${pd[t]}${e}`),n.set(e,i)),i}var l0=()=>Date.now(),c0="system",u0=null,d0=null,p0=null,f0=60,h0,y0=null,Ie=class{static get now(){return l0}static set now(e){l0=e}static set defaultZone(e){c0=e}static get defaultZone(){return Ar(c0,Ti.instance)}static get defaultLocale(){return u0}static set defaultLocale(e){u0=e}static get defaultNumberingSystem(){return d0}static set defaultNumberingSystem(e){d0=e}static get defaultOutputCalendar(){return p0}static set defaultOutputCalendar(e){p0=e}static get defaultWeekSettings(){return y0}static set defaultWeekSettings(e){y0=cd(e)}static get twoDigitCutoffYear(){return f0}static set twoDigitCutoffYear(e){f0=e%100}static get throwOnInvalid(){return h0}static set throwOnInvalid(e){h0=e}static resetCaches(){ve.resetCache(),or.resetCache(),xe.resetCache(),OO()}},ht=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},nv=[0,31,59,90,120,151,181,212,243,273,304,334],iv=[0,31,60,91,121,152,182,213,244,274,305,335];function Tt(r,e){return new ht("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${r}, which is invalid`)}function fd(r,e,t){let n=new Date(Date.UTC(r,e-1,t));r<100&&r>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}function sv(r,e,t){return t+(Ai(r)?iv:nv)[e-1]}function av(r,e){let t=Ai(r)?iv:nv,n=t.findIndex(s=>s<e),i=e-t[n];return{month:n+1,day:i}}function hd(r,e){return(r-e+7)%7+1}function ko(r,e=4,t=1){let{year:n,month:i,day:s}=r,a=sv(n,i,s),o=hd(fd(n,i,s),t),l=Math.floor((a-o+14-e)/7),c;return l<1?(c=n-1,l=ji(c,e,t)):l>ji(n,e,t)?(c=n+1,l=1):c=n,{weekYear:c,weekNumber:l,weekday:o,...Do(r)}}function m0(r,e=4,t=1){let{weekYear:n,weekNumber:i,weekday:s}=r,a=hd(fd(n,1,e),t),o=Fn(n),l=i*7+s-a-7+e,c;l<1?(c=n-1,l+=Fn(c)):l>o?(c=n+1,l-=Fn(n)):c=n;let{month:u,day:d}=av(c,l);return{year:c,month:u,day:d,...Do(r)}}function Gu(r){let{year:e,month:t,day:n}=r,i=sv(e,t,n);return{year:e,ordinal:i,...Do(r)}}function b0(r){let{year:e,ordinal:t}=r,{month:n,day:i}=av(e,t);return{year:e,month:n,day:i,...Do(r)}}function g0(r,e){if(!Q(r.localWeekday)||!Q(r.localWeekNumber)||!Q(r.localWeekYear)){if(!Q(r.weekday)||!Q(r.weekNumber)||!Q(r.weekYear))throw new Dr("Cannot mix locale-based week fields with ISO-based week fields");return Q(r.localWeekday)||(r.weekday=r.localWeekday),Q(r.localWeekNumber)||(r.weekNumber=r.localWeekNumber),Q(r.localWeekYear)||(r.weekYear=r.localWeekYear),delete r.localWeekday,delete r.localWeekNumber,delete r.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function RO(r,e=4,t=1){let n=To(r.weekYear),i=jt(r.weekNumber,1,ji(r.weekYear,e,t)),s=jt(r.weekday,1,7);return n?i?s?!1:Tt("weekday",r.weekday):Tt("week",r.weekNumber):Tt("weekYear",r.weekYear)}function CO(r){let e=To(r.year),t=jt(r.ordinal,1,Fn(r.year));return e?t?!1:Tt("ordinal",r.ordinal):Tt("year",r.year)}function ov(r){let e=To(r.year),t=jt(r.month,1,12),n=jt(r.day,1,Io(r.year,r.month));return e?t?n?!1:Tt("day",r.day):Tt("month",r.month):Tt("year",r.year)}function lv(r){let{hour:e,minute:t,second:n,millisecond:i}=r,s=jt(e,0,23)||e===24&&t===0&&n===0&&i===0,a=jt(t,0,59),o=jt(n,0,59),l=jt(i,0,999);return s?a?o?l?!1:Tt("millisecond",i):Tt("second",n):Tt("minute",t):Tt("hour",e)}function Q(r){return typeof r>"u"}function Or(r){return typeof r=="number"}function To(r){return typeof r=="number"&&r%1===0}function _O(r){return typeof r=="string"}function MO(r){return Object.prototype.toString.call(r)==="[object Date]"}function cv(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function uv(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function PO(r){return Array.isArray(r)?r:[r]}function v0(r,e,t){if(r.length!==0)return r.reduce((n,i)=>{let s=[e(i),i];return n&&t(n[0],s[0])===n[0]?n:s},null)[1]}function NO(r,e){return e.reduce((t,n)=>(t[n]=r[n],t),{})}function Gn(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function cd(r){if(r==null)return null;if(typeof r!="object")throw new Fe("Week settings must be an object");if(!jt(r.firstDay,1,7)||!jt(r.minimalDays,1,7)||!Array.isArray(r.weekend)||r.weekend.some(e=>!jt(e,1,7)))throw new Fe("Invalid week settings");return{firstDay:r.firstDay,minimalDays:r.minimalDays,weekend:Array.from(r.weekend)}}function jt(r,e,t){return To(r)&&r>=e&&r<=t}function LO(r,e){return r-e*Math.floor(r/e)}function Ce(r,e=2){let t=r<0,n;return t?n="-"+(""+-r).padStart(e,"0"):n=(""+r).padStart(e,"0"),n}function jr(r){if(!(Q(r)||r===null||r===""))return parseInt(r,10)}function en(r){if(!(Q(r)||r===null||r===""))return parseFloat(r)}function yd(r){if(!(Q(r)||r===null||r==="")){let e=parseFloat("0."+r)*1e3;return Math.floor(e)}}function md(r,e,t="round"){let n=10**e;switch(t){case"expand":return r>0?Math.ceil(r*n)/n:Math.floor(r*n)/n;case"trunc":return Math.trunc(r*n)/n;case"round":return Math.round(r*n)/n;case"floor":return Math.floor(r*n)/n;case"ceil":return Math.ceil(r*n)/n;default:throw new RangeError(`Value rounding ${t} is out of range`)}}function Ai(r){return r%4===0&&(r%100!==0||r%400===0)}function Fn(r){return Ai(r)?366:365}function Io(r,e){let t=LO(e-1,12)+1,n=r+(e-t)/12;return t===2?Ai(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function jo(r){let e=Date.UTC(r.year,r.month-1,r.day,r.hour,r.minute,r.second,r.millisecond);return r.year<100&&r.year>=0&&(e=new Date(e),e.setUTCFullYear(r.year,r.month-1,r.day)),+e}function K0(r,e,t){return-hd(fd(r,1,e),t)+e-1}function ji(r,e=4,t=1){let n=K0(r,e,t),i=K0(r+1,e,t);return(Fn(r)-n+i)/7}function ud(r){return r>99?r:r>Ie.twoDigitCutoffYear?1900+r:2e3+r}function dv(r,e,t,n=null){let i=new Date(r),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let a={timeZoneName:e,...s},o=new Intl.DateTimeFormat(t,a).formatToParts(i).find(l=>l.type.toLowerCase()==="timezonename");return o?o.value:null}function Ao(r,e){let t=parseInt(r,10);Number.isNaN(t)&&(t=0);let n=parseInt(e,10)||0,i=t<0||Object.is(t,-0)?-n:n;return t*60+i}function pv(r){let e=Number(r);if(typeof r=="boolean"||r===""||!Number.isFinite(e))throw new Fe(`Invalid unit value ${r}`);return e}function xo(r,e){let t={};for(let n in r)if(Gn(r,n)){let i=r[n];if(i==null)continue;t[e(n)]=pv(i)}return t}function wi(r,e){let t=Math.trunc(Math.abs(r/60)),n=Math.trunc(Math.abs(r%60)),i=r>=0?"+":"-";switch(e){case"short":return`${i}${Ce(t,2)}:${Ce(n,2)}`;case"narrow":return`${i}${t}${n>0?`:${n}`:""}`;case"techie":return`${i}${Ce(t,2)}${Ce(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Do(r){return NO(r,["hour","minute","second","millisecond"])}var qO=["January","February","March","April","May","June","July","August","September","October","November","December"],fv=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],JO=["J","F","M","A","M","J","J","A","S","O","N","D"];function hv(r){switch(r){case"narrow":return[...JO];case"short":return[...fv];case"long":return[...qO];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var yv=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],mv=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],FO=["M","T","W","T","F","S","S"];function bv(r){switch(r){case"narrow":return[...FO];case"short":return[...mv];case"long":return[...yv];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var gv=["AM","PM"],VO=["Before Christ","Anno Domini"],GO=["BC","AD"],YO=["B","A"];function vv(r){switch(r){case"narrow":return[...YO];case"short":return[...GO];case"long":return[...VO];default:return null}}function BO(r){return gv[r.hour<12?0:1]}function WO(r,e){return bv(e)[r.weekday-1]}function UO(r,e){return hv(e)[r.month-1]}function zO(r,e){return vv(e)[r.year<0?0:1]}function $O(r,e,t="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(r)===-1;if(t==="auto"&&s){let d=r==="days";switch(e){case 1:return d?"tomorrow":`next ${i[r][0]}`;case-1:return d?"yesterday":`last ${i[r][0]}`;case 0:return d?"today":`this ${i[r][0]}`}}let a=Object.is(e,-0)||e<0,o=Math.abs(e),l=o===1,c=i[r],u=n?l?c[1]:c[2]||c[1]:l?i[r][0]:r;return a?`${o} ${u} ago`:`in ${o} ${u}`}function S0(r,e){let t="";for(let n of r)n.literal?t+=n.val:t+=e(n.val);return t}var HO={D:So,DD:P0,DDD:N0,DDDD:L0,t:q0,tt:J0,ttt:F0,tttt:V0,T:G0,TT:Y0,TTT:B0,TTTT:W0,f:U0,ff:$0,fff:Q0,ffff:X0,F:z0,FF:H0,FFF:Z0,FFFF:ev},ft=class r{static create(e,t={}){return new r(e,t)}static parseFormat(e){let t=null,n="",i=!1,s=[];for(let a=0;a<e.length;a++){let o=e.charAt(a);o==="'"?((n.length>0||i)&&s.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),t=null,n="",i=!i):i||o===t?n+=o:(n.length>0&&s.push({literal:/^\s+$/.test(n),val:n}),n=o,t=o)}return n.length>0&&s.push({literal:i||/^\s+$/.test(n),val:n}),s}static macroTokenToFormatOpts(e){return HO[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0,n=void 0){if(this.opts.forceSimple)return Ce(e,t);let i={...this.opts};return t>0&&(i.padTo=t),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,t){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,y)=>this.loc.extract(e,p,y),a=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",o=()=>n?BO(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(p,y)=>n?UO(e,p):s(y?{month:p}:{month:p,day:"numeric"},"month"),c=(p,y)=>n?WO(e,p):s(y?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),u=p=>{let y=r.macroTokenToFormatOpts(p);return y?this.formatWithSystemDefault(e,y):p},d=p=>n?zO(e,p):s({era:p},"era"),f=p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return a({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return a({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return a({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return o();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return l("short",!0);case"LLLL":return l("long",!0);case"LLLLL":return l("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return l("short",!1);case"MMMM":return l("long",!1);case"MMMMM":return l("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return u(p)}};return S0(r.parseFormat(t),f)}formatDurationFromString(e,t){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=u=>{switch(u[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},s=(u,d)=>f=>{let p=i(f);if(p){let y=d.isNegativeDuration&&p!==d.largestUnit?n:1,g;return this.opts.signMode==="negativeLargestOnly"&&p!==d.largestUnit?g="never":this.opts.signMode==="all"?g="always":g="auto",this.num(u.get(p)*y,f.length,g)}else return f},a=r.parseFormat(t),o=a.reduce((u,{literal:d,val:f})=>d?u:u.concat(f),[]),l=e.shiftTo(...o.map(i).filter(u=>u)),c={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return S0(a,s(l,c))}},Kv=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Yn(...r){let e=r.reduce((t,n)=>t+n.source,"");return RegExp(`^${e}$`)}function Bn(...r){return e=>r.reduce(([t,n,i],s)=>{let[a,o,l]=s(e,i);return[{...t,...a},o||n,l]},[{},null,1]).slice(0,2)}function Wn(r,...e){if(r==null)return[null,null];for(let[t,n]of e){let i=t.exec(r);if(i)return n(i)}return[null,null]}function Sv(...r){return(e,t)=>{let n={},i;for(i=0;i<r.length;i++)n[r[i]]=jr(e[t+i]);return[n,null,t+i]}}var Ev=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,QO=`(?:${Ev.source}?(?:\\[(${Kv.source})\\])?)?`,bd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,kv=RegExp(`${bd.source}${QO}`),gd=RegExp(`(?:[Tt]${kv.source})?`),ZO=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,XO=/(\d{4})-?W(\d\d)(?:-?(\d))?/,eR=/(\d{4})-?(\d{3})/,tR=Sv("weekYear","weekNumber","weekDay"),rR=Sv("year","ordinal"),nR=/(\d{4})-(\d\d)-(\d\d)/,Iv=RegExp(`${bd.source} ?(?:${Ev.source}|(${Kv.source}))?`),iR=RegExp(`(?: ${Iv.source})?`);function Vn(r,e,t){let n=r[e];return Q(n)?t:jr(n)}function sR(r,e){return[{year:Vn(r,e),month:Vn(r,e+1,1),day:Vn(r,e+2,1)},null,e+3]}function Un(r,e){return[{hours:Vn(r,e,0),minutes:Vn(r,e+1,0),seconds:Vn(r,e+2,0),milliseconds:yd(r[e+3])},null,e+4]}function Di(r,e){let t=!r[e]&&!r[e+1],n=Ao(r[e+1],r[e+2]),i=t?null:mt.instance(n);return[{},i,e+3]}function Oi(r,e){let t=r[e]?or.create(r[e]):null;return[{},t,e+1]}var aR=RegExp(`^T?${bd.source}$`),oR=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function lR(r){let[e,t,n,i,s,a,o,l,c]=r,u=e[0]==="-",d=l&&l[0]==="-",f=(p,y=!1)=>p!==void 0&&(y||p&&u)?-p:p;return[{years:f(en(t)),months:f(en(n)),weeks:f(en(i)),days:f(en(s)),hours:f(en(a)),minutes:f(en(o)),seconds:f(en(l),l==="-0"),milliseconds:f(yd(c),d)}]}var cR={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function vd(r,e,t,n,i,s,a){let o={year:e.length===2?ud(jr(e)):jr(e),month:fv.indexOf(t)+1,day:jr(n),hour:jr(i),minute:jr(s)};return a&&(o.second=jr(a)),r&&(o.weekday=r.length>3?yv.indexOf(r)+1:mv.indexOf(r)+1),o}var uR=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function dR(r){let[,e,t,n,i,s,a,o,l,c,u,d]=r,f=vd(e,i,n,t,s,a,o),p;return l?p=cR[l]:c?p=0:p=Ao(u,d),[f,new mt(p)]}function pR(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var fR=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,hR=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,yR=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function E0(r){let[,e,t,n,i,s,a,o]=r;return[vd(e,i,n,t,s,a,o),mt.utcInstance]}function mR(r){let[,e,t,n,i,s,a,o]=r;return[vd(e,o,t,n,i,s,a),mt.utcInstance]}var bR=Yn(ZO,gd),gR=Yn(XO,gd),vR=Yn(eR,gd),KR=Yn(kv),xv=Bn(sR,Un,Di,Oi),SR=Bn(tR,Un,Di,Oi),ER=Bn(rR,Un,Di,Oi),kR=Bn(Un,Di,Oi);function IR(r){return Wn(r,[bR,xv],[gR,SR],[vR,ER],[KR,kR])}function xR(r){return Wn(pR(r),[uR,dR])}function wR(r){return Wn(r,[fR,E0],[hR,E0],[yR,mR])}function TR(r){return Wn(r,[oR,lR])}var jR=Bn(Un);function AR(r){return Wn(r,[aR,jR])}var DR=Yn(nR,iR),OR=Yn(Iv),RR=Bn(Un,Di,Oi);function CR(r){return Wn(r,[DR,xv],[OR,RR])}var k0="Invalid Duration",wv={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},_R={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...wv},wt=146097/400,Ln=146097/4800,MR={years:{quarters:4,months:12,weeks:wt/7,days:wt,hours:wt*24,minutes:wt*24*60,seconds:wt*24*60*60,milliseconds:wt*24*60*60*1e3},quarters:{months:3,weeks:wt/28,days:wt/4,hours:wt*24/4,minutes:wt*24*60/4,seconds:wt*24*60*60/4,milliseconds:wt*24*60*60*1e3/4},months:{weeks:Ln/7,days:Ln,hours:Ln*24,minutes:Ln*24*60,seconds:Ln*24*60*60,milliseconds:Ln*24*60*60*1e3},...wv},rn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],PR=rn.slice(0).reverse();function sr(r,e,t=!1){let n={values:t?e.values:{...r.values,...e.values||{}},loc:r.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||r.conversionAccuracy,matrix:e.matrix||r.matrix};return new Ne(n)}function Tv(r,e){var t;let n=(t=e.milliseconds)!=null?t:0;for(let i of PR.slice(1))e[i]&&(n+=e[i]*r[i].milliseconds);return n}function I0(r,e){let t=Tv(r,e)<0?-1:1;rn.reduceRight((n,i)=>{if(Q(e[i]))return n;if(n){let s=e[n]*t,a=r[i][n],o=Math.floor(s/a);e[i]+=o*t,e[n]-=o*a*t}return i},null),rn.reduce((n,i)=>{if(Q(e[i]))return n;if(n){let s=e[n]%1;e[n]-=s,e[i]+=s*r[n][i]}return i},null)}function x0(r){let e={};for(let[t,n]of Object.entries(r))n!==0&&(e[t]=n);return e}var Ne=class r{constructor(e){let t=e.conversionAccuracy==="longterm"||!1,n=t?MR:_R;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||ve.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,t){return r.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(e==null||typeof e!="object")throw new Fe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new r({values:xo(e,r.normalizeUnit),loc:ve.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(Or(e))return r.fromMillis(e);if(r.isDuration(e))return e;if(typeof e=="object")return r.fromObject(e);throw new Fe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){let[n]=TR(e);return n?r.fromObject(n,t):r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){let[n]=AR(e);return n?r.fromObject(n,t):r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new Fe("need to specify a reason the Duration is invalid");let n=e instanceof ht?e:new ht(e,t);if(Ie.throwOnInvalid)throw new Qu(n);return new r({invalid:n})}static normalizeUnit(e){let t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!t)throw new Ko(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let n={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?ft.create(this.loc,n).formatDurationFromString(this,e):k0}toHuman(e={}){if(!this.isValid)return k0;let t=e.showZeros!==!1,n=rn.map(i=>{let s=this.values[i];return Q(s)||s===0&&!t?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(s)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=md(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},xe.fromMillis(t,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Tv(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let t=r.fromDurationLike(e),n={};for(let i of rn)(Gn(t.values,i)||Gn(this.values,i))&&(n[i]=t.get(i)+this.get(i));return sr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let t=r.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let n of Object.keys(this.values))t[n]=pv(e(this.values[n],n));return sr(this,{values:t},!0)}get(e){return this[r.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let t={...this.values,...xo(e,r.normalizeUnit)};return sr(this,{values:t})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:i}={}){let a={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:i,conversionAccuracy:n};return sr(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return I0(this.matrix,e),sr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=x0(this.normalize().shiftToAll().toObject());return sr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(a=>r.normalizeUnit(a));let t={},n={},i=this.toObject(),s;for(let a of rn)if(e.indexOf(a)>=0){s=a;let o=0;for(let c in n)o+=this.matrix[c][a]*n[c],n[c]=0;Or(i[a])&&(o+=i[a]);let l=Math.trunc(o);t[a]=l,n[a]=(o*1e3-l*1e3)/1e3}else Or(i[a])&&(n[a]=i[a]);for(let a in n)n[a]!==0&&(t[s]+=a===s?n[a]:n[a]/this.matrix[s][a]);return I0(this.matrix,t),sr(this,{values:t},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return sr(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=x0(this.values);return sr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of rn)if(!t(this.values[n],e.values[n]))return!1;return!0}},qn="Invalid Interval";function NR(r,e){return!r||!r.isValid?sn.invalid("missing or invalid start"):!e||!e.isValid?sn.invalid("missing or invalid end"):e<r?sn.invalid("end before start",`The end of an interval must be after its start, but you had start=${r.toISO()} and end=${e.toISO()}`):null}var sn=class r{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,t=null){if(!e)throw new Fe("need to specify a reason the Interval is invalid");let n=e instanceof ht?e:new ht(e,t);if(Ie.throwOnInvalid)throw new Hu(n);return new r({invalid:n})}static fromDateTimes(e,t){let n=Ei(e),i=Ei(t),s=NR(n,i);return s??new r({start:n,end:i})}static after(e,t){let n=Ne.fromDurationLike(t),i=Ei(e);return r.fromDateTimes(i,i.plus(n))}static before(e,t){let n=Ne.fromDurationLike(t),i=Ei(e);return r.fromDateTimes(i.minus(n),i)}static fromISO(e,t){let[n,i]=(e||"").split("/",2);if(n&&i){let s,a;try{s=xe.fromISO(n,t),a=s.isValid}catch{a=!1}let o,l;try{o=xe.fromISO(i,t),l=o.isValid}catch{l=!1}if(a&&l)return r.fromDateTimes(s,o);if(a){let c=Ne.fromISO(i,t);if(c.isValid)return r.after(s,c)}else if(l){let c=Ne.fromISO(n,t);if(c.isValid)return r.before(o,c)}}return r.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",t){if(!this.isValid)return NaN;let n=this.start.startOf(e,t),i;return t!=null&&t.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,t),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:t}={}){return this.isValid?r.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];let t=e.map(Ei).filter(a=>this.contains(a)).sort((a,o)=>a.toMillis()-o.toMillis()),n=[],{s:i}=this,s=0;for(;i<this.e;){let a=t[s]||this.e,o=+a>+this.e?this.e:a;n.push(r.fromDateTimes(i,o)),i=o,s+=1}return n}splitBy(e){let t=Ne.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,a=[];for(;n<this.e;){let o=this.start.plus(t.mapUnits(l=>l*i));s=+o>+this.e?this.e:o,a.push(r.fromDateTimes(n,s)),n=s,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let t=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return t>=n?null:r.fromDateTimes(t,n)}union(e){if(!this.isValid)return this;let t=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return r.fromDateTimes(t,n)}static merge(e){let[t,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],a)=>s?s.overlaps(a)||s.abutsStart(a)?[i,s.union(a)]:[i.concat([s]),a]:[i,a],[[],null]);return n&&t.push(n),t}static xor(e){let t=null,n=0,i=[],s=e.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...s),o=a.sort((l,c)=>l.time-c.time);for(let l of o)n+=l.type==="s"?1:-1,n===1?t=l.time:(t&&+t!=+l.time&&i.push(r.fromDateTimes(t,l.time)),t=null);return r.merge(i)}difference(...e){return r.xor([this].concat(e)).map(t=>this.intersection(t)).filter(t=>t&&!t.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:qn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=So,t={}){return this.isValid?ft.create(this.s.loc.clone(t),e).formatInterval(this):qn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:qn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:qn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:qn}toFormat(e,{separator:t=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:qn}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Ne.invalid(this.invalidReason)}mapEndpoints(e){return r.fromDateTimes(e(this.s),e(this.e))}},nn=class{static hasDST(e=Ie.defaultZone){let t=xe.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return or.isValidZone(e)}static normalizeZone(e){return Ar(e,Ie.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||ve.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||ve.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||ve.create(e)).getWeekendDays().slice()}static months(e="long",{locale:t=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||ve.create(t,n,s)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||ve.create(t,n,s)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ve.create(t,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ve.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ve.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return ve.create(t,null,"gregory").eras(e)}static features(){return{relative:cv(),localeWeek:uv()}}};function w0(r,e){let t=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=t(e)-t(r);return Math.floor(Ne.fromMillis(n).as("days"))}function LR(r,e,t){let n=[["years",(l,c)=>c.year-l.year],["quarters",(l,c)=>c.quarter-l.quarter+(c.year-l.year)*4],["months",(l,c)=>c.month-l.month+(c.year-l.year)*12],["weeks",(l,c)=>{let u=w0(l,c);return(u-u%7)/7}],["days",w0]],i={},s=r,a,o;for(let[l,c]of n)t.indexOf(l)>=0&&(a=l,i[l]=c(r,e),o=s.plus(i),o>e?(i[l]--,r=s.plus(i),r>e&&(o=r,i[l]--,r=s.plus(i))):r=o);return[r,i,o,a]}function qR(r,e,t,n){let[i,s,a,o]=LR(r,e,t),l=e-i,c=t.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(a<e&&(a=i.plus({[o]:1})),a!==i&&(s[o]=(s[o]||0)+l/(a-i)));let u=Ne.fromObject(s,n);return c.length>0?Ne.fromMillis(l,n).shiftTo(...c).plus(u):u}var JR="missing Intl.DateTimeFormat.formatToParts support";function fe(r,e=t=>t){return{regex:r,deser:([t])=>e(DO(t))}}var FR="\xA0",jv=`[ ${FR}]`,Av=new RegExp(jv,"g");function VR(r){return r.replace(/\./g,"\\.?").replace(Av,jv)}function T0(r){return r.replace(/\./g,"").replace(Av," ").toLowerCase()}function _t(r,e){return r===null?null:{regex:RegExp(r.map(VR).join("|")),deser:([t])=>r.findIndex(n=>T0(t)===T0(n))+e}}function j0(r,e){return{regex:r,deser:([,t,n])=>Ao(t,n),groups:e}}function ho(r){return{regex:r,deser:([e])=>e}}function GR(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function YR(r,e){let t=Ct(e),n=Ct(e,"{2}"),i=Ct(e,"{3}"),s=Ct(e,"{4}"),a=Ct(e,"{6}"),o=Ct(e,"{1,2}"),l=Ct(e,"{1,3}"),c=Ct(e,"{1,6}"),u=Ct(e,"{1,9}"),d=Ct(e,"{2,4}"),f=Ct(e,"{4,6}"),p=S=>({regex:RegExp(GR(S.val)),deser:([k])=>k,literal:!0}),g=(S=>{if(r.literal)return p(S);switch(S.val){case"G":return _t(e.eras("short"),0);case"GG":return _t(e.eras("long"),0);case"y":return fe(c);case"yy":return fe(d,ud);case"yyyy":return fe(s);case"yyyyy":return fe(f);case"yyyyyy":return fe(a);case"M":return fe(o);case"MM":return fe(n);case"MMM":return _t(e.months("short",!0),1);case"MMMM":return _t(e.months("long",!0),1);case"L":return fe(o);case"LL":return fe(n);case"LLL":return _t(e.months("short",!1),1);case"LLLL":return _t(e.months("long",!1),1);case"d":return fe(o);case"dd":return fe(n);case"o":return fe(l);case"ooo":return fe(i);case"HH":return fe(n);case"H":return fe(o);case"hh":return fe(n);case"h":return fe(o);case"mm":return fe(n);case"m":return fe(o);case"q":return fe(o);case"qq":return fe(n);case"s":return fe(o);case"ss":return fe(n);case"S":return fe(l);case"SSS":return fe(i);case"u":return ho(u);case"uu":return ho(o);case"uuu":return fe(t);case"a":return _t(e.meridiems(),0);case"kkkk":return fe(s);case"kk":return fe(d,ud);case"W":return fe(o);case"WW":return fe(n);case"E":case"c":return fe(t);case"EEE":return _t(e.weekdays("short",!1),1);case"EEEE":return _t(e.weekdays("long",!1),1);case"ccc":return _t(e.weekdays("short",!0),1);case"cccc":return _t(e.weekdays("long",!0),1);case"Z":case"ZZ":return j0(new RegExp(`([+-]${o.source})(?::(${n.source}))?`),2);case"ZZZ":return j0(new RegExp(`([+-]${o.source})(${n.source})?`),2);case"z":return ho(/[a-z_+-/]{1,256}?/i);case" ":return ho(/[^\S\n\r]/);default:return p(S)}})(r)||{invalidReason:JR};return g.token=r,g}var BR={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function WR(r,e,t){let{type:n,value:i}=r;if(n==="literal"){let l=/^\s+$/.test(i);return{literal:!l,val:l?" ":i}}let s=e[n],a=n;n==="hour"&&(e.hour12!=null?a=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?a="hour12":a="hour24":a=t.hour12?"hour12":"hour24");let o=BR[a];if(typeof o=="object"&&(o=o[s]),o)return{literal:!1,val:o}}function UR(r){return[`^${r.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,r]}function zR(r,e,t){let n=r.match(e);if(n){let i={},s=1;for(let a in t)if(Gn(t,a)){let o=t[a],l=o.groups?o.groups+1:1;!o.literal&&o.token&&(i[o.token.val[0]]=o.deser(n.slice(s,s+l))),s+=l}return[n,i]}else return[n,{}]}function $R(r){let e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},t=null,n;return Q(r.z)||(t=or.create(r.z)),Q(r.Z)||(t||(t=new mt(r.Z)),n=r.Z),Q(r.q)||(r.M=(r.q-1)*3+1),Q(r.h)||(r.h<12&&r.a===1?r.h+=12:r.h===12&&r.a===0&&(r.h=0)),r.G===0&&r.y&&(r.y=-r.y),Q(r.u)||(r.S=yd(r.u)),[Object.keys(r).reduce((s,a)=>{let o=e(a);return o&&(s[o]=r[a]),s},{}),t,n]}var Yu=null;function HR(){return Yu||(Yu=xe.fromMillis(1555555555555)),Yu}function QR(r,e){if(r.literal)return r;let t=ft.macroTokenToFormatOpts(r.val),n=Rv(t,e);return n==null||n.includes(void 0)?r:n}function Dv(r,e){return Array.prototype.concat(...r.map(t=>QR(t,e)))}var wo=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Dv(ft.parseFormat(t),e),this.units=this.tokens.map(n=>YR(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=UR(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[t,n]=zR(e,this.regex,this.handlers),[i,s,a]=n?$R(n):[null,null,void 0];if(Gn(n,"a")&&Gn(n,"H"))throw new Dr("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:i,zone:s,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function Ov(r,e,t){return new wo(r,t).explainFromTokens(e)}function ZR(r,e,t){let{result:n,zone:i,specificOffset:s,invalidReason:a}=Ov(r,e,t);return[n,i,s,a]}function Rv(r,e){if(!r)return null;let n=ft.create(e,r).dtFormatter(HR()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(a=>WR(a,r,s))}var Bu="Invalid DateTime",A0=864e13;function Ii(r){return new ht("unsupported zone",`the zone "${r.name}" is not supported`)}function Wu(r){return r.weekData===null&&(r.weekData=ko(r.c)),r.weekData}function Uu(r){return r.localWeekData===null&&(r.localWeekData=ko(r.c,r.loc.getMinDaysInFirstWeek(),r.loc.getStartOfWeek())),r.localWeekData}function tn(r,e){let t={ts:r.ts,zone:r.zone,c:r.c,o:r.o,loc:r.loc,invalid:r.invalid};return new xe({...t,...e,old:t})}function Cv(r,e,t){let n=r-e*60*1e3,i=t.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let s=t.offset(n);return i===s?[n,i]:[r-Math.min(i,s)*60*1e3,Math.max(i,s)]}function yo(r,e){r+=e*60*1e3;let t=new Date(r);return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),millisecond:t.getUTCMilliseconds()}}function bo(r,e,t){return Cv(jo(r),e,t)}function D0(r,e){let t=r.o,n=r.c.year+Math.trunc(e.years),i=r.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...r.c,year:n,month:i,day:Math.min(r.c.day,Io(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},a=Ne.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),o=jo(s),[l,c]=Cv(o,t,r.zone);return a!==0&&(l+=a,c=r.zone.offset(l)),{ts:l,o:c}}function Jn(r,e,t,n,i,s){let{setZone:a,zone:o}=t;if(r&&Object.keys(r).length!==0||e){let l=e||o,c=xe.fromObject(r,{...t,zone:l,specificOffset:s});return a?c:c.setZone(o)}else return xe.invalid(new ht("unparsable",`the input "${i}" can't be parsed as ${n}`))}function mo(r,e,t=!0){return r.isValid?ft.create(ve.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(r,e):null}function zu(r,e,t){let n=r.c.year>9999||r.c.year<0,i="";if(n&&r.c.year>=0&&(i+="+"),i+=Ce(r.c.year,n?6:4),t==="year")return i;if(e){if(i+="-",i+=Ce(r.c.month),t==="month")return i;i+="-"}else if(i+=Ce(r.c.month),t==="month")return i;return i+=Ce(r.c.day),i}function O0(r,e,t,n,i,s,a){let o=!t||r.c.millisecond!==0||r.c.second!==0,l="";switch(a){case"day":case"month":case"year":break;default:if(l+=Ce(r.c.hour),a==="hour")break;if(e){if(l+=":",l+=Ce(r.c.minute),a==="minute")break;o&&(l+=":",l+=Ce(r.c.second))}else{if(l+=Ce(r.c.minute),a==="minute")break;o&&(l+=Ce(r.c.second))}if(a==="second")break;o&&(!n||r.c.millisecond!==0)&&(l+=".",l+=Ce(r.c.millisecond,3))}return i&&(r.isOffsetFixed&&r.offset===0&&!s?l+="Z":r.o<0?(l+="-",l+=Ce(Math.trunc(-r.o/60)),l+=":",l+=Ce(Math.trunc(-r.o%60))):(l+="+",l+=Ce(Math.trunc(r.o/60)),l+=":",l+=Ce(Math.trunc(r.o%60)))),s&&(l+="["+r.zone.ianaName+"]"),l}var _v={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},XR={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},eC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},go=["year","month","day","hour","minute","second","millisecond"],tC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],rC=["year","ordinal","hour","minute","second","millisecond"];function vo(r){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[r.toLowerCase()];if(!e)throw new Ko(r);return e}function R0(r){switch(r.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return vo(r)}}function nC(r){if(xi===void 0&&(xi=Ie.now()),r.type!=="iana")return r.offset(xi);let e=r.name,t=dd.get(e);return t===void 0&&(t=r.offset(xi),dd.set(e,t)),t}function C0(r,e){let t=Ar(e.zone,Ie.defaultZone);if(!t.isValid)return xe.invalid(Ii(t));let n=ve.fromObject(e),i,s;if(Q(r.year))i=Ie.now();else{for(let l of go)Q(r[l])&&(r[l]=_v[l]);let a=ov(r)||lv(r);if(a)return xe.invalid(a);let o=nC(t);[i,s]=bo(r,o,t)}return new xe({ts:i,zone:t,loc:n,o:s})}function _0(r,e,t){let n=Q(t.round)?!0:t.round,i=Q(t.rounding)?"trunc":t.rounding,s=(o,l)=>(o=md(o,n||t.calendary?0:2,t.calendary?"round":i),e.loc.clone(t).relFormatter(t).format(o,l)),a=o=>t.calendary?e.hasSame(r,o)?0:e.startOf(o).diff(r.startOf(o),o).get(o):e.diff(r,o).get(o);if(t.unit)return s(a(t.unit),t.unit);for(let o of t.units){let l=a(o);if(Math.abs(l)>=1)return s(l,o)}return s(r>e?-0:0,t.units[t.units.length-1])}function M0(r){let e={},t;return r.length>0&&typeof r[r.length-1]=="object"?(e=r[r.length-1],t=Array.from(r).slice(0,r.length-1)):t=Array.from(r),[e,t]}var xi,dd=new Map,xe=class r{constructor(e){let t=e.zone||Ie.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new ht("invalid input"):null)||(t.isValid?null:Ii(t));this.ts=Q(e.ts)?Ie.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[i,s]=[e.old.c,e.old.o];else{let o=Or(e.o)&&!e.old?e.o:t.offset(this.ts);i=yo(this.ts,o),n=Number.isNaN(i.year)?new ht("invalid input"):null,i=n?null:i,s=n?null:o}this._zone=t,this.loc=e.loc||ve.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new r({})}static local(){let[e,t]=M0(arguments),[n,i,s,a,o,l,c]=t;return C0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static utc(){let[e,t]=M0(arguments),[n,i,s,a,o,l,c]=t;return e.zone=mt.utcInstance,C0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static fromJSDate(e,t={}){let n=MO(e)?e.valueOf():NaN;if(Number.isNaN(n))return r.invalid("invalid input");let i=Ar(t.zone,Ie.defaultZone);return i.isValid?new r({ts:n,zone:i,loc:ve.fromObject(t)}):r.invalid(Ii(i))}static fromMillis(e,t={}){if(Or(e))return e<-A0||e>A0?r.invalid("Timestamp out of range"):new r({ts:e,zone:Ar(t.zone,Ie.defaultZone),loc:ve.fromObject(t)});throw new Fe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(Or(e))return new r({ts:e*1e3,zone:Ar(t.zone,Ie.defaultZone),loc:ve.fromObject(t)});throw new Fe("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};let n=Ar(t.zone,Ie.defaultZone);if(!n.isValid)return r.invalid(Ii(n));let i=ve.fromObject(t),s=xo(e,R0),{minDaysInFirstWeek:a,startOfWeek:o}=g0(s,i),l=Ie.now(),c=Q(t.specificOffset)?n.offset(l):t.specificOffset,u=!Q(s.ordinal),d=!Q(s.year),f=!Q(s.month)||!Q(s.day),p=d||f,y=s.weekYear||s.weekNumber;if((p||u)&&y)throw new Dr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(f&&u)throw new Dr("Can't mix ordinal dates with month/day");let g=y||s.weekday&&!p,S,k,I=yo(l,c);g?(S=tC,k=XR,I=ko(I,a,o)):u?(S=rC,k=eC,I=Gu(I)):(S=go,k=_v);let R=!1;for(let w of S){let U=s[w];Q(U)?R?s[w]=k[w]:s[w]=I[w]:R=!0}let O=g?RO(s,a,o):u?CO(s):ov(s),x=O||lv(s);if(x)return r.invalid(x);let E=g?m0(s,a,o):u?b0(s):s,[M,F]=bo(E,c,n),C=new r({ts:M,zone:n,o:F,loc:i});return s.weekday&&p&&e.weekday!==C.weekday?r.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${C.toISO()}`):C.isValid?C:r.invalid(C.invalid)}static fromISO(e,t={}){let[n,i]=IR(e);return Jn(n,i,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[n,i]=xR(e);return Jn(n,i,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[n,i]=wR(e);return Jn(n,i,t,"HTTP",t)}static fromFormat(e,t,n={}){if(Q(e)||Q(t))throw new Fe("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,a=ve.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[o,l,c,u]=ZR(a,e,t);return u?r.invalid(u):Jn(o,l,n,`format ${t}`,e,c)}static fromString(e,t,n={}){return r.fromFormat(e,t,n)}static fromSQL(e,t={}){let[n,i]=CR(e);return Jn(n,i,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new Fe("need to specify a reason the DateTime is invalid");let n=e instanceof ht?e:new ht(e,t);if(Ie.throwOnInvalid)throw new $u(n);return new r({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=Rv(e,ve.fromObject(t));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,t={}){return Dv(ft.parseFormat(e),ve.fromObject(t)).map(i=>i.val).join("")}static resetCache(){xi=void 0,dd.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Wu(this).weekYear:NaN}get weekNumber(){return this.isValid?Wu(this).weekNumber:NaN}get weekday(){return this.isValid?Wu(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Uu(this).weekday:NaN}get localWeekNumber(){return this.isValid?Uu(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Uu(this).weekYear:NaN}get ordinal(){return this.isValid?Gu(this.c).ordinal:NaN}get monthShort(){return this.isValid?nn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?nn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?nn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?nn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,n=jo(this.c),i=this.zone.offset(n-e),s=this.zone.offset(n+e),a=this.zone.offset(n-i*t),o=this.zone.offset(n-s*t);if(a===o)return[this];let l=n-a*t,c=n-o*t,u=yo(l,a),d=yo(c,o);return u.hour===d.hour&&u.minute===d.minute&&u.second===d.second&&u.millisecond===d.millisecond?[tn(this,{ts:l}),tn(this,{ts:c})]:[this]}get isInLeapYear(){return Ai(this.year)}get daysInMonth(){return Io(this.year,this.month)}get daysInYear(){return this.isValid?Fn(this.year):NaN}get weeksInWeekYear(){return this.isValid?ji(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?ji(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:i}=ft.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:i}}toUTC(e=0,t={}){return this.setZone(mt.instance(e),t)}toLocal(){return this.setZone(Ie.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:n=!1}={}){if(e=Ar(e,Ie.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(t||n){let s=e.offset(this.ts),a=this.toObject();[i]=bo(a,s,e)}return tn(this,{ts:i,zone:e})}else return r.invalid(Ii(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return tn(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=xo(e,R0),{minDaysInFirstWeek:n,startOfWeek:i}=g0(t,this.loc),s=!Q(t.weekYear)||!Q(t.weekNumber)||!Q(t.weekday),a=!Q(t.ordinal),o=!Q(t.year),l=!Q(t.month)||!Q(t.day),c=o||l,u=t.weekYear||t.weekNumber;if((c||a)&&u)throw new Dr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(l&&a)throw new Dr("Can't mix ordinal dates with month/day");let d;s?d=m0({...ko(this.c,n,i),...t},n,i):Q(t.ordinal)?(d={...this.toObject(),...t},Q(t.day)&&(d.day=Math.min(Io(d.year,d.month),d.day))):d=b0({...Gu(this.c),...t});let[f,p]=bo(d,this.o,this.zone);return tn(this,{ts:f,o:p})}plus(e){if(!this.isValid)return this;let t=Ne.fromDurationLike(e);return tn(this,D0(this,t))}minus(e){if(!this.isValid)return this;let t=Ne.fromDurationLike(e).negate();return tn(this,D0(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},i=Ne.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(t){let s=this.loc.getStartOfWeek(),{weekday:a}=this;a<s&&(n.weekNumber=this.weekNumber-1),n.weekday=s}else n.weekday=1;if(i==="quarters"){let s=Math.ceil(this.month/3);n.month=(s-1)*3+1}return this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?ft.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Bu}toLocaleString(e=So,t={}){return this.isValid?ft.create(this.loc.clone(t),e).formatDateTime(this):Bu}toLocaleParts(e={}){return this.isValid?ft.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1,precision:a="milliseconds"}={}){if(!this.isValid)return null;a=vo(a);let o=e==="extended",l=zu(this,o,a);return go.indexOf(a)>=3&&(l+="T"),l+=O0(this,o,t,n,i,s,a),l}toISODate({format:e="extended",precision:t="day"}={}){return this.isValid?zu(this,e==="extended",vo(t)):null}toISOWeekDate(){return mo(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:a="extended",precision:o="milliseconds"}={}){return this.isValid?(o=vo(o),(i&&go.indexOf(o)>=3?"T":"")+O0(this,a==="extended",t,e,n,s,o)):null}toRFC2822(){return mo(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return mo(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?zu(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(t||e)&&(n&&(i+=" "),t?i+="z":e&&(i+="ZZ")),mo(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Bu}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",n={}){if(!this.isValid||!e.isValid)return Ne.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=PO(t).map(Ne.normalizeUnit),a=e.valueOf()>this.valueOf(),o=a?this:e,l=a?e:this,c=qR(o,l,s,i);return a?c.negate():c}diffNow(e="milliseconds",t={}){return this.diff(r.now(),e,t)}until(e){return this.isValid?sn.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;let i=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(t,n)<=i&&i<=s.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let t=e.base||r.fromObject({},{zone:this.zone}),n=e.padding?this<t?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),_0(t,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?_0(e.base||r.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(r.isDateTime))throw new Fe("min requires all arguments be DateTimes");return v0(e,t=>t.valueOf(),Math.min)}static max(...e){if(!e.every(r.isDateTime))throw new Fe("max requires all arguments be DateTimes");return v0(e,t=>t.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:i=null,numberingSystem:s=null}=n,a=ve.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return Ov(a,e,t)}static fromStringExplain(e,t,n={}){return r.fromFormatExplain(e,t,n)}static buildFormatParser(e,t={}){let{locale:n=null,numberingSystem:i=null}=t,s=ve.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new wo(s,e)}static fromFormatParser(e,t,n={}){if(Q(e)||Q(t))throw new Fe("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:s=null}=n,a=ve.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});if(!a.equals(t.locale))throw new Fe(`fromFormatParser called with a locale of ${a}, but the format parser was created for ${t.locale}`);let{result:o,zone:l,specificOffset:c,invalidReason:u}=t.explainFromTokens(e);return u?r.invalid(u):Jn(o,l,n,`format ${t.format}`,e,c)}static get DATE_SHORT(){return So}static get DATE_MED(){return P0}static get DATE_MED_WITH_WEEKDAY(){return fO}static get DATE_FULL(){return N0}static get DATE_HUGE(){return L0}static get TIME_SIMPLE(){return q0}static get TIME_WITH_SECONDS(){return J0}static get TIME_WITH_SHORT_OFFSET(){return F0}static get TIME_WITH_LONG_OFFSET(){return V0}static get TIME_24_SIMPLE(){return G0}static get TIME_24_WITH_SECONDS(){return Y0}static get TIME_24_WITH_SHORT_OFFSET(){return B0}static get TIME_24_WITH_LONG_OFFSET(){return W0}static get DATETIME_SHORT(){return U0}static get DATETIME_SHORT_WITH_SECONDS(){return z0}static get DATETIME_MED(){return $0}static get DATETIME_MED_WITH_SECONDS(){return H0}static get DATETIME_MED_WITH_WEEKDAY(){return hO}static get DATETIME_FULL(){return Q0}static get DATETIME_FULL_WITH_SECONDS(){return Z0}static get DATETIME_HUGE(){return X0}static get DATETIME_HUGE_WITH_SECONDS(){return ev}};function Ei(r){if(xe.isDateTime(r))return r;if(r&&r.valueOf&&Or(r.valueOf()))return xe.fromJSDate(r);if(r&&typeof r=="object")return xe.fromObject(r);throw new Fe(`Unknown datetime argument: ${r}, of type ${typeof r}`)}var iC="3.7.2";bt.DateTime=xe;bt.Duration=Ne;bt.FixedOffsetZone=mt;bt.IANAZone=or;bt.Info=nn;bt.Interval=sn;bt.InvalidZone=Eo;bt.Settings=Ie;bt.SystemZone=Ti;bt.VERSION=iC;bt.Zone=Rr});var Nv=h(($N,Pv)=>{"use strict";var an=Mv();X.prototype.addYear=function(){this._date=this._date.plus({years:1})};X.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};X.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};X.prototype.addHour=function(){var r=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=r&&(this._date=this._date.plus({hours:1}))};X.prototype.addMinute=function(){var r=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<r&&(this._date=this._date.plus({hours:1}))};X.prototype.addSecond=function(){var r=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<r&&(this._date=this._date.plus({hours:1}))};X.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};X.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};X.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};X.prototype.subtractHour=function(){var r=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=r&&(this._date=this._date.minus({hours:1}))};X.prototype.subtractMinute=function(){var r=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>r&&(this._date=this._date.minus({hours:1}))};X.prototype.subtractSecond=function(){var r=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>r&&(this._date=this._date.minus({hours:1}))};X.prototype.getDate=function(){return this._date.day};X.prototype.getFullYear=function(){return this._date.year};X.prototype.getDay=function(){var r=this._date.weekday;return r==7?0:r};X.prototype.getMonth=function(){return this._date.month-1};X.prototype.getHours=function(){return this._date.hour};X.prototype.getMinutes=function(){return this._date.minute};X.prototype.getSeconds=function(){return this._date.second};X.prototype.getMilliseconds=function(){return this._date.millisecond};X.prototype.getTime=function(){return this._date.valueOf()};X.prototype.getUTCDate=function(){return this._getUTC().day};X.prototype.getUTCFullYear=function(){return this._getUTC().year};X.prototype.getUTCDay=function(){var r=this._getUTC().weekday;return r==7?0:r};X.prototype.getUTCMonth=function(){return this._getUTC().month-1};X.prototype.getUTCHours=function(){return this._getUTC().hour};X.prototype.getUTCMinutes=function(){return this._getUTC().minute};X.prototype.getUTCSeconds=function(){return this._getUTC().second};X.prototype.toISOString=function(){return this._date.toUTC().toISO()};X.prototype.toJSON=function(){return this._date.toJSON()};X.prototype.setDate=function(r){this._date=this._date.set({day:r})};X.prototype.setFullYear=function(r){this._date=this._date.set({year:r})};X.prototype.setDay=function(r){this._date=this._date.set({weekday:r})};X.prototype.setMonth=function(r){this._date=this._date.set({month:r+1})};X.prototype.setHours=function(r){this._date=this._date.set({hour:r})};X.prototype.setMinutes=function(r){this._date=this._date.set({minute:r})};X.prototype.setSeconds=function(r){this._date=this._date.set({second:r})};X.prototype.setMilliseconds=function(r){this._date=this._date.set({millisecond:r})};X.prototype._getUTC=function(){return this._date.toUTC()};X.prototype.toString=function(){return this.toDate().toString()};X.prototype.toDate=function(){return this._date.toJSDate()};X.prototype.isLastDayOfMonth=function(){var r=this._date.plus({days:1}).startOf("day");return this._date.month!==r.month};X.prototype.isLastWeekdayOfMonth=function(){var r=this._date.plus({days:7}).startOf("day");return this._date.month!==r.month};function X(r,e){var t={zone:e};if(r?r instanceof X?this._date=r._date:r instanceof Date?this._date=an.DateTime.fromJSDate(r,t):typeof r=="number"?this._date=an.DateTime.fromMillis(r,t):typeof r=="string"&&(this._date=an.DateTime.fromISO(r,t),this._date.isValid||(this._date=an.DateTime.fromRFC2822(r,t)),this._date.isValid||(this._date=an.DateTime.fromSQL(r,t)),this._date.isValid||(this._date=an.DateTime.fromFormat(r,"EEE, d MMM yyyy HH:mm:ss",t))):this._date=an.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(r));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}Pv.exports=X});var Jv=h((HN,qv)=>{"use strict";function on(r){return{start:r,count:1}}function Lv(r,e){r.end=e,r.step=e-r.start,r.count=2}function Kd(r,e,t){e&&(e.count===2?(r.push(on(e.start)),r.push(on(e.end))):r.push(e)),t&&r.push(t)}function sC(r){for(var e=[],t=void 0,n=0;n<r.length;n++){var i=r[n];typeof i!="number"?(Kd(e,t,on(i)),t=void 0):t?t.count===1?Lv(t,i):t.step===i-t.end?(t.count++,t.end=i):t.count===2?(e.push(on(t.start)),t=on(t.end),Lv(t,i)):(Kd(e,t),t=on(i)):t=on(i)}return Kd(e,t),e}qv.exports=sC});var Vv=h((QN,Fv)=>{"use strict";var aC=Jv();function oC(r,e,t){var n=aC(r);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===t)return"*";if(s!==1&&i.start===e&&i.end===t-s+1)return"*/"+s}for(var a=[],o=0,l=n.length;o<l;++o){var c=n[o];if(c.count===1){a.push(c.start);continue}var s=c.step;if(c.step===1){a.push(c.start+"-"+c.end);continue}var u=c.start==0?c.count-1:c.count;c.step*u>c.end?a=a.concat(Array.from({length:c.end-c.start+1}).map(function(f,p){var y=c.start+p;return(y-c.start)%c.step===0?y:null}).filter(function(f){return f!=null})):c.end===t-c.step+1?a.push(c.start+"/"+c.step):a.push(c.start+"-"+c.end+"/"+c.step)}return a.join(",")}Fv.exports=oC});var Bv=h((ZN,Yv)=>{"use strict";var ln=Nv(),lC=Vv(),Gv=1e4;function L(r,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new ln(e.currentDate,this._tz),this._startDate=e.startDate?new ln(e.startDate,this._tz):null,this._endDate=e.endDate?new ln(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=L._freezeFields(r)}L.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];L.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};L.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];L.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];L.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};L.parseDefaults=["0","*","*","*","*","*"];L.standardValidCharacters=/^[,*\d/-]+$/;L.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;L.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;L.validCharacters={second:L.standardValidCharacters,minute:L.standardValidCharacters,hour:L.standardValidCharacters,dayOfMonth:L.dayOfMonthValidCharacters,month:L.standardValidCharacters,dayOfWeek:L.dayOfWeekValidCharacters};L._isValidConstraintChar=function(e,t){return typeof t!="string"?!1:e.chars.some(function(n){return t.indexOf(n)>-1})};L._parseField=function(e,t,n){switch(e){case"month":case"dayOfWeek":var i=L.aliases[e];t=t.replace(/[a-z]{3}/gi,function(l){if(l=l.toLowerCase(),typeof i[l]<"u")return i[l];throw new Error('Validation error, cannot resolve alias "'+l+'"')});break}if(!L.validCharacters[e].test(t))throw new Error("Invalid characters, got value: "+t);t.indexOf("*")!==-1?t=t.replace(/\*/g,n.min+"-"+n.max):t.indexOf("?")!==-1&&(t=t.replace(/\?/g,n.min+"-"+n.max));function s(l){var c=[];function u(y){if(y instanceof Array)for(var g=0,S=y.length;g<S;g++){var k=y[g];if(L._isValidConstraintChar(n,k)){c.push(k);continue}if(typeof k!="number"||Number.isNaN(k)||k<n.min||k>n.max)throw new Error("Constraint error, got value "+k+" expected range "+n.min+"-"+n.max);c.push(k)}else{if(L._isValidConstraintChar(n,y)){c.push(y);return}var I=+y;if(Number.isNaN(I)||I<n.min||I>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(I=I%7),c.push(I)}}var d=l.split(",");if(!d.every(function(y){return y.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var f=0,p=d.length;f<p;f++)u(a(d[f]));else u(a(l));return c.sort(L._sortCompareFn),c}function a(l){var c=1,u=l.split("/");if(u.length>2)throw new Error("Invalid repeat: "+l);return u.length>1?(u[0]==+u[0]&&(u=[u[0]+"-"+n.max,u[1]]),o(u[0],u[u.length-1])):o(l,c)}function o(l,c){var u=[],d=l.split("-");if(d.length>1){if(d.length<2)return+l;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+l);return+l}var f=+d[0],p=+d[1];if(Number.isNaN(f)||Number.isNaN(p)||f<n.min||p>n.max)throw new Error("Constraint error, got range "+f+"-"+p+" expected range "+n.min+"-"+n.max);if(f>p)throw new Error("Invalid range: "+l);var y=+c;if(Number.isNaN(y)||y<=0)throw new Error("Constraint error, cannot repeat at every "+y+" time.");e==="dayOfWeek"&&p%7===0&&u.push(0);for(var g=f,S=p;g<=S;g++){var k=u.indexOf(g)!==-1;!k&&y>0&&y%c===0?(y=1,u.push(g)):y++}return u}return Number.isNaN(+l)?l:+l}return s(t)};L._sortCompareFn=function(r,e){var t=typeof r=="number",n=typeof e=="number";return t&&n?r-e:!t&&n?1:t&&!n?-1:r.localeCompare(e)};L._handleMaxDaysInMonth=function(r){if(r.month.length===1){var e=L.daysInMonth[r.month[0]-1];if(r.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return r.dayOfMonth.filter(function(t){return t==="L"?!0:t<=e}).sort(L._sortCompareFn)}};L._freezeFields=function(r){for(var e=0,t=L.map.length;e<t;++e){var n=L.map[e],i=r[n];r[n]=Object.freeze(i)}return Object.freeze(r)};L.prototype._applyTimezoneShift=function(r,e,t){if(t==="Month"||t==="Day"){var n=r.getTime();r[e+t]();var i=r.getTime();n===i&&(r.getMinutes()===0&&r.getSeconds()===0?r.addHour():r.getMinutes()===59&&r.getSeconds()===59&&r.subtractHour())}else{var s=r.getHours();r[e+t]();var a=r.getHours(),o=a-s;o===2?this.fields.hour.length!==24&&(this._dstStart=a):o===0&&r.getMinutes()===0&&r.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=a)}};L.prototype._findSchedule=function(e){function t(k,I){for(var R=0,O=I.length;R<O;R++)if(I[R]>=k)return I[R]===k;return I[0]===k}function n(k,I){if(I<6){if(k.getDate()<8&&I===1)return!0;var R=k.getDate()%7?1:0,O=k.getDate()-k.getDate()%7,x=Math.floor(O/7)+R;return x===I}return!1}function i(k){return k.length>0&&k.some(function(I){return typeof I=="string"&&I.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",a=new ln(this._currentDate,this._tz),o=this._startDate,l=this._endDate,c=a.getTime(),u=0;function d(k){return k.some(function(I){if(!i([I]))return!1;var R=Number.parseInt(I[0])%7;if(Number.isNaN(R))throw new Error("Invalid last weekday of the month expression: "+I);return a.getDay()===R&&a.isLastWeekdayOfMonth()})}for(;u<Gv;){if(u++,e){if(o&&a.getTime()-o.getTime()<0)throw new Error("Out of the timespan range")}else if(l&&l.getTime()-a.getTime()<0)throw new Error("Out of the timespan range");var f=t(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(f=f||a.isLastDayOfMonth());var p=t(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||d(this.fields.dayOfWeek));var y=this.fields.dayOfMonth.length>=L.daysInMonth[a.getMonth()],g=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,S=a.getHours();if(!f&&(!p||g)){this._applyTimezoneShift(a,s,"Day");continue}if(!y&&g&&!f){this._applyTimezoneShift(a,s,"Day");continue}if(y&&!g&&!p){this._applyTimezoneShift(a,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(a,this._nthDayOfWeek)){this._applyTimezoneShift(a,s,"Day");continue}if(!t(a.getMonth()+1,this.fields.month)){this._applyTimezoneShift(a,s,"Month");continue}if(t(S,this.fields.hour)){if(this._dstEnd===S&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==S){this._dstStart=null,this._applyTimezoneShift(a,s,"Hour");continue}else if(!t(S-1,this.fields.hour)){a[s+"Hour"]();continue}if(!t(a.getMinutes(),this.fields.minute)){this._applyTimezoneShift(a,s,"Minute");continue}if(!t(a.getSeconds(),this.fields.second)){this._applyTimezoneShift(a,s,"Second");continue}if(c===a.getTime()){s==="add"||a.getMilliseconds()===0?this._applyTimezoneShift(a,s,"Second"):a.setMilliseconds(0);continue}break}if(u>=Gv)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new ln(a,this._tz),this._hasIterated=!0,a};L.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};L.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};L.prototype.hasNext=function(){var r=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=r,this._hasIterated=e}};L.prototype.hasPrev=function(){var r=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=r,this._hasIterated=e}};L.prototype.iterate=function(e,t){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var a=this.next();n.push(a),t&&t(a,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var a=this.prev();n.push(a),t&&t(a,i)}catch{break}return n};L.prototype.reset=function(e){this._currentDate=new ln(e||this._options.currentDate)};L.prototype.stringify=function(e){for(var t=[],n=e?0:1,i=L.map.length;n<i;++n){var s=L.map[n],a=this.fields[s],o=L.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?o={min:1,max:L.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(o={min:0,max:6},a=a[a.length-1]===7?a.slice(0,-1):a),t.push(lC(a,o.min,o.max))}return t.join(" ")};L.parse=function(e,t){var n=this;typeof t=="function"&&(t={});function i(s,a){a||(a={}),typeof a.currentDate>"u"&&(a.currentDate=new ln(void 0,n._tz)),L.predefined[s]&&(s=L.predefined[s]);var o=[],l=(s+"").trim().split(/\s+/);if(l.length>6)throw new Error("Invalid cron expression");for(var c=L.map.length-l.length,u=0,d=L.map.length;u<d;++u){var f=L.map[u],p=l[l.length>d?u:u-c];if(u<c||!p)o.push(L._parseField(f,L.parseDefaults[u],L.constraints[u]));else{var y=f==="dayOfWeek"?I(p):p;o.push(L._parseField(f,y,L.constraints[u]))}}for(var g={},u=0,d=L.map.length;u<d;u++){var S=L.map[u];g[S]=o[u]}var k=L._handleMaxDaysInMonth(g);return g.dayOfMonth=k||g.dayOfMonth,new L(g,a);function I(R){var O=R.split("#");if(O.length>1){var x=+O[O.length-1];if(/,/.test(R))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(R))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(R))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(O.length>2||Number.isNaN(x)||x<1||x>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=x,O[0]}return R}}return i(e,t)};L.fieldsToExpression=function(e,t){function n(f,p,y){if(!p)throw new Error("Validation error, Field "+f+" is missing");if(p.length===0)throw new Error("Validation error, Field "+f+" contains no values");for(var g=0,S=p.length;g<S;g++){var k=p[g];if(!L._isValidConstraintChar(y,k)&&(typeof k!="number"||Number.isNaN(k)||k<y.min||k>y.max))throw new Error("Constraint error, got value "+k+" expected range "+y.min+"-"+y.max)}}for(var i={},s=0,a=L.map.length;s<a;++s){var o=L.map[s],l=e[o];n(o,l,L.constraints[s]);for(var c=[],u=-1;++u<l.length;)c[u]=l[u];if(l=c.sort(L._sortCompareFn).filter(function(f,p,y){return!p||f!==y[p-1]}),l.length!==c.length)throw new Error("Validation error, Field "+o+" contains duplicate values");i[o]=l}var d=L._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new L(i,t||{})};Yv.exports=L});var Sd=h((XN,Wv)=>{"use strict";var Oo=Bv();function Cr(){}Cr._parseEntry=function(e){var t=e.split(" ");if(t.length===6)return{interval:Oo.parse(e)};if(t.length>6)return{interval:Oo.parse(t.slice(0,6).join(" ")),command:t.slice(6,t.length)};throw new Error("Invalid entry: "+e)};Cr.parseExpression=function(e,t){return Oo.parse(e,t)};Cr.fieldsToExpression=function(e,t){return Oo.fieldsToExpression(e,t)};Cr.parseString=function(e){for(var t=e.split(`
|
|
8911
|
+
`),n={variables:{},expressions:[],errors:{}},i=0,s=t.length;i<s;i++){var a=t[i],o=null,l=a.trim();if(l.length>0){if(l.match(/^#/))continue;if(o=l.match(/^(.*)=(.*)$/))n.variables[o[1]]=o[2];else{var c=null;try{c=Cr._parseEntry("0 "+l),n.expressions.push(c.interval)}catch(u){n.errors[l]=u}}}}return n};Cr.parseFile=function(e,t){V("fs").readFile(e,function(n,i){if(n){t(n);return}return t(null,Cr.parseString(i.toString()))})};Wv.exports=Cr});var _r=h(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.QueueBase=void 0;var cC=V("events"),Ri=ut(),uC=oa(),dC=Si(),pC=Pn(),fC=ca(),Ed=class extends cC.EventEmitter{constructor(e,t={connection:{}},n=dC.RedisConnection,i=!1){if(super(),this.name=e,this.opts=t,this.closed=!1,this.hasBlockingConnection=!1,this.hasBlockingConnection=i,this.opts=Object.assign({prefix:"bull"},t),!e)throw new Error("Queue name must be provided");if(e.includes(":"))throw new Error("Queue name cannot contain :");this.connection=new n(t.connection,{shared:(0,Ri.isRedisInstance)(t.connection),blocking:i,skipVersionCheck:t.skipVersionCheck,skipWaitingForReady:t.skipWaitingForReady}),this.connection.on("error",a=>this.emit("error",a)),this.connection.on("close",()=>{this.closing||this.emit("ioredis:close")});let s=new fC.QueueKeys(t.prefix);this.qualifiedName=s.getQueueQualifiedName(e),this.keys=s.getKeys(e),this.toKey=a=>s.toKey(e,a),this.createScripts()}get client(){return this.connection.client}createScripts(){this.scripts=(0,uC.createScripts)(this)}get redisVersion(){return this.connection.redisVersion}get databaseType(){return this.connection.databaseType}get Job(){return pC.Job}emit(e,...t){try{return super.emit(e,...t)}catch(n){try{return super.emit("error",n)}catch(i){return console.error(i),!1}}}waitUntilReady(){return this.client}base64Name(){return Buffer.from(this.name).toString("base64")}clientName(e=""){let t=this.base64Name();return`${this.opts.prefix}:${t}${e}`}async close(){this.closing||(this.closing=this.connection.close()),await this.closing,this.closed=!0}disconnect(){return this.connection.disconnect()}async checkConnectionError(e,t=Ri.DELAY_TIME_5){try{return await e()}catch(n){if((0,Ri.isNotConnectionError)(n)&&this.emit("error",n),!this.closing&&t)await(0,Ri.delay)(t);else return}}trace(e,t,n,i,s){return(0,Ri.trace)(this.opts.telemetry,e,this.name,t,n,i,s)}};Ro.QueueBase=Ed});var _o=h(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.defaultRepeatStrategy=cn.JobScheduler=void 0;var hC=(Qe(),it(He)),yC=Sd(),Co=Pn(),mC=_r(),Ci=at(),bC=ut(),kd=class extends mC.QueueBase{constructor(e,t,n){super(e,t,n),this.repeatStrategy=t.settings&&t.settings.repeatStrategy||cn.defaultRepeatStrategy}async upsertJobScheduler(e,t,n,i,s,{override:a,producerId:o}){let{every:l,limit:c,pattern:u,offset:d}=t;if(u&&l)throw new Error("Both .pattern and .every options are defined for this repeatable job");if(!u&&!l)throw new Error("Either .pattern or .every options must be defined for this repeatable job");if(t.immediately&&t.startDate)throw new Error("Both .immediately and .startDate options are defined for this repeatable job");t.immediately&&t.every&&console.warn("Using option immediately with every does not affect the job's schedule. Job will run immediately anyway.");let f=t.count?t.count+1:1;if(typeof t.limit<"u"&&f>t.limit)return;let p=Date.now(),{endDate:y}=t;if(y&&p>new Date(y).getTime())return;let g=s.prevMillis||0;p=g<p?p:g;let{immediately:S}=t,k=hC.__rest(t,["immediately"]),I,R=null;if(u&&(I=await this.repeatStrategy(p,t,n),I<p&&(I=p)),I||l)return this.trace(Ci.SpanKind.PRODUCER,"add",`${this.name}.${n}`,async(O,x)=>{var E,M;let F=s.telemetry;if(x){let w=(E=s.telemetry)===null||E===void 0?void 0:E.omitContext,U=((M=s.telemetry)===null||M===void 0?void 0:M.metadata)||!w&&x;(U||w)&&(F={metadata:U,omitContext:w})}let C=this.getNextJobOpts(I,e,Object.assign(Object.assign({},s),{repeat:k,telemetry:F}),f,R);if(a){I<p&&(I=p);let[w,U]=await this.scripts.addJobScheduler(e,I,JSON.stringify(typeof i>"u"?{}:i),Co.Job.optsAsJSON(s),{name:n,startDate:t.startDate?new Date(t.startDate).getTime():void 0,endDate:y?new Date(y).getTime():void 0,tz:t.tz,pattern:u,every:l,limit:c,offset:R},Co.Job.optsAsJSON(C),o),te=typeof U=="string"?parseInt(U,10):U,m=new this.Job(this,n,i,Object.assign(Object.assign({},C),{delay:te}),w);return m.id=w,O?.setAttributes({[Ci.TelemetryAttributes.JobSchedulerId]:e,[Ci.TelemetryAttributes.JobId]:m.id}),m}else{let w=await this.scripts.updateJobSchedulerNextMillis(e,I,JSON.stringify(typeof i>"u"?{}:i),Co.Job.optsAsJSON(C),o);if(w){let U=new this.Job(this,n,i,C,w);return U.id=w,O?.setAttributes({[Ci.TelemetryAttributes.JobSchedulerId]:e,[Ci.TelemetryAttributes.JobId]:U.id}),U}}})}getNextJobOpts(e,t,n,i,s){var a,o;let l=this.getSchedulerNextJobId({jobSchedulerId:t,nextMillis:e}),c=Date.now(),u=e+s-c,d=Object.assign(Object.assign({},n),{jobId:l,delay:u<0?0:u,timestamp:c,prevMillis:e,repeatJobKey:t});return d.repeat=Object.assign(Object.assign({},n.repeat),{offset:s,count:i,startDate:!((a=n.repeat)===null||a===void 0)&&a.startDate?new Date(n.repeat.startDate).getTime():void 0,endDate:!((o=n.repeat)===null||o===void 0)&&o.endDate?new Date(n.repeat.endDate).getTime():void 0}),d}async removeJobScheduler(e){return this.scripts.removeJobScheduler(e)}async getSchedulerData(e,t,n){let i=await e.hgetall(this.toKey("repeat:"+t));return this.transformSchedulerData(t,i,n)}transformSchedulerData(e,t,n){if(t&&Object.keys(t).length>0){let i={key:e,name:t.name,next:n};return t.ic&&(i.iterationCount=parseInt(t.ic)),t.limit&&(i.limit=parseInt(t.limit)),t.startDate&&(i.startDate=parseInt(t.startDate)),t.endDate&&(i.endDate=parseInt(t.endDate)),t.tz&&(i.tz=t.tz),t.pattern&&(i.pattern=t.pattern),t.every&&(i.every=parseInt(t.every)),t.offset&&(i.offset=parseInt(t.offset)),(t.data||t.opts)&&(i.template=this.getTemplateFromJSON(t.data,t.opts)),i}if(e.includes(":"))return this.keyToData(e,n)}keyToData(e,t){let n=e.split(":"),i=n.slice(4).join(":")||null;return{key:e,name:n[0],id:n[1]||null,endDate:parseInt(n[2])||null,tz:n[3]||null,pattern:i,next:t}}async isJobScheduler(e){return await(await this.client).hexists(`${this.keys.repeat}:${e}`,"ic")===1}async getScheduler(e){let[t,n]=await this.scripts.getJobScheduler(e);return this.transformSchedulerData(e,t?(0,bC.array2obj)(t):null,n?parseInt(n):null)}getTemplateFromJSON(e,t){let n={};return e&&(n.data=JSON.parse(e)),t&&(n.opts=Co.Job.optsFromJSON(t)),n}async getJobSchedulers(e=0,t=-1,n=!1){let i=await this.client,s=this.keys.repeat,a=n?await i.zrange(s,e,t,"WITHSCORES"):await i.zrevrange(s,e,t,"WITHSCORES"),o=[];for(let l=0;l<a.length;l+=2)o.push(this.getSchedulerData(i,a[l],parseInt(a[l+1])));return Promise.all(o)}async getSchedulersCount(){let e=this.keys.repeat;return(await this.client).zcard(e)}getSchedulerNextJobId({nextMillis:e,jobSchedulerId:t}){return`repeat:${t}:${e}`}};cn.JobScheduler=kd;var gC=(r,e)=>{let{pattern:t}=e,n=new Date(r),i=e.startDate&&new Date(e.startDate),s=i>n?i:n,a=(0,yC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:s}));try{return e.immediately?new Date().getTime():a.next().getTime()}catch{}};cn.defaultRepeatStrategy=gC});var xd=h(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.LockManager=void 0;var vC=xs(),Mo=at(),Id=class{constructor(e,t){this.worker=e,this.opts=t,this.trackedJobs=new Map,this.closed=!1}start(){this.closed||this.opts.lockRenewTime>0&&this.startLockExtenderTimer()}async extendLocks(e){await this.worker.trace(Mo.SpanKind.INTERNAL,"extendLocks",this.worker.name,async t=>{t?.setAttributes({[Mo.TelemetryAttributes.WorkerId]:this.opts.workerId,[Mo.TelemetryAttributes.WorkerName]:this.opts.workerName,[Mo.TelemetryAttributes.WorkerJobsToExtendLocks]:e});try{let n=e.map(a=>{var o;return((o=this.trackedJobs.get(a))===null||o===void 0?void 0:o.token)||""}),i=await this.worker.extendJobLocks(e,n,this.opts.lockDuration);if(i.length>0){this.worker.emit("lockRenewalFailed",i);for(let a of i)this.worker.emit("error",new Error(`could not renew lock for job ${a}`))}let s=e.filter(a=>!i.includes(a));s.length>0&&this.worker.emit("locksRenewed",{count:s.length,jobIds:s})}catch(n){this.worker.emit("error",n)}})}startLockExtenderTimer(){clearTimeout(this.lockRenewalTimer),this.closed||(this.lockRenewalTimer=setTimeout(async()=>{let e=Date.now(),t=[];for(let n of this.trackedJobs.keys()){let i=this.trackedJobs.get(n),{ts:s,token:a,abortController:o}=i;if(!s){this.trackedJobs.set(n,{token:a,ts:e,abortController:o});continue}s+this.opts.lockRenewTime/2<e&&(this.trackedJobs.set(n,{token:a,ts:e,abortController:o}),t.push(n))}t.length&&await this.extendLocks(t),this.startLockExtenderTimer()},this.opts.lockRenewTime/2))}async close(){this.closed||(this.closed=!0,this.lockRenewalTimer&&(clearTimeout(this.lockRenewalTimer),this.lockRenewalTimer=void 0),this.trackedJobs.clear())}trackJob(e,t,n,i=!1){let s=i?new vC.AbortController:void 0;return!this.closed&&e&&this.trackedJobs.set(e,{token:t,ts:n,abortController:s}),s}untrackJob(e){this.trackedJobs.delete(e)}getActiveJobCount(){return this.trackedJobs.size}isRunning(){return!this.closed&&this.lockRenewalTimer!==void 0}cancelJob(e,t){let n=this.trackedJobs.get(e);return n?.abortController?(n.abortController.abort(t),!0):!1}cancelAllJobs(e){for(let t of this.trackedJobs.values())t.abortController&&t.abortController.abort(e)}getTrackedJobIds(){return Array.from(this.trackedJobs.keys())}};Po.LockManager=Id});var zv=h(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.QueueEvents=void 0;var Uv=(Qe(),it(He)),No=ut(),KC=_r(),wd=class extends KC.QueueBase{constructor(e,t={connection:{}},n){var i,{connection:s,autorun:a=!0}=t,o=Uv.__rest(t,["connection","autorun"]);super(e,Object.assign(Object.assign({},o),{connection:(0,No.isRedisInstance)(s)?s.isCluster?s.duplicate(void 0,{redisOptions:(i=s.options)===null||i===void 0?void 0:i.redisOptions}):s.duplicate():s}),n,!0),this.running=!1,this.blocking=!1,this.opts=Object.assign({blockingTimeout:1e4},this.opts),a&&this.run().catch(l=>this.emit("error",l))}emit(e,...t){return super.emit(e,...t)}off(e,t){return super.off(e,t),this}on(e,t){return super.on(e,t),this}once(e,t){return super.once(e,t),this}async run(){if(this.running)throw new Error("Queue Events is already running.");try{this.running=!0;let e=await this.client;try{await e.client("SETNAME",this.clientName(No.QUEUE_EVENT_SUFFIX))}catch(t){if(!No.clientCommandMessageReg.test(t.message))throw t}await this.consumeEvents(e)}catch(e){throw this.running=!1,e}}async consumeEvents(e){let t=this.opts,n=this.keys.events,i=t.lastEventId||"$";for(;!this.closing;){this.blocking=!0;let s=await this.checkConnectionError(()=>e.xread("BLOCK",t.blockingTimeout,"STREAMS",n,i));if(this.blocking=!1,s){let o=s[0][1];for(let l=0;l<o.length;l++){i=o[l][0];let c=(0,No.array2obj)(o[l][1]);switch(c.event){case"progress":c.data=JSON.parse(c.data);break;case"completed":c.returnvalue=JSON.parse(c.returnvalue);break}let{event:u}=c,d=Uv.__rest(c,["event"]);u==="drained"?this.emit(u,i):(this.emit(u,d,i),d.jobId&&this.emit(`${u}:${d.jobId}`,d,i))}}}}async close(){return this.closing||(this.closing=(async()=>{try{(await this.client).disconnect(),await this.connection.close(this.blocking)}finally{this.closed=!0}})()),this.closing}};Lo.QueueEvents=wd});var $v=h(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.QueueEventsProducer=void 0;var SC=(Qe(),it(He)),EC=_r(),Td=class extends EC.QueueBase{constructor(e,t={connection:{}},n){super(e,Object.assign({blockingConnection:!1},t),n),this.opts=t}async publishEvent(e,t=1e3){let n=await this.client,i=this.keys.events,{eventName:s}=e,a=SC.__rest(e,["eventName"]),o=["MAXLEN","~",t,"*","event",s];for(let[l,c]of Object.entries(a))o.push(l,c);await n.xadd(i,...o)}async close(){this.closing||(this.closing=this.connection.close()),await this.closing}};qo.QueueEventsProducer=Td});var Dd=h(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.QueueGetters=void 0;var kC=(Qe(),it(He)),IC=_r(),Hv=ut(),jd=at();function Qv(r){return String(r).replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}var Ad=class extends IC.QueueBase{getJob(e){return this.Job.fromId(this,e)}commandByType(e,t,n){return e.map(i=>{i=i==="waiting"?"wait":i;let s=this.toKey(i);switch(i){case"completed":case"failed":case"delayed":case"prioritized":case"repeat":case"waiting-children":return n(s,t?"zcard":"zrange");case"active":case"wait":case"paused":return n(s,t?"llen":"lrange")}})}sanitizeJobTypes(e){let t=typeof e=="string"?[e]:e;if(Array.isArray(t)&&t.length>0){let n=[...t];return n.indexOf("waiting")!==-1&&n.push("paused"),[...new Set(n)]}return["active","completed","delayed","failed","paused","prioritized","waiting","waiting-children"]}async count(){return await this.getJobCountByTypes("waiting","paused","delayed","prioritized","waiting-children")}async getRateLimitTtl(e){return this.scripts.getRateLimitTtl(e)}async getDebounceJobId(e){return(await this.client).get(`${this.keys.de}:${e}`)}async getDeduplicationJobId(e){return(await this.client).get(`${this.keys.de}:${e}`)}async getGlobalConcurrency(){let t=await(await this.client).hget(this.keys.meta,"concurrency");return t?Number(t):null}async getGlobalRateLimit(){let e=await this.client,[t,n]=await e.hmget(this.keys.meta,"max","duration");return t&&n?{max:Number(t),duration:Number(n)}:null}async getJobCountByTypes(...e){let t=await this.getJobCounts(...e);return Object.values(t).reduce((n,i)=>n+i,0)}async getJobCounts(...e){let t=this.sanitizeJobTypes(e),n=await this.scripts.getCounts(t),i={};return n.forEach((s,a)=>{i[t[a]]=s||0}),i}async recordJobCountsMetric(...e){var t;let n=await this.getJobCounts(...e),i=(t=this.opts.telemetry)===null||t===void 0?void 0:t.meter;if(i&&typeof i.createGauge=="function"){let s=i.createGauge(jd.MetricNames.QueueJobsCount,{description:"Number of jobs in the queue by state",unit:"{jobs}"});for(let[a,o]of Object.entries(n))s.record(o,{[jd.TelemetryAttributes.QueueName]:this.name,[jd.TelemetryAttributes.QueueJobsState]:a})}return n}getJobState(e){return this.scripts.getState(e)}async getMeta(){let t=await(await this.client).hgetall(this.keys.meta),{concurrency:n,max:i,duration:s,paused:a,"opts.maxLenEvents":o}=t,c=kC.__rest(t,["concurrency","max","duration","paused","opts.maxLenEvents"]);return n&&(c.concurrency=Number(n)),o&&(c.maxLenEvents=Number(o)),i&&(c.max=Number(i)),s&&(c.duration=Number(s)),c.paused=a==="1",c}getCompletedCount(){return this.getJobCountByTypes("completed")}getFailedCount(){return this.getJobCountByTypes("failed")}getDelayedCount(){return this.getJobCountByTypes("delayed")}getActiveCount(){return this.getJobCountByTypes("active")}getPrioritizedCount(){return this.getJobCountByTypes("prioritized")}async getCountsPerPriority(e){let t=[...new Set(e)],n=await this.scripts.getCountsPerPriority(t),i={};return n.forEach((s,a)=>{i[`${t[a]}`]=s||0}),i}getWaitingCount(){return this.getJobCountByTypes("waiting")}getWaitingChildrenCount(){return this.getJobCountByTypes("waiting-children")}getWaiting(e=0,t=-1){return this.getJobs(["waiting"],e,t,!0)}getWaitingChildren(e=0,t=-1){return this.getJobs(["waiting-children"],e,t,!0)}getActive(e=0,t=-1){return this.getJobs(["active"],e,t,!0)}getDelayed(e=0,t=-1){return this.getJobs(["delayed"],e,t,!0)}getPrioritized(e=0,t=-1){return this.getJobs(["prioritized"],e,t,!0)}getCompleted(e=0,t=-1){return this.getJobs(["completed"],e,t,!1)}getFailed(e=0,t=-1){return this.getJobs(["failed"],e,t,!1)}async getDependencies(e,t,n,i){let s=this.toKey(t=="processed"?`${e}:processed`:`${e}:dependencies`),{items:a,total:o,jobs:l}=await this.scripts.paginate(s,{start:n,end:i,fetchJobs:!0});return{items:a,jobs:l,total:o}}async getRanges(e,t=0,n=1,i=!1){let s=[];this.commandByType(e,!1,(l,c)=>{switch(c){case"lrange":s.push("lrange");break;case"zrange":s.push("zrange");break}});let a=await this.scripts.getRanges(e,t,n,i),o=[];return a.forEach((l,c)=>{let u=l||[];i&&s[c]==="lrange"?o=o.concat(u.reverse()):o=o.concat(u)}),[...new Set(o)]}async getJobs(e,t=0,n=-1,i=!1){let s=this.sanitizeJobTypes(e),a=await this.getRanges(s,t,n,i);return Promise.all(a.map(o=>this.Job.fromId(this,o)))}async getJobLogs(e,t=0,n=-1,i=!0){let a=(await this.client).multi(),o=this.toKey(e+":logs");i?a.lrange(o,t,n):a.lrange(o,-(n+1),-(t+1)),a.llen(o);let l=await a.exec();return i||l[0][1].reverse(),{logs:l[0][1],count:l[1][1]}}async baseGetClients(e){let t=await this.client;try{if(t.isCluster){let n=t.nodes(),i=[];for(let a=0;a<n.length;a++){let l=await n[a].client("LIST"),c=this.parseClientList(l,e);i.push(c)}return i.reduce((a,o)=>a.length>o.length?a:o,[])}else{let n=await t.client("LIST");return this.parseClientList(n,e)}}catch(n){if(!Hv.clientCommandMessageReg.test(n.message))throw n;return[{name:"GCP does not support client list"}]}}getWorkers(){let e=`${this.clientName()}`,t=`${this.clientName()}:w:`,n=i=>i&&(i===e||i.startsWith(t));return this.baseGetClients(n)}async getWorkersCount(){return(await this.getWorkers()).length}async getQueueEvents(){let e=`${this.clientName()}${Hv.QUEUE_EVENT_SUFFIX}`;return this.baseGetClients(t=>t===e)}async getMetrics(e,t=0,n=-1){let[i,s,a]=await this.scripts.getMetrics(e,t,n);return{meta:{count:parseInt(i[0]||"0",10),prevTS:parseInt(i[1]||"0",10),prevCount:parseInt(i[2]||"0",10)},data:s.map(o=>+o||0),count:a}}parseClientList(e,t){let n=e.split(/\r?\n/),i=[];return n.forEach(s=>{let a={};s.split(" ").forEach(function(c){let u=c.indexOf("="),d=c.substring(0,u),f=c.substring(u+1);a[d]=f});let l=a.name;t(l)&&(a.name=this.name,a.rawname=l,i.push(a))}),i}async exportPrometheusMetrics(e){let t=await this.getJobCounts(),n=[];n.push("# HELP bullmq_job_count Number of jobs in the queue by state"),n.push("# TYPE bullmq_job_count gauge");let i=Qv(this.name),s=e?Object.keys(e).reduce((l,c)=>`${l}, ${c}="${Qv(e[c])}"`,""):"";for(let[l,c]of Object.entries(t))n.push(`bullmq_job_count{queue="${i}", state="${l}"${s}} ${c}`);let[a,o]=await Promise.all([this.getMetrics("completed"),this.getMetrics("failed")]);return n.push("# HELP bullmq_job_completed_total Total number of completed jobs"),n.push("# TYPE bullmq_job_completed_total counter"),n.push(`bullmq_job_completed_total{queue="${i}"${s}} ${a.meta.count}`),n.push("# HELP bullmq_job_failed_total Total number of failed jobs"),n.push("# TYPE bullmq_job_failed_total counter"),n.push(`bullmq_job_failed_total{queue="${i}"${s}} ${o.meta.count}`),n.join(`
|
|
8912
|
+
`)}};Jo.QueueGetters=Ad});var Fo=h(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.getNextMillis=un.Repeat=void 0;var xC=(Qe(),it(He)),wC=Sd(),TC=V("crypto"),jC=_r(),Od=class extends jC.QueueBase{constructor(e,t,n){super(e,t,n),this.repeatStrategy=t.settings&&t.settings.repeatStrategy||un.getNextMillis,this.repeatKeyHashAlgorithm=t.settings&&t.settings.repeatKeyHashAlgorithm||"md5"}async updateRepeatableJob(e,t,n,{override:i}){var s,a;let o=Object.assign({},n.repeat);(s=o.pattern)!==null&&s!==void 0||(o.pattern=o.cron),delete o.cron;let l=o.count?o.count+1:1;if(typeof o.limit<"u"&&l>o.limit)return;let c=Date.now(),{endDate:u}=o;if(u&&c>new Date(u).getTime())return;let d=n.prevMillis||0;c=d<c?c:d;let f=await this.repeatStrategy(c,o,e),{every:p,pattern:y}=o,g=!!((p||y)&&o.immediately),S=g&&p?c-f:void 0;if(f){!d&&n.jobId&&(o.jobId=n.jobId);let k=Zv(e,o),I=(a=n.repeat.key)!==null&&a!==void 0?a:this.hash(k),R;if(i)R=await this.scripts.addRepeatableJob(I,f,{name:e,endDate:u?new Date(u).getTime():void 0,tz:o.tz,pattern:y,every:p},k);else{let E=await this.client;R=await this.scripts.updateRepeatableJobMillis(E,I,f,k)}let{immediately:O}=o,x=xC.__rest(o,["immediately"]);return this.createNextJob(e,f,R,Object.assign(Object.assign({},n),{repeat:Object.assign({offset:S},x)}),t,l,g)}}async createNextJob(e,t,n,i,s,a,o){let l=this.getRepeatJobKey(e,t,n,s),c=Date.now(),u=t+(i.repeat.offset?i.repeat.offset:0)-c,d=Object.assign(Object.assign({},i),{jobId:l,delay:u<0||o?0:u,timestamp:c,prevMillis:t,repeatJobKey:n});return d.repeat=Object.assign(Object.assign({},i.repeat),{count:a}),this.Job.create(this,e,s,d)}getRepeatJobKey(e,t,n,i){return n.split(":").length>2?this.getRepeatJobId({name:e,nextMillis:t,namespace:this.hash(n),jobId:i?.id}):this.getRepeatDelayedJobId({customKey:n,nextMillis:t})}async removeRepeatable(e,t,n){var i;let s=Zv(e,Object.assign(Object.assign({},t),{jobId:n})),a=(i=t.key)!==null&&i!==void 0?i:this.hash(s),o=this.getRepeatJobId({name:e,nextMillis:"",namespace:this.hash(s),jobId:n??t.jobId,key:t.key});return this.scripts.removeRepeatable(o,s,a)}async removeRepeatableByKey(e){let t=this.keyToData(e),n=this.getRepeatJobId({name:t.name,nextMillis:"",namespace:this.hash(e),jobId:t.id});return this.scripts.removeRepeatable(n,"",e)}async getRepeatableData(e,t,n){let i=await e.hgetall(this.toKey("repeat:"+t));return i?{key:t,name:i.name,endDate:parseInt(i.endDate)||null,tz:i.tz||null,pattern:i.pattern||null,every:i.every||null,next:n}:this.keyToData(t,n)}keyToData(e,t){let n=e.split(":"),i=n.slice(4).join(":")||null;return{key:e,name:n[0],id:n[1]||null,endDate:parseInt(n[2])||null,tz:n[3]||null,pattern:i,next:t}}async getRepeatableJobs(e=0,t=-1,n=!1){let i=await this.client,s=this.keys.repeat,a=n?await i.zrange(s,e,t,"WITHSCORES"):await i.zrevrange(s,e,t,"WITHSCORES"),o=[];for(let l=0;l<a.length;l+=2)o.push(this.getRepeatableData(i,a[l],parseInt(a[l+1])));return Promise.all(o)}async getRepeatableCount(){return(await this.client).zcard(this.toKey("repeat"))}hash(e){return(0,TC.createHash)(this.repeatKeyHashAlgorithm).update(e).digest("hex")}getRepeatDelayedJobId({nextMillis:e,customKey:t}){return`repeat:${t}:${e}`}getRepeatJobId({name:e,nextMillis:t,namespace:n,jobId:i,key:s}){return`repeat:${s??this.hash(`${e}${i||""}${n}`)}:${t}`}};un.Repeat=Od;function Zv(r,e){let t=e.endDate?new Date(e.endDate).getTime():"",n=e.tz||"",i=e.pattern,s=i||String(e.every)||"",a=e.jobId?e.jobId:"";return`${r}:${a}:${t}:${n}:${s}`}var AC=(r,e)=>{let t=e.pattern;if(t&&e.every)throw new Error("Both .pattern and .every options are defined for this repeatable job");if(e.every)return Math.floor(r/e.every)*e.every+(e.immediately?0:e.every);let n=e.startDate&&new Date(e.startDate)>new Date(r)?new Date(e.startDate):new Date(r),i=(0,wC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:n}));try{return e.immediately?new Date().getTime():i.next().getTime()}catch{}};un.getNextMillis=AC});var Xv=h(Vo=>{"use strict";Object.defineProperty(Vo,"__esModule",{value:!0});Vo.Queue=void 0;var DC=Pn(),OC=Dd(),RC=Fo(),ne=at(),CC=_o(),_C=ia(),MC=ut(),Rd=class extends OC.QueueGetters{constructor(e,t,n){var i;super(e,Object.assign({},t),n),this.token=(0,MC.randomUUID)(),this.libName="bullmq",this.jobsOpts=(i=t?.defaultJobOptions)!==null&&i!==void 0?i:{},this.waitUntilReady().then(s=>{if(!this.closing&&!t?.skipMetasUpdate)return s.hmset(this.keys.meta,this.metaValues)}).catch(s=>{})}emit(e,...t){return super.emit(e,...t)}off(e,t){return super.off(e,t),this}on(e,t){return super.on(e,t),this}once(e,t){return super.once(e,t),this}get defaultJobOptions(){return Object.assign({},this.jobsOpts)}get metaValues(){var e,t,n,i;return{"opts.maxLenEvents":(i=(n=(t=(e=this.opts)===null||e===void 0?void 0:e.streams)===null||t===void 0?void 0:t.events)===null||n===void 0?void 0:n.maxLen)!==null&&i!==void 0?i:1e4,version:`${this.libName}:${_C.version}`}}async getVersion(){return await(await this.client).hget(this.keys.meta,"version")}get repeat(){return new Promise(async e=>{this._repeat||(this._repeat=new RC.Repeat(this.name,Object.assign(Object.assign({},this.opts),{connection:await this.client})),this._repeat.on("error",this.emit.bind(this,"error"))),e(this._repeat)})}get jobScheduler(){return new Promise(async e=>{this._jobScheduler||(this._jobScheduler=new CC.JobScheduler(this.name,Object.assign(Object.assign({},this.opts),{connection:await this.client})),this._jobScheduler.on("error",this.emit.bind(this,"error"))),e(this._jobScheduler)})}async setGlobalConcurrency(e){return(await this.client).hset(this.keys.meta,"concurrency",e)}async setGlobalRateLimit(e,t){return(await this.client).hset(this.keys.meta,"max",e,"duration",t)}async removeGlobalConcurrency(){return(await this.client).hdel(this.keys.meta,"concurrency")}async removeGlobalRateLimit(){return(await this.client).hdel(this.keys.meta,"max","duration")}async add(e,t,n){return this.trace(ne.SpanKind.PRODUCER,"add",`${this.name}.${e}`,async(i,s)=>{var a;if(s&&!(!((a=n?.telemetry)===null||a===void 0)&&a.omitContext)){let l={metadata:s};n=Object.assign(Object.assign({},n),{telemetry:l})}let o=await this.addJob(e,t,n);return i?.setAttributes({[ne.TelemetryAttributes.JobName]:e,[ne.TelemetryAttributes.JobId]:o.id}),o})}async addJob(e,t,n){if(n&&n.repeat){if(n.repeat.endDate&&+new Date(n.repeat.endDate)<Date.now())throw new Error("End date must be greater than current timestamp");return(await this.repeat).updateRepeatableJob(e,t,Object.assign(Object.assign({},this.jobsOpts),n),{override:!0})}else{let i=n?.jobId;if(i=="0"||i?.startsWith("0:"))throw new Error("JobId cannot be '0' or start with 0:");let s=Object.assign(Object.assign(Object.assign({},this.jobsOpts),n),{jobId:i}),a=await this.Job.create(this,e,t,s);return this.emit("waiting",a),a}}async addBulk(e){return this.trace(ne.SpanKind.PRODUCER,"addBulk",this.name,async(t,n)=>(t&&t.setAttributes({[ne.TelemetryAttributes.BulkNames]:e.map(i=>i.name),[ne.TelemetryAttributes.BulkCount]:e.length}),await this.Job.createBulk(this,e.map(i=>{var s,a,o,l,c,u;let d=(s=i.opts)===null||s===void 0?void 0:s.telemetry;if(n){let p=(o=(a=i.opts)===null||a===void 0?void 0:a.telemetry)===null||o===void 0?void 0:o.omitContext,y=((c=(l=i.opts)===null||l===void 0?void 0:l.telemetry)===null||c===void 0?void 0:c.metadata)||!p&&n;(y||p)&&(d={metadata:y,omitContext:p})}let f=Object.assign(Object.assign(Object.assign({},this.jobsOpts),i.opts),{jobId:(u=i.opts)===null||u===void 0?void 0:u.jobId,telemetry:d});return{name:i.name,data:i.data,opts:f}}))))}async upsertJobScheduler(e,t,n){var i,s;if(t.endDate&&+new Date(t.endDate)<Date.now())throw new Error("End date must be greater than current timestamp");return(await this.jobScheduler).upsertJobScheduler(e,t,(i=n?.name)!==null&&i!==void 0?i:e,(s=n?.data)!==null&&s!==void 0?s:{},Object.assign(Object.assign({},this.jobsOpts),n?.opts),{override:!0})}async pause(){await this.trace(ne.SpanKind.INTERNAL,"pause",this.name,async()=>{await this.scripts.pause(!0),this.emit("paused")})}async close(){await this.trace(ne.SpanKind.INTERNAL,"close",this.name,async()=>{this.closing||this._repeat&&await this._repeat.close(),await super.close()})}async rateLimit(e){await this.trace(ne.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[ne.TelemetryAttributes.QueueRateLimit]:e}),await this.client.then(n=>n.set(this.keys.limiter,Number.MAX_SAFE_INTEGER,"PX",e))})}async resume(){await this.trace(ne.SpanKind.INTERNAL,"resume",this.name,async()=>{await this.scripts.pause(!1),this.emit("resumed")})}async isPaused(){return await(await this.client).hexists(this.keys.meta,"paused")===1}isMaxed(){return this.scripts.isMaxed()}async getRepeatableJobs(e,t,n){return(await this.repeat).getRepeatableJobs(e,t,n)}async getJobScheduler(e){return(await this.jobScheduler).getScheduler(e)}async getJobSchedulers(e,t,n){return(await this.jobScheduler).getJobSchedulers(e,t,n)}async getJobSchedulersCount(){return(await this.jobScheduler).getSchedulersCount()}async removeRepeatable(e,t,n){return this.trace(ne.SpanKind.INTERNAL,"removeRepeatable",`${this.name}.${e}`,async i=>(i?.setAttributes({[ne.TelemetryAttributes.JobName]:e,[ne.TelemetryAttributes.JobId]:n}),!await(await this.repeat).removeRepeatable(e,t,n)))}async removeJobScheduler(e){return!await(await this.jobScheduler).removeJobScheduler(e)}async removeDebounceKey(e){return this.trace(ne.SpanKind.INTERNAL,"removeDebounceKey",`${this.name}`,async t=>(t?.setAttributes({[ne.TelemetryAttributes.JobKey]:e}),await(await this.client).del(`${this.keys.de}:${e}`)))}async removeDeduplicationKey(e){return this.trace(ne.SpanKind.INTERNAL,"removeDeduplicationKey",`${this.name}`,async t=>(t?.setAttributes({[ne.TelemetryAttributes.DeduplicationKey]:e}),(await this.client).del(`${this.keys.de}:${e}`)))}async removeRateLimitKey(){return(await this.client).del(this.keys.limiter)}async removeRepeatableByKey(e){return this.trace(ne.SpanKind.INTERNAL,"removeRepeatableByKey",`${this.name}`,async t=>(t?.setAttributes({[ne.TelemetryAttributes.JobKey]:e}),!await(await this.repeat).removeRepeatableByKey(e)))}async remove(e,{removeChildren:t=!0}={}){return this.trace(ne.SpanKind.INTERNAL,"remove",this.name,async n=>{n?.setAttributes({[ne.TelemetryAttributes.JobId]:e,[ne.TelemetryAttributes.JobOptions]:JSON.stringify({removeChildren:t})});let i=await this.scripts.remove(e,t);return i===1&&this.emit("removed",e),i})}async updateJobProgress(e,t){await this.trace(ne.SpanKind.INTERNAL,"updateJobProgress",this.name,async n=>{n?.setAttributes({[ne.TelemetryAttributes.JobId]:e,[ne.TelemetryAttributes.JobProgress]:JSON.stringify(t)}),await this.scripts.updateProgress(e,t),this.emit("progress",e,t)})}async addJobLog(e,t,n){return DC.Job.addJobLog(this,e,t,n)}async drain(e=!1){await this.trace(ne.SpanKind.INTERNAL,"drain",this.name,async t=>{t?.setAttributes({[ne.TelemetryAttributes.QueueDrainDelay]:e}),await this.scripts.drain(e)})}async clean(e,t,n="completed"){return this.trace(ne.SpanKind.INTERNAL,"clean",this.name,async i=>{let s=t||1/0,a=Math.min(1e4,s),o=Date.now()-e,l=0,c=[],u=n==="waiting"?"wait":n;for(;l<s;){let d=await this.scripts.cleanJobsInSet(u,o,a);if(this.emit("cleaned",d,u),l+=d.length,c.push(...d),d.length<a)break}return i?.setAttributes({[ne.TelemetryAttributes.QueueGrace]:e,[ne.TelemetryAttributes.JobType]:n,[ne.TelemetryAttributes.QueueCleanLimit]:s,[ne.TelemetryAttributes.JobIds]:c}),c})}async obliterate(e){await this.trace(ne.SpanKind.INTERNAL,"obliterate",this.name,async()=>{await this.pause();let t=0;do t=await this.scripts.obliterate(Object.assign({force:!1,count:1e3},e));while(t)})}async retryJobs(e={}){await this.trace(ne.SpanKind.PRODUCER,"retryJobs",this.name,async t=>{t?.setAttributes({[ne.TelemetryAttributes.QueueOptions]:JSON.stringify(e)});let n=0;do n=await this.scripts.retryJobs(e.state,e.count,e.timestamp);while(n)})}async promoteJobs(e={}){await this.trace(ne.SpanKind.INTERNAL,"promoteJobs",this.name,async t=>{t?.setAttributes({[ne.TelemetryAttributes.QueueOptions]:JSON.stringify(e)});let n=0;do n=await this.scripts.promoteJobs(e.count);while(n)})}async trimEvents(e){return this.trace(ne.SpanKind.INTERNAL,"trimEvents",this.name,async t=>(t?.setAttributes({[ne.TelemetryAttributes.QueueEventMaxLength]:e}),await(await this.client).xtrim(this.keys.events,"MAXLEN","~",e)))}async removeDeprecatedPriorityKey(){return(await this.client).del(this.toKey("priority"))}async removeOrphanedJobs(e=1e3,t=0){let n=await this.client,i=new Set(Object.keys(this.keys)),s=Object.keys(this.keys).filter(d=>d!==""),a=["logs","dependencies","processed","failed","unsuccessful","lock"],o=this.qualifiedName+":",l=o+"*",c=0,u="0";do{let[d,f]=await n.scan(u,"MATCH",l,"COUNT",e);u=d;let p=new Set;for(let g of f){let S=g.slice(o.length);if(i.has(S))continue;let k=S.indexOf(":");if(k!==-1){let R=S.slice(0,k);if(i.has(R))continue}let I=k===-1?S:S.slice(0,k);if(k!==-1){let R=S.slice(k+1);if(!a.includes(R))continue}p.add(I)}if(p.size===0)continue;let y=await this.scripts.removeOrphanedJobs([...p],s,a);if(c+=y||0,t>0&&c>=t)break}while(u!=="0");return c}};Vo.Queue=Rd});var _d=h(Cd=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});var _e=at(),PC=(r,e)=>async function(n,i,s){let a,o,l,c;try{let u=new Promise((d,f)=>{(async()=>{try{l=(y,g)=>{f(new Error("Unexpected exit code: "+y+" signal: "+g))},a=await e.retain(r),a.on("exit",l),o=async y=>{var g,S,k,I,R;try{switch(y.cmd){case _e.ParentCommand.Completed:d(y.value);break;case _e.ParentCommand.Failed:case _e.ParentCommand.Error:{let O=new Error;Object.assign(O,y.value),f(O);break}case _e.ParentCommand.Progress:await n.updateProgress(y.value);break;case _e.ParentCommand.Log:await n.log(y.value);break;case _e.ParentCommand.MoveToDelayed:await n.moveToDelayed((g=y.value)===null||g===void 0?void 0:g.timestamp,(S=y.value)===null||S===void 0?void 0:S.token);break;case _e.ParentCommand.MoveToWait:await n.moveToWait((k=y.value)===null||k===void 0?void 0:k.token);break;case _e.ParentCommand.MoveToWaitingChildren:{let O=await n.moveToWaitingChildren((I=y.value)===null||I===void 0?void 0:I.token,(R=y.value)===null||R===void 0?void 0:R.opts);a.send({requestId:y.requestId,cmd:_e.ChildCommand.MoveToWaitingChildrenResponse,value:O})}break;case _e.ParentCommand.Update:await n.updateData(y.value);break;case _e.ParentCommand.GetChildrenValues:{let O=await n.getChildrenValues();a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetChildrenValuesResponse,value:O})}break;case _e.ParentCommand.GetIgnoredChildrenFailures:{let O=await n.getIgnoredChildrenFailures();a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetIgnoredChildrenFailuresResponse,value:O})}break;case _e.ParentCommand.GetDependenciesCount:{let O=await n.getDependenciesCount(y.value);a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetDependenciesCountResponse,value:O})}break;case _e.ParentCommand.GetDependencies:{let O=await n.getDependencies(y.value);a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetDependenciesResponse,value:O})}break}}catch(O){f(O)}},a.on("message",o),a.send({cmd:_e.ChildCommand.Start,job:n.asJSONSandbox(),token:i}),s&&(c=()=>{try{a.send({cmd:_e.ChildCommand.Cancel,value:s.reason})}catch{}},s.aborted?c():s.addEventListener("abort",c,{once:!0}))}catch(y){f(y)}})()});return await u,u}finally{s&&c&&s.removeEventListener("abort",c),a&&(a.off("message",o),a.off("exit",l),a.exitCode===null&&a.signalCode===null&&e.release(a))}};Cd.default=PC});var tK=h((Yo,eK)=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.Worker=void 0;var Go=V("fs"),NC=V("url"),_i=V("path"),LC=xs(),zn=ut(),qC=_r(),JC=Fo(),FC=Nc(),VC=Si(),GC=_d(),YC=Oc(),$n=qs(),ie=at(),BC=_o(),WC=xd(),UC=10,Md=class extends qC.QueueBase{static RateLimitError(){return new $n.RateLimitError}constructor(e,t,n,i){var s;if(super(e,Object.assign(Object.assign({drainDelay:5,concurrency:1,lockDuration:3e4,maximumRateLimitDelay:3e4,maxStalledCount:1,stalledInterval:3e4,autorun:!0,runRetryDelay:15e3},n),{blockingConnection:!0}),i),this.abortDelayController=null,this.blockUntil=0,this.drained=!1,this.limitUntil=0,this.processorAcceptsSignal=!1,this.stalledCheckerRunning=!1,this.waiting=null,this.running=!1,this.mainLoopRunning=null,!n||!n.connection)throw new Error("Worker requires a connection");if(typeof this.opts.maxStalledCount!="number"||this.opts.maxStalledCount<0)throw new Error("maxStalledCount must be greater or equal than 0");if(typeof this.opts.maxStartedAttempts=="number"&&this.opts.maxStartedAttempts<0)throw new Error("maxStartedAttempts must be greater or equal than 0");if(typeof this.opts.stalledInterval!="number"||this.opts.stalledInterval<=0)throw new Error("stalledInterval must be greater than 0");if(typeof this.opts.drainDelay!="number"||this.opts.drainDelay<=0)throw new Error("drainDelay must be greater than 0");if(this.concurrency=this.opts.concurrency,this.opts.lockRenewTime=this.opts.lockRenewTime||this.opts.lockDuration/2,this.id=(0,zn.randomUUID)(),this.createLockManager(),t){if(typeof t=="function")this.processFn=t,this.processorAcceptsSignal=t.length>=3;else{if(t instanceof NC.URL){if(!Go.existsSync(t))throw new Error(`URL ${t} does not exist in the local file system`);t=t.href}else{let f=t+([".js",".ts",".flow",".cjs",".mjs"].includes(_i.extname(t))?"":".js");if(!Go.existsSync(f))throw new Error(`File ${f} does not exist`)}let o=_i.dirname(eK.filename||__filename),l=_i.join(o,"main-worker.js"),c=_i.join(o,"main.js"),u=this.opts.useWorkerThreads?l:c;try{Go.statSync(u)}catch{let f=this.opts.useWorkerThreads?"main-worker.js":"main.js";u=_i.join(process.cwd(),`dist/cjs/classes/${f}`),Go.statSync(u)}this.childPool=new FC.ChildPool({mainFile:u,useWorkerThreads:this.opts.useWorkerThreads,workerForkOptions:this.opts.workerForkOptions,workerThreadsOptions:this.opts.workerThreadsOptions}),this.createSandbox(t),this.processorAcceptsSignal=!0}this.opts.autorun&&this.run().catch(o=>this.emit("error",o))}let a=this.clientName()+(this.opts.name?`:w:${this.opts.name}`:"");this.blockingConnection=new VC.RedisConnection((0,zn.isRedisInstance)(n.connection)?n.connection.isCluster?n.connection.duplicate(void 0,{redisOptions:Object.assign(Object.assign({},((s=n.connection.options)===null||s===void 0?void 0:s.redisOptions)||{}),{connectionName:a})}):n.connection.duplicate({connectionName:a}):Object.assign(Object.assign({},n.connection),{connectionName:a}),{shared:!1,blocking:!0,skipVersionCheck:n.skipVersionCheck}),this.blockingConnection.on("error",o=>this.emit("error",o)),this.blockingConnection.on("ready",()=>setTimeout(()=>this.emit("ready"),0))}createLockManager(){this.lockManager=new WC.LockManager(this,{lockRenewTime:this.opts.lockRenewTime,lockDuration:this.opts.lockDuration,workerId:this.id,workerName:this.opts.name})}createSandbox(e){this.processFn=(0,GC.default)(e,this.childPool).bind(this)}async extendJobLocks(e,t,n){return this.scripts.extendLocks(e,t,n)}emit(e,...t){return super.emit(e,...t)}off(e,t){return super.off(e,t),this}on(e,t){return super.on(e,t),this}once(e,t){return super.once(e,t),this}callProcessJob(e,t,n){return this.processFn(e,t,n)}createJob(e,t){return this.Job.fromJSON(this,e,t)}async waitUntilReady(){return await super.waitUntilReady(),this.blockingConnection.client}cancelJob(e,t){return this.lockManager.cancelJob(e,t)}cancelAllJobs(e){this.lockManager.cancelAllJobs(e)}set concurrency(e){if(typeof e!="number"||e<1||!isFinite(e))throw new Error("concurrency must be a finite number greater than 0");this._concurrency=e}get concurrency(){return this._concurrency}get repeat(){return new Promise(async e=>{if(!this._repeat){let t=await this.client;this._repeat=new JC.Repeat(this.name,Object.assign(Object.assign({},this.opts),{connection:t})),this._repeat.on("error",this.emit.bind(this,"error"))}e(this._repeat)})}get jobScheduler(){return new Promise(async e=>{if(!this._jobScheduler){let t=await this.client;this._jobScheduler=new BC.JobScheduler(this.name,Object.assign(Object.assign({},this.opts),{connection:t})),this._jobScheduler.on("error",this.emit.bind(this,"error"))}e(this._jobScheduler)})}async run(){if(!this.processFn)throw new Error("No process function is defined.");if(this.running)throw new Error("Worker is already running.");try{if(this.running=!0,this.closing||this.paused)return;await this.startStalledCheckTimer(),this.opts.skipLockRenewal||this.lockManager.start();let e=await this.client,t=await this.blockingConnection.client;this.mainLoopRunning=this.mainLoop(e,t),await this.mainLoopRunning}finally{this.running=!1}}async waitForRateLimit(){var e;let t=this.limitUntil;if(t>Date.now()){(e=this.abortDelayController)===null||e===void 0||e.abort(),this.abortDelayController=new LC.AbortController;let n=this.getRateLimitDelay(t-Date.now());await this.delay(n,this.abortDelayController),this.drained=!1,this.limitUntil=0}}async mainLoop(e,t){let n=new YC.AsyncFifoQueue,i=0;for(;!this.closing&&!this.paused||n.numTotal()>0;){for(;!this.closing&&!this.paused&&!this.waiting&&n.numTotal()<this._concurrency&&!this.isRateLimited();){let a=`${this.id}:${i++}`,o=this.retryIfFailed(()=>this._getNextJob(e,t,a,{block:!0}),{delayInMs:this.opts.runRetryDelay,onlyEmitError:!0});if(n.add(o),this.waiting&&n.numTotal()>1||!await o&&n.numTotal()>1||this.blockUntil)break}let s;do s=await n.fetch();while(!s&&n.numQueued()>0);if(s){let a=s.token;n.add(this.processJob(s,a,()=>n.numTotal()<=this._concurrency))}else n.numQueued()===0&&await this.waitForRateLimit()}}async getNextJob(e,{block:t=!0}={}){var n,i;let s=await this._getNextJob(await this.client,await this.blockingConnection.client,e,{block:t});return this.trace(ie.SpanKind.INTERNAL,"getNextJob",this.name,async a=>(a?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.QueueName]:this.name,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.WorkerOptions]:JSON.stringify({block:t}),[ie.TelemetryAttributes.JobId]:s?.id}),s),(i=(n=s?.opts)===null||n===void 0?void 0:n.telemetry)===null||i===void 0?void 0:i.metadata)}async _getNextJob(e,t,n,{block:i=!0}={}){if(this.paused||this.closing)return;let s;if(this.drained&&i&&!this.limitUntil&&!this.waiting){this.waiting=this.waitForJob(t,this.blockUntil);try{this.blockUntil=await this.waiting,(this.blockUntil<=0||this.blockUntil-Date.now()<1)&&(s=await this.moveToActive(e,n,this.opts.name))}finally{this.waiting=null}}else this.isRateLimited()||(s=await this.moveToActive(e,n,this.opts.name));return s&&this.emit("active",s,"waiting"),s}async rateLimit(e){await this.trace(ie.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerRateLimit]:e}),await this.client.then(n=>n.set(this.keys.limiter,Number.MAX_SAFE_INTEGER,"PX",e))})}get minimumBlockTimeout(){return this.blockingConnection.capabilities.canBlockFor1Ms?.001:.002}isRateLimited(){return this.limitUntil>Date.now()}async moveToActive(e,t,n){let[i,s,a,o]=await this.scripts.moveToActive(e,t,n);return this.updateDelays(a,o),this.nextJobFromJobData(i,s,t)}async waitForJob(e,t){if(this.paused)return 1/0;let n;try{if(!this.closing&&!this.isRateLimited()){let i=this.getBlockTimeout(t);if(i>0){i=this.blockingConnection.capabilities.canDoubleTimeout?i:Math.ceil(i),n=setTimeout(async()=>{e.disconnect(!this.closing)},i*1e3+1e3),this.updateDelays();let s=await e.bzpopmin(this.keys.marker,i);if(s){let[a,o,l]=s;if(o){let c=parseInt(l);return t&&c>t?t:c}}}return 0}}catch(i){(0,zn.isNotConnectionError)(i)&&this.emit("error",i),this.closing||await this.delay()}finally{clearTimeout(n)}return 1/0}getBlockTimeout(e){let t=this.opts;if(e){let n=e-Date.now();return n<=0?n:n<this.minimumBlockTimeout*1e3?this.minimumBlockTimeout:Math.min(n/1e3,UC)}else return Math.max(t.drainDelay,this.minimumBlockTimeout)}getRateLimitDelay(e){return Math.min(e,this.opts.maximumRateLimitDelay)}async delay(e,t){await(0,zn.delay)(e||zn.DELAY_TIME_1,t)}updateDelays(e=0,t=0){let n=Math.max(e,0);n>0?this.limitUntil=Date.now()+n:this.limitUntil=0,this.blockUntil=Math.max(t,0)||0}async nextJobFromJobData(e,t,n){if(!e)this.drained||(this.emit("drained"),this.drained=!0);else{this.drained=!1;let i=this.createJob(e,t);i.token=n;try{await this.retryIfFailed(async()=>{let s=!!i.repeatJobKey,a=s&&i.repeatJobKey.split(":").length>=5,o=s&&!a;a&&(o=await(await this.jobScheduler).isJobScheduler(i.repeatJobKey)),o?await(await this.jobScheduler).upsertJobScheduler(i.repeatJobKey,i.opts.repeat,i.name,i.data,i.opts,{override:!1,producerId:i.id}):i.opts.repeat&&await(await this.repeat).updateRepeatableJob(i.name,i.data,i.opts,{override:!1})},{delayInMs:this.opts.runRetryDelay})}catch(s){let a=s instanceof Error?s.message:String(s),o=new Error(`Failed to add repeatable job for next iteration: ${a}`);this.emit("error",o);return}return i}}async processJob(e,t,n=()=>!0){var i,s;let a=(s=(i=e.opts)===null||i===void 0?void 0:i.telemetry)===null||s===void 0?void 0:s.metadata;return this.trace(ie.SpanKind.CONSUMER,"process",this.name,async o=>{o?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.JobId]:e.id,[ie.TelemetryAttributes.JobName]:e.name});let l=this.lockManager.trackJob(e.id,t,e.processedOn,this.processorAcceptsSignal);try{let c=this.getUnrecoverableErrorMessage(e);if(c)return await this.retryIfFailed(()=>(this.lockManager.untrackJob(e.id),this.handleFailed(new $n.UnrecoverableError(c),e,t,n,o)),{delayInMs:this.opts.runRetryDelay,span:o});let u=await this.callProcessJob(e,t,l?l.signal:void 0);return await this.retryIfFailed(()=>(this.lockManager.untrackJob(e.id),this.handleCompleted(u,e,t,n,o)),{delayInMs:this.opts.runRetryDelay,span:o})}catch(c){return await this.retryIfFailed(()=>(this.lockManager.untrackJob(e.id),this.handleFailed(c,e,t,n,o)),{delayInMs:this.opts.runRetryDelay,span:o,onlyEmitError:!0})}finally{this.lockManager.untrackJob(e.id);let c=Date.now();o?.setAttributes({[ie.TelemetryAttributes.JobFinishedTimestamp]:c,[ie.TelemetryAttributes.JobAttemptFinishedTimestamp]:e.finishedOn||c,[ie.TelemetryAttributes.JobProcessedTimestamp]:e.processedOn})}},a)}getUnrecoverableErrorMessage(e){if(e.deferredFailure)return e.deferredFailure;if(this.opts.maxStartedAttempts&&this.opts.maxStartedAttempts<e.attemptsStarted)return"job started more than allowable limit"}async handleCompleted(e,t,n,i=()=>!0,s){if(!this.connection.closing){let a=await t.moveToCompleted(e,n,i()&&!(this.closing||this.paused));if(this.emit("completed",t,e,"active"),s?.addEvent("job completed",{[ie.TelemetryAttributes.JobResult]:JSON.stringify(e)}),s?.setAttributes({[ie.TelemetryAttributes.JobAttemptsMade]:t.attemptsMade}),Array.isArray(a)){let[o,l,c,u]=a;return this.updateDelays(c,u),this.nextJobFromJobData(o,l,n)}}}async handleFailed(e,t,n,i=()=>!0,s){if(!this.connection.closing){if(e.message===$n.RATE_LIMIT_ERROR){let o=await this.moveLimitedBackToWait(t,n);this.limitUntil=o>0?Date.now()+o:0;return}if(e instanceof $n.DelayedError||e.name=="DelayedError"||e instanceof $n.WaitingError||e.name=="WaitingError"||e instanceof $n.WaitingChildrenError||e.name=="WaitingChildrenError"){let o=await this.client;return this.moveToActive(o,n,this.opts.name)}let a=await t.moveToFailed(e,n,i()&&!(this.closing||this.paused));if(this.emit("failed",t,e,"active"),s?.addEvent("job failed",{[ie.TelemetryAttributes.JobFailedReason]:e.message}),s?.setAttributes({[ie.TelemetryAttributes.JobAttemptsMade]:t.attemptsMade}),Array.isArray(a)){let[o,l,c,u]=a;return this.updateDelays(c,u),this.nextJobFromJobData(o,l,n)}}}async pause(e){await this.trace(ie.SpanKind.INTERNAL,"pause",this.name,async t=>{var n;t?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.WorkerDoNotWaitActive]:e}),this.paused||(this.paused=!0,e||await this.whenCurrentJobsFinished(),(n=this.stalledCheckStopper)===null||n===void 0||n.call(this),this.emit("paused"))})}resume(){(!this.running||this.paused)&&this.trace(ie.SpanKind.INTERNAL,"resume",this.name,e=>{e?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name}),this.paused=!1,this.running?this.startStalledCheckTimer().catch(t=>{this.emit("error",t)}):this.processFn&&this.run(),this.emit("resumed")}).catch(e=>{this.emit("error",e)})}isPaused(){return!!this.paused}isRunning(){return this.running}async close(e=!1){return this.closing?this.closing:(this.closing=(async()=>{await this.trace(ie.SpanKind.INTERNAL,"close",this.name,async t=>{var n,i;t?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.WorkerForceClose]:e}),this.emit("closing","closing queue"),(n=this.abortDelayController)===null||n===void 0||n.abort();let s=[()=>e||this.whenCurrentJobsFinished(!1),()=>this.lockManager.close(),()=>{var a;return(a=this.childPool)===null||a===void 0?void 0:a.clean()},()=>this.blockingConnection.close(e),()=>this.connection.close(e)];for(let a of s)try{await a()}catch(o){this.emit("error",o)}(i=this.stalledCheckStopper)===null||i===void 0||i.call(this),this.closed=!0,this.emit("closed")})})(),await this.closing)}async startStalledCheckTimer(){this.opts.skipStalledCheck||!this.closing&&!this.stalledCheckerRunning&&await this.trace(ie.SpanKind.INTERNAL,"startStalledCheckTimer",this.name,async e=>{e?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name}),this.stalledCheckerRunning=!0,this.stalledChecker().catch(t=>{this.emit("error",t)}).finally(()=>{this.stalledCheckerRunning=!1})})}async stalledChecker(){for(;!(this.closing||this.paused);)await this.checkConnectionError(()=>this.moveStalledJobsToWait()),await new Promise(e=>{let t=setTimeout(e,this.opts.stalledInterval);this.stalledCheckStopper=()=>{clearTimeout(t),e()}})}async whenCurrentJobsFinished(e=!0){this.waiting?await this.blockingConnection.disconnect(e):e=!1,this.mainLoopRunning&&await this.mainLoopRunning,e&&await this.blockingConnection.reconnect()}async retryIfFailed(e,t){var n;let i=0,s=t.maxRetries||1/0;do try{return await e()}catch(a){if((n=t.span)===null||n===void 0||n.recordException(a.message),(0,zn.isNotConnectionError)(a)){if(!this.paused&&!this.closing&&this.emit("error",a),t.onlyEmitError)return;throw a}else if(t.delayInMs&&!this.closing&&!this.closed&&await this.delay(t.delayInMs,this.abortDelayController),i+1>=s)throw a}while(++i<s)}async moveStalledJobsToWait(){await this.trace(ie.SpanKind.INTERNAL,"moveStalledJobsToWait",this.name,async e=>{let t=await this.scripts.moveStalledJobsToWait();e?.setAttributes({[ie.TelemetryAttributes.WorkerId]:this.id,[ie.TelemetryAttributes.WorkerName]:this.opts.name,[ie.TelemetryAttributes.WorkerStalledJobs]:t}),t.forEach(n=>{e?.addEvent("job stalled",{[ie.TelemetryAttributes.JobId]:n}),this.emit("stalled",n,"active")})})}moveLimitedBackToWait(e,t){return e.moveToWait(t)}};Yo.Worker=Md});var rK=h(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});var Oe=(Qe(),it(He));Oe.__exportStar(Oc(),je);Oe.__exportStar(Rc(),je);Oe.__exportStar(_c(),je);Oe.__exportStar(Nc(),je);Oe.__exportStar(Dm(),je);Oe.__exportStar(qs(),je);Oe.__exportStar(s0(),je);Oe.__exportStar(Pn(),je);Oe.__exportStar(_o(),je);Oe.__exportStar(xd(),je);Oe.__exportStar(_r(),je);Oe.__exportStar(zv(),je);Oe.__exportStar($v(),je);Oe.__exportStar(Dd(),je);Oe.__exportStar(ca(),je);Oe.__exportStar(Xv(),je);Oe.__exportStar(Si(),je);Oe.__exportStar(Fo(),je);Oe.__exportStar(_d(),je);Oe.__exportStar(_u(),je);Oe.__exportStar(tK(),je)});var iK=h(nK=>{"use strict";Object.defineProperty(nK,"__esModule",{value:!0})});var aK=h(sK=>{"use strict";Object.defineProperty(sK,"__esModule",{value:!0})});var lK=h(oK=>{"use strict";Object.defineProperty(oK,"__esModule",{value:!0})});var uK=h(cK=>{"use strict";Object.defineProperty(cK,"__esModule",{value:!0})});var pK=h(dK=>{"use strict";Object.defineProperty(dK,"__esModule",{value:!0})});var hK=h(fK=>{"use strict";Object.defineProperty(fK,"__esModule",{value:!0})});var mK=h(yK=>{"use strict";Object.defineProperty(yK,"__esModule",{value:!0})});var gK=h(bK=>{"use strict";Object.defineProperty(bK,"__esModule",{value:!0})});var KK=h(vK=>{"use strict";Object.defineProperty(vK,"__esModule",{value:!0})});var EK=h(SK=>{"use strict";Object.defineProperty(SK,"__esModule",{value:!0})});var IK=h(kK=>{"use strict";Object.defineProperty(kK,"__esModule",{value:!0})});var wK=h(xK=>{"use strict";Object.defineProperty(xK,"__esModule",{value:!0})});var jK=h(TK=>{"use strict";Object.defineProperty(TK,"__esModule",{value:!0})});var DK=h(AK=>{"use strict";Object.defineProperty(AK,"__esModule",{value:!0})});var RK=h(OK=>{"use strict";Object.defineProperty(OK,"__esModule",{value:!0})});var _K=h(CK=>{"use strict";Object.defineProperty(CK,"__esModule",{value:!0})});var PK=h(MK=>{"use strict";Object.defineProperty(MK,"__esModule",{value:!0})});var LK=h(NK=>{"use strict";Object.defineProperty(NK,"__esModule",{value:!0})});var JK=h(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.ClientType=void 0;var qK;(function(r){r.blocking="blocking",r.normal="normal"})(qK||(Bo.ClientType=qK={}))});var VK=h(FK=>{"use strict";Object.defineProperty(FK,"__esModule",{value:!0})});var YK=h(GK=>{"use strict";Object.defineProperty(GK,"__esModule",{value:!0})});var WK=h(BK=>{"use strict";Object.defineProperty(BK,"__esModule",{value:!0})});var zK=h(UK=>{"use strict";Object.defineProperty(UK,"__esModule",{value:!0})});var HK=h($K=>{"use strict";Object.defineProperty($K,"__esModule",{value:!0})});var ZK=h(QK=>{"use strict";Object.defineProperty(QK,"__esModule",{value:!0})});var eS=h(XK=>{"use strict";Object.defineProperty(XK,"__esModule",{value:!0})});var rS=h(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0})});var iS=h(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0})});var aS=h(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0})});var lS=h(oS=>{"use strict";Object.defineProperty(oS,"__esModule",{value:!0})});var uS=h(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0})});var pS=h(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0})});var hS=h(fS=>{"use strict";Object.defineProperty(fS,"__esModule",{value:!0})});var yS=h(le=>{"use strict";Object.defineProperty(le,"__esModule",{value:!0});var ce=(Qe(),it(He));ce.__exportStar(iK(),le);ce.__exportStar(aK(),le);ce.__exportStar(lK(),le);ce.__exportStar(uK(),le);ce.__exportStar(pK(),le);ce.__exportStar(hK(),le);ce.__exportStar(mK(),le);ce.__exportStar(gK(),le);ce.__exportStar(KK(),le);ce.__exportStar(EK(),le);ce.__exportStar(IK(),le);ce.__exportStar(wK(),le);ce.__exportStar(jK(),le);ce.__exportStar(DK(),le);ce.__exportStar(RK(),le);ce.__exportStar(_K(),le);ce.__exportStar(PK(),le);ce.__exportStar(LK(),le);ce.__exportStar(JK(),le);ce.__exportStar(VK(),le);ce.__exportStar(YK(),le);ce.__exportStar(WK(),le);ce.__exportStar(zK(),le);ce.__exportStar(HK(),le);ce.__exportStar(ZK(),le);ce.__exportStar(eS(),le);ce.__exportStar(rS(),le);ce.__exportStar(iS(),le);ce.__exportStar(aS(),le);ce.__exportStar(lS(),le);ce.__exportStar(uS(),le);ce.__exportStar(pS(),le);ce.__exportStar(hS(),le)});var bS=h(mS=>{"use strict";Object.defineProperty(mS,"__esModule",{value:!0})});var vS=h(gS=>{"use strict";Object.defineProperty(gS,"__esModule",{value:!0})});var SS=h(KS=>{"use strict";Object.defineProperty(KS,"__esModule",{value:!0})});var kS=h(ES=>{"use strict";Object.defineProperty(ES,"__esModule",{value:!0})});var xS=h(IS=>{"use strict";Object.defineProperty(IS,"__esModule",{value:!0})});var TS=h(wS=>{"use strict";Object.defineProperty(wS,"__esModule",{value:!0})});var AS=h(jS=>{"use strict";Object.defineProperty(jS,"__esModule",{value:!0})});var OS=h(DS=>{"use strict";Object.defineProperty(DS,"__esModule",{value:!0})});var CS=h(RS=>{"use strict";Object.defineProperty(RS,"__esModule",{value:!0})});var MS=h(_S=>{"use strict";Object.defineProperty(_S,"__esModule",{value:!0})});var NS=h(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0})});var LS=h(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});var Pt=(Qe(),it(He));Pt.__exportStar(bS(),gt);Pt.__exportStar(vS(),gt);Pt.__exportStar(SS(),gt);Pt.__exportStar(kS(),gt);Pt.__exportStar(xS(),gt);Pt.__exportStar(TS(),gt);Pt.__exportStar(AS(),gt);Pt.__exportStar(OS(),gt);Pt.__exportStar(CS(),gt);Pt.__exportStar(MS(),gt);Pt.__exportStar(NS(),gt)});var JS=h(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0})});var FS=h(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});var dn=(Qe(),it(He));dn.__exportStar(rK(),lr);dn.__exportStar(at(),lr);dn.__exportStar(yS(),lr);dn.__exportStar(LS(),lr);dn.__exportStar(ut(),lr);dn.__exportStar(JS(),lr);dn.__exportStar(oa(),lr)});var Jd=Yd(us(),1);var Ho=Yd(FS(),1);import{MessageId as r_}from"@workflow/world";import Wo from"node:crypto";var Mi="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Pi=32;var zC=16,Pd=10,VS=0xffffffffffff;var cr;(function(r){r.Base32IncorrectEncoding="B32_ENC_INVALID",r.DecodeTimeInvalidCharacter="DEC_TIME_CHAR",r.DecodeTimeValueMalformed="DEC_TIME_MALFORMED",r.EncodeTimeNegative="ENC_TIME_NEG",r.EncodeTimeSizeExceeded="ENC_TIME_SIZE_EXCEED",r.EncodeTimeValueMalformed="ENC_TIME_MALFORMED",r.PRNGDetectFailure="PRNG_DETECT",r.ULIDInvalid="ULID_INVALID",r.Unexpected="UNEXPECTED",r.UUIDInvalid="UUID_INVALID"})(cr||(cr={}));var ur=class extends Error{constructor(e,t){super(`${t} (${e})`),this.name="ULIDError",this.code=e}};function $C(r){let e=Math.floor(r()*Pi)%Pi;return Mi.charAt(e)}function GS(r,e,t){return e>r.length-1?r:r.substr(0,e)+t+r.substr(e+1)}function HC(r){let e,t=r.length,n,i,s=r,a=Pi-1;for(;!e&&t-->=0;){if(n=s[t],i=Mi.indexOf(n),i===-1)throw new ur(cr.Base32IncorrectEncoding,"Incorrectly encoded string");if(i===a){s=GS(s,t,Mi[0]);continue}e=GS(s,t,Mi[i+1])}if(typeof e=="string")return e;throw new ur(cr.Base32IncorrectEncoding,"Failed incrementing string")}function QC(r){let e=ZC(),t=e&&(e.crypto||e.msCrypto)||(typeof Wo<"u"?Wo:null);if(typeof t?.getRandomValues=="function")return()=>{let n=new Uint8Array(1);return t.getRandomValues(n),n[0]/256};if(typeof t?.randomBytes=="function")return()=>t.randomBytes(1).readUInt8()/256;if(Wo?.randomBytes)return()=>Wo.randomBytes(1).readUInt8()/256;throw new ur(cr.PRNGDetectFailure,"Failed to find a reliable PRNG")}function ZC(){return e_()?self:typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:null}function XC(r,e){let t="";for(;r>0;r--)t=$C(e)+t;return t}function YS(r,e=Pd){if(isNaN(r))throw new ur(cr.EncodeTimeValueMalformed,`Time must be a number: ${r}`);if(r>VS)throw new ur(cr.EncodeTimeSizeExceeded,`Cannot encode a time larger than ${VS}: ${r}`);if(r<0)throw new ur(cr.EncodeTimeNegative,`Time must be positive: ${r}`);if(Number.isInteger(r)===!1)throw new ur(cr.EncodeTimeValueMalformed,`Time must be an integer: ${r}`);let t,n="";for(let i=e;i>0;i--)t=r%Pi,n=Mi.charAt(t)+n,r=(r-t)/Pi;return n}function e_(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function Uo(r){let e=r||QC(),t=0,n;return function(s){let a=!s||isNaN(s)?Date.now():s;if(a<=t){let l=n=HC(n);return YS(t,Pd)+l}t=a;let o=n=XC(zC,e);return YS(a,Pd)+o}}var zo=class{promise=Promise.resolve();andThen(e){return this.promise=this.promise.then(()=>e(),()=>e()),this.promise}};function Ee(r){let e={};for(let t in r)r[t]!==null?e[t]=r[t]:e[t]=void 0;return e}var $o=class{count=0;disposeFn;constructor(e){this.disposeFn=e}inc(){this.count++}async dec(){this.count--,this.count===0&&this.disposeFn&&await this.disposeFn()}getCount(){return this.count}};function t_(r){return(...e)=>{let t=process.env.WORKFLOW_DEBUG;if(!t||!(t==="1"||t==="true"||t==="*"||t.split(",").some(o=>o.trim()===r)))return;let s=`[${new Date().toISOString()}] [${r}]`,a=e.map(o=>typeof o=="object"?JSON.stringify(o,null,2):String(o)).join(" ");process.stderr.write(`${s} ${a}
|
|
8913
|
+
`)}}var Nd=t_("stackbone-workflow-world");function BS(r){return new Promise(e=>setTimeout(e,r))}var n_={workflow:"flow",step:"step"},i_=r=>{let e=/^__(?:[a-z][a-z0-9]*_)?wkf_(workflow|step)_/.exec(r);if(!e)throw new Error(`Invalid queue name: ${r}`);return e[1]};function WS(r,e){return Promise.race([r,new Promise(t=>{setTimeout(t,e).unref?.()})])}function s_(r){return r.baseUrl?r.baseUrl:process.env.WORKFLOW_BASE_URL?process.env.WORKFLOW_BASE_URL:`http://localhost:${process.env.PORT??"3000"}`}function US(r,e){let t=Uo(),n=e.jobPrefix||"workflow_",i={workflow:`${n}flows`,step:`${n}steps`},s=e.maxAttempts??5,a=e.backoffType??"exponential",o=e.backoffDelayMs??1e3,l=e.httpTimeoutMs??3e5,c=e.stalledInterval??3e4,u=e.maxStalledCount??1,d=e.idempotencyTtlMs??6e4,f=e.closeTimeoutMs??5e3,p={host:r.options.host,port:r.options.port,password:r.options.password,db:r.options.db,maxRetriesPerRequest:null},y=new Map,g=new Map;for(let[M,F]of Object.entries(i))y.set(M,new Ho.Queue(F,{connection:p}));let S=async(M,F,C)=>{let w=i_(M),U=y.get(w);if(!U)throw new Error(`No BullMQ queue registered for kind ${w}`);let te=r_.parse(`msg_${t()}`),m=C?.delaySeconds?Math.max(0,C.delaySeconds*1e3):void 0;try{await U.add(M,{queueName:M,message:F},{jobId:te,delay:m,attempts:s,backoff:{type:a,delay:o},...C?.idempotencyKey&&{deduplication:{id:C.idempotencyKey,ttl:d}},removeOnComplete:{age:86400,count:1e3},removeOnFail:{age:7*86400}})}catch(A){Nd("queue add returned:",A)}return{messageId:te}};function k(M){let F=n_[M];return async C=>{let U=`${s_(e)}/.well-known/workflow/v1/${F}`,te=C.id??`msg_${t()}`,m=await fetch(U,{method:"POST",headers:{"content-type":"application/json","x-vqs-queue-name":C.data.queueName,"x-vqs-message-id":te,"x-vqs-message-attempt":String(C.attemptsMade+1)},body:JSON.stringify(C.data.message),signal:AbortSignal.timeout(l)});if(m.ok)return;let A=await m.text();if(m.status===503)try{let j=JSON.parse(A);if(typeof j?.timeoutSeconds=="number"){let D=j.timeoutSeconds*1e3;await C.moveToDelayed(Date.now()+D,C.token);return}}catch{}throw new Error(`HTTP ${m.status}: ${A}`)}}let I=(M,F)=>async C=>{let w=C.headers.get("x-vqs-queue-name"),U=C.headers.get("x-vqs-message-id"),te=C.headers.get("x-vqs-message-attempt");if(!w||!U||!te||!C.body)return Response.json({error:"Missing required headers or body"},{status:400});if(!w.startsWith(M))return Response.json({error:"Unhandled queue"},{status:400});let m=Number.parseInt(te,10);try{let A=await C.json(),j=await F(A,{attempt:m,queueName:w,messageId:U});return j&&typeof j.timeoutSeconds=="number"?Response.json({timeoutSeconds:j.timeoutSeconds},{status:503}):Response.json({ok:!0})}catch(A){return Nd("queue handler error:",A),Response.json({error:String(A)},{status:500})}},R=async()=>"redis";async function O(){let M=e.queueConcurrency||10;for(let[F,C]of Object.entries(i)){let w=new Ho.Worker(C,k(F),{connection:p,concurrency:M,stalledInterval:c,maxStalledCount:u,drainDelay:300});w.on("failed",(U,te)=>{console.error(`Job ${U?.id} failed:`,te)}),w.on("error",U=>{console.error("Worker error:",U)}),g.set(F,w)}await Promise.all(Array.from(g.values()).map(F=>F.waitUntilReady()))}async function x(){let M={waiting:0,active:0,completed:0,failed:0,delayed:0};for(let F of y.values()){let C=await F.getJobCounts("waiting","active","completed","failed","delayed");M.waiting+=C.waiting,M.active+=C.active,M.completed+=C.completed,M.failed+=C.failed,M.delayed+=C.delayed}return M}async function E(){await Promise.all(Array.from(g.values()).map(M=>WS(M.close(),f).catch(()=>{}))),await Promise.all(Array.from(y.values()).map(M=>WS(M.close(),f).catch(()=>{})))}return{createQueueHandler:I,getDeploymentId:R,queue:S,getQueueStats:x,async start(){await O()},async stop(){await E()}}}var zS=r=>`${r}events_notify`;function a_(r){let e;try{e=JSON.parse(r)}catch{return null}if(!e||typeof e!="object")return null;let{runId:t,eventId:n,eventType:i,correlationId:s}=e;return typeof t!="string"||typeof n!="string"||typeof i!="string"?null:{runId:t,eventId:n,eventType:i,...typeof s=="string"?{correlationId:s}:{}}}async function $S(r,e,t){try{await r.publish(zS(e),JSON.stringify(t))}catch{}}function HS(r){let{redis:e,keyPrefix:t}=r,n=zS(t),i=e.duplicate(),s=new Set,a=i.subscribe(n).then(()=>{});return i.on("message",(o,l)=>{if(o!==n)return;let c=a_(l);if(c)for(let u of s)try{u(c)}catch(d){console.error("Error in events-notify subscriber handler:",d)}}),{on(o){return s.add(o),()=>{s.delete(o)}},ready(){return a},async stop(){s.clear(),i.removeAllListeners("message");try{await i.quit()}catch{i.disconnect()}}}}import{EntityConflictError as QS,HookNotFoundError as o_,RunExpiredError as l_,WorkflowWorldError as vt}from"@workflow/errors";import{EventSchema as pn,HookSchema as Qo,isLegacySpecVersion as c_,requiresNewerWorld as u_,SPEC_VERSION_CURRENT as Ld,StepSchema as Mr,WorkflowRunSchema as zt}from"@workflow/world";var d_=3,p_=30,f_=new Set(["createdAt","updatedAt","startedAt","completedAt","retryAfter"]);function h_(r,e){if(f_.has(r)&&typeof e=="string"){let t=new Date(e);return Number.isNaN(t.getTime())?e:t}return e}function y_(r,e){return e instanceof Uint8Array?{__uint8array:!0,data:Array.from(e)}:e}function m_(r,e){let t=h_(r,e);return t&&typeof t=="object"&&t.__uint8array===!0?new Uint8Array(t.data):t}function Ve(r){return JSON.stringify(r,y_)}function be(r){return JSON.parse(r,m_)}async function eE(r,e,t){let n=l=>`${e}hook:${l}`,i=l=>`${e}hooks:by_token:${l}`,s=`${e}hooks:by_run:${t}`,a=await r.zrange(s,0,-1),o=r.pipeline();for(let l of a){let c=await r.get(n(l));if(c){let u=be(c);o.del(n(l)),o.del(i(u.token))}}o.del(s),await o.exec()}function ZS(r,e){if(e==="none"&&"metadata"in r){let{metadata:t,...n}=r;return{metadata:void 0,...n}}return r}function XS(r,e){if(e==="none"){let{input:t,output:n,...i}=r;return{input:void 0,output:void 0,...i}}return r}function Zo(r,e){if(e==="none"){let{input:t,output:n,...i}=r;return{input:void 0,output:void 0,...i}}return r}function fn(r,e){if(e==="none"&&"eventData"in r){let{eventData:t,...n}=r;return n}return r}function tE(r){let{redis:e,keyPrefix:t}=r,n=u=>`${t}run:${u}`,i=()=>`${t}runs:index`,s=u=>`${t}runs:by_name:${u}`,a=u=>`${t}runs:by_status:${u}`;function o(u){return u?.workflowName&&u?.status||u?.workflowName?s(u.workflowName):u?.status?a(u.status):i()}async function l(u,d){return d?(await e.zrevrank(u,d)??0)+1:0}function c(u,d){let f=[];for(let p of u??[]){if(!p?.[1])continue;let y=be(p[1]),g=!d?.status||y.status===d.status,S=!d?.workflowName||y.workflowName===d.workflowName;if(g&&S){let k=d?.resolveData??"all",I=zt.parse(Ee(y));f.push(Zo(I,k))}}return f}return{get:(async(u,d)=>{let f=await e.get(n(u));if(!f)throw new vt(`Run not found: ${u}`,{status:404});let p=be(f),y=zt.parse(Ee(p)),g=d?.resolveData??"all";return Zo(y,g)}),list:(async u=>{let d=u?.pagination?.limit??20,f=u?.pagination?.cursor,p=o(u),y=await l(p,f),g=await e.zrevrange(p,y,y+d),S=e.pipeline();for(let x of g)S.get(n(x));let k=await S.exec(),I=c(k,u),R=I.slice(0,d),O=I.length>d;return{data:R,hasMore:O,cursor:R.at(-1)?.runId??null}})}}function rE(r){let{redis:e,keyPrefix:t}=r,n=Uo(),i=x=>`${t}event:${x}`,s=x=>`${t}events:by_run:${x}`,a=x=>`${t}events:by_correlation:${x}`,o=x=>`${t}run:${x}`,l=()=>`${t}runs:index`,c=x=>`${t}runs:by_name:${x}`,u=x=>`${t}runs:by_status:${x}`,d=(x,E)=>`${t}step:${x}:${E}`,f=x=>`${t}steps:by_run:${x}`,p=x=>`${t}hook:${x}`,y=x=>`${t}hooks:by_token:${x}`,g=x=>`${t}hooks:by_run:${x}`;async function S(x){await eE(e,t,x)}async function k(x,E,M){return E?(await e[M==="desc"?"zrevrank":"zrank"](x,E)??0)+1:0}async function I(x,E,M,F){return e[F==="desc"?"zrevrange":"zrange"](x,E,E+M)}function R(x){let E=[];for(let M of x??[])if(M?.[1]){let F=be(M[1]);E.push(F)}return E}async function O(x,E,M,F,C){let w=C?.resolveData??"all";switch(M.eventType){case"run_cancelled":{let U=new Date,te=await e.get(o(x));if(te){let m=be(te),A={...m,status:"cancelled",completedAt:U,updatedAt:U};await e.set(o(x),Ve(A));let j=e.pipeline();j.zrem(u(m.status),x),j.zadd(u("cancelled"),U.getTime(),x),await j.exec(),await S(x);let D=zt.parse(Ee(A));return{run:Zo(D,w)}}return{}}case"wait_completed":case"hook_received":{let U=new Date,te={...M,runId:x,eventId:E,createdAt:U,specVersion:Ld};await e.set(i(E),Ve(te));let m=U.getTime(),A=e.pipeline();A.zadd(s(x),m,E),M.correlationId&&A.zadd(a(M.correlationId),m,E),await A.exec();let j=pn.parse(te);return{event:fn(j,w)}}default:throw new Error(`Event type '${M.eventType}' not supported for legacy runs (specVersion: ${F.specVersion||"undefined"}). Please upgrade @workflow packages.`)}}return{async create(x,E,M){let F=`wevt_${n()}`,C=new Date,w;if(E.eventType==="run_created"&&(!x||x===""))w=`wrun_${n()}`;else if(x)w=x;else throw new Error("runId is required for non-run_created events");let U=E.specVersion??Ld,te,m,A,j=P=>["completed","failed","cancelled"].includes(P),D=P=>["completed","failed","cancelled"].includes(P),T=null,Y=["step_completed","step_retrying"];if(E.eventType!=="run_created"&&!Y.includes(E.eventType)){let P=await e.get(o(w));if(P){let Z=be(P);T={status:Z.status,specVersion:Z.specVersion}}}if(E.eventType==="run_started"&&!T&&"eventData"in E&&E.eventData){let P=E.eventData;if(P.deploymentId&&P.workflowName&&P.input!==void 0){let Z={runId:w,deploymentId:P.deploymentId,workflowName:P.workflowName,specVersion:U,input:P.input,executionContext:P.executionContext,status:"pending",output:void 0,error:void 0,completedAt:void 0,startedAt:void 0,createdAt:C,updatedAt:C};if(await e.setnx(o(w),Ve(Z))===1){let H=C.getTime();await e.pipeline().zadd(l(),H,w).zadd(c(P.workflowName),H,w).zadd(u("pending"),H,w).exec();let pe=`wevt_${n()}`,Nt={eventType:"run_created",eventData:{deploymentId:P.deploymentId,workflowName:P.workflowName,input:P.input,executionContext:P.executionContext},runId:w,eventId:pe,createdAt:C,specVersion:U};await e.set(i(pe),Ve(Nt)),await e.zadd(s(w),C.getTime(),pe),T={status:"pending",specVersion:U}}else{let H=await e.get(o(w));if(H){let pe=be(H);T={status:pe.status,specVersion:pe.specVersion}}}}}if(T){if(u_(T.specVersion))throw new(await import("@workflow/errors")).RunNotSupportedError(T.specVersion,Ld);if(c_(T.specVersion))return O(w,F,E,T,M)}if(T&&j(T.status)){let P=["run_started","run_completed","run_failed"];if(E.eventType==="run_cancelled"&&T.status==="cancelled"){let Z=await e.get(o(w)),se=new Date,H={...E,runId:w,eventId:F,createdAt:se,specVersion:U};await e.set(i(F),Ve(H));let pe=se.getTime();await e.zadd(s(w),pe,F);let Nt=pn.parse(H),Ni=M?.resolveData??"all";return{event:fn(Nt,Ni),run:Z?be(Z):void 0}}if(E.eventType==="run_started")throw new l_(`Workflow run "${w}" is already in terminal state "${T.status}"`);if(P.includes(E.eventType)||E.eventType==="run_cancelled")throw new QS(`Cannot transition run from terminal state "${T.status}"`);if(E.eventType==="step_created"||E.eventType==="hook_created")throw new QS(`Cannot create new entities on run in terminal state "${T.status}"`)}let G=null;if(["step_started","step_retrying"].includes(E.eventType)&&E.correlationId){let P=await e.get(d(w,E.correlationId));if(P){let Z=be(P);G={status:Z.status,startedAt:Z.startedAt}}if(!G)throw new vt(`Step "${E.correlationId}" not found`,{status:404});if(D(G.status))throw new vt(`Cannot modify step in terminal state "${G.status}"`,{status:410});if(T&&j(T.status)&&G.status!=="running")throw new vt(`Cannot modify non-running step on run in terminal state "${T.status}"`,{status:410})}if(["hook_disposed","hook_received"].includes(E.eventType)&&E.correlationId&&!await e.get(p(E.correlationId)))throw new vt(`Hook "${E.correlationId}" not found`,{status:404});if(E.eventType==="run_created"){let P=E.eventData,Z={runId:w,deploymentId:P.deploymentId,workflowName:P.workflowName,specVersion:U,input:P.input,executionContext:P.executionContext,status:"pending",output:void 0,error:void 0,completedAt:void 0,startedAt:void 0,createdAt:C,updatedAt:C},se=await e.setnx(o(w),Ve(Z)),H=C.getTime();if(await e.pipeline().zadd(l(),H,w).zadd(c(P.workflowName),H,w).zadd(u("pending"),H,w).exec(),se===1)te=zt.parse(Ee(Z));else{let pe=await e.get(o(w));pe&&(te=zt.parse(Ee(be(pe))))}}if(E.eventType==="run_started"){if(T?.status==="running"){let Z=await e.get(o(w));Z&&(te=zt.parse(Ee(be(Z))));let se=M?.resolveData??"all";return{run:te?Zo(te,se):void 0}}let P=await e.get(o(w));if(P){let Z=be(P),se={...Z,status:"running",startedAt:C,updatedAt:C};await e.set(o(w),Ve(se));let H=e.pipeline();H.zrem(u(Z.status),w),H.zadd(u("running"),C.getTime(),w),await H.exec(),te=zt.parse(Ee(se))}}if(E.eventType==="run_completed"){let P=E.eventData,Z=await e.get(o(w));if(Z){let se=be(Z),H={...se,status:"completed",output:P.output,completedAt:C,updatedAt:C};await e.set(o(w),Ve(H));let pe=e.pipeline();pe.zrem(u(se.status),w),pe.zadd(u("completed"),C.getTime(),w),await pe.exec(),await S(w),te=zt.parse(Ee(H))}}if(E.eventType==="run_failed"){let P=E.eventData,Z=typeof P.error=="string"?P.error:P.error?.message??"Unknown error",se=await e.get(o(w));if(se){let H=be(se),pe={...H,status:"failed",error:{message:Z,stack:P.error?.stack,code:P.errorCode},completedAt:C,updatedAt:C};await e.set(o(w),Ve(pe));let Nt=e.pipeline();Nt.zrem(u(H.status),w),Nt.zadd(u("failed"),C.getTime(),w),await Nt.exec(),await S(w),te=zt.parse(Ee(pe))}}if(E.eventType==="run_cancelled"){let P=await e.get(o(w));if(P){let Z=be(P),se={...Z,status:"cancelled",completedAt:C,updatedAt:C};await e.set(o(w),Ve(se));let H=e.pipeline();H.zrem(u(Z.status),w),H.zadd(u("cancelled"),C.getTime(),w),await H.exec(),await S(w),te=zt.parse(Ee(se))}}if(E.eventType==="step_created"){let P=E.eventData,Z={runId:w,stepId:E.correlationId,stepName:P.stepName,input:P.input,status:"pending",attempt:0,specVersion:U,createdAt:C,updatedAt:C},se=await e.setnx(d(w,E.correlationId),Ve(Z));if(await e.zadd(f(w),C.getTime(),E.correlationId),se===1)m=Mr.parse(Ee(Z));else{let H=await e.get(d(w,E.correlationId));H&&(m=Mr.parse(Ee(be(H))))}}if(E.eventType==="step_started"){let P=!G?.startedAt,Z=await e.get(d(w,E.correlationId));if(Z){let se=be(Z),H={...se,status:"running",attempt:se.attempt+1,...P?{startedAt:C}:{},updatedAt:C};await e.set(d(w,E.correlationId),Ve(H)),m=Mr.parse(Ee(H))}}if(E.eventType==="step_completed"){let P=E.eventData,Z=await e.get(d(w,E.correlationId));if(Z){let se=be(Z);if(["completed","failed","cancelled"].includes(se.status))throw new vt(`Cannot modify step in terminal state "${se.status}"`,{status:410});let H={...se,status:"completed",output:P.result,completedAt:C,updatedAt:C};await e.set(d(w,E.correlationId),Ve(H)),m=Mr.parse(Ee(H))}else throw new vt(`Step "${E.correlationId}" not found`,{status:404})}if(E.eventType==="step_failed"){let P=E.eventData,Z=typeof P.error=="string"?P.error:P.error?.message??"Unknown error",se=await e.get(d(w,E.correlationId));if(se){let H=be(se);if(["completed","failed","cancelled"].includes(H.status))throw new vt(`Cannot modify step in terminal state "${H.status}"`,{status:410});let pe={...H,status:"failed",error:{message:Z,stack:P.stack},completedAt:C,updatedAt:C};await e.set(d(w,E.correlationId),Ve(pe)),m=Mr.parse(Ee(pe))}else throw new vt(`Step "${E.correlationId}" not found`,{status:404})}if(E.eventType==="step_retrying"){let P=E.eventData,Z=typeof P.error=="string"?P.error:P.error?.message??"Unknown error",se=await e.get(d(w,E.correlationId));if(se){let pe={...be(se),status:"pending",error:{message:Z,stack:P.stack},retryAfter:P.retryAfter,updatedAt:C};await e.set(d(w,E.correlationId),Ve(pe)),m=Mr.parse(Ee(pe))}}if(E.eventType==="hook_created"){let P=E.eventData;if(await e.get(y(P.token))){let pe={token:P.token},Nt=new Date,Ni={eventType:"hook_conflict",correlationId:E.correlationId,eventData:pe,runId:w,eventId:F,createdAt:Nt,specVersion:U};await e.set(i(F),Ve(Ni));let Vd=Nt.getTime(),el=e.pipeline();el.zadd(s(w),Vd,F),E.correlationId&&el.zadd(a(E.correlationId),Vd,F),await el.exec();let cE=pn.parse(Ni),uE=M?.resolveData??"all";return{event:fn(cE,uE),run:te,step:m,hook:void 0}}let se={runId:w,hookId:E.correlationId,token:P.token,ownerId:"",projectId:"",environment:"",metadata:P.metadata,specVersion:U,createdAt:C},H=await e.setnx(p(E.correlationId),Ve(se));if(await e.pipeline().set(y(P.token),E.correlationId).zadd(g(w),C.getTime(),E.correlationId).exec(),H===1)A=Qo.parse(Ee(se));else{let pe=await e.get(p(E.correlationId));pe&&(A=Qo.parse(Ee(be(pe))))}}if(E.eventType==="hook_disposed"&&E.correlationId){let P=await e.get(p(E.correlationId));if(P){let Z=be(P);await e.pipeline().del(p(E.correlationId)).del(y(Z.token)).zrem(g(w),E.correlationId).exec()}}let de=new Date,nt={...E,runId:w,eventId:F,createdAt:de,specVersion:U};E.eventType==="run_started"&&delete nt.eventData,await e.set(i(F),Ve(nt));let At=de.getTime(),$t=e.pipeline();$t.zadd(s(w),At,F),E.correlationId&&$t.zadd(a(E.correlationId),At,F),await $t.exec(),await $S(e,t,{runId:w,eventId:F,eventType:E.eventType,...E.correlationId?{correlationId:E.correlationId}:{}});let lE=pn.parse(nt),Fd=M?.resolveData??"all",Xo;if(E.eventType==="run_started"&&te){let P=await e.zrange(s(w),0,-1);if(P.length>0){let Z=e.pipeline();for(let H of P)Z.get(i(H));let se=await Z.exec();Xo=R(se).map(H=>{let pe=pn.parse(Ee(H));return fn(pe,Fd)})}else Xo=[]}return{event:fn(lE,Fd),run:te,step:m,hook:A,events:Xo}},async get(x,E){let M=await e.get(i(E));if(!M)throw new vt(`Event not found: ${E}`,{status:404});return be(M)},async list(x){let E=x?.pagination?.limit??100,M=x.pagination?.sortOrder||"asc",F=x?.pagination?.cursor,C=s(x.runId),w=await k(C,F,M),U=await I(C,w,E,M),te=e.pipeline();for(let Y of U)te.get(i(Y));let m=await te.exec(),A=R(m),j=A.slice(0,E),D=A.length>E,T=x?.resolveData??"all";return{data:j.map(Y=>{let G=pn.parse(Ee(Y));return fn(G,T)}),cursor:j.at(-1)?.eventId??null,hasMore:D}},async listByCorrelationId(x){let E=x?.pagination?.limit??100,M=x.pagination?.sortOrder||"asc",F=x?.pagination?.cursor,C=a(x.correlationId),w=await k(C,F,M),U=await I(C,w,E,M),te=e.pipeline();for(let Y of U)te.get(i(Y));let m=await te.exec(),A=R(m),j=A.slice(0,E),D=A.length>E,T=x?.resolveData??"all";return{data:j.map(Y=>{let G=pn.parse(Ee(Y));return fn(G,T)}),cursor:j.at(-1)?.eventId??null,hasMore:D}}}}function nE(r){let{redis:e,keyPrefix:t}=r,n=(o,l)=>`${t}step:${o}:${l}`,i=o=>`${t}steps:by_run:${o}`;async function s(o){let l="0";do{let[c,u]=await e.scan(l,"MATCH",o,"COUNT",100);if(u.length>0)return u[0];l=c}while(l!=="0");return null}async function a(o,l,c){let u=await e.get(o);if(!u)throw new vt(`Step not found: ${l}`,{status:404});let d=be(u),f=Mr.parse(Ee(d)),p=c?.resolveData??"all";return XS(f,p)}return{get:(async(o,l,c)=>{if(!o){let u=`${t}step:*:${l}`,d=await s(u);if(!d)throw new vt(`Step not found: ${l}`,{status:404});return a(d,l,c)}return a(n(o,l),l,c)}),list:(async o=>{let l=o?.pagination?.limit??20,c=o?.pagination?.cursor,u=i(o.runId),d=c?await e.zrevrank(u,c).then(R=>(R??0)+1):0,f=await e.zrevrange(u,d,d+l),p=e.pipeline();for(let R of f)p.get(n(o.runId,R));let y=await p.exec(),g=o?.resolveData??"all",S=[];for(let R of y??[])if(R?.[1]){let O=be(R[1]),x=Mr.parse(Ee(O));S.push(XS(x,g))}let k=S.slice(0,l),I=S.length>l;return{data:k,hasMore:I,cursor:k.at(-1)?.stepId??null}})}}function iE(r){let{redis:e,keyPrefix:t}=r,n=r.hookResolveRetries??d_,i=r.hookResolveRetryMs??p_,s=l=>`${t}hook:${l}`,a=l=>`${t}hooks:by_token:${l}`,o=l=>`${t}hooks:by_run:${l}`;return{async get(l,c){let u=await e.get(s(l));if(!u)throw new vt(`Hook not found: ${l}`,{status:404});let d=be(u),f=Qo.parse(Ee(d)),p=c?.resolveData??"all";return ZS(f,p)},async getByToken(l,c){for(let u=0;;u++){let d=await e.get(a(l));if(d)return this.get(d,c);if(u>=n)throw new o_(l);await BS(i)}},async list(l){let c=l?.pagination?.limit??100,u=l?.pagination?.cursor;if(!l.runId)return{data:[],cursor:null,hasMore:!1};let d=o(l.runId),f=u?await e.zrevrank(d,u).then(R=>(R??0)+1):0,p=await e.zrevrange(d,f,f+c),y=e.pipeline();for(let R of p)y.get(s(R));let g=await y.exec(),S=[];for(let R of g??[])if(R?.[1]){let O=be(R[1]),x=Qo.parse(Ee(O)),E=ZS(x,l?.resolveData??"all");S.push(E)}let k=S.slice(0,c),I=S.length>c;return{data:k,cursor:k.at(-1)?.hookId??null,hasMore:I}}}}var sE=10080*60*1e3;function aE(r,e,t){let{redis:n,keyPrefix:i}=r,s=f=>`${i}run:${f}`,a=f=>`${i}runs:by_status:${f}`,o=f=>`${i}events:by_run:${f}`,l=`${i}hooks:by_run:*`,c=`${i}hooks:by_run:`,u=new Set(["completed","failed","cancelled"]);async function d(f){let p=new Set,y="0";do{let[g,S]=await n.scan(y,"MATCH",f,"COUNT",200);for(let k of S)p.add(k);y=g}while(y!=="0");return[...p]}return async function(p){let y=p?.enableRunCancellation??t.enableRunCancellation,g=p?.maxRunAgeMs??t.maxRunAgeMs,S=p?.now??Date.now,k=0,I=0,R=await d(l);for(let O of R){let x=O.slice(c.length);if(x)try{let E=await n.get(s(x)),M=!1;if(!E)M=!0;else{let F=be(E);u.has(F.status)&&(M=!0)}M&&(await eE(n,i,x),k+=1)}catch{}}if(y){let O=await n.zrange(a("running"),0,-1);for(let x of O)try{let E=await n.get(s(x));if(!E||be(E).status!=="running")continue;let F=await n.zrevrange(o(x),0,0,"WITHSCORES"),C=F.length===2?Number(F[1]):void 0;if(C===void 0||Number.isNaN(C)||S()-C<=g)continue;await e.create(x,{eventType:"run_cancelled"}),I+=1}catch{}}return{orphanHookRunsPruned:k,staleRunsCancelled:I}}}import{EventEmitter as b_}from"node:events";function g_(r){let e;try{e=JSON.parse(r)}catch{return null}if(!e||typeof e!="object")return null;let{streamId:t,entryId:n}=e;return typeof t!="string"||typeof n!="string"?null:{streamId:t,entryId:n}}function oE(r){let{redis:e,keyPrefix:t}=r,n=new b_,i=new Map,s=y=>{let g=i.get(y);return g||(g=new $o(async()=>{i.delete(y)}),i.set(y,g)),g.inc(),{mutex:new zo,[Symbol.dispose]:()=>g?.dec()}},a=y=>`${t}stream:${y}`,o=`${t}stream_notify`,l=e.duplicate(),c=l.subscribe(o).then(()=>{});l.on("message",async(y,g)=>{if(y===o)try{let S=g_(g);if(!S)return;let k=`strm:${S.streamId}`;if(!n.listenerCount(k))return;await s(k).mutex.andThen(async()=>{let R=await e.xrange(a(S.streamId),S.entryId,S.entryId);if(R.length===0)return;let[O,x]=R[0],E=Buffer.from(x[1],"base64"),M=x[3]==="true";n.emit(k,{id:O,data:E,eof:M})})}catch(S){console.error("Error processing stream notification:",S)}});async function u(y,g,S){let k=Buffer.isBuffer(S)?S:Buffer.from(S),I=await e.xadd(a(g),"*","data",k.toString("base64"),"eof","false");await c,await e.publish(o,JSON.stringify({streamId:g,entryId:I}))}async function d(y,g){let S=await e.xadd(a(g),"*","data","","eof","true");await c,await e.publish(o,JSON.stringify({streamId:g,entryId:S}))}async function f(y,g,S){let k=[];return new ReadableStream({async start(I){let R="",O=S??0,x=[],E=m=>R>=m,M=()=>O>0?(O--,!0):!1,F=m=>{m.data.byteLength&&I.enqueue(new Uint8Array(m.data)),m.eof&&I.close(),R=m.id};function C(m){E(m.id)||M()||F(m)}function w(m){if(x){x.push(m);return}C(m)}n.on(`strm:${g}`,w),k.push(()=>{n.off(`strm:${g}`,w)});let U=await e.xrange(a(g),"-","+"),te=[];for(let[m,A]of U){let j=Buffer.from(A[1],"base64"),D=A[3]==="true";te.push({id:m,data:j,eof:D})}for(let m of[...te,...x??[]])C(m);x=null},cancel(){k.forEach(I=>{I()})}})}async function p(y){let g=await e.xrange(a(y),"-","+"),S=[],k=!1;for(let[,I]of g){if(I[3]==="true"){k=!0;continue}S.push(new Uint8Array(Buffer.from(I[1],"base64")))}return{chunks:S,done:k}}return{streams:{write:u,close:d,get:f,async list(y){let g=`${t}stream:`,S=[],k="0";do{let[I,R]=await e.scan(k,"MATCH",`${g}*`,"COUNT",200);k=I;for(let O of R)S.push(O.slice(g.length))}while(k!=="0");return S},async getChunks(y,g,S){let k=Math.min(Math.max(S?.limit??100,1),1e3),I=S?.cursor&&Number.parseInt(S.cursor,10)||0,{chunks:R,done:O}=await p(g),x=R.slice(I,I+k).map((F,C)=>({index:I+C,data:F})),E=I+x.length,M=E<R.length;return{data:x,cursor:M?String(E):null,hasMore:M,done:O}},async getInfo(y,g){let{chunks:S,done:k}=await p(g);return{tailIndex:S.length-1,done:k}}},async stop(){l.removeAllListeners("message");try{await l.quit()}catch{l.disconnect()}}}}function qd(r,e,t=0){if(r===void 0||r==="")return e;let n=Number.parseInt(r,10);return Number.isNaN(n)?e:Math.max(t,n)}var v_=3600*1e3;function K_(r,e,t,n){let i={redis:r,keyPrefix:e,hookResolveRetries:t,hookResolveRetryMs:n};return{runs:tE(i),events:rE(i),hooks:iE(i),steps:nE(i)}}function xq(r={redis:process.env.WORKFLOW_REDIS_URL||process.env.REDIS_URL||"redis://localhost:6379",jobPrefix:process.env.WORKFLOW_REDIS_JOB_PREFIX,queueConcurrency:Number.parseInt(process.env.WORKFLOW_REDIS_WORKER_CONCURRENCY||"10",10)||10,keyPrefix:process.env.WORKFLOW_REDIS_KEY_PREFIX||"workflow:"}){let e=typeof r.redis=="string"?new Jd.Redis(r.redis):new Jd.Redis(r.redis),t=r.keyPrefix||"workflow:",n=r.hookResolveRetries??qd(process.env.WORKFLOW_HOOK_RESOLVE_RETRIES,3),i=r.hookResolveRetryMs??qd(process.env.WORKFLOW_HOOK_RESOLVE_RETRY_MS,30),s=r.enableRunCancellationGc??process.env.WORKFLOW_ENABLE_RUN_CANCELLATION_GC==="true",a=r.maxRunAgeForCancellationMs??qd(process.env.WORKFLOW_RUN_CANCELLATION_AGE_MS,sE,v_),o=US(e,r),l=K_(e,t,n,i),c=aE({redis:e,keyPrefix:t},l.events,{enableRunCancellation:s,maxRunAgeMs:a}),{stop:u,...d}=oE({redis:e,keyPrefix:t}),f=HS({redis:e,keyPrefix:t});return{...l,...d,...o,eventsSubscriber:f,pruneOrphanState:c,specVersion:5,processExitTriggersQueueRedelivery:!1,async start(){await o.start()},async close(){try{await o.stop()}catch{}try{await u()}catch{}try{await f.stop()}catch{}try{await e.quit()}catch{}},async resolveLatestDeploymentId(){return"redis"}}}export{xq as createWorld};
|