@stackbone/cli 0.2.7 → 0.2.10

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.
@@ -1,9 +1,9 @@
1
1
  import { createRequire as __sbCreateRequire } from 'module'; const require = __sbCreateRequire(import.meta.url);
2
- var EE=Object.create;var qi=Object.defineProperty;var kE=Object.getOwnPropertyDescriptor;var IE=Object.getOwnPropertyNames;var xE=Object.getPrototypeOf,wE=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 TE=(r,e)=>()=>(r&&(e=r(r=0)),e);var h=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),jE=(r,e)=>{for(var t in e)qi(r,t,{get:e[t],enumerable:!0})},zd=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of IE(e))!wE.call(r,i)&&i!==t&&qi(r,i,{get:()=>e[i],enumerable:!(n=kE(e,i))||n.enumerable});return r};var $d=(r,e,t)=>(t=r!=null?EE(xE(r)):{},zd(e||!r||!r.__esModule?qi(t,"default",{value:r,enumerable:!0}):t,r)),it=r=>zd(qi({},"__esModule",{value:!0}),r);var Hd=h((M_,AE)=>{AE.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 DE=lt&&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 Ji=DE(Hd());lt.list=Object.keys(Ji.default);var sl={};lt.list.forEach(r=>{sl[r]=Ji.default[r].flags.reduce(function(e,t){return e[t]=!0,e},{})});function RE(r,e){return r=e?.caseInsensitive?String(r).toLowerCase():r,!!Ji.default[r]}lt.exists=RE;function OE(r,e,t){if(r=t?.nameCaseInsensitive?String(r).toLowerCase():r,!sl[r])throw new Error("Unknown command "+r);return!!sl[r][e]}lt.hasFlag=OE;function CE(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 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,Qd(c)]):i.push(l))):u==="BY"?(l+=1,s?i.push([l,Qd(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=CE;function Qd(r){typeof r!="string"&&(r=String(r));let e=r.indexOf("->");return e===-1?r.length:e}});var Zd=h(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.tryCatch=dr.errorObj=void 0;dr.errorObj={e:{}};var al;function _E(r,e){try{let t=al;return al=null,t.apply(this,arguments)}catch(t){return dr.errorObj.e=t,dr.errorObj}}function ME(r){return al=r,_E}dr.tryCatch=ME});var pr=h(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});var hn=Zd();function Xd(r){setTimeout(function(){throw r},0)}function PE(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&&Xd(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&&Xd(i.e)}),r}ol.default=PE});var rp=h((q_,tp)=>{"use strict";var ep=V("assert"),Qn=V("util");function yn(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Qn.inherits(yn,Error);Object.defineProperty(yn.prototype,"name",{value:"RedisError",configurable:!0,writable:!0});function ll(r,e,t){ep(e),ep.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}Qn.inherits(ll,yn);Object.defineProperty(ll.prototype,"name",{value:"ParserError",configurable:!0,writable:!0});function cl(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}Qn.inherits(cl,yn);Object.defineProperty(cl.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0});function Fi(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Qn.inherits(Fi,yn);Object.defineProperty(Fi.prototype,"name",{value:"AbortError",configurable:!0,writable:!0});function ul(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Qn.inherits(ul,Fi);Object.defineProperty(ul.prototype,"name",{value:"InterruptError",configurable:!0,writable:!0});tp.exports={RedisError:yn,ParserError:ll,ReplyError:cl,AbortError:Fi,InterruptError:ul}});var sp=h((J_,ip)=>{"use strict";var np=V("assert"),mn=class extends Error{get name(){return this.constructor.name}},dl=class extends mn{constructor(e,t,n){np(t),np.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}},pl=class extends mn{constructor(e){let t=Error.stackTraceLimit;Error.stackTraceLimit=2,super(e),Error.stackTraceLimit=t}get name(){return this.constructor.name}},Vi=class extends mn{get name(){return this.constructor.name}},fl=class extends Vi{get name(){return this.constructor.name}};ip.exports={RedisError:mn,ParserError:dl,ReplyError:pl,AbortError:Vi,InterruptError:fl}});var Nr=h((F_,ap)=>{"use strict";var NE=process.version.charCodeAt(1)<55&&process.version.charCodeAt(2)===46?rp():sp();ap.exports=NE});var Zn=h((V_,hl)=>{var op=[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],LE=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},lp=hl.exports=function(e){for(var t,n=0,i=-1,s=0,a=0,o=typeof e=="string"?LE(e):e,l=o.length;n<l;){if(t=o[n++],i===-1)t===123&&(i=n);else if(t!==125)a=op[(t^a>>8)&255]^a<<8;else if(n-1!==i)return a&16383;s=op[(t^s>>8)&255]^s<<8}return s&16383};hl.exports.generateMulti=function(e){for(var t=1,n=e.length,i=lp(e[0]);t<n;)if(lp(e[t++])!==i)return-1;return i}});var mp=h((G_,yp)=>{var up=9007199254740991,qE="[object Arguments]",JE="[object Function]",FE="[object GeneratorFunction]",VE=/^(?:0|[1-9]\d*)$/;function dp(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 GE(r,e){for(var t=-1,n=Array(r);++t<r;)n[t]=e(t);return n}var Xn=Object.prototype,ei=Xn.hasOwnProperty,pp=Xn.toString,YE=Xn.propertyIsEnumerable,cp=Math.max;function BE(r,e){var t=tk(r)||ek(r)?GE(r.length,String):[],n=t.length,i=!!n;for(var s in r)(e||ei.call(r,s))&&!(i&&(s=="length"||hp(s,n)))&&t.push(s);return t}function WE(r,e,t,n){return r===void 0||yl(r,Xn[t])&&!ei.call(n,t)?e:r}function UE(r,e,t){var n=r[e];(!(ei.call(r,e)&&yl(n,t))||t===void 0&&!(e in r))&&(r[e]=t)}function zE(r){if(!bl(r))return XE(r);var e=ZE(r),t=[];for(var n in r)n=="constructor"&&(e||!ei.call(r,n))||t.push(n);return t}function fp(r,e){return e=cp(e===void 0?r.length-1:e,0),function(){for(var t=arguments,n=-1,i=cp(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,dp(r,this,a)}}function $E(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;UE(t,a,o===void 0?r[a]:o)}return t}function HE(r){return fp(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&&QE(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 hp(r,e){return e=e??up,!!e&&(typeof r=="number"||VE.test(r))&&r>-1&&r%1==0&&r<e}function QE(r,e,t){if(!bl(t))return!1;var n=typeof e;return(n=="number"?ml(t)&&hp(e,t.length):n=="string"&&e in t)?yl(t[e],r):!1}function ZE(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||Xn;return r===t}function XE(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}function yl(r,e){return r===e||r!==r&&e!==e}function ek(r){return rk(r)&&ei.call(r,"callee")&&(!YE.call(r,"callee")||pp.call(r)==qE)}var tk=Array.isArray;function ml(r){return r!=null&&ik(r.length)&&!nk(r)}function rk(r){return sk(r)&&ml(r)}function nk(r){var e=bl(r)?pp.call(r):"";return e==JE||e==FE}function ik(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=up}function bl(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function sk(r){return!!r&&typeof r=="object"}var ak=HE(function(r,e,t,n){$E(e,lk(e),r,n)}),ok=fp(function(r){return r.push(void 0,WE),dp(ak,void 0,r)});function lk(r){return ml(r)?BE(r,!0):zE(r)}yp.exports=ok});var vp=h((Y_,gp)=>{var ck=9007199254740991,uk="[object Arguments]",dk="[object Function]",pk="[object GeneratorFunction]",gl=Object.prototype,fk=gl.hasOwnProperty,bp=gl.toString,hk=gl.propertyIsEnumerable;function yk(r){return bk(r)&&fk.call(r,"callee")&&(!hk.call(r,"callee")||bp.call(r)==uk)}function mk(r){return r!=null&&vk(r.length)&&!gk(r)}function bk(r){return Sk(r)&&mk(r)}function gk(r){var e=Kk(r)?bp.call(r):"";return e==dk||e==pk}function vk(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=ck}function Kk(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function Sk(r){return!!r&&typeof r=="object"}gp.exports=yk});var Gi=h(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.isArguments=fr.defaults=fr.noop=void 0;var Ek=mp();fr.defaults=Ek;var kk=vp();fr.isArguments=kk;function Ik(){}fr.noop=Ik});var Sp=h((W_,Kp)=>{var bn=1e3,gn=bn*60,vn=gn*60,Lr=vn*24,xk=Lr*7,wk=Lr*365.25;Kp.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return Tk(r);if(t==="number"&&isFinite(r))return e.long?Ak(r):jk(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function Tk(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*wk;case"weeks":case"week":case"w":return t*xk;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 jk(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 Ak(r){var e=Math.abs(r);return e>=Lr?Yi(r,e,Lr,"day"):e>=vn?Yi(r,e,vn,"hour"):e>=gn?Yi(r,e,gn,"minute"):e>=bn?Yi(r,e,bn,"second"):r+" ms"}function Yi(r,e,t,n){var i=e>=t*1.5;return Math.round(r/t)+" "+n+(i?"s":"")}});var vl=h((U_,Ep)=>{function Dk(r){t.debug=t,t.default=t,t.coerce=l,t.disable=a,t.enable=i,t.enabled=o,t.humanize=Sp(),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),O=I-(d||I);k.diff=O,k.prev=d,k.curr=I,d=I,S[0]=t.coerce(S[0]),typeof S[0]!="string"&&S.unshift("%O");let R=0;S[0]=S[0].replace(/%([a-zA-Z%])/g,(E,M)=>{if(E==="%%")return"%";R++;let F=t.formatters[M];if(typeof F=="function"){let C=S[R];E=F.call(k,C),S.splice(R,1),R--}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}Ep.exports=Dk});var kp=h((st,Bi)=>{st.formatArgs=Ok;st.save=Ck;st.load=_k;st.useColors=Rk;st.storage=Mk();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 Rk(){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 Ok(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Bi.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 Ck(r){try{r?st.storage.setItem("debug",r):st.storage.removeItem("debug")}catch{}}function _k(){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 Mk(){try{return localStorage}catch{}}Bi.exports=vl()(st);var{formatters:Pk}=Bi.exports;Pk.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var xp=h((z_,Ip)=>{"use strict";Ip.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 jp=h(($_,Tp)=>{"use strict";var Nk=V("os"),wp=V("tty"),Kt=xp(),{env:Le}=process,Wi;Kt("no-color")||Kt("no-colors")||Kt("color=false")||Kt("color=never")?Wi=0:(Kt("color")||Kt("colors")||Kt("color=true")||Kt("color=always"))&&(Wi=1);function Lk(){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 qk(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function Jk(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=Lk();n!==void 0&&(Wi=n);let i=t?Wi: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=Nk.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 Kl(r,e={}){let t=Jk(r,{streamIsTTY:r&&r.isTTY,...e});return qk(t)}Tp.exports={supportsColor:Kl,stdout:Kl({isTTY:wp.isatty(1)}),stderr:Kl({isTTY:wp.isatty(2)})}});var Dp=h((qe,zi)=>{var Fk=V("tty"),Ui=V("util");qe.init=zk;qe.log=Bk;qe.formatArgs=Gk;qe.save=Wk;qe.load=Uk;qe.useColors=Vk;qe.destroy=Ui.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=jp();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 Vk(){return"colors"in qe.inspectOpts?!!qe.inspectOpts.colors:Fk.isatty(process.stderr.fd)}function Gk(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 IE=Object.create;var qi=Object.defineProperty;var xE=Object.getOwnPropertyDescriptor;var wE=Object.getOwnPropertyNames;var TE=Object.getPrototypeOf,jE=Object.prototype.hasOwnProperty;var B=(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 AE=(r,e)=>()=>(r&&(e=r(r=0)),e);var h=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),DE=(r,e)=>{for(var t in e)qi(r,t,{get:e[t],enumerable:!0})},Hd=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of wE(e))!jE.call(r,i)&&i!==t&&qi(r,i,{get:()=>e[i],enumerable:!(n=xE(e,i))||n.enumerable});return r};var Qd=(r,e,t)=>(t=r!=null?IE(TE(r)):{},Hd(e||!r||!r.__esModule?qi(t,"default",{value:r,enumerable:!0}):t,r)),nt=r=>Hd(qi({},"__esModule",{value:!0}),r);var Zd=h((q_,RE)=>{RE.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(ot=>{"use strict";var OE=ot&&ot.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ot,"__esModule",{value:!0});ot.getKeyIndexes=ot.hasFlag=ot.exists=ot.list=void 0;var Ji=OE(Zd());ot.list=Object.keys(Ji.default);var ol={};ot.list.forEach(r=>{ol[r]=Ji.default[r].flags.reduce(function(e,t){return e[t]=!0,e},{})});function CE(r,e){return r=e?.caseInsensitive?String(r).toLowerCase():r,!!Ji.default[r]}ot.exists=CE;function _E(r,e,t){if(r=t?.nameCaseInsensitive?String(r).toLowerCase():r,!ol[r])throw new Error("Unknown command "+r);return!!ol[r][e]}ot.hasFlag=_E;function ME(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 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,Xd(c)]):i.push(l))):u==="BY"?(l+=1,s?i.push([l,Xd(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}ot.getKeyIndexes=ME;function Xd(r){typeof r!="string"&&(r=String(r));let e=r.indexOf("->");return e===-1?r.length:e}});var ep=h(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.tryCatch=dr.errorObj=void 0;dr.errorObj={e:{}};var ll;function PE(r,e){try{let t=ll;return ll=null,t.apply(this,arguments)}catch(t){return dr.errorObj.e=t,dr.errorObj}}function NE(r){return ll=r,PE}dr.tryCatch=NE});var pr=h(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var hn=ep();function tp(r){setTimeout(function(){throw r},0)}function LE(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&&tp(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&&tp(i.e)}),r}cl.default=LE});var ip=h((G_,np)=>{"use strict";var rp=B("assert"),Qn=B("util");function yn(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Qn.inherits(yn,Error);Object.defineProperty(yn.prototype,"name",{value:"RedisError",configurable:!0,writable:!0});function ul(r,e,t){rp(e),rp.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}Qn.inherits(ul,yn);Object.defineProperty(ul.prototype,"name",{value:"ParserError",configurable:!0,writable:!0});function dl(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}Qn.inherits(dl,yn);Object.defineProperty(dl.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0});function Fi(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Qn.inherits(Fi,yn);Object.defineProperty(Fi.prototype,"name",{value:"AbortError",configurable:!0,writable:!0});function pl(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Qn.inherits(pl,Fi);Object.defineProperty(pl.prototype,"name",{value:"InterruptError",configurable:!0,writable:!0});np.exports={RedisError:yn,ParserError:ul,ReplyError:dl,AbortError:Fi,InterruptError:pl}});var op=h((Y_,ap)=>{"use strict";var sp=B("assert"),mn=class extends Error{get name(){return this.constructor.name}},fl=class extends mn{constructor(e,t,n){sp(t),sp.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}},hl=class extends mn{constructor(e){let t=Error.stackTraceLimit;Error.stackTraceLimit=2,super(e),Error.stackTraceLimit=t}get name(){return this.constructor.name}},Vi=class extends mn{get name(){return this.constructor.name}},yl=class extends Vi{get name(){return this.constructor.name}};ap.exports={RedisError:mn,ParserError:fl,ReplyError:hl,AbortError:Vi,InterruptError:yl}});var Nr=h((B_,lp)=>{"use strict";var qE=process.version.charCodeAt(1)<55&&process.version.charCodeAt(2)===46?ip():op();lp.exports=qE});var Zn=h((W_,ml)=>{var cp=[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],JE=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},up=ml.exports=function(e){for(var t,n=0,i=-1,s=0,a=0,o=typeof e=="string"?JE(e):e,l=o.length;n<l;){if(t=o[n++],i===-1)t===123&&(i=n);else if(t!==125)a=cp[(t^a>>8)&255]^a<<8;else if(n-1!==i)return a&16383;s=cp[(t^s>>8)&255]^s<<8}return s&16383};ml.exports.generateMulti=function(e){for(var t=1,n=e.length,i=up(e[0]);t<n;)if(up(e[t++])!==i)return-1;return i}});var gp=h((U_,bp)=>{var pp=9007199254740991,FE="[object Arguments]",VE="[object Function]",GE="[object GeneratorFunction]",YE=/^(?:0|[1-9]\d*)$/;function fp(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 BE(r,e){for(var t=-1,n=Array(r);++t<r;)n[t]=e(t);return n}var Xn=Object.prototype,ei=Xn.hasOwnProperty,hp=Xn.toString,WE=Xn.propertyIsEnumerable,dp=Math.max;function UE(r,e){var t=nk(r)||rk(r)?BE(r.length,String):[],n=t.length,i=!!n;for(var s in r)(e||ei.call(r,s))&&!(i&&(s=="length"||mp(s,n)))&&t.push(s);return t}function zE(r,e,t,n){return r===void 0||bl(r,Xn[t])&&!ei.call(n,t)?e:r}function $E(r,e,t){var n=r[e];(!(ei.call(r,e)&&bl(n,t))||t===void 0&&!(e in r))&&(r[e]=t)}function HE(r){if(!vl(r))return tk(r);var e=ek(r),t=[];for(var n in r)n=="constructor"&&(e||!ei.call(r,n))||t.push(n);return t}function yp(r,e){return e=dp(e===void 0?r.length-1:e,0),function(){for(var t=arguments,n=-1,i=dp(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,fp(r,this,a)}}function QE(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;$E(t,a,o===void 0?r[a]:o)}return t}function ZE(r){return yp(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&&XE(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 mp(r,e){return e=e??pp,!!e&&(typeof r=="number"||YE.test(r))&&r>-1&&r%1==0&&r<e}function XE(r,e,t){if(!vl(t))return!1;var n=typeof e;return(n=="number"?gl(t)&&mp(e,t.length):n=="string"&&e in t)?bl(t[e],r):!1}function ek(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||Xn;return r===t}function tk(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}function bl(r,e){return r===e||r!==r&&e!==e}function rk(r){return ik(r)&&ei.call(r,"callee")&&(!WE.call(r,"callee")||hp.call(r)==FE)}var nk=Array.isArray;function gl(r){return r!=null&&ak(r.length)&&!sk(r)}function ik(r){return ok(r)&&gl(r)}function sk(r){var e=vl(r)?hp.call(r):"";return e==VE||e==GE}function ak(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=pp}function vl(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function ok(r){return!!r&&typeof r=="object"}var lk=ZE(function(r,e,t,n){QE(e,uk(e),r,n)}),ck=yp(function(r){return r.push(void 0,zE),fp(lk,void 0,r)});function uk(r){return gl(r)?UE(r,!0):HE(r)}bp.exports=ck});var Sp=h((z_,Kp)=>{var dk=9007199254740991,pk="[object Arguments]",fk="[object Function]",hk="[object GeneratorFunction]",Kl=Object.prototype,yk=Kl.hasOwnProperty,vp=Kl.toString,mk=Kl.propertyIsEnumerable;function bk(r){return vk(r)&&yk.call(r,"callee")&&(!mk.call(r,"callee")||vp.call(r)==pk)}function gk(r){return r!=null&&Sk(r.length)&&!Kk(r)}function vk(r){return kk(r)&&gk(r)}function Kk(r){var e=Ek(r)?vp.call(r):"";return e==fk||e==hk}function Sk(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=dk}function Ek(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function kk(r){return!!r&&typeof r=="object"}Kp.exports=bk});var Gi=h(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.isArguments=fr.defaults=fr.noop=void 0;var Ik=gp();fr.defaults=Ik;var xk=Sp();fr.isArguments=xk;function wk(){}fr.noop=wk});var kp=h((H_,Ep)=>{var bn=1e3,gn=bn*60,vn=gn*60,Lr=vn*24,Tk=Lr*7,jk=Lr*365.25;Ep.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return Ak(r);if(t==="number"&&isFinite(r))return e.long?Rk(r):Dk(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function Ak(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*jk;case"weeks":case"week":case"w":return t*Tk;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 Dk(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 Rk(r){var e=Math.abs(r);return e>=Lr?Yi(r,e,Lr,"day"):e>=vn?Yi(r,e,vn,"hour"):e>=gn?Yi(r,e,gn,"minute"):e>=bn?Yi(r,e,bn,"second"):r+" ms"}function Yi(r,e,t,n){var i=e>=t*1.5;return Math.round(r/t)+" "+n+(i?"s":"")}});var Sl=h((Q_,Ip)=>{function Ok(r){t.debug=t,t.default=t,t.coerce=l,t.disable=a,t.enable=i,t.enabled=o,t.humanize=kp(),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(...E){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,E[0]=t.coerce(E[0]),typeof E[0]!="string"&&E.unshift("%O");let D=0;E[0]=E[0].replace(/%([a-zA-Z%])/g,(ae,x)=>{if(ae==="%%")return"%";D++;let S=t.formatters[x];if(typeof S=="function"){let C=E[D];ae=S.call(k,C),E.splice(D,1),D--}return ae}),t.formatArgs.call(k,E),(k.log||t.log).apply(k,E)}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:E=>{f=E}}),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}Ip.exports=Ok});var xp=h((it,Bi)=>{it.formatArgs=_k;it.save=Mk;it.load=Pk;it.useColors=Ck;it.storage=Nk();it.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`."))}})();it.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 Ck(){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 _k(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Bi.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)}it.log=console.debug||console.log||(()=>{});function Mk(r){try{r?it.storage.setItem("debug",r):it.storage.removeItem("debug")}catch{}}function Pk(){let r;try{r=it.storage.getItem("debug")||it.storage.getItem("DEBUG")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function Nk(){try{return localStorage}catch{}}Bi.exports=Sl()(it);var{formatters:Lk}=Bi.exports;Lk.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Tp=h((Z_,wp)=>{"use strict";wp.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 Dp=h((X_,Ap)=>{"use strict";var qk=B("os"),jp=B("tty"),vt=Tp(),{env:Le}=process,Wi;vt("no-color")||vt("no-colors")||vt("color=false")||vt("color=never")?Wi=0:(vt("color")||vt("colors")||vt("color=true")||vt("color=always"))&&(Wi=1);function Jk(){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 Fk(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function Vk(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=Jk();n!==void 0&&(Wi=n);let i=t?Wi:n;if(i===0)return 0;if(t){if(vt("color=16m")||vt("color=full")||vt("color=truecolor"))return 3;if(vt("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=qk.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 El(r,e={}){let t=Vk(r,{streamIsTTY:r&&r.isTTY,...e});return Fk(t)}Ap.exports={supportsColor:El,stdout:El({isTTY:jp.isatty(1)}),stderr:El({isTTY:jp.isatty(2)})}});var Op=h((qe,zi)=>{var Gk=B("tty"),Ui=B("util");qe.init=Hk;qe.log=Uk;qe.formatArgs=Bk;qe.save=zk;qe.load=$k;qe.useColors=Yk;qe.destroy=Ui.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=Dp();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 Yk(){return"colors"in qe.inspectOpts?!!qe.inspectOpts.colors:Gk.isatty(process.stderr.fd)}function Bk(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+"+zi.exports.humanize(this.diff)+"\x1B[0m")}else r[0]=Yk()+e+" "+r[0]}function Yk(){return qe.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Bk(...r){return process.stderr.write(Ui.formatWithOptions(qe.inspectOpts,...r)+`
5
- `)}function Wk(r){r?process.env.DEBUG=r:delete process.env.DEBUG}function Uk(){return process.env.DEBUG}function zk(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]]}zi.exports=vl()(qe);var{formatters:Ap}=zi.exports;Ap.o=function(r){return this.inspectOpts.colors=this.useColors,Ui.inspect(r,this.inspectOpts).split(`
6
- `).map(e=>e.trim()).join(" ")};Ap.O=function(r){return this.inspectOpts.colors=this.useColors,Ui.inspect(r,this.inspectOpts)}});var Rp=h((H_,Sl)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Sl.exports=kp():Sl.exports=Dp()});var _p=h(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.genRedactedString=Ht.getStringValue=Ht.MAX_ARGUMENT_LENGTH=void 0;var $k=Rp(),El=200;Ht.MAX_ARGUMENT_LENGTH=El;var Hk="ioredis";function Op(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=Op;function Cp(r,e){let{length:t}=r;return t<=e?r:r.slice(0,e)+' ... <REDACTED full-length="'+t+'">'}Ht.genRedactedString=Cp;function Qk(r){let e=(0,$k.default)(`${Hk}:${r}`);function t(...n){if(e.enabled){for(let i=1;i<n.length;i++){let s=Op(n[i]);typeof s=="string"&&s.length>El&&(n[i]=Cp(s,El))}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=Qk});var Pp=h(kl=>{"use strict";Object.defineProperty(kl,"__esModule",{value:!0});var Mp=`-----BEGIN CERTIFICATE-----
4
+ `+s),r.push(i+"m+"+zi.exports.humanize(this.diff)+"\x1B[0m")}else r[0]=Wk()+e+" "+r[0]}function Wk(){return qe.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Uk(...r){return process.stderr.write(Ui.formatWithOptions(qe.inspectOpts,...r)+`
5
+ `)}function zk(r){r?process.env.DEBUG=r:delete process.env.DEBUG}function $k(){return process.env.DEBUG}function Hk(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]]}zi.exports=Sl()(qe);var{formatters:Rp}=zi.exports;Rp.o=function(r){return this.inspectOpts.colors=this.useColors,Ui.inspect(r,this.inspectOpts).split(`
6
+ `).map(e=>e.trim()).join(" ")};Rp.O=function(r){return this.inspectOpts.colors=this.useColors,Ui.inspect(r,this.inspectOpts)}});var Cp=h((eM,kl)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?kl.exports=xp():kl.exports=Op()});var Pp=h(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.genRedactedString=Ht.getStringValue=Ht.MAX_ARGUMENT_LENGTH=void 0;var Qk=Cp(),Il=200;Ht.MAX_ARGUMENT_LENGTH=Il;var Zk="ioredis";function _p(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=_p;function Mp(r,e){let{length:t}=r;return t<=e?r:r.slice(0,e)+' ... <REDACTED full-length="'+t+'">'}Ht.genRedactedString=Mp;function Xk(r){let e=(0,Qk.default)(`${Zk}:${r}`);function t(...n){if(e.enabled){for(let i=1;i<n.length;i++){let s=_p(n[i]);typeof s=="string"&&s.length>Il&&(n[i]=Mp(s,Il))}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=Xk});var Lp=h(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});var Np=`-----BEGIN CERTIFICATE-----
7
7
  MIIDTzCCAjegAwIBAgIJAKSVpiDswLcwMA0GCSqGSIb3DQEBBQUAMD4xFjAUBgNV
8
8
  BAoMDUdhcmFudGlhIERhdGExJDAiBgNVBAMMG1NTTCBDZXJ0aWZpY2F0aW9uIEF1
9
9
  dGhvcml0eTAeFw0xMzEwMDExMjE0NTVaFw0yMzA5MjkxMjE0NTVaMD4xFjAUBgNV
@@ -141,13 +141,13 @@ jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
141
141
  mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
142
142
  Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
143
143
  WD9f
144
- -----END CERTIFICATE-----`,Zk={RedisCloudFixed:{ca:Mp},RedisCloudFlexible:{ca:Mp}};kl.default=Zk});var Oe=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 Xk=V("fs"),eI=V("path"),Np=V("url"),Il=Gi();Object.defineProperty(re,"defaults",{enumerable:!0,get:function(){return Il.defaults}});Object.defineProperty(re,"noop",{enumerable:!0,get:function(){return Il.noop}});var tI=_p();re.Debug=tI.default;var rI=Pp();function Lp(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():Lp(r[i],e);return n}return r}re.convertBufferToString=Lp;function nI(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=nI;function qp(r){let e=parseFloat(r);return!isNaN(r)&&(e|0)===e}re.isInt=qp;function iI(r){let e={},t=r.length;for(let n=1;n<t;n+=2)e[r[n-1]]=r[n];return e}re.packObject=iI;function sI(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=sI;function aI(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=aI;function oI(r){let e=[],t=0;return r.forEach(function(n,i){e[t]=i,e[t+1]=n,t+=2}),e}re.convertMapToArray=oI;function lI(r){return r===null||typeof r>"u"?"":String(r)}re.toArg=lI;function cI(r,e,t){let n=e.split(`
144
+ -----END CERTIFICATE-----`,eI={RedisCloudFixed:{ca:Np},RedisCloudFlexible:{ca:Np}};xl.default=eI});var Oe=h(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.noop=te.defaults=te.Debug=te.getPackageMeta=te.zipMap=te.CONNECTION_CLOSED_ERROR_MSG=te.shuffle=te.sample=te.resolveTLSProfile=te.parseURL=te.optimizeErrorStack=te.toArg=te.convertMapToArray=te.convertObjectToArray=te.timeout=te.packObject=te.isInt=te.wrapMultiResult=te.convertBufferToString=void 0;var tI=B("fs"),rI=B("path"),qp=B("url"),wl=Gi();Object.defineProperty(te,"defaults",{enumerable:!0,get:function(){return wl.defaults}});Object.defineProperty(te,"noop",{enumerable:!0,get:function(){return wl.noop}});var nI=Pp();te.Debug=nI.default;var iI=Lp();function Jp(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():Jp(r[i],e);return n}return r}te.convertBufferToString=Jp;function sI(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}te.wrapMultiResult=sI;function Fp(r){let e=parseFloat(r);return!isNaN(r)&&(e|0)===e}te.isInt=Fp;function aI(r){let e={},t=r.length;for(let n=1;n<t;n+=2)e[r[n-1]]=r[n];return e}te.packObject=aI;function oI(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}te.timeout=oI;function lI(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}te.convertObjectToArray=lI;function cI(r){let e=[],t=0;return r.forEach(function(n,i){e[t]=i,e[t+1]=n,t+=2}),e}te.convertMapToArray=cI;function uI(r){return r===null||typeof r>"u"?"":String(r)}te.toArg=uI;function dI(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=cI;function uI(r){if(qp(r))return{port:r};let e=(0,Np.parse)(r,!0,!0);!e.slashes&&r[0]!=="/"&&(r="//"+r,e=(0,Np.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,Il.defaults)(n,t),n}re.parseURL=uI;function dI(r){let e=r?.tls;typeof e=="string"&&(e={profile:e});let t=rI.default[e?.profile];return t&&(e=Object.assign({},t,e),delete e.profile,r=Object.assign({},r,{tls:e})),r}re.resolveTLSProfile=dI;function pI(r,e=0){let t=r.length;return e>=t?null:r[e+Math.floor(Math.random()*(t-e))]}re.sample=pI;function fI(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=fI;re.CONNECTION_CLOSED_ERROR_MSG="Connection is closed.";function hI(r,e){let t=new Map;return r.forEach((n,i)=>{t.set(n,e[i])}),t}re.zipMap=hI;var Kn=null;async function yI(){if(Kn)return Kn;try{let r=(0,eI.resolve)(__dirname,"..","..","package.json"),e=await Xk.promises.readFile(r,"utf8");return Kn={version:JSON.parse(e).version},Kn}catch{return Kn={version:"error-fetching-version"},Kn}}re.getPackageMeta=yI});var Jp=h(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.parseBlockOption=Sn.parseSecondsArgument=void 0;var xl=r=>{if(typeof r=="number")return r;if(Buffer.isBuffer(r))return xl(r.toString());if(typeof r=="string"){let e=Number(r);return Number.isFinite(e)?e:void 0}},mI=r=>{if(typeof r=="string")return r;if(Buffer.isBuffer(r))return r.toString()},bI=r=>{let e=xl(r);if(e!==void 0)return e<=0?0:e*1e3};Sn.parseSecondsArgument=bI;var gI=r=>{for(let e=0;e<r.length;e++){let t=mI(r[e]);if(t&&t.toLowerCase()==="block"){let n=xl(r[e+1]);return n===void 0?void 0:n<=0?0:n}}return null};Sn.parseBlockOption=gI});var Qt=h(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});var Fp=Pr(),vI=Zn(),KI=pr(),qr=Oe(),wl=Jp(),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:vI(e)}return this.slot}getKeys(){return this._iterateKeys()}toWritable(e){let t,n="*"+(this.args.length+1)+`\r
147
+ `);r.stack=r.stack.slice(0,a)+i}return r}te.optimizeErrorStack=dI;function pI(r){if(Fp(r))return{port:r};let e=(0,qp.parse)(r,!0,!0);!e.slashes&&r[0]!=="/"&&(r="//"+r,e=(0,qp.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,wl.defaults)(n,t),n}te.parseURL=pI;function fI(r){let e=r?.tls;typeof e=="string"&&(e={profile:e});let t=iI.default[e?.profile];return t&&(e=Object.assign({},t,e),delete e.profile,r=Object.assign({},r,{tls:e})),r}te.resolveTLSProfile=fI;function hI(r,e=0){let t=r.length;return e>=t?null:r[e+Math.floor(Math.random()*(t-e))]}te.sample=hI;function yI(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}te.shuffle=yI;te.CONNECTION_CLOSED_ERROR_MSG="Connection is closed.";function mI(r,e){let t=new Map;return r.forEach((n,i)=>{t.set(n,e[i])}),t}te.zipMap=mI;var Kn=null;async function bI(){if(Kn)return Kn;try{let r=(0,rI.resolve)(__dirname,"..","..","package.json"),e=await tI.promises.readFile(r,"utf8");return Kn={version:JSON.parse(e).version},Kn}catch{return Kn={version:"error-fetching-version"},Kn}}te.getPackageMeta=bI});var Vp=h(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.parseBlockOption=Sn.parseSecondsArgument=void 0;var Tl=r=>{if(typeof r=="number")return r;if(Buffer.isBuffer(r))return Tl(r.toString());if(typeof r=="string"){let e=Number(r);return Number.isFinite(e)?e:void 0}},gI=r=>{if(typeof r=="string")return r;if(Buffer.isBuffer(r))return r.toString()},vI=r=>{let e=Tl(r);if(e!==void 0)return e<=0?0:e*1e3};Sn.parseSecondsArgument=vI;var KI=r=>{for(let e=0;e<r.length;e++){let t=gI(r[e]);if(t&&t.toLowerCase()==="block"){let n=Tl(r[e+1]);return n===void 0?void 0:n<=0?0:n}}return null};Sn.parseBlockOption=KI});var Qt=h(Dl=>{"use strict";Object.defineProperty(Dl,"__esModule",{value:!0});var Gp=Pr(),SI=Zn(),EI=pr(),qr=Oe(),jl=Vp(),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:SI(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
- `;if(this.bufferMode){let i=new Tl;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
150
+ `;if(this.bufferMode){let i=new Al;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
151
151
  \r
152
152
  `):(i.push("$"+a.length+`\r
153
153
  `),i.push(a),i.push(`\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,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,wl.parseSecondsArgument)(e[e.length-1]);if(r.checkFlag("FIRST_ARG_TIMEOUT_COMMANDS",t))return(0,wl.parseSecondsArgument)(e[0]);if(r.checkFlag("BLOCK_OPTION_COMMANDS",t))return(0,wl.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,KI.default)(e,this.callback)}_iterateKeys(e=t=>t){if(typeof this.keys>"u"&&(this.keys=[],(0,Fp.exists)(this.name,{caseInsensitive:!0}))){let t=(0,Fp.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}}};jl.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 Vp=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},Gp=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",Vp);Lt.setArgumentTransformer("msetnx",Vp);Lt.setArgumentTransformer("hset",Gp);Lt.setArgumentTransformer("hmset",Gp);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 Tl=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 Yp=h(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});var SI=Nr(),$i=class extends SI.RedisError{constructor(e,t){super(e),this.lastNodeError=t,Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}};Al.default=$i;$i.defaultMessage="Failed to refresh slots cache."});var Hi=h(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});var EI=V("stream"),Dl=class extends EI.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}};Rl.default=Dl});var Qp=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 Up=Gi(),kI=Zn(),Bp=pr(),Wp=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 zp(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)&&zp(r,e)})}function II(r,e,t){return e&&r.options.enableAutoPipelining&&!r.isPipeline&&!Ae.notAllowedAutoPipelineCommands.includes(t)&&!r.options.autoPipeliningIgnoredCommands.includes(t)}Ae.shouldUseAutoPipelining=II;function $p(r){for(let e=0;e<r.length;e++){let t=r[e];if(typeof t=="string")return t;if(Array.isArray(t)||(0,Up.isArguments)(t)){if(t.length===0)continue;return t[0]}let n=[t].flat();if(n.length>0)return n[0]}}Ae.getFirstValueInFlattenedArray=$p;function Hp(r,e,t,n,i){if(r.isCluster&&!r.slots.length)return r.status==="wait"&&r.connect().catch(Up.noop),(0,Bp.default)(new Promise(function(c,u){r.delayUntilReady(d=>{if(d){u(d);return}Hp(r,e,t,n,null).then(c,u)})}),i);let s=r.options.keyPrefix||"",a=r.isCluster?r.slots[kI(`${s}${$p(n)}`)].join(","):"main";if(r.isCluster&&r.options.scaleReads!=="master"){let c=(0,Wp.exists)(t)&&(0,Wp.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(zp,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,Bp.default)(l,i)}Ae.executeWithAutoPipelining=Hp});var Zp=h(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});var xI=V("crypto"),wI=Qt(),TI=pr(),Ol=class{constructor(e,t=null,n="",i=!1){this.lua=e,this.numberOfKeys=t,this.keyPrefix=n,this.readOnly=i,this.sha=(0,xI.createHash)("sha1").update(e).digest("hex");let s=this.sha,a=new WeakSet;this.Command=class extends wI.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,TI.default)(s.promise,i),e.sendCommand(s)}};Cl.default=Ol});var Zi=h(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});var jI=Pr(),Qi=Qp(),AI=Qt(),DI=Zp(),Zt=class{constructor(){this.options={},this.scriptsSet={},this.addedBuiltinSet=new Set}getBuiltinCommands(){return _l.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 DI.default(t.lua,t.numberOfKeys,this.options.keyPrefix,t.readOnly);this.scriptsSet[e]=n,this[e]=Xp(e,e,n,"utf8"),this[e+"Buffer"]=Xp(e+"Buffer",e,n,null)}sendCommand(e,t,n){throw new Error('"sendCommand" is not implemented')}},_l=jI.list.filter(r=>r!=="monitor");_l.push("sentinel");_l.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,Qi.shouldUseAutoPipelining)(this,r,i)?(0,Qi.executeWithAutoPipelining)(this,r,i,n,s):this.sendCommand(new AI.default(i,n,a,s))}}function Xp(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,Qi.shouldUseAutoPipelining)(this,r,e)?(0,Qi.executeWithAutoPipelining)(this,r,e,i,s):t.execute(this,i,a,s)}}Ml.default=Zt});var Ll=h(Nl=>{"use strict";Object.defineProperty(Nl,"__esModule",{value:!0});var Pl=Zn(),ef=Pr(),tf=pr(),RI=V("util"),OI=Qt(),CI=Oe(),_I=Zi();function MI(r,e){let t=Pl(e[0]),n=r._groupsBySlot[t];for(let i=1;i<e.length;i++)if(r._groupsBySlot[Pl(e[i])]!==n)return-1;return t}var yr=class extends _I.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,ef.exists)(l.name,{caseInsensitive:!0})&&(0,ef.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 OI.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}};Nl.default=yr;var PI=yr.prototype.multi;yr.prototype.multi=function(){return this._transactions+=1,PI.apply(this,arguments)};var rf=yr.prototype.execBuffer;yr.prototype.execBuffer=(0,RI.deprecate)(function(){return this._transactions>0&&(this._transactions-=1),rf.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(CI.noop),r&&!this.nodeifiedPromise&&(this.nodeifiedPromise=!0,(0,tf.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,rf.apply(this,arguments);this.nodeifiedPromise||(this.nodeifiedPromise=!0,(0,tf.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&&Pl.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=MI(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 Fl=h(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.addTransactionSupport=void 0;var ql=Oe(),Jl=pr(),nf=Ll();function NI(r){r.pipeline=function(n){let i=new nf.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 nf.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(ql.noop),(0,Jl.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,Jl.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,ql.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,Jl.default)(t.call(this).then(function(i){return Array.isArray(i)&&(i=(0,ql.wrapMultiResult)(i)),i}),n)}}Xi.addTransactionSupport=NI});var Gl=h(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});function LI(r,e){Object.getOwnPropertyNames(e.prototype).forEach(t=>{Object.defineProperty(r.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})}Vl.default=LI});var af=h(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.DEFAULT_CLUSTER_OPTIONS=void 0;var sf=V("dns");es.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:sf.resolveSrv,dnsLookup:sf.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 of=Oe(),qI=V("net");function JI(r){return r.port=r.port||6379,r.host=r.host||"127.0.0.1",r.host+":"+r.port}Ye.getNodeKey=JI;function FI(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=FI;function VI(r){return r.map(e=>{let t={};if(typeof e=="object")Object.assign(t,e);else if(typeof e=="string")Object.assign(t,(0,of.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,of.resolveTLSProfile)(t)})}Ye.normalizeNodeOptions=VI;function GI(r){let e={};return r.forEach(t=>{e[t.host]=!0}),Object.keys(e).filter(t=>!(0,qI.isIP)(t))}Ye.getUniqueHostnamesFromOptions=GI;function YI(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=YI;function BI(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=BI;function WI(r,e){let t=`ioredis-cluster(${r})`;return e?`${t}:${e}`:t}Ye.getConnectionName=WI});var cf=h(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});var lf=En(),Yl=Oe(),UI=Xt(),qt=(0,Yl.Debug)("cluster:subscriber"),Bl=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,lf.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,Yl.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 UI.default({port:n.port,host:n.host,username:n.username,password:n.password,enableReadyCheck:!0,connectionName:(0,lf.getConnectionName)(i,n.connectionName),lazyConnect:!0,tls:n.tls,retryStrategy:null}),this.subscriber.on("error",Yl.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)})}};Wl.default=Bl});var uf=h($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});var zI=V("events"),ts=Oe(),Ul=En(),$I=Xt(),ti=(0,ts.Debug)("cluster:connectionPool"),zl=class extends zI.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,ts.sample)(t);return this.nodes[e][n]}addMasterNode(e){let t=(0,Ul.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 $I.default((0,ts.defaults)({retryStrategy:null,enableOfflineQueue:!0,readOnly:t},e,this.redisOptions,{lazyConnect:!0}))}findOrCreate(e,t=!1){let n=(0,Ul.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,ti("Change role of %s to %s",n,t?"slave":"master"),i[t?"readonly":"readwrite"]().catch(ts.noop),t?(delete this.nodes.master[n],this.nodes.slave[n]=i):(delete this.nodes.slave[n],this.nodes.master[n]=i))):(ti("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){ti("Reset with %O",e);let t={};e.forEach(n=>{let i=(0,Ul.getNodeKey)(n);n.readOnly&&t[i]||(t[i]=n)}),Object.keys(this.nodes.all).forEach(n=>{t[n]||(ti("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]&&(ti("Remove %s from the pool",e),delete t.all[e]),delete t.master[e],delete t.slave[e]}};$l.default=zl});var rs=h((yM,df)=>{"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)};df.exports=we});var pf=h(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});var HI=Oe(),QI=rs(),ZI=(0,HI.Debug)("delayqueue"),Hl=class{constructor(){this.queues={},this.timeouts={}}push(e,t,n){let i=n.callback||process.nextTick;this.queues[e]||(this.queues[e]=new QI),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(ZI("send %d commands in %s queue",n,e),this.queues[e]=null;t.length>0;)t.shift()()}};Ql.default=Hl});var mf=h(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});var ff=En(),yf=Oe(),XI=Xt(),hf=(0,yf.Debug)("cluster:subscriberGroup:shardedSubscriber"),me={IDLE:"idle",STARTING:"starting",CONNECTED:"connected",STOPPING:"stopping",ENDED:"ended"},ex={[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 XI.default((0,yf.defaults)({enableReadyCheck:!1,enableOfflineQueue:!0,connectionName:(0,ff.getConnectionName)("ssubscriber",t.connectionName),retryStrategy:null,lazyConnect:!0},t,n)),this.lazyConnect=(i=n?.lazyConnect)!==null&&i!==void 0?i:!0,this.nodeKey=(0,ff.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),hf("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(!ex[this.status].includes(e)){hf("Invalid status transition for %s: %s -> %s",this.nodeKey,this.status,e);return}this.status=e}}};Xl.default=Zl});var bf=h(ec=>{"use strict";Object.defineProperty(ec,"__esModule",{value:!0});var tx=Oe(),rx=En(),ns=Zn(),nx=mf(),St=(0,tx.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=ns(e[0]);for(let i of e)if(ns(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=ns(e[0]);for(let i of e)if(ns(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,rx.getNodeKey)(d.options)===a);if(!c){St("Failed to find node for key %s",a);continue}let u=new nx.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}};ec.default=kn;kn.MAX_RETRY_ATTEMPTS=10;kn.MAX_BACKOFF_MS=2e3;kn.BASE_BACKOFF_MS=100});var nc=h(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var gf=Pr(),tc=V("events"),In=Nr(),vf=pr(),Kf=Qt(),is=Yp(),ix=Xt(),sx=Hi(),ax=Fl(),ct=Oe(),ox=Gl(),lx=Zi(),cx=af(),ux=cf(),dx=uf(),px=pf(),xn=En(),Sf=rs(),fx=bf(),Ke=(0,ct.Debug)("cluster"),Ef=new WeakSet,ri=class r extends lx.default{constructor(e,t={}){if(super(),this.slots=[],this._groupsIds={},this._groupsBySlot=Array(16384),this.isCluster=!0,this.retryAttempts=0,this.delayQueue=new px.default,this.offlineQueue=new Sf,this.isRefreshing=!1,this._refreshSlotsCacheCallbacks=[],this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this._readyDelayedCallbacks=[],this.connectionEpoch=0,tc.EventEmitter.call(this),this.startupNodes=e,this.options=(0,ct.defaults)({},t,cx.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 dx.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 ux.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===is.default.defaultMessage&&(ix.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,vf.default)(Promise.resolve("OK"),e);return setImmediate(function(){this.setStatus("close"),this.handleCloseEvent()}.bind(this)),n}return(0,vf.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 is.default(is.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,gf.exists)(e.name)&&(0,gf.hasFlag)(e.name,"readonly")||(i="master"));let s=n?n.slot:e.getSlot(),a={},o=this;if(!n&&!Ef.has(e)){Ef.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(Kf.default.checkFlag("ENTER_SUBSCRIBER_MODE",e.name)||Kf.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 Sf}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 sx.default({objectMode:!0,key:t,redis:this,command:e,...n})}createShardedSubscriberGroup(){this.subscriberGroupEmitter=new tc.EventEmitter,this.shardedSubscribers=new fx.default(this.subscriberGroupEmitter,this.options);let e=t=>{t instanceof is.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,ox.default)(ri,tc.EventEmitter);(0,ax.addTransactionSupport)(ri.prototype);rc.default=ri});var ss=h(sc=>{"use strict";Object.defineProperty(sc,"__esModule",{value:!0});var hx=Oe(),yx=(0,hx.Debug)("AbstractConnector"),ic=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(()=>{yx("stream %s:%s still open, destroying it",e.remoteAddress,e.remotePort),e.destroy()},this.disconnectTimeout);e.on("close",()=>clearTimeout(t)),e.end()}}};sc.default=ic});var kf=h(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var mx=V("net"),bx=V("tls"),gx=Oe(),vx=ss(),ac=class extends vx.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(gx.CONNECTION_CLOSED_ERROR_MSG));return}try{t.tls?this.stream=(0,bx.connect)(n):this.stream=(0,mx.createConnection)(n)}catch(a){s(a);return}this.stream.once("error",a=>{this.firstError=a}),i(this.stream)})})}};oc.default=ac});var If=h(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});function Kx(r,e){return(r.host||"127.0.0.1")===(e.host||"127.0.0.1")&&(r.port||26379)===(e.port||26379)}var lc=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(Kx(e,this.sentinels[t]))return!1;return this.sentinels.push(e),!0}toString(){return`${JSON.stringify(this.sentinels)} @${this.cursor}`}};cc.default=lc});var wf=h(as=>{"use strict";Object.defineProperty(as,"__esModule",{value:!0});as.FailoverDetector=void 0;var Sx=Oe(),uc=(0,Sx.Debug)("FailoverDetector"),xf="+switch-master",dc=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(){uc("Starting FailoverDetector");let e=[];for(let t of this.sentinels){let n=t.client.subscribe(xf).catch(i=>{uc("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===xf&&this.disconnect()})}await Promise.all(e)}disconnect(){this.isDisconnected=!0,uc("Failover detected, disconnecting"),this.connector.disconnect()}};as.FailoverDetector=dc});var os=h(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.SentinelIterator=void 0;var Ex=V("net"),ni=Oe(),kx=V("tls"),Tf=If();ii.SentinelIterator=Tf.default;var Ix=ss(),xx=Xt(),wx=wf(),wn=(0,ni.Debug)("SentinelConnector"),pc=class extends Ix.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 Tf.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(ni.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,kx.connect)(s),this.stream.once("secureConnect",this.initFailoverDetector.bind(this))):(this.stream=(0,Ex.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(ni.packObject).forEach(n=>{if((n.flags?n.flags.split(","):[]).indexOf("disconnected")===-1&&n.ip&&n.port){let s=this.sentinelNatResolve(jf(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(ni.packObject).filter(i=>i.flags&&!i.flags.match(/(disconnected|s_down|o_down)/));return this.sentinelNatResolve(Tx(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 xx.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",jx);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 wx.FailoverDetector(this,t),await this.failoverDetector.subscribe(),(e=this.emitter)===null||e===void 0||e.emit("failoverSubscribed")}};ii.default=pc;function Tx(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,ni.sample)(r)),jf(t)}function jf(r){return{host:r.ip,port:Number(r.port)}}function jx(){}});var Af=h(Tn=>{"use strict";Object.defineProperty(Tn,"__esModule",{value:!0});Tn.SentinelConnector=Tn.StandaloneConnector=void 0;var Ax=kf();Tn.StandaloneConnector=Ax.default;var Dx=os();Tn.SentinelConnector=Dx.default});var Df=h(hc=>{"use strict";Object.defineProperty(hc,"__esModule",{value:!0});var Rx=Nr(),fc=class extends Rx.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}};hc.default=fc});var Rf=h(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.MaxRetriesPerRequestError=void 0;var Ox=Df();ls.MaxRetriesPerRequestError=Ox.default});var Lf=h((jM,Nf)=>{"use strict";var Kc=V("buffer").Buffer,Cx=V("string_decoder").StringDecoder,yc=new Cx,Of=Nr(),_x=Of.ReplyError,Mx=Of.ParserError,Dt=Kc.allocUnsafe(32*1024),$e=0,cs=null,si=0,mc=0;function Px(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 Nx(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 Cf(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 _f(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 Lx(r){return r.optionStringNumbers===!0?Nx(r):Px(r)}function qx(r){let e=_f(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 Jx(r){var e=Cf(r);if(e!==void 0)return r.optionReturnBuffers===!0&&(e=e.toString()),new _x(e)}function Fx(r,e){let t=new Mx("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 Vx(r){let e=_f(r);if(e===void 0)return;if(e<0)return null;let t=new Array(e);return Mf(r,t,0)}function bc(r,e,t){r.arrayCache.push(e),r.arrayPos.push(t)}function gc(r){let e=r.arrayCache.pop();var t=r.arrayPos.pop();if(r.arrayCache.length){let n=gc(r);if(n===void 0){bc(r,e,t);return}e[t++]=n}return Mf(r,e,t)}function Mf(r,e,t){let n=r.buffer.length;for(;t<e.length;){let i=r.offset;if(r.offset>=n){bc(r,e,t);return}let s=Pf(r,r.buffer[r.offset++]);if(s===void 0){r.arrayCache.length||r.bufferCache.length||(r.offset=i),bc(r,e,t);return}e[t]=s,t++}return e}function Pf(r,e){switch(e){case 36:return qx(r);case 43:return Cf(r);case 42:return Vx(r);case 58:return Lx(r);case 45:return Jx(r);default:return Fx(r,e)}}function Gx(){if(Dt.length>50*1024)if(si===1||mc>si*2){let r=Math.floor(Dt.length/10),e=r<$e?$e:r;$e=0,Dt=Dt.slice(e,Dt.length)}else mc++,si--;else clearInterval(cs),si=0,mc=0,cs=null}function Yx(r){if(Dt.length<r+$e){let e=r>78643200?2:3;$e>1024*1024*111&&($e=1024*1024*50),Dt=Kc.allocUnsafe(r*e+$e),$e=0,si++,cs===null&&(cs=setInterval(Gx,50))}}function Bx(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=yc.write(e[0].slice(t)),a=1;a<n-1;a++)s+=yc.write(e[a]);return s+=yc.end(e[a].slice(0,i-2)),s}function Wx(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}Yx(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 vc=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=Kc.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=gc(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?Wx(this):Bx(this);if(this.bigStrSize=0,this.bufferCache=[],this.buffer=e,this.arrayCache.length&&(this.arrayCache[0][this.arrayPos[0]++]=t,t=gc(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=Pf(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}};Nf.exports=vc});var Jf=h((AM,qf)=>{"use strict";qf.exports=Lf()});var Ff=h(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});var Ec=class{constructor(){this.set={subscribe:{},psubscribe:{},ssubscribe:{}}}add(e,t){this.set[Sc(e)][t]=!0}del(e,t){delete this.set[Sc(e)][t]}channels(e){return Object.keys(this.set[Sc(e)])}isEmpty(){return this.channels("subscribe").length===0&&this.channels("psubscribe").length===0&&this.channels("ssubscribe").length===0}};kc.default=Ec;function Sc(r){return r==="unsubscribe"?"subscribe":r==="punsubscribe"?"psubscribe":r==="sunsubscribe"?"ssubscribe":r}});var Bf=h(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var Vf=Qt(),Ux=Oe(),zx=Jf(),$x=Ff(),Hx=(0,Ux.Debug)("dataHandler"),Ic=class{constructor(e,t){this.redis=e;let n=new zx({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&&(Vf.default.checkFlag("ENTER_SUBSCRIBER_MODE",t.command.name)?(this.redis.condition.subscriber=new $x.default,this.redis.condition.subscriber.add(t.command.name,e[1].toString()),Gf(t.command,e[2])||this.redis.commandQueue.unshift(t)):Vf.default.checkFlag("EXIT_SUBSCRIBER_MODE",t.command.name)?Yf(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(Hx('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;Gf(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;Yf(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}};xc.default=Ic;var mr=new WeakMap;function Gf(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 Yf(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 Wf=h(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});Et.readyHandler=Et.errorHandler=Et.closeHandler=Et.connectHandler=void 0;var Qx=Nr(),Zx=Qt(),Xx=Rf(),Jt=Oe(),ew=Bf(),Ge=(0,Jt.Debug)("connection");function tw(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 ew.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=tw;function wc(r){let e=new Qx.AbortError("Command aborted due to connection close");return e.command={name:r.name,args:r.args},e}function rw(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(wc(i));continue}n++}}function nw(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(wc(n));break}n.inTransaction?(r.remove(t,1),n.reject(wc(n))):t++}}function iw(r){return function(){let t=r.status;if(r.setStatus("close"),r.commandQueue.length&&rw(r.commandQueue),r.offlineQueue.length&&nw(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 Xx.MaxRetriesPerRequestError(i))))};function e(){r.setStatus("end"),r.flushQueue(new Error(Jt.CONNECTION_CLOSED_ERROR_MSG))}}Et.closeHandler=iw;function sw(r){return function(e){Ge("error: %s",e),r.silentEmit("error",e)}}Et.errorHandler=sw;function aw(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 Zx.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=aw});var Uf=h(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});us.DEFAULT_REDIS_OPTIONS=void 0;us.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(jc=>{"use strict";Object.defineProperty(jc,"__esModule",{value:!0});var zf=Pr(),Hf=V("events"),Tc=pr(),ow=nc(),Jr=Qt(),lw=Af(),cw=os(),br=Wf(),Qf=Uf(),uw=Hi(),dw=Fl(),Fr=Oe(),pw=Gl(),fw=Zi(),gr=Gi(),$f=rs(),vr=(0,Fr.Debug)("redis"),Kr=class r extends fw.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),Hf.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 cw.default(this.options);i.emitter=this,this.connector=i}else this.connector=new lw.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,Tc.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,Tc.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,Tc.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,zf.exists)(e.name,{caseInsensitive:!0})&&((0,zf.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:Qf.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 $f}resetOfflineQueue(){this.offlineQueue=new $f}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 uw.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=ow.default;Kr.Command=Jr.default;Kr.defaultOptions=Qf.DEFAULT_REDIS_OPTIONS;(0,pw.default)(Kr,Hf.EventEmitter);(0,dw.addTransactionSupport)(Kr.prototype);jc.default=Kr});var ds=h((Se,Xf)=>{"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=Xf.exports=Xt().default;var hw=Xt();Object.defineProperty(Se,"default",{enumerable:!0,get:function(){return hw.default}});var yw=Xt();Object.defineProperty(Se,"Redis",{enumerable:!0,get:function(){return yw.default}});var mw=nc();Object.defineProperty(Se,"Cluster",{enumerable:!0,get:function(){return mw.default}});var bw=Qt();Object.defineProperty(Se,"Command",{enumerable:!0,get:function(){return bw.default}});var gw=Hi();Object.defineProperty(Se,"ScanStream",{enumerable:!0,get:function(){return gw.default}});var vw=Ll();Object.defineProperty(Se,"Pipeline",{enumerable:!0,get:function(){return vw.default}});var Kw=ss();Object.defineProperty(Se,"AbstractConnector",{enumerable:!0,get:function(){return Kw.default}});var Zf=os();Object.defineProperty(Se,"SentinelConnector",{enumerable:!0,get:function(){return Zf.default}});Object.defineProperty(Se,"SentinelIterator",{enumerable:!0,get:function(){return Zf.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={};jE(He,{__addDisposableResource:()=>Ih,__assign:()=>ps,__asyncDelegator:()=>mh,__asyncGenerator:()=>yh,__asyncValues:()=>bh,__await:()=>jn,__awaiter:()=>ch,__classPrivateFieldGet:()=>Sh,__classPrivateFieldIn:()=>kh,__classPrivateFieldSet:()=>Eh,__createBinding:()=>hs,__decorate:()=>rh,__disposeResources:()=>xh,__esDecorate:()=>ih,__exportStar:()=>dh,__extends:()=>eh,__generator:()=>uh,__importDefault:()=>Kh,__importStar:()=>vh,__makeTemplateObject:()=>gh,__metadata:()=>lh,__param:()=>nh,__propKey:()=>ah,__read:()=>Rc,__rest:()=>th,__rewriteRelativeImportExtension:()=>wh,__runInitializers:()=>sh,__setFunctionName:()=>oh,__spread:()=>ph,__spreadArray:()=>hh,__spreadArrays:()=>fh,__values:()=>fs,default:()=>Iw});function eh(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Ac(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function th(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 rh(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 nh(r,e){return function(t,n){e(t,n,r)}}function ih(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 sh(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 ah(r){return typeof r=="symbol"?r:"".concat(r)}function oh(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 lh(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function ch(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 uh(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 dh(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&hs(e,r,t)}function fs(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 Rc(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 ph(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(Rc(arguments[e]));return r}function fh(){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 hh(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 yh(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 mh(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 bh(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 fs=="function"?fs(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 gh(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function vh(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t=Dc(r),n=0;n<t.length;n++)t[n]!=="default"&&hs(e,r,t[n]);return Ew(e,r),e}function Kh(r){return r&&r.__esModule?r:{default:r}}function Sh(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 Eh(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 kh(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 Ih(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 xh(r){function e(s){r.error=r.hasError?new kw(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 wh(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 Ac,ps,hs,Ew,Dc,kw,Iw,Qe=TE(()=>{Ac=function(r,e){return Ac=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])},Ac(r,e)};ps=function(){return ps=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},ps.apply(this,arguments)};hs=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]});Ew=Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e},Dc=function(r){return Dc=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},Dc(r)};kw=typeof SuppressedError=="function"?SuppressedError:function(r,e,t){var n=new Error(t);return n.name="SuppressedError",n.error=r,n.suppressed=e,n};Iw={__extends:eh,__assign:ps,__rest:th,__decorate:rh,__param:nh,__esDecorate:ih,__runInitializers:sh,__propKey:ah,__setFunctionName:oh,__metadata:lh,__awaiter:ch,__generator:uh,__createBinding:hs,__exportStar:dh,__values:fs,__read:Rc,__spread:ph,__spreadArrays:fh,__spreadArray:hh,__await:jn,__asyncGenerator:yh,__asyncDelegator:mh,__asyncValues:bh,__makeTemplateObject:gh,__importStar:vh,__importDefault:Kh,__classPrivateFieldGet:Sh,__classPrivateFieldSet:Eh,__classPrivateFieldIn:kh,__addDisposableResource:Ih,__disposeResources:xh,__rewriteRelativeImportExtension:wh}});var Mc=h(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.AsyncFifoQueue=void 0;var Oc=class{constructor(e){this.value=void 0,this.next=null,this.value=e}},Cc=class{constructor(){this.length=0,this.head=null,this.tail=null}push(e){let t=new Oc(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}},_c=class{constructor(e=!1){this.ignoreErrors=e,this.queue=new Cc,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}}};ys.AsyncFifoQueue=_c});var Pc=h(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});ms.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 xw(e,s)(t,e.type,n,i)}};ms.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 xw(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 jh=h(bs=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});bs.ChildCommand=void 0;var Th;(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"})(Th||(bs.ChildCommand=Th={}))});var Dh=h(gs=>{"use strict";Object.defineProperty(gs,"__esModule",{value:!0});gs.ErrorCode=void 0;var Ah;(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"})(Ah||(gs.ErrorCode=Ah={}))});var Oh=h(vs=>{"use strict";Object.defineProperty(vs,"__esModule",{value:!0});vs.ParentCommand=void 0;var Rh;(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"})(Rh||(vs.ParentCommand=Rh={}))});var _h=h(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.MetricsTime=void 0;var Ch;(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"})(Ch||(Ks.MetricsTime=Ch={}))});var Lh=h(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.SpanKind=Sr.MetricNames=Sr.TelemetryAttributes=void 0;var Mh;(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"})(Mh||(Sr.TelemetryAttributes=Mh={}));var Ph;(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"})(Ph||(Sr.MetricNames=Ph={}));var Nh;(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"})(Nh||(Sr.SpanKind=Nh={}))});var at=h(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});var ai=(Qe(),it(He));ai.__exportStar(jh(),Vr);ai.__exportStar(Dh(),Vr);ai.__exportStar(Oh(),Vr);ai.__exportStar(_h(),Vr);ai.__exportStar(Lh(),Vr)});var Lc=h(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.Child=void 0;var ww=V("child_process"),Tw=V("net"),jw=V("worker_threads"),Ss=at(),Aw=V("events"),Dw={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"},Nc=class extends Aw.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 Cw(process.execArgv),t;this.opts.useWorkerThreads?this.worker=t=new jw.Worker(this.mainFile,Object.assign({execArgv:e,stdin:!0,stdout:!0,stderr:!0},this.opts.workerThreadsOptions?this.opts.workerThreadsOptions:{})):this.childProcess=t=(0,ww.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=Rw(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(Ss.ParentCommand).includes(a.cmd)){if(a.cmd===Ss.ParentCommand.InitCompleted)t();else if(a.cmd===Ss.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=Dw[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:Ss.ChildCommand.Init,value:this.processFile}),await e}hasProcessExited(){return!!(this.exitCode!==null||this.signalCode)}};Es.Child=Nc;function Rw(r){return new Promise(e=>{r.once("exit",()=>e())})}var Ow=async()=>new Promise(r=>{let e=(0,Tw.createServer)();e.listen(0,()=>{let{port:t}=e.address();e.close(()=>r(t))})}),Cw=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 Ow();t.push(`${s}=${a}`)}}return e.concat(t)}});var Fc=h((ks,Jc)=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});ks.ChildPool=void 0;var qh=V("path"),_w=Lc(),Mw=3e4,Pw=()=>typeof V=="function"&&typeof Jc=="object"&&typeof Jc.exports=="object",qc=class{constructor({mainFile:e=Pw()?qh.join(process.cwd(),"dist/cjs/classes/main.js"):qh.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 _w.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,Mw)}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),[])}};ks.ChildPool=qc});var Fh=h((BM,Jh)=>{var{EventEmitter:Nw}=V("events"),Is=class{constructor(){this.eventEmitter=new Nw,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 oi;return t.abort(),t.signal}static timeout(e){let t=new oi;return setTimeout(()=>t.abort(new Error("TimeoutError")),e),t.signal}},oi=class{constructor(){this.signal=new Is}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"}};Jh.exports={AbortController:oi,AbortSignal:Is}});var ws=h(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.AbortController=void 0;var Lw=Fh(),Vc;globalThis.AbortController?Vc=globalThis.AbortController:Vc=Lw.AbortController;var Gc=class extends Vc{};xs.AbortController=Gc});var li=h((UM,Vh)=>{"use strict";var qw="2.0.0",Jw=Number.MAX_SAFE_INTEGER||9007199254740991,Fw=16,Vw=250,Gw=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Vh.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Fw,MAX_SAFE_BUILD_LENGTH:Vw,MAX_SAFE_INTEGER:Jw,RELEASE_TYPES:Gw,SEMVER_SPEC_VERSION:qw,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var ci=h((zM,Gh)=>{"use strict";var Yw=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};Gh.exports=Yw});var Dn=h((Ft,Yh)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Yc,MAX_SAFE_BUILD_LENGTH:Bw,MAX_LENGTH:Ww}=li(),Uw=ci();Ft=Yh.exports={};var zw=Ft.re=[],$w=Ft.safeRe=[],q=Ft.src=[],Hw=Ft.safeSrc=[],J=Ft.t={},Qw=0,Bc="[a-zA-Z0-9-]",Zw=[["\\s",1],["\\d",Ww],[Bc,Bw]],Xw=r=>{for(let[e,t]of Zw)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},ee=(r,e,t)=>{let n=Xw(e),i=Qw++;Uw(r,i,e),J[r]=i,q[i]=e,Hw[i]=n,zw[i]=new RegExp(e,t?"g":void 0),$w[i]=new RegExp(n,t?"g":void 0)};ee("NUMERICIDENTIFIER","0|[1-9]\\d*");ee("NUMERICIDENTIFIERLOOSE","\\d+");ee("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Bc}*`);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",`${Bc}+`);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,${Yc}})(?:\\.(\\d{1,${Yc}}))?(?:\\.(\\d{1,${Yc}}))?`);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 Ts=h(($M,Bh)=>{"use strict";var e1=Object.freeze({loose:!0}),t1=Object.freeze({}),r1=r=>r?typeof r!="object"?e1:r:t1;Bh.exports=r1});var Wc=h((HM,zh)=>{"use strict";var Wh=/^[0-9]+$/,Uh=(r,e)=>{if(typeof r=="number"&&typeof e=="number")return r===e?0:r<e?-1:1;let t=Wh.test(r),n=Wh.test(e);return t&&n&&(r=+r,e=+e),r===e?0:t&&!n?-1:n&&!t?1:r<e?-1:1},n1=(r,e)=>Uh(e,r);zh.exports={compareIdentifiers:Uh,rcompareIdentifiers:n1}});var Be=h((QM,Hh)=>{"use strict";var js=ci(),{MAX_LENGTH:$h,MAX_SAFE_INTEGER:As}=li(),{safeRe:Ds,t:Rs}=Dn(),i1=Ts(),{compareIdentifiers:Uc}=Wc(),zc=class r{constructor(e,t){if(t=i1(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>$h)throw new TypeError(`version is longer than ${$h} characters`);js("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?Ds[Rs.LOOSE]:Ds[Rs.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>As||this.major<0)throw new TypeError("Invalid major version");if(this.minor>As||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>As||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<As)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 Uc(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 Uc(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?Ds[Rs.PRERELEASELOOSE]:Ds[Rs.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]),Uc(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}};Hh.exports=zc});var Gr=h((ZM,Zh)=>{"use strict";var Qh=Be(),s1=(r,e,t=!1)=>{if(r instanceof Qh)return r;try{return new Qh(r,e)}catch(n){if(!t)return null;throw n}};Zh.exports=s1});var ey=h((XM,Xh)=>{"use strict";var a1=Gr(),o1=(r,e)=>{let t=a1(r,e);return t?t.version:null};Xh.exports=o1});var ry=h((eP,ty)=>{"use strict";var l1=Gr(),c1=(r,e)=>{let t=l1(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};ty.exports=c1});var sy=h((tP,iy)=>{"use strict";var ny=Be(),u1=(r,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new ny(r instanceof ny?r.version:r,t).inc(e,n,i).version}catch{return null}};iy.exports=u1});var ly=h((rP,oy)=>{"use strict";var ay=Gr(),d1=(r,e)=>{let t=ay(r,null,!0),n=ay(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"};oy.exports=d1});var uy=h((nP,cy)=>{"use strict";var p1=Be(),f1=(r,e)=>new p1(r,e).major;cy.exports=f1});var py=h((iP,dy)=>{"use strict";var h1=Be(),y1=(r,e)=>new h1(r,e).minor;dy.exports=y1});var hy=h((sP,fy)=>{"use strict";var m1=Be(),b1=(r,e)=>new m1(r,e).patch;fy.exports=b1});var my=h((aP,yy)=>{"use strict";var g1=Gr(),v1=(r,e)=>{let t=g1(r,e);return t&&t.prerelease.length?t.prerelease:null};yy.exports=v1});var kt=h((oP,gy)=>{"use strict";var by=Be(),K1=(r,e,t)=>new by(r,t).compare(new by(e,t));gy.exports=K1});var Ky=h((lP,vy)=>{"use strict";var S1=kt(),E1=(r,e,t)=>S1(e,r,t);vy.exports=E1});var Ey=h((cP,Sy)=>{"use strict";var k1=kt(),I1=(r,e)=>k1(r,e,!0);Sy.exports=I1});var Os=h((uP,Iy)=>{"use strict";var ky=Be(),x1=(r,e,t)=>{let n=new ky(r,t),i=new ky(e,t);return n.compare(i)||n.compareBuild(i)};Iy.exports=x1});var wy=h((dP,xy)=>{"use strict";var w1=Os(),T1=(r,e)=>r.sort((t,n)=>w1(t,n,e));xy.exports=T1});var jy=h((pP,Ty)=>{"use strict";var j1=Os(),A1=(r,e)=>r.sort((t,n)=>j1(n,t,e));Ty.exports=A1});var ui=h((fP,Ay)=>{"use strict";var D1=kt(),R1=(r,e,t)=>D1(r,e,t)>0;Ay.exports=R1});var Cs=h((hP,Dy)=>{"use strict";var O1=kt(),C1=(r,e,t)=>O1(r,e,t)<0;Dy.exports=C1});var $c=h((yP,Ry)=>{"use strict";var _1=kt(),M1=(r,e,t)=>_1(r,e,t)===0;Ry.exports=M1});var Hc=h((mP,Oy)=>{"use strict";var P1=kt(),N1=(r,e,t)=>P1(r,e,t)!==0;Oy.exports=N1});var _s=h((bP,Cy)=>{"use strict";var L1=kt(),q1=(r,e,t)=>L1(r,e,t)>=0;Cy.exports=q1});var Ms=h((gP,_y)=>{"use strict";var J1=kt(),F1=(r,e,t)=>J1(r,e,t)<=0;_y.exports=F1});var Qc=h((vP,My)=>{"use strict";var V1=$c(),G1=Hc(),Y1=ui(),B1=_s(),W1=Cs(),U1=Ms(),z1=(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 V1(r,t,n);case"!=":return G1(r,t,n);case">":return Y1(r,t,n);case">=":return B1(r,t,n);case"<":return W1(r,t,n);case"<=":return U1(r,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};My.exports=z1});var Ny=h((KP,Py)=>{"use strict";var $1=Be(),H1=Gr(),{safeRe:Ps,t:Ns}=Dn(),Q1=(r,e)=>{if(r instanceof $1)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?Ps[Ns.COERCEFULL]:Ps[Ns.COERCE]);else{let l=e.includePrerelease?Ps[Ns.COERCERTLFULL]:Ps[Ns.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 H1(`${n}.${i}.${s}${a}${o}`,e)};Py.exports=Q1});var qy=h((SP,Ly)=>{"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}};Ly.exports=Zc});var It=h((EP,Gy)=>{"use strict";var Z1=/\s+/g,Xc=class r{constructor(e,t){if(t=eT(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof eu)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(Z1," "),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=>!Fy(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&&oT(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&&sT)|(this.options.loose&&aT))+":"+e,i=Jy.get(n);if(i)return i;let s=this.options.loose,a=s?Ze[We.HYPHENRANGELOOSE]:Ze[We.HYPHENRANGE];e=e.replace(a,bT(this.options.includePrerelease)),ke("hyphen replace",e),e=e.replace(Ze[We.COMPARATORTRIM],rT),ke("comparator trim",e),e=e.replace(Ze[We.TILDETRIM],nT),ke("tilde trim",e),e=e.replace(Ze[We.CARETTRIM],iT),ke("caret trim",e);let o=e.split(" ").map(d=>lT(d,this.options)).join(" ").split(/\s+/).map(d=>mT(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 eu(d,this.options));for(let d of c){if(Fy(d))return[d];l.set(d.value,d)}l.size>1&&l.has("")&&l.delete("");let u=[...l.values()];return Jy.set(n,u),u}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(n=>Vy(n,t)&&e.set.some(i=>Vy(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 tT(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(gT(this.set[t],e,this.options))return!0;return!1}};Gy.exports=Xc;var X1=qy(),Jy=new X1,eT=Ts(),eu=di(),ke=ci(),tT=Be(),{safeRe:Ze,t:We,comparatorTrimReplace:rT,tildeTrimReplace:nT,caretTrimReplace:iT}=Dn(),{FLAG_INCLUDE_PRERELEASE:sT,FLAG_LOOSE:aT}=li(),Fy=r=>r.value==="<0.0.0-0",oT=r=>r.value==="",Vy=(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},lT=(r,e)=>(r=r.replace(Ze[We.BUILD],""),ke("comp",r,e),r=dT(r,e),ke("caret",r),r=cT(r,e),ke("tildes",r),r=fT(r,e),ke("xrange",r),r=yT(r,e),ke("stars",r),r),Xe=r=>!r||r.toLowerCase()==="x"||r==="*",cT=(r,e)=>r.trim().split(/\s+/).map(t=>uT(t,e)).join(" "),uT=(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})},dT=(r,e)=>r.trim().split(/\s+/).map(t=>pT(t,e)).join(" "),pT=(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})},fT=(r,e)=>(ke("replaceXRanges",r,e),r.split(/\s+/).map(t=>hT(t,e)).join(" ")),hT=(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})},yT=(r,e)=>(ke("replaceStars",r,e),r.trim().replace(Ze[We.STAR],"")),mT=(r,e)=>(ke("replaceGTE0",r,e),r.trim().replace(Ze[e.includePrerelease?We.GTE0PRE:We.GTE0],"")),bT=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()),gT=(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!==eu.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((kP,$y)=>{"use strict";var pi=Symbol("SemVer ANY"),nu=class r{static get ANY(){return pi}constructor(e,t){if(t=Yy(t),e instanceof r){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),ru("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===pi?this.value="":this.value=this.operator+this.semver.version,ru("comp",this)}parse(e){let t=this.options.loose?By[Wy.COMPARATORLOOSE]:By[Wy.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 Uy(n[2],this.options.loose):this.semver=pi}toString(){return this.value}test(e){if(ru("Comparator.test",e,this.options.loose),this.semver===pi||e===pi)return!0;if(typeof e=="string")try{e=new Uy(e,this.options)}catch{return!1}return tu(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 zy(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new zy(this.value,t).test(e.semver):(t=Yy(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("=")||tu(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||tu(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};$y.exports=nu;var Yy=Ts(),{safeRe:By,t:Wy}=Dn(),tu=Qc(),ru=ci(),Uy=Be(),zy=It()});var fi=h((IP,Hy)=>{"use strict";var vT=It(),KT=(r,e,t)=>{try{e=new vT(e,t)}catch{return!1}return e.test(r)};Hy.exports=KT});var Zy=h((xP,Qy)=>{"use strict";var ST=It(),ET=(r,e)=>new ST(r,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));Qy.exports=ET});var em=h((wP,Xy)=>{"use strict";var kT=Be(),IT=It(),xT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new IT(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===-1)&&(n=a,i=new kT(n,t))}),n};Xy.exports=xT});var rm=h((TP,tm)=>{"use strict";var wT=Be(),TT=It(),jT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new TT(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===1)&&(n=a,i=new wT(n,t))}),n};tm.exports=jT});var sm=h((jP,im)=>{"use strict";var iu=Be(),AT=It(),nm=ui(),DT=(r,e)=>{r=new AT(r,e);let t=new iu("0.0.0");if(r.test(t)||(t=new iu("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 iu(a.semver.version);switch(a.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!s||nm(o,s))&&(s=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),s&&(!t||nm(t,s))&&(t=s)}return t&&r.test(t)?t:null};im.exports=DT});var om=h((AP,am)=>{"use strict";var RT=It(),OT=(r,e)=>{try{return new RT(r,e).range||"*"}catch{return null}};am.exports=OT});var Ls=h((DP,dm)=>{"use strict";var CT=Be(),um=di(),{ANY:_T}=um,MT=It(),PT=fi(),lm=ui(),cm=Cs(),NT=Ms(),LT=_s(),qT=(r,e,t,n)=>{r=new CT(r,n),e=new MT(e,n);let i,s,a,o,l;switch(t){case">":i=lm,s=NT,a=cm,o=">",l=">=";break;case"<":i=cm,s=LT,a=lm,o="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(PT(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===_T&&(p=new um(">=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};dm.exports=qT});var fm=h((RP,pm)=>{"use strict";var JT=Ls(),FT=(r,e,t)=>JT(r,e,">",t);pm.exports=FT});var ym=h((OP,hm)=>{"use strict";var VT=Ls(),GT=(r,e,t)=>VT(r,e,"<",t);hm.exports=GT});var gm=h((CP,bm)=>{"use strict";var mm=It(),YT=(r,e,t)=>(r=new mm(r,t),e=new mm(e,t),r.intersects(e,t));bm.exports=YT});var Km=h((_P,vm)=>{"use strict";var BT=fi(),WT=kt();vm.exports=(r,e,t)=>{let n=[],i=null,s=null,a=r.sort((u,d)=>WT(u,d,t));for(let u of a)BT(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 wm=h((MP,xm)=>{"use strict";var Sm=It(),au=di(),{ANY:su}=au,hi=fi(),ou=kt(),UT=(r,e,t={})=>{if(r===e)return!0;r=new Sm(r,t),e=new Sm(e,t);let n=!1;e:for(let i of r.set){for(let s of e.set){let a=$T(i,s,t);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},zT=[new au(">=0.0.0-0")],Em=[new au(">=0.0.0")],$T=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===su){if(e.length===1&&e[0].semver===su)return!0;t.includePrerelease?r=zT:r=Em}if(e.length===1&&e[0].semver===su){if(t.includePrerelease)return!0;e=Em}let n=new Set,i,s;for(let p of r)p.operator===">"||p.operator===">="?i=km(i,p,t):p.operator==="<"||p.operator==="<="?s=Im(s,p,t):n.add(p.semver);if(n.size>1)return null;let a;if(i&&s){if(a=ou(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&&!hi(p,String(i),t)||s&&!hi(p,String(s),t))return null;for(let y of e)if(!hi(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=km(i,p,t),o===p&&o!==i)return!1}else if(i.operator===">="&&!hi(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=Im(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!hi(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)},km=(r,e,t)=>{if(!r)return e;let n=ou(r.semver,e.semver,t);return n>0?r:n<0||e.operator===">"&&r.operator===">="?e:r},Im=(r,e,t)=>{if(!r)return e;let n=ou(r.semver,e.semver,t);return n<0?r:n>0||e.operator==="<"&&r.operator==="<="?e:r};xm.exports=UT});var Dm=h((PP,Am)=>{"use strict";var lu=Dn(),Tm=li(),HT=Be(),jm=Wc(),QT=Gr(),ZT=ey(),XT=ry(),ej=sy(),tj=ly(),rj=uy(),nj=py(),ij=hy(),sj=my(),aj=kt(),oj=Ky(),lj=Ey(),cj=Os(),uj=wy(),dj=jy(),pj=ui(),fj=Cs(),hj=$c(),yj=Hc(),mj=_s(),bj=Ms(),gj=Qc(),vj=Ny(),Kj=di(),Sj=It(),Ej=fi(),kj=Zy(),Ij=em(),xj=rm(),wj=sm(),Tj=om(),jj=Ls(),Aj=fm(),Dj=ym(),Rj=gm(),Oj=Km(),Cj=wm();Am.exports={parse:QT,valid:ZT,clean:XT,inc:ej,diff:tj,major:rj,minor:nj,patch:ij,prerelease:sj,compare:aj,rcompare:oj,compareLoose:lj,compareBuild:cj,sort:uj,rsort:dj,gt:pj,lt:fj,eq:hj,neq:yj,gte:mj,lte:bj,cmp:gj,coerce:vj,Comparator:Kj,Range:Sj,satisfies:Ej,toComparators:kj,maxSatisfying:Ij,minSatisfying:xj,minVersion:wj,validRange:Tj,outside:jj,gtr:Aj,ltr:Dj,intersects:Rj,simplifyRange:Oj,subset:Cj,SemVer:HT,re:lu.re,src:lu.src,tokens:lu.t,SEMVER_SPEC_VERSION:Tm.SEMVER_SPEC_VERSION,RELEASE_TYPES:Tm.RELEASE_TYPES,compareIdentifiers:jm.compareIdentifiers,rcompareIdentifiers:jm.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=Pj;$.lengthInUtf8Bytes=Nj;$.isEmpty=Lj;$.array2obj=qj;$.objectToFlatArray=Jj;$.delay=Fj;$.increaseMaxListeners=Rm;$.invertObject=Om;$.isRedisInstance=Cm;$.isRedisCluster=Vj;$.decreaseMaxListeners=Gj;$.removeAllQueueData=Yj;$.getParentKey=Bj;$.isNotConnectionError=_m;$.removeUndefinedFields=eA;$.trace=tA;$.randomUUID=rA;var _j=ds(),cu=V("crypto"),Mj=Oe(),uu=Dm(),du=at();$.errorObject={value:null};function Pj(r,e,t){try{return r.apply(e,t)}catch(n){return $.errorObject.value=n,$.errorObject}}function Nj(r){return Buffer.byteLength(r,"utf8")}function Lj(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e))return!1;return!0}function qj(r){let e={};for(let t=0;t<r.length;t+=2)e[r[t]]=r[t+1];return e}function Jj(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 Fj(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 Rm(r,e){let t=r.getMaxListeners();r.setMaxListeners(t+e)}function Om(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({},Om($.optsDecodeMap)),{debounce:"de"});function Cm(r){return r?["connect","disconnect","duplicate"].every(t=>typeof r[t]=="function"):!1}function Vj(r){return Cm(r)&&r.isCluster}function Gj(r,e){Rm(r,-e)}async function Yj(r,e,t=process.env.BULLMQ_TEST_PREFIX||"bull"){if(r instanceof _j.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(_m(s))throw s}}function Bj(r){if(r)return`${r.queue}:${r.id}`}$.clientCommandMessageReg=/ERR unknown command ['`]\s*client\s*['`]/;$.DELAY_TIME_5=5e3;$.DELAY_TIME_1=100;function _m(r){let{code:e,message:t}=r;return t!==Mj.CONNECTION_CLOSED_ERROR_MSG&&!t.includes("ECONNREFUSED")&&e!=="ECONNREFUSED"}var Wj=(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=Wj;var Uj=(r,e)=>(0,$.asyncSend)(r,e);$.childSend=Uj;var zj=(r,e,t,n="redis")=>{if(t===n){let i=uu.valid(uu.coerce(r));return uu.lt(i,e)}return!1};$.isRedisVersionLowerThan=zj;var $j=r=>{let e={};for(let t of Object.entries(r))e[t[0]]=JSON.parse(t[1]);return e};$.parseObjectValues=$j;var Hj=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}},Qj=r=>{let e={};return Object.getOwnPropertyNames(r).forEach(function(t){e[t]=r[t]}),JSON.parse(JSON.stringify(e,Hj(r)))};$.errorToJSON=Qj;var Zj=1/0,Xj=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===-Zj?"-0":e};$.toString=Xj;$.QUEUE_EVENT_SUFFIX=":qe";function eA(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}async function tA(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({[du.TelemetryAttributes.QueueName]:t,[du.TelemetryAttributes.QueueOperation]:n});let p,y;return e===du.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 rA(){if(typeof cu.randomUUID=="function")return(0,cu.randomUUID)();let r=(0,cu.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 Mm=h(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.ChildProcessor=void 0;var nA=ws(),et=at(),pu=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 yi=process.env.NODE_ENV==="test"?500:5e3,fu=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,pu.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,pu.errorToJSON)(new Error("cannot start a not idling child process"))});this.status=Er.Started,this.abortController=new nA.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,pu.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}}),mi(a,this.receiver,yi,"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}),mi(i,this.receiver,yi,"getChildrenValues")},getIgnoredChildrenFailures:async()=>{let i=Math.random().toString(36).substring(2,15);return await t({requestId:i,cmd:et.ParentCommand.GetIgnoredChildrenFailures}),mi(i,this.receiver,yi,"getIgnoredChildrenFailures")},getDependenciesCount:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependenciesCount,value:i}),mi(s,this.receiver,yi,"getDependenciesCount")},getDependencies:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependencies,value:i}),mi(s,this.receiver,yi,"getDependencies")}});return n}};qs.ChildProcessor=fu;var mi=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 Pm=h(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.DelayedError=Yr.DELAYED_ERROR=void 0;Yr.DELAYED_ERROR="bullmq:movedToDelayed";var hu=class extends Error{constructor(e=Yr.DELAYED_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Yr.DelayedError=hu});var Nm=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 yu=class extends Error{constructor(e=Br.RATE_LIMIT_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Br.RateLimitError=yu});var bu=h(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.UnrecoverableError=Wr.UNRECOVERABLE_ERROR=void 0;Wr.UNRECOVERABLE_ERROR="bullmq:unrecoverable";var mu=class extends Error{constructor(e=Wr.UNRECOVERABLE_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Wr.UnrecoverableError=mu});var Lm=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 gu=class extends Error{constructor(e=Ur.WAITING_CHILDREN_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Ur.WaitingChildrenError=gu});var qm=h(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.WaitingError=zr.WAITING_ERROR=void 0;zr.WAITING_ERROR="bullmq:movedToWait";var vu=class extends Error{constructor(e=zr.WAITING_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};zr.WaitingError=vu});var Js=h($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});var bi=(Qe(),it(He));bi.__exportStar(Pm(),$r);bi.__exportStar(Nm(),$r);bi.__exportStar(bu(),$r);bi.__exportStar(Lm(),$r);bi.__exportStar(qm(),$r)});var Vm=h((BP,Fm)=>{"use strict";var Jm=()=>process.platform==="linux",Fs=null,iA=()=>{if(!Fs)if(Jm()&&process.report){let r=process.report.excludeNetwork;process.report.excludeNetwork=!0,Fs=process.report.getReport(),process.report.excludeNetwork=r}else Fs={};return Fs};Fm.exports={isLinux:Jm,getReport:iA}});var Ym=h((WP,Gm)=>{"use strict";var Rn=V("fs"),sA="/usr/bin/ldd",aA="/proc/self/exe",Vs=2048,oA=r=>{let e=Rn.openSync(r,"r"),t=Buffer.alloc(Vs),n=Rn.readSync(e,t,0,Vs,0);return Rn.close(e,()=>{}),t.subarray(0,n)},lA=r=>new Promise((e,t)=>{Rn.open(r,"r",(n,i)=>{if(n)t(n);else{let s=Buffer.alloc(Vs);Rn.read(i,s,0,Vs,0,(a,o)=>{e(s.subarray(0,o)),Rn.close(i,()=>{})})}})});Gm.exports={LDD_PATH:sA,SELF_PATH:aA,readFileSync:oA,readFile:lA}});var Wm=h((UP,Bm)=>{"use strict";var cA=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};Bm.exports={interpreterPath:cA}});var db=h((zP,ub)=>{"use strict";var zm=V("child_process"),{isLinux:On,getReport:$m}=Vm(),{LDD_PATH:Gs,SELF_PATH:Hm,readFile:Ku,readFileSync:Su}=Ym(),{interpreterPath:Qm}=Wm(),Vt,Gt,Yt,Zm="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",kr="",Xm=()=>kr||new Promise(r=>{zm.exec(Zm,(e,t)=>{kr=e?" ":t,r(kr)})}),eb=()=>{if(!kr)try{kr=zm.execSync(Zm,{encoding:"utf8"})}catch{kr=" "}return kr},er="glibc",tb=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Hr="musl",uA=r=>r.includes("libc.musl-")||r.includes("ld-musl-"),rb=()=>{let r=$m();return r.header&&r.header.glibcVersionRuntime?er:Array.isArray(r.sharedObjects)&&r.sharedObjects.some(uA)?Hr:null},nb=r=>{let[e,t]=r.split(/[\r\n]+/);return e&&e.includes(er)?er:t&&t.includes(Hr)?Hr:null},ib=r=>{if(r){if(r.includes("/ld-musl-"))return Hr;if(r.includes("/ld-linux-"))return er}return null},sb=r=>(r=r.toString(),r.includes("musl")?Hr:r.includes("GNU C Library")?er:null),dA=async()=>{if(Gt!==void 0)return Gt;Gt=null;try{let r=await Ku(Gs);Gt=sb(r)}catch{}return Gt},pA=()=>{if(Gt!==void 0)return Gt;Gt=null;try{let r=Su(Gs);Gt=sb(r)}catch{}return Gt},fA=async()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=await Ku(Hm),e=Qm(r);Vt=ib(e)}catch{}return Vt},hA=()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=Su(Hm),e=Qm(r);Vt=ib(e)}catch{}return Vt},ab=async()=>{let r=null;if(On()&&(r=await fA(),!r&&(r=await dA(),r||(r=rb()),!r))){let e=await Xm();r=nb(e)}return r},ob=()=>{let r=null;if(On()&&(r=hA(),!r&&(r=pA(),r||(r=rb()),!r))){let e=eb();r=nb(e)}return r},yA=async()=>On()&&await ab()!==er,mA=()=>On()&&ob()!==er,bA=async()=>{if(Yt!==void 0)return Yt;Yt=null;try{let e=(await Ku(Gs)).match(tb);e&&(Yt=e[1])}catch{}return Yt},gA=()=>{if(Yt!==void 0)return Yt;Yt=null;try{let e=Su(Gs).match(tb);e&&(Yt=e[1])}catch{}return Yt},lb=()=>{let r=$m();return r.header&&r.header.glibcVersionRuntime?r.header.glibcVersionRuntime:null},Um=r=>r.trim().split(/\s+/)[1],cb=r=>{let[e,t,n]=r.split(/[\r\n]+/);return e&&e.includes(er)?Um(e):t&&n&&t.includes(Hr)?Um(n):null},vA=async()=>{let r=null;if(On()&&(r=await bA(),r||(r=lb()),!r)){let e=await Xm();r=cb(e)}return r},KA=()=>{let r=null;if(On()&&(r=gA(),r||(r=lb()),!r)){let e=eb();r=cb(e)}return r};ub.exports={GLIBC:er,MUSL:Hr,family:ab,familySync:ob,isNonGlibcLinux:yA,isNonGlibcLinuxSync:mA,version:vA,versionSync:KA}});var xb=h(($P,Ib)=>{var SA=V("fs"),Rt=V("path"),EA=V("url"),hb=V("os"),yb=typeof __webpack_require__=="function"?__non_webpack_require__:V,kA=process.config&&process.config.variables||{},IA=!!process.env.PREBUILDS_ONLY,wu=process.versions,ku=wu.modules;(wu.deno||process.isBun)&&(ku="unsupported");var Eu=TA()?"electron":wA()?"node-webkit":"node",Ys=process.env.npm_config_arch||hb.arch(),Bs=process.env.npm_config_platform||hb.platform(),mb=process.env.LIBC||(jA(Bs)?"musl":"glibc"),Iu=process.env.ARM_VERSION||(Ys==="arm64"?"8":kA.arm_version)||"",bb=(wu.uv||"").split(".")[0];Ib.exports=Bt;function Bt(r){return yb(Bt.resolve(r))}Bt.resolve=Bt.path=function(r){r=Rt.resolve(r||".");var e="",t;try{e=yb(Rt.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(!IA){var i=pb(Rt.join(r,"build/Release"),fb);if(i)return i;var s=pb(Rt.join(r,"build/Debug"),fb);if(s)return s}var a=p(r);if(a)return a;var o=p(Rt.dirname(process.execPath));if(o)return o;var l=(e[0]=="@"?"":"@"+e+"/")+e+"-"+Bs+"-"+Ys,c;try{var u=Rt.dirname(V("module").createRequire(EA.pathToFileURL(Rt.join(r,"package.json"))).resolve(l));return y(u)}catch(g){c=g}var d=["platform="+Bs,"arch="+Ys,"runtime="+Eu,"abi="+ku,"uv="+bb,Iu?"armv="+Iu:"","libc="+mb,"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+`
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,jl.parseSecondsArgument)(e[e.length-1]);if(r.checkFlag("FIRST_ARG_TIMEOUT_COMMANDS",t))return(0,jl.parseSecondsArgument)(e[0]);if(r.checkFlag("BLOCK_OPTION_COMMANDS",t))return(0,jl.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,EI.default)(e,this.callback)}_iterateKeys(e=t=>t){if(typeof this.keys>"u"&&(this.keys=[],(0,Gp.exists)(this.name,{caseInsensitive:!0}))){let t=(0,Gp.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}}};Dl.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 Yp=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},Bp=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",Yp);Lt.setArgumentTransformer("msetnx",Yp);Lt.setArgumentTransformer("hset",Bp);Lt.setArgumentTransformer("hmset",Bp);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 Al=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 Wp=h(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});var kI=Nr(),$i=class extends kI.RedisError{constructor(e,t){super(e),this.lastNodeError=t,Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}};Rl.default=$i;$i.defaultMessage="Failed to refresh slots cache."});var Hi=h(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});var II=B("stream"),Ol=class extends II.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}};Cl.default=Ol});var Xp=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 $p=Gi(),xI=Zn(),Up=pr(),zp=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 Hp(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)&&Hp(r,e)})}function wI(r,e,t){return e&&r.options.enableAutoPipelining&&!r.isPipeline&&!Ae.notAllowedAutoPipelineCommands.includes(t)&&!r.options.autoPipeliningIgnoredCommands.includes(t)}Ae.shouldUseAutoPipelining=wI;function Qp(r){for(let e=0;e<r.length;e++){let t=r[e];if(typeof t=="string")return t;if(Array.isArray(t)||(0,$p.isArguments)(t)){if(t.length===0)continue;return t[0]}let n=[t].flat();if(n.length>0)return n[0]}}Ae.getFirstValueInFlattenedArray=Qp;function Zp(r,e,t,n,i){if(r.isCluster&&!r.slots.length)return r.status==="wait"&&r.connect().catch($p.noop),(0,Up.default)(new Promise(function(c,u){r.delayUntilReady(d=>{if(d){u(d);return}Zp(r,e,t,n,null).then(c,u)})}),i);let s=r.options.keyPrefix||"",a=r.isCluster?r.slots[xI(`${s}${Qp(n)}`)].join(","):"main";if(r.isCluster&&r.options.scaleReads!=="master"){let c=(0,zp.exists)(t)&&(0,zp.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(Hp,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,Up.default)(l,i)}Ae.executeWithAutoPipelining=Zp});var ef=h(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});var TI=B("crypto"),jI=Qt(),AI=pr(),_l=class{constructor(e,t=null,n="",i=!1){this.lua=e,this.numberOfKeys=t,this.keyPrefix=n,this.readOnly=i,this.sha=(0,TI.createHash)("sha1").update(e).digest("hex");let s=this.sha,a=new WeakSet;this.Command=class extends jI.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,AI.default)(s.promise,i),e.sendCommand(s)}};Ml.default=_l});var Zi=h(Nl=>{"use strict";Object.defineProperty(Nl,"__esModule",{value:!0});var DI=Pr(),Qi=Xp(),RI=Qt(),OI=ef(),Zt=class{constructor(){this.options={},this.scriptsSet={},this.addedBuiltinSet=new Set}getBuiltinCommands(){return Pl.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 OI.default(t.lua,t.numberOfKeys,this.options.keyPrefix,t.readOnly);this.scriptsSet[e]=n,this[e]=tf(e,e,n,"utf8"),this[e+"Buffer"]=tf(e+"Buffer",e,n,null)}sendCommand(e,t,n){throw new Error('"sendCommand" is not implemented')}},Pl=DI.list.filter(r=>r!=="monitor");Pl.push("sentinel");Pl.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,Qi.shouldUseAutoPipelining)(this,r,i)?(0,Qi.executeWithAutoPipelining)(this,r,i,n,s):this.sendCommand(new RI.default(i,n,a,s))}}function tf(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,Qi.shouldUseAutoPipelining)(this,r,e)?(0,Qi.executeWithAutoPipelining)(this,r,e,i,s):t.execute(this,i,a,s)}}Nl.default=Zt});var Jl=h(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});var Ll=Zn(),rf=Pr(),nf=pr(),CI=B("util"),_I=Qt(),MI=Oe(),PI=Zi();function NI(r,e){let t=Ll(e[0]),n=r._groupsBySlot[t];for(let i=1;i<e.length;i++)if(r._groupsBySlot[Ll(e[i])]!==n)return-1;return t}var yr=class extends PI.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,rf.exists)(l.name,{caseInsensitive:!0})&&(0,rf.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 _I.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}};ql.default=yr;var LI=yr.prototype.multi;yr.prototype.multi=function(){return this._transactions+=1,LI.apply(this,arguments)};var sf=yr.prototype.execBuffer;yr.prototype.execBuffer=(0,CI.deprecate)(function(){return this._transactions>0&&(this._transactions-=1),sf.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(MI.noop),r&&!this.nodeifiedPromise&&(this.nodeifiedPromise=!0,(0,nf.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,sf.apply(this,arguments);this.nodeifiedPromise||(this.nodeifiedPromise=!0,(0,nf.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&&Ll.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=NI(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 Gl=h(Xi=>{"use strict";Object.defineProperty(Xi,"__esModule",{value:!0});Xi.addTransactionSupport=void 0;var Fl=Oe(),Vl=pr(),af=Jl();function qI(r){r.pipeline=function(n){let i=new af.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 af.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(Fl.noop),(0,Vl.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,Vl.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,Fl.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,Vl.default)(t.call(this).then(function(i){return Array.isArray(i)&&(i=(0,Fl.wrapMultiResult)(i)),i}),n)}}Xi.addTransactionSupport=qI});var Bl=h(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});function JI(r,e){Object.getOwnPropertyNames(e.prototype).forEach(t=>{Object.defineProperty(r.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})}Yl.default=JI});var lf=h(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.DEFAULT_CLUSTER_OPTIONS=void 0;var of=B("dns");es.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:of.resolveSrv,dnsLookup:of.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 cf=Oe(),FI=B("net");function VI(r){return r.port=r.port||6379,r.host=r.host||"127.0.0.1",r.host+":"+r.port}Ye.getNodeKey=VI;function GI(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=GI;function YI(r){return r.map(e=>{let t={};if(typeof e=="object")Object.assign(t,e);else if(typeof e=="string")Object.assign(t,(0,cf.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,cf.resolveTLSProfile)(t)})}Ye.normalizeNodeOptions=YI;function BI(r){let e={};return r.forEach(t=>{e[t.host]=!0}),Object.keys(e).filter(t=>!(0,FI.isIP)(t))}Ye.getUniqueHostnamesFromOptions=BI;function WI(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=WI;function UI(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=UI;function zI(r,e){let t=`ioredis-cluster(${r})`;return e?`${t}:${e}`:t}Ye.getConnectionName=zI});var df=h(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});var uf=En(),Wl=Oe(),$I=Xt(),qt=(0,Wl.Debug)("cluster:subscriber"),Ul=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,uf.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,Wl.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 $I.default({port:n.port,host:n.host,username:n.username,password:n.password,enableReadyCheck:!0,connectionName:(0,uf.getConnectionName)(i,n.connectionName),lazyConnect:!0,tls:n.tls,retryStrategy:null}),this.subscriber.on("error",Wl.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)})}};zl.default=Ul});var pf=h(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});var HI=B("events"),ts=Oe(),$l=En(),QI=Xt(),ti=(0,ts.Debug)("cluster:connectionPool"),Hl=class extends HI.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,ts.sample)(t);return this.nodes[e][n]}addMasterNode(e){let t=(0,$l.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 QI.default((0,ts.defaults)({retryStrategy:null,enableOfflineQueue:!0,readOnly:t},e,this.redisOptions,{lazyConnect:!0}))}findOrCreate(e,t=!1){let n=(0,$l.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,ti("Change role of %s to %s",n,t?"slave":"master"),i[t?"readonly":"readwrite"]().catch(ts.noop),t?(delete this.nodes.master[n],this.nodes.slave[n]=i):(delete this.nodes.slave[n],this.nodes.master[n]=i))):(ti("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){ti("Reset with %O",e);let t={};e.forEach(n=>{let i=(0,$l.getNodeKey)(n);n.readOnly&&t[i]||(t[i]=n)}),Object.keys(this.nodes.all).forEach(n=>{t[n]||(ti("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]&&(ti("Remove %s from the pool",e),delete t.all[e]),delete t.master[e],delete t.slave[e]}};Ql.default=Hl});var rs=h((vM,ff)=>{"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)};ff.exports=we});var hf=h(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});var ZI=Oe(),XI=rs(),ex=(0,ZI.Debug)("delayqueue"),Zl=class{constructor(){this.queues={},this.timeouts={}}push(e,t,n){let i=n.callback||process.nextTick;this.queues[e]||(this.queues[e]=new XI),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(ex("send %d commands in %s queue",n,e),this.queues[e]=null;t.length>0;)t.shift()()}};Xl.default=Zl});var gf=h(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var yf=En(),bf=Oe(),tx=Xt(),mf=(0,bf.Debug)("cluster:subscriberGroup:shardedSubscriber"),me={IDLE:"idle",STARTING:"starting",CONNECTED:"connected",STOPPING:"stopping",ENDED:"ended"},rx={[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]:[]},ec=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 tx.default((0,bf.defaults)({enableReadyCheck:!1,enableOfflineQueue:!0,connectionName:(0,yf.getConnectionName)("ssubscriber",t.connectionName),retryStrategy:null,lazyConnect:!0},t,n)),this.lazyConnect=(i=n?.lazyConnect)!==null&&i!==void 0?i:!0,this.nodeKey=(0,yf.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),mf("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(!rx[this.status].includes(e)){mf("Invalid status transition for %s: %s -> %s",this.nodeKey,this.status,e);return}this.status=e}}};tc.default=ec});var vf=h(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var nx=Oe(),ix=En(),ns=Zn(),sx=gf(),Kt=(0,nx.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);Kt("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=ns(e[0]);for(let i of e)if(ns(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=ns(e[0]);for(let i of e)if(ns(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){Kt("No topology change detected or failed subscribers. Skipping reset.");return}for(let[a,o]of this.shardedSubscribers){if(this.subscriberToSlotsIndex.has(a)&&o.isHealthy()){Kt("Skipping deleting subscriber for %s",a);continue}Kt("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()){Kt("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()&&(Kt("Replacing subscriber for %s",a),l.stop(),this.shardedSubscribers.delete(a),this.subscriberGroupEmitter.emit("-subscriber")),Kt("Creating new subscriber for %s",a);let c=t.find(d=>(0,ix.getNodeKey)(d.options)===a);if(!c){Kt("Failed to find node for key %s",a);continue}let u=new sx.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 Kt("Nothing to refresh because the new cluster map is equal to the previous one."),!1;Kt("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=>{Kt("Failed to ssubscribe on node %s: %s",t,o)}):s.once("ready",()=>{s.ssubscribe(...a).catch(o=>{Kt("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}};rc.default=kn;kn.MAX_RETRY_ATTEMPTS=10;kn.MAX_BACKOFF_MS=2e3;kn.BASE_BACKOFF_MS=100});var sc=h(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var Kf=Pr(),nc=B("events"),In=Nr(),Sf=pr(),Ef=Qt(),is=Wp(),ax=Xt(),ox=Hi(),lx=Gl(),lt=Oe(),cx=Bl(),ux=Zi(),dx=lf(),px=df(),fx=pf(),hx=hf(),xn=En(),kf=rs(),yx=vf(),Ke=(0,lt.Debug)("cluster"),If=new WeakSet,ri=class r extends ux.default{constructor(e,t={}){if(super(),this.slots=[],this._groupsIds={},this._groupsBySlot=Array(16384),this.isCluster=!0,this.retryAttempts=0,this.delayQueue=new hx.default,this.offlineQueue=new kf,this.isRefreshing=!1,this._refreshSlotsCacheCallbacks=[],this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this._readyDelayedCallbacks=[],this.connectionEpoch=0,nc.EventEmitter.call(this),this.startupNodes=e,this.options=(0,lt.defaults)({},t,dx.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 fx.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 px.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===is.default.defaultMessage&&(ax.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,Sf.default)(Promise.resolve("OK"),e);return setImmediate(function(){this.setStatus("close"),this.handleCloseEvent()}.bind(this)),n}return(0,Sf.default)(Promise.all(this.nodes().map(n=>n.quit().catch(i=>{if(i.message===lt.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,lt.shuffle)(this.connectionPool.getNodes()),s=null;function a(o){if(o===i.length){let u=new is.default(is.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(lt.noop),this.status==="end")return e.reject(new Error(lt.CONNECTION_CLOSED_ERROR_MSG)),e.promise;let i=this.options.scaleReads;i!=="master"&&(e.isReadOnly||(0,Kf.exists)(e.name)&&(0,Kf.hasFlag)(e.name,"readonly")||(i="master"));let s=n?n.slot:e.getSlot(),a={},o=this;if(!n&&!If.has(e)){If.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(Ef.default.checkFlag("ENTER_SUBSCRIBER_MODE",e.name)||Ef.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,lt.sample)(d)),d||(d=p[0])}else{let p;i==="all"?p=(0,lt.sample)(f):i==="slave"&&f.length>1?p=(0,lt.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===lt.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 kf}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",lt.noop),n.cluster("SLOTS",(0,lt.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,lt.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 ox.default({objectMode:!0,key:t,redis:this,command:e,...n})}createShardedSubscriberGroup(){this.subscriberGroupEmitter=new nc.EventEmitter,this.shardedSubscribers=new yx.default(this.subscriberGroupEmitter,this.options);let e=t=>{t instanceof is.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,cx.default)(ri,nc.EventEmitter);(0,lx.addTransactionSupport)(ri.prototype);ic.default=ri});var ss=h(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var mx=Oe(),bx=(0,mx.Debug)("AbstractConnector"),ac=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(()=>{bx("stream %s:%s still open, destroying it",e.remoteAddress,e.remotePort),e.destroy()},this.disconnectTimeout);e.on("close",()=>clearTimeout(t)),e.end()}}};oc.default=ac});var xf=h(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var gx=B("net"),vx=B("tls"),Kx=Oe(),Sx=ss(),lc=class extends Sx.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(Kx.CONNECTION_CLOSED_ERROR_MSG));return}try{t.tls?this.stream=(0,vx.connect)(n):this.stream=(0,gx.createConnection)(n)}catch(a){s(a);return}this.stream.once("error",a=>{this.firstError=a}),i(this.stream)})})}};cc.default=lc});var wf=h(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});function Ex(r,e){return(r.host||"127.0.0.1")===(e.host||"127.0.0.1")&&(r.port||26379)===(e.port||26379)}var uc=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(Ex(e,this.sentinels[t]))return!1;return this.sentinels.push(e),!0}toString(){return`${JSON.stringify(this.sentinels)} @${this.cursor}`}};dc.default=uc});var jf=h(as=>{"use strict";Object.defineProperty(as,"__esModule",{value:!0});as.FailoverDetector=void 0;var kx=Oe(),pc=(0,kx.Debug)("FailoverDetector"),Tf="+switch-master",fc=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(){pc("Starting FailoverDetector");let e=[];for(let t of this.sentinels){let n=t.client.subscribe(Tf).catch(i=>{pc("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===Tf&&this.disconnect()})}await Promise.all(e)}disconnect(){this.isDisconnected=!0,pc("Failover detected, disconnecting"),this.connector.disconnect()}};as.FailoverDetector=fc});var os=h(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.SentinelIterator=void 0;var Ix=B("net"),ni=Oe(),xx=B("tls"),Af=wf();ii.SentinelIterator=Af.default;var wx=ss(),Tx=Xt(),jx=jf(),wn=(0,ni.Debug)("SentinelConnector"),hc=class extends wx.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 Af.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(ni.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,xx.connect)(s),this.stream.once("secureConnect",this.initFailoverDetector.bind(this))):(this.stream=(0,Ix.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(ni.packObject).forEach(n=>{if((n.flags?n.flags.split(","):[]).indexOf("disconnected")===-1&&n.ip&&n.port){let s=this.sentinelNatResolve(Df(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(ni.packObject).filter(i=>i.flags&&!i.flags.match(/(disconnected|s_down|o_down)/));return this.sentinelNatResolve(Ax(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 Tx.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",Dx);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 jx.FailoverDetector(this,t),await this.failoverDetector.subscribe(),(e=this.emitter)===null||e===void 0||e.emit("failoverSubscribed")}};ii.default=hc;function Ax(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,ni.sample)(r)),Df(t)}function Df(r){return{host:r.ip,port:Number(r.port)}}function Dx(){}});var Rf=h(Tn=>{"use strict";Object.defineProperty(Tn,"__esModule",{value:!0});Tn.SentinelConnector=Tn.StandaloneConnector=void 0;var Rx=xf();Tn.StandaloneConnector=Rx.default;var Ox=os();Tn.SentinelConnector=Ox.default});var Of=h(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var Cx=Nr(),yc=class extends Cx.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}};mc.default=yc});var Cf=h(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.MaxRetriesPerRequestError=void 0;var _x=Of();ls.MaxRetriesPerRequestError=_x.default});var Jf=h((OM,qf)=>{"use strict";var Ec=B("buffer").Buffer,Mx=B("string_decoder").StringDecoder,bc=new Mx,_f=Nr(),Px=_f.ReplyError,Nx=_f.ParserError,Dt=Ec.allocUnsafe(32*1024),$e=0,cs=null,si=0,gc=0;function Lx(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 qx(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 Mf(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 Pf(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 Jx(r){return r.optionStringNumbers===!0?qx(r):Lx(r)}function Fx(r){let e=Pf(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 Vx(r){var e=Mf(r);if(e!==void 0)return r.optionReturnBuffers===!0&&(e=e.toString()),new Px(e)}function Gx(r,e){let t=new Nx("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 Yx(r){let e=Pf(r);if(e===void 0)return;if(e<0)return null;let t=new Array(e);return Nf(r,t,0)}function vc(r,e,t){r.arrayCache.push(e),r.arrayPos.push(t)}function Kc(r){let e=r.arrayCache.pop();var t=r.arrayPos.pop();if(r.arrayCache.length){let n=Kc(r);if(n===void 0){vc(r,e,t);return}e[t++]=n}return Nf(r,e,t)}function Nf(r,e,t){let n=r.buffer.length;for(;t<e.length;){let i=r.offset;if(r.offset>=n){vc(r,e,t);return}let s=Lf(r,r.buffer[r.offset++]);if(s===void 0){r.arrayCache.length||r.bufferCache.length||(r.offset=i),vc(r,e,t);return}e[t]=s,t++}return e}function Lf(r,e){switch(e){case 36:return Fx(r);case 43:return Mf(r);case 42:return Yx(r);case 58:return Jx(r);case 45:return Vx(r);default:return Gx(r,e)}}function Bx(){if(Dt.length>50*1024)if(si===1||gc>si*2){let r=Math.floor(Dt.length/10),e=r<$e?$e:r;$e=0,Dt=Dt.slice(e,Dt.length)}else gc++,si--;else clearInterval(cs),si=0,gc=0,cs=null}function Wx(r){if(Dt.length<r+$e){let e=r>78643200?2:3;$e>1024*1024*111&&($e=1024*1024*50),Dt=Ec.allocUnsafe(r*e+$e),$e=0,si++,cs===null&&(cs=setInterval(Bx,50))}}function Ux(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=bc.write(e[0].slice(t)),a=1;a<n-1;a++)s+=bc.write(e[a]);return s+=bc.end(e[a].slice(0,i-2)),s}function zx(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}Wx(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 Sc=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=Ec.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=Kc(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?zx(this):Ux(this);if(this.bigStrSize=0,this.bufferCache=[],this.buffer=e,this.arrayCache.length&&(this.arrayCache[0][this.arrayPos[0]++]=t,t=Kc(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=Lf(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}};qf.exports=Sc});var Vf=h((CM,Ff)=>{"use strict";Ff.exports=Jf()});var Gf=h(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});var Ic=class{constructor(){this.set={subscribe:{},psubscribe:{},ssubscribe:{}}}add(e,t){this.set[kc(e)][t]=!0}del(e,t){delete this.set[kc(e)][t]}channels(e){return Object.keys(this.set[kc(e)])}isEmpty(){return this.channels("subscribe").length===0&&this.channels("psubscribe").length===0&&this.channels("ssubscribe").length===0}};xc.default=Ic;function kc(r){return r==="unsubscribe"?"subscribe":r==="punsubscribe"?"psubscribe":r==="sunsubscribe"?"ssubscribe":r}});var Uf=h(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Yf=Qt(),$x=Oe(),Hx=Vf(),Qx=Gf(),Zx=(0,$x.Debug)("dataHandler"),wc=class{constructor(e,t){this.redis=e;let n=new Hx({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&&(Yf.default.checkFlag("ENTER_SUBSCRIBER_MODE",t.command.name)?(this.redis.condition.subscriber=new Qx.default,this.redis.condition.subscriber.add(t.command.name,e[1].toString()),Bf(t.command,e[2])||this.redis.commandQueue.unshift(t)):Yf.default.checkFlag("EXIT_SUBSCRIBER_MODE",t.command.name)?Wf(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(Zx('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;Bf(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;Wf(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}};Tc.default=wc;var mr=new WeakMap;function Bf(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 Wf(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 zf=h(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.readyHandler=St.errorHandler=St.closeHandler=St.connectHandler=void 0;var Xx=Nr(),ew=Qt(),tw=Cf(),Jt=Oe(),rw=Uf(),Ge=(0,Jt.Debug)("connection");function nw(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 rw.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||St.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)?St.readyHandler(r)():r.disconnect(!0))})})}}St.connectHandler=nw;function jc(r){let e=new Xx.AbortError("Command aborted due to connection close");return e.command={name:r.name,args:r.args},e}function iw(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(jc(i));continue}n++}}function sw(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(jc(n));break}n.inTransaction?(r.remove(t,1),n.reject(jc(n))):t++}}function aw(r){return function(){let t=r.status;if(r.setStatus("close"),r.commandQueue.length&&iw(r.commandQueue),r.offlineQueue.length&&sw(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 tw.MaxRetriesPerRequestError(i))))};function e(){r.setStatus("end"),r.flushQueue(new Error(Jt.CONNECTION_CLOSED_ERROR_MSG))}}St.closeHandler=aw;function ow(r){return function(e){Ge("error: %s",e),r.silentEmit("error",e)}}St.errorHandler=ow;function lw(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 ew.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))}}St.readyHandler=lw});var $f=h(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});us.DEFAULT_REDIS_OPTIONS=void 0;us.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(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var Hf=Pr(),Zf=B("events"),Ac=pr(),cw=sc(),Jr=Qt(),uw=Rf(),dw=os(),br=zf(),Xf=$f(),pw=Hi(),fw=Gl(),Fr=Oe(),hw=Bl(),yw=Zi(),gr=Gi(),Qf=rs(),vr=(0,Fr.Debug)("redis"),Kr=class r extends yw.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),Zf.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 dw.default(this.options);i.emitter=this,this.connector=i}else this.connector=new uw.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,Ac.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,Ac.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,Ac.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,Hf.exists)(e.name,{caseInsensitive:!0})&&((0,Hf.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:Xf.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 Qf}resetOfflineQueue(){this.offlineQueue=new Qf}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 pw.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=cw.default;Kr.Command=Jr.default;Kr.defaultOptions=Xf.DEFAULT_REDIS_OPTIONS;(0,hw.default)(Kr,Zf.EventEmitter);(0,fw.addTransactionSupport)(Kr.prototype);Dc.default=Kr});var ds=h((Se,th)=>{"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=th.exports=Xt().default;var mw=Xt();Object.defineProperty(Se,"default",{enumerable:!0,get:function(){return mw.default}});var bw=Xt();Object.defineProperty(Se,"Redis",{enumerable:!0,get:function(){return bw.default}});var gw=sc();Object.defineProperty(Se,"Cluster",{enumerable:!0,get:function(){return gw.default}});var vw=Qt();Object.defineProperty(Se,"Command",{enumerable:!0,get:function(){return vw.default}});var Kw=Hi();Object.defineProperty(Se,"ScanStream",{enumerable:!0,get:function(){return Kw.default}});var Sw=Jl();Object.defineProperty(Se,"Pipeline",{enumerable:!0,get:function(){return Sw.default}});var Ew=ss();Object.defineProperty(Se,"AbstractConnector",{enumerable:!0,get:function(){return Ew.default}});var eh=os();Object.defineProperty(Se,"SentinelConnector",{enumerable:!0,get:function(){return eh.default}});Object.defineProperty(Se,"SentinelIterator",{enumerable:!0,get:function(){return eh.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 kw(r,e){console.log(r?"Error: "+r:"Reply: "+e)}Se.print=kw});var He={};DE(He,{__addDisposableResource:()=>wh,__assign:()=>ps,__asyncDelegator:()=>gh,__asyncGenerator:()=>bh,__asyncValues:()=>vh,__await:()=>jn,__awaiter:()=>dh,__classPrivateFieldGet:()=>kh,__classPrivateFieldIn:()=>xh,__classPrivateFieldSet:()=>Ih,__createBinding:()=>hs,__decorate:()=>ih,__disposeResources:()=>Th,__esDecorate:()=>ah,__exportStar:()=>fh,__extends:()=>rh,__generator:()=>ph,__importDefault:()=>Eh,__importStar:()=>Sh,__makeTemplateObject:()=>Kh,__metadata:()=>uh,__param:()=>sh,__propKey:()=>lh,__read:()=>Cc,__rest:()=>nh,__rewriteRelativeImportExtension:()=>jh,__runInitializers:()=>oh,__setFunctionName:()=>ch,__spread:()=>hh,__spreadArray:()=>mh,__spreadArrays:()=>yh,__values:()=>fs,default:()=>ww});function rh(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Rc(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function nh(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 ih(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 sh(r,e){return function(t,n){e(t,n,r)}}function ah(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 E=(0,t[p])(o==="accessor"?{get:u.get,set:u.set}:u[l],y);if(o==="accessor"){if(E===void 0)continue;if(E===null||typeof E!="object")throw new TypeError("Object expected");(d=a(E.get))&&(u.get=d),(d=a(E.set))&&(u.set=d),(d=a(E.init))&&i.unshift(d)}else(d=a(E))&&(o==="field"?i.unshift(d):u[l]=d)}c&&Object.defineProperty(c,n.name,u),f=!0}function oh(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 lh(r){return typeof r=="symbol"?r:"".concat(r)}function ch(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 uh(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function dh(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 ph(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 fh(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&hs(e,r,t)}function fs(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 Cc(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 hh(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(Cc(arguments[e]));return r}function yh(){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 mh(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 bh(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(E,k){s.push([p,g,E,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 gh(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 vh(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 fs=="function"?fs(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 Kh(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function Sh(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t=Oc(r),n=0;n<t.length;n++)t[n]!=="default"&&hs(e,r,t[n]);return Iw(e,r),e}function Eh(r){return r&&r.__esModule?r:{default:r}}function kh(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 Ih(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 xh(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 wh(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 Th(r){function e(s){r.error=r.hasError?new xw(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 jh(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 Rc,ps,hs,Iw,Oc,xw,ww,Qe=AE(()=>{Rc=function(r,e){return Rc=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])},Rc(r,e)};ps=function(){return ps=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},ps.apply(this,arguments)};hs=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]});Iw=Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e},Oc=function(r){return Oc=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},Oc(r)};xw=typeof SuppressedError=="function"?SuppressedError:function(r,e,t){var n=new Error(t);return n.name="SuppressedError",n.error=r,n.suppressed=e,n};ww={__extends:rh,__assign:ps,__rest:nh,__decorate:ih,__param:sh,__esDecorate:ah,__runInitializers:oh,__propKey:lh,__setFunctionName:ch,__metadata:uh,__awaiter:dh,__generator:ph,__createBinding:hs,__exportStar:fh,__values:fs,__read:Cc,__spread:hh,__spreadArrays:yh,__spreadArray:mh,__await:jn,__asyncGenerator:bh,__asyncDelegator:gh,__asyncValues:vh,__makeTemplateObject:Kh,__importStar:Sh,__importDefault:Eh,__classPrivateFieldGet:kh,__classPrivateFieldSet:Ih,__classPrivateFieldIn:xh,__addDisposableResource:wh,__disposeResources:Th,__rewriteRelativeImportExtension:jh}});var Nc=h(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.AsyncFifoQueue=void 0;var _c=class{constructor(e){this.value=void 0,this.next=null,this.value=e}},Mc=class{constructor(){this.length=0,this.head=null,this.tail=null}push(e){let t=new _c(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}},Pc=class{constructor(e=!1){this.ignoreErrors=e,this.queue=new Mc,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}}};ys.AsyncFifoQueue=Pc});var Lc=h(ms=>{"use strict";Object.defineProperty(ms,"__esModule",{value:!0});ms.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 Tw(e,s)(t,e.type,n,i)}};ms.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 Tw(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 Dh=h(bs=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});bs.ChildCommand=void 0;var Ah;(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"})(Ah||(bs.ChildCommand=Ah={}))});var Oh=h(gs=>{"use strict";Object.defineProperty(gs,"__esModule",{value:!0});gs.ErrorCode=void 0;var Rh;(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"})(Rh||(gs.ErrorCode=Rh={}))});var _h=h(vs=>{"use strict";Object.defineProperty(vs,"__esModule",{value:!0});vs.ParentCommand=void 0;var Ch;(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"})(Ch||(vs.ParentCommand=Ch={}))});var Ph=h(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.MetricsTime=void 0;var Mh;(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"})(Mh||(Ks.MetricsTime=Mh={}))});var Jh=h(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.SpanKind=Sr.MetricNames=Sr.TelemetryAttributes=void 0;var Nh;(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"})(Nh||(Sr.TelemetryAttributes=Nh={}));var Lh;(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"})(Lh||(Sr.MetricNames=Lh={}));var qh;(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"})(qh||(Sr.SpanKind=qh={}))});var st=h(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});var ai=(Qe(),nt(He));ai.__exportStar(Dh(),Vr);ai.__exportStar(Oh(),Vr);ai.__exportStar(_h(),Vr);ai.__exportStar(Ph(),Vr);ai.__exportStar(Jh(),Vr)});var Jc=h(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.Child=void 0;var jw=B("child_process"),Aw=B("net"),Dw=B("worker_threads"),Ss=st(),Rw=B("events"),Ow={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"},qc=class extends Rw.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 Mw(process.execArgv),t;this.opts.useWorkerThreads?this.worker=t=new Dw.Worker(this.mainFile,Object.assign({execArgv:e,stdin:!0,stdout:!0,stderr:!0},this.opts.workerThreadsOptions?this.opts.workerThreadsOptions:{})):this.childProcess=t=(0,jw.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=Cw(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(Ss.ParentCommand).includes(a.cmd)){if(a.cmd===Ss.ParentCommand.InitCompleted)t();else if(a.cmd===Ss.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=Ow[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:Ss.ChildCommand.Init,value:this.processFile}),await e}hasProcessExited(){return!!(this.exitCode!==null||this.signalCode)}};Es.Child=qc;function Cw(r){return new Promise(e=>{r.once("exit",()=>e())})}var _w=async()=>new Promise(r=>{let e=(0,Aw.createServer)();e.listen(0,()=>{let{port:t}=e.address();e.close(()=>r(t))})}),Mw=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 _w();t.push(`${s}=${a}`)}}return e.concat(t)}});var Gc=h((ks,Vc)=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});ks.ChildPool=void 0;var Fh=B("path"),Pw=Jc(),Nw=3e4,Lw=()=>typeof B=="function"&&typeof Vc=="object"&&typeof Vc.exports=="object",Fc=class{constructor({mainFile:e=Lw()?Fh.join(process.cwd(),"dist/cjs/classes/main.js"):Fh.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 Pw.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,Nw)}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),[])}};ks.ChildPool=Fc});var Gh=h(($M,Vh)=>{var{EventEmitter:qw}=B("events"),Is=class{constructor(){this.eventEmitter=new qw,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 oi;return t.abort(),t.signal}static timeout(e){let t=new oi;return setTimeout(()=>t.abort(new Error("TimeoutError")),e),t.signal}},oi=class{constructor(){this.signal=new Is}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"}};Vh.exports={AbortController:oi,AbortSignal:Is}});var ws=h(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.AbortController=void 0;var Jw=Gh(),Yc;globalThis.AbortController?Yc=globalThis.AbortController:Yc=Jw.AbortController;var Bc=class extends Yc{};xs.AbortController=Bc});var li=h((QM,Yh)=>{"use strict";var Fw="2.0.0",Vw=Number.MAX_SAFE_INTEGER||9007199254740991,Gw=16,Yw=250,Bw=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Yh.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Gw,MAX_SAFE_BUILD_LENGTH:Yw,MAX_SAFE_INTEGER:Vw,RELEASE_TYPES:Bw,SEMVER_SPEC_VERSION:Fw,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var ci=h((ZM,Bh)=>{"use strict";var Ww=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};Bh.exports=Ww});var Dn=h((Ft,Wh)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Wc,MAX_SAFE_BUILD_LENGTH:Uw,MAX_LENGTH:zw}=li(),$w=ci();Ft=Wh.exports={};var Hw=Ft.re=[],Qw=Ft.safeRe=[],J=Ft.src=[],Zw=Ft.safeSrc=[],F=Ft.t={},Xw=0,Uc="[a-zA-Z0-9-]",e1=[["\\s",1],["\\d",zw],[Uc,Uw]],t1=r=>{for(let[e,t]of e1)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},ee=(r,e,t)=>{let n=t1(e),i=Xw++;$w(r,i,e),F[r]=i,J[i]=e,Zw[i]=n,Hw[i]=new RegExp(e,t?"g":void 0),Qw[i]=new RegExp(n,t?"g":void 0)};ee("NUMERICIDENTIFIER","0|[1-9]\\d*");ee("NUMERICIDENTIFIERLOOSE","\\d+");ee("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Uc}*`);ee("MAINVERSION",`(${J[F.NUMERICIDENTIFIER]})\\.(${J[F.NUMERICIDENTIFIER]})\\.(${J[F.NUMERICIDENTIFIER]})`);ee("MAINVERSIONLOOSE",`(${J[F.NUMERICIDENTIFIERLOOSE]})\\.(${J[F.NUMERICIDENTIFIERLOOSE]})\\.(${J[F.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASEIDENTIFIER",`(?:${J[F.NONNUMERICIDENTIFIER]}|${J[F.NUMERICIDENTIFIER]})`);ee("PRERELEASEIDENTIFIERLOOSE",`(?:${J[F.NONNUMERICIDENTIFIER]}|${J[F.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASE",`(?:-(${J[F.PRERELEASEIDENTIFIER]}(?:\\.${J[F.PRERELEASEIDENTIFIER]})*))`);ee("PRERELEASELOOSE",`(?:-?(${J[F.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${J[F.PRERELEASEIDENTIFIERLOOSE]})*))`);ee("BUILDIDENTIFIER",`${Uc}+`);ee("BUILD",`(?:\\+(${J[F.BUILDIDENTIFIER]}(?:\\.${J[F.BUILDIDENTIFIER]})*))`);ee("FULLPLAIN",`v?${J[F.MAINVERSION]}${J[F.PRERELEASE]}?${J[F.BUILD]}?`);ee("FULL",`^${J[F.FULLPLAIN]}$`);ee("LOOSEPLAIN",`[v=\\s]*${J[F.MAINVERSIONLOOSE]}${J[F.PRERELEASELOOSE]}?${J[F.BUILD]}?`);ee("LOOSE",`^${J[F.LOOSEPLAIN]}$`);ee("GTLT","((?:<|>)?=?)");ee("XRANGEIDENTIFIERLOOSE",`${J[F.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);ee("XRANGEIDENTIFIER",`${J[F.NUMERICIDENTIFIER]}|x|X|\\*`);ee("XRANGEPLAIN",`[v=\\s]*(${J[F.XRANGEIDENTIFIER]})(?:\\.(${J[F.XRANGEIDENTIFIER]})(?:\\.(${J[F.XRANGEIDENTIFIER]})(?:${J[F.PRERELEASE]})?${J[F.BUILD]}?)?)?`);ee("XRANGEPLAINLOOSE",`[v=\\s]*(${J[F.XRANGEIDENTIFIERLOOSE]})(?:\\.(${J[F.XRANGEIDENTIFIERLOOSE]})(?:\\.(${J[F.XRANGEIDENTIFIERLOOSE]})(?:${J[F.PRERELEASELOOSE]})?${J[F.BUILD]}?)?)?`);ee("XRANGE",`^${J[F.GTLT]}\\s*${J[F.XRANGEPLAIN]}$`);ee("XRANGELOOSE",`^${J[F.GTLT]}\\s*${J[F.XRANGEPLAINLOOSE]}$`);ee("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Wc}})(?:\\.(\\d{1,${Wc}}))?(?:\\.(\\d{1,${Wc}}))?`);ee("COERCE",`${J[F.COERCEPLAIN]}(?:$|[^\\d])`);ee("COERCEFULL",J[F.COERCEPLAIN]+`(?:${J[F.PRERELEASE]})?(?:${J[F.BUILD]})?(?:$|[^\\d])`);ee("COERCERTL",J[F.COERCE],!0);ee("COERCERTLFULL",J[F.COERCEFULL],!0);ee("LONETILDE","(?:~>?)");ee("TILDETRIM",`(\\s*)${J[F.LONETILDE]}\\s+`,!0);Ft.tildeTrimReplace="$1~";ee("TILDE",`^${J[F.LONETILDE]}${J[F.XRANGEPLAIN]}$`);ee("TILDELOOSE",`^${J[F.LONETILDE]}${J[F.XRANGEPLAINLOOSE]}$`);ee("LONECARET","(?:\\^)");ee("CARETTRIM",`(\\s*)${J[F.LONECARET]}\\s+`,!0);Ft.caretTrimReplace="$1^";ee("CARET",`^${J[F.LONECARET]}${J[F.XRANGEPLAIN]}$`);ee("CARETLOOSE",`^${J[F.LONECARET]}${J[F.XRANGEPLAINLOOSE]}$`);ee("COMPARATORLOOSE",`^${J[F.GTLT]}\\s*(${J[F.LOOSEPLAIN]})$|^$`);ee("COMPARATOR",`^${J[F.GTLT]}\\s*(${J[F.FULLPLAIN]})$|^$`);ee("COMPARATORTRIM",`(\\s*)${J[F.GTLT]}\\s*(${J[F.LOOSEPLAIN]}|${J[F.XRANGEPLAIN]})`,!0);Ft.comparatorTrimReplace="$1$2$3";ee("HYPHENRANGE",`^\\s*(${J[F.XRANGEPLAIN]})\\s+-\\s+(${J[F.XRANGEPLAIN]})\\s*$`);ee("HYPHENRANGELOOSE",`^\\s*(${J[F.XRANGEPLAINLOOSE]})\\s+-\\s+(${J[F.XRANGEPLAINLOOSE]})\\s*$`);ee("STAR","(<|>)?=?\\s*\\*");ee("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");ee("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Ts=h((XM,Uh)=>{"use strict";var r1=Object.freeze({loose:!0}),n1=Object.freeze({}),i1=r=>r?typeof r!="object"?r1:r:n1;Uh.exports=i1});var zc=h((eP,Hh)=>{"use strict";var zh=/^[0-9]+$/,$h=(r,e)=>{if(typeof r=="number"&&typeof e=="number")return r===e?0:r<e?-1:1;let t=zh.test(r),n=zh.test(e);return t&&n&&(r=+r,e=+e),r===e?0:t&&!n?-1:n&&!t?1:r<e?-1:1},s1=(r,e)=>$h(e,r);Hh.exports={compareIdentifiers:$h,rcompareIdentifiers:s1}});var Be=h((tP,Zh)=>{"use strict";var js=ci(),{MAX_LENGTH:Qh,MAX_SAFE_INTEGER:As}=li(),{safeRe:Ds,t:Rs}=Dn(),a1=Ts(),{compareIdentifiers:$c}=zc(),Hc=class r{constructor(e,t){if(t=a1(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>Qh)throw new TypeError(`version is longer than ${Qh} characters`);js("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?Ds[Rs.LOOSE]:Ds[Rs.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>As||this.major<0)throw new TypeError("Invalid major version");if(this.minor>As||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>As||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<As)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 $c(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 $c(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?Ds[Rs.PRERELEASELOOSE]:Ds[Rs.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]),$c(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}};Zh.exports=Hc});var Gr=h((rP,ey)=>{"use strict";var Xh=Be(),o1=(r,e,t=!1)=>{if(r instanceof Xh)return r;try{return new Xh(r,e)}catch(n){if(!t)return null;throw n}};ey.exports=o1});var ry=h((nP,ty)=>{"use strict";var l1=Gr(),c1=(r,e)=>{let t=l1(r,e);return t?t.version:null};ty.exports=c1});var iy=h((iP,ny)=>{"use strict";var u1=Gr(),d1=(r,e)=>{let t=u1(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};ny.exports=d1});var oy=h((sP,ay)=>{"use strict";var sy=Be(),p1=(r,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new sy(r instanceof sy?r.version:r,t).inc(e,n,i).version}catch{return null}};ay.exports=p1});var uy=h((aP,cy)=>{"use strict";var ly=Gr(),f1=(r,e)=>{let t=ly(r,null,!0),n=ly(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"};cy.exports=f1});var py=h((oP,dy)=>{"use strict";var h1=Be(),y1=(r,e)=>new h1(r,e).major;dy.exports=y1});var hy=h((lP,fy)=>{"use strict";var m1=Be(),b1=(r,e)=>new m1(r,e).minor;fy.exports=b1});var my=h((cP,yy)=>{"use strict";var g1=Be(),v1=(r,e)=>new g1(r,e).patch;yy.exports=v1});var gy=h((uP,by)=>{"use strict";var K1=Gr(),S1=(r,e)=>{let t=K1(r,e);return t&&t.prerelease.length?t.prerelease:null};by.exports=S1});var Et=h((dP,Ky)=>{"use strict";var vy=Be(),E1=(r,e,t)=>new vy(r,t).compare(new vy(e,t));Ky.exports=E1});var Ey=h((pP,Sy)=>{"use strict";var k1=Et(),I1=(r,e,t)=>k1(e,r,t);Sy.exports=I1});var Iy=h((fP,ky)=>{"use strict";var x1=Et(),w1=(r,e)=>x1(r,e,!0);ky.exports=w1});var Os=h((hP,wy)=>{"use strict";var xy=Be(),T1=(r,e,t)=>{let n=new xy(r,t),i=new xy(e,t);return n.compare(i)||n.compareBuild(i)};wy.exports=T1});var jy=h((yP,Ty)=>{"use strict";var j1=Os(),A1=(r,e)=>r.sort((t,n)=>j1(t,n,e));Ty.exports=A1});var Dy=h((mP,Ay)=>{"use strict";var D1=Os(),R1=(r,e)=>r.sort((t,n)=>D1(n,t,e));Ay.exports=R1});var ui=h((bP,Ry)=>{"use strict";var O1=Et(),C1=(r,e,t)=>O1(r,e,t)>0;Ry.exports=C1});var Cs=h((gP,Oy)=>{"use strict";var _1=Et(),M1=(r,e,t)=>_1(r,e,t)<0;Oy.exports=M1});var Qc=h((vP,Cy)=>{"use strict";var P1=Et(),N1=(r,e,t)=>P1(r,e,t)===0;Cy.exports=N1});var Zc=h((KP,_y)=>{"use strict";var L1=Et(),q1=(r,e,t)=>L1(r,e,t)!==0;_y.exports=q1});var _s=h((SP,My)=>{"use strict";var J1=Et(),F1=(r,e,t)=>J1(r,e,t)>=0;My.exports=F1});var Ms=h((EP,Py)=>{"use strict";var V1=Et(),G1=(r,e,t)=>V1(r,e,t)<=0;Py.exports=G1});var Xc=h((kP,Ny)=>{"use strict";var Y1=Qc(),B1=Zc(),W1=ui(),U1=_s(),z1=Cs(),$1=Ms(),H1=(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 Y1(r,t,n);case"!=":return B1(r,t,n);case">":return W1(r,t,n);case">=":return U1(r,t,n);case"<":return z1(r,t,n);case"<=":return $1(r,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Ny.exports=H1});var qy=h((IP,Ly)=>{"use strict";var Q1=Be(),Z1=Gr(),{safeRe:Ps,t:Ns}=Dn(),X1=(r,e)=>{if(r instanceof Q1)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?Ps[Ns.COERCEFULL]:Ps[Ns.COERCE]);else{let l=e.includePrerelease?Ps[Ns.COERCERTLFULL]:Ps[Ns.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 Z1(`${n}.${i}.${s}${a}${o}`,e)};Ly.exports=X1});var Fy=h((xP,Jy)=>{"use strict";var eu=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}};Jy.exports=eu});var kt=h((wP,By)=>{"use strict";var eT=/\s+/g,tu=class r{constructor(e,t){if(t=rT(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof ru)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(eT," "),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=>!Gy(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&&cT(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&&oT)|(this.options.loose&&lT))+":"+e,i=Vy.get(n);if(i)return i;let s=this.options.loose,a=s?Ze[We.HYPHENRANGELOOSE]:Ze[We.HYPHENRANGE];e=e.replace(a,vT(this.options.includePrerelease)),ke("hyphen replace",e),e=e.replace(Ze[We.COMPARATORTRIM],iT),ke("comparator trim",e),e=e.replace(Ze[We.TILDETRIM],sT),ke("tilde trim",e),e=e.replace(Ze[We.CARETTRIM],aT),ke("caret trim",e);let o=e.split(" ").map(d=>uT(d,this.options)).join(" ").split(/\s+/).map(d=>gT(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 ru(d,this.options));for(let d of c){if(Gy(d))return[d];l.set(d.value,d)}l.size>1&&l.has("")&&l.delete("");let u=[...l.values()];return Vy.set(n,u),u}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(n=>Yy(n,t)&&e.set.some(i=>Yy(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 nT(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(KT(this.set[t],e,this.options))return!0;return!1}};By.exports=tu;var tT=Fy(),Vy=new tT,rT=Ts(),ru=di(),ke=ci(),nT=Be(),{safeRe:Ze,t:We,comparatorTrimReplace:iT,tildeTrimReplace:sT,caretTrimReplace:aT}=Dn(),{FLAG_INCLUDE_PRERELEASE:oT,FLAG_LOOSE:lT}=li(),Gy=r=>r.value==="<0.0.0-0",cT=r=>r.value==="",Yy=(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},uT=(r,e)=>(r=r.replace(Ze[We.BUILD],""),ke("comp",r,e),r=fT(r,e),ke("caret",r),r=dT(r,e),ke("tildes",r),r=yT(r,e),ke("xrange",r),r=bT(r,e),ke("stars",r),r),Xe=r=>!r||r.toLowerCase()==="x"||r==="*",dT=(r,e)=>r.trim().split(/\s+/).map(t=>pT(t,e)).join(" "),pT=(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})},fT=(r,e)=>r.trim().split(/\s+/).map(t=>hT(t,e)).join(" "),hT=(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})},yT=(r,e)=>(ke("replaceXRanges",r,e),r.split(/\s+/).map(t=>mT(t,e)).join(" ")),mT=(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})},bT=(r,e)=>(ke("replaceStars",r,e),r.trim().replace(Ze[We.STAR],"")),gT=(r,e)=>(ke("replaceGTE0",r,e),r.trim().replace(Ze[e.includePrerelease?We.GTE0PRE:We.GTE0],"")),vT=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()),KT=(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!==ru.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,Qy)=>{"use strict";var pi=Symbol("SemVer ANY"),su=class r{static get ANY(){return pi}constructor(e,t){if(t=Wy(t),e instanceof r){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),iu("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===pi?this.value="":this.value=this.operator+this.semver.version,iu("comp",this)}parse(e){let t=this.options.loose?Uy[zy.COMPARATORLOOSE]:Uy[zy.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 $y(n[2],this.options.loose):this.semver=pi}toString(){return this.value}test(e){if(iu("Comparator.test",e,this.options.loose),this.semver===pi||e===pi)return!0;if(typeof e=="string")try{e=new $y(e,this.options)}catch{return!1}return nu(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 Hy(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new Hy(this.value,t).test(e.semver):(t=Wy(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("=")||nu(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||nu(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Qy.exports=su;var Wy=Ts(),{safeRe:Uy,t:zy}=Dn(),nu=Xc(),iu=ci(),$y=Be(),Hy=kt()});var fi=h((jP,Zy)=>{"use strict";var ST=kt(),ET=(r,e,t)=>{try{e=new ST(e,t)}catch{return!1}return e.test(r)};Zy.exports=ET});var em=h((AP,Xy)=>{"use strict";var kT=kt(),IT=(r,e)=>new kT(r,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));Xy.exports=IT});var rm=h((DP,tm)=>{"use strict";var xT=Be(),wT=kt(),TT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new wT(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===-1)&&(n=a,i=new xT(n,t))}),n};tm.exports=TT});var im=h((RP,nm)=>{"use strict";var jT=Be(),AT=kt(),DT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new AT(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===1)&&(n=a,i=new jT(n,t))}),n};nm.exports=DT});var om=h((OP,am)=>{"use strict";var au=Be(),RT=kt(),sm=ui(),OT=(r,e)=>{r=new RT(r,e);let t=new au("0.0.0");if(r.test(t)||(t=new au("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 au(a.semver.version);switch(a.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!s||sm(o,s))&&(s=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),s&&(!t||sm(t,s))&&(t=s)}return t&&r.test(t)?t:null};am.exports=OT});var cm=h((CP,lm)=>{"use strict";var CT=kt(),_T=(r,e)=>{try{return new CT(r,e).range||"*"}catch{return null}};lm.exports=_T});var Ls=h((_P,fm)=>{"use strict";var MT=Be(),pm=di(),{ANY:PT}=pm,NT=kt(),LT=fi(),um=ui(),dm=Cs(),qT=Ms(),JT=_s(),FT=(r,e,t,n)=>{r=new MT(r,n),e=new NT(e,n);let i,s,a,o,l;switch(t){case">":i=um,s=qT,a=dm,o=">",l=">=";break;case"<":i=dm,s=JT,a=um,o="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(LT(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===PT&&(p=new pm(">=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};fm.exports=FT});var ym=h((MP,hm)=>{"use strict";var VT=Ls(),GT=(r,e,t)=>VT(r,e,">",t);hm.exports=GT});var bm=h((PP,mm)=>{"use strict";var YT=Ls(),BT=(r,e,t)=>YT(r,e,"<",t);mm.exports=BT});var Km=h((NP,vm)=>{"use strict";var gm=kt(),WT=(r,e,t)=>(r=new gm(r,t),e=new gm(e,t),r.intersects(e,t));vm.exports=WT});var Em=h((LP,Sm)=>{"use strict";var UT=fi(),zT=Et();Sm.exports=(r,e,t)=>{let n=[],i=null,s=null,a=r.sort((u,d)=>zT(u,d,t));for(let u of a)UT(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 jm=h((qP,Tm)=>{"use strict";var km=kt(),lu=di(),{ANY:ou}=lu,hi=fi(),cu=Et(),$T=(r,e,t={})=>{if(r===e)return!0;r=new km(r,t),e=new km(e,t);let n=!1;e:for(let i of r.set){for(let s of e.set){let a=QT(i,s,t);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},HT=[new lu(">=0.0.0-0")],Im=[new lu(">=0.0.0")],QT=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===ou){if(e.length===1&&e[0].semver===ou)return!0;t.includePrerelease?r=HT:r=Im}if(e.length===1&&e[0].semver===ou){if(t.includePrerelease)return!0;e=Im}let n=new Set,i,s;for(let p of r)p.operator===">"||p.operator===">="?i=xm(i,p,t):p.operator==="<"||p.operator==="<="?s=wm(s,p,t):n.add(p.semver);if(n.size>1)return null;let a;if(i&&s){if(a=cu(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&&!hi(p,String(i),t)||s&&!hi(p,String(s),t))return null;for(let y of e)if(!hi(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=xm(i,p,t),o===p&&o!==i)return!1}else if(i.operator===">="&&!hi(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=wm(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!hi(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)},xm=(r,e,t)=>{if(!r)return e;let n=cu(r.semver,e.semver,t);return n>0?r:n<0||e.operator===">"&&r.operator===">="?e:r},wm=(r,e,t)=>{if(!r)return e;let n=cu(r.semver,e.semver,t);return n<0?r:n>0||e.operator==="<"&&r.operator==="<="?e:r};Tm.exports=$T});var Om=h((JP,Rm)=>{"use strict";var uu=Dn(),Am=li(),ZT=Be(),Dm=zc(),XT=Gr(),ej=ry(),tj=iy(),rj=oy(),nj=uy(),ij=py(),sj=hy(),aj=my(),oj=gy(),lj=Et(),cj=Ey(),uj=Iy(),dj=Os(),pj=jy(),fj=Dy(),hj=ui(),yj=Cs(),mj=Qc(),bj=Zc(),gj=_s(),vj=Ms(),Kj=Xc(),Sj=qy(),Ej=di(),kj=kt(),Ij=fi(),xj=em(),wj=rm(),Tj=im(),jj=om(),Aj=cm(),Dj=Ls(),Rj=ym(),Oj=bm(),Cj=Km(),_j=Em(),Mj=jm();Rm.exports={parse:XT,valid:ej,clean:tj,inc:rj,diff:nj,major:ij,minor:sj,patch:aj,prerelease:oj,compare:lj,rcompare:cj,compareLoose:uj,compareBuild:dj,sort:pj,rsort:fj,gt:hj,lt:yj,eq:mj,neq:bj,gte:gj,lte:vj,cmp:Kj,coerce:Sj,Comparator:Ej,Range:kj,satisfies:Ij,toComparators:xj,maxSatisfying:wj,minSatisfying:Tj,minVersion:jj,validRange:Aj,outside:Dj,gtr:Rj,ltr:Oj,intersects:Cj,simplifyRange:_j,subset:Mj,SemVer:ZT,re:uu.re,src:uu.src,tokens:uu.t,SEMVER_SPEC_VERSION:Am.SEMVER_SPEC_VERSION,RELEASE_TYPES:Am.RELEASE_TYPES,compareIdentifiers:Dm.compareIdentifiers,rcompareIdentifiers:Dm.rcompareIdentifiers}});var ct=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=Lj;$.lengthInUtf8Bytes=qj;$.isEmpty=Jj;$.array2obj=Fj;$.objectToFlatArray=Vj;$.delay=Gj;$.increaseMaxListeners=Cm;$.invertObject=_m;$.isRedisInstance=Mm;$.isRedisCluster=Yj;$.decreaseMaxListeners=Bj;$.removeAllQueueData=Wj;$.getParentKey=Uj;$.isNotConnectionError=Pm;$.removeUndefinedFields=rA;$.trace=nA;$.randomUUID=iA;var Pj=ds(),du=B("crypto"),Nj=Oe(),pu=Om(),fu=st();$.errorObject={value:null};function Lj(r,e,t){try{return r.apply(e,t)}catch(n){return $.errorObject.value=n,$.errorObject}}function qj(r){return Buffer.byteLength(r,"utf8")}function Jj(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e))return!1;return!0}function Fj(r){let e={};for(let t=0;t<r.length;t+=2)e[r[t]]=r[t+1];return e}function Vj(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 Gj(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 Cm(r,e){let t=r.getMaxListeners();r.setMaxListeners(t+e)}function _m(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({},_m($.optsDecodeMap)),{debounce:"de"});function Mm(r){return r?["connect","disconnect","duplicate"].every(t=>typeof r[t]=="function"):!1}function Yj(r){return Mm(r)&&r.isCluster}function Bj(r,e){Cm(r,-e)}async function Wj(r,e,t=process.env.BULLMQ_TEST_PREFIX||"bull"){if(r instanceof Pj.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(Pm(s))throw s}}function Uj(r){if(r)return`${r.queue}:${r.id}`}$.clientCommandMessageReg=/ERR unknown command ['`]\s*client\s*['`]/;$.DELAY_TIME_5=5e3;$.DELAY_TIME_1=100;function Pm(r){let{code:e,message:t}=r;return t!==Nj.CONNECTION_CLOSED_ERROR_MSG&&!t.includes("ECONNREFUSED")&&e!=="ECONNREFUSED"}var zj=(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=zj;var $j=(r,e)=>(0,$.asyncSend)(r,e);$.childSend=$j;var Hj=(r,e,t,n="redis")=>{if(t===n){let i=pu.valid(pu.coerce(r));return pu.lt(i,e)}return!1};$.isRedisVersionLowerThan=Hj;var Qj=r=>{let e={};for(let t of Object.entries(r))e[t[0]]=JSON.parse(t[1]);return e};$.parseObjectValues=Qj;var Zj=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}},Xj=r=>{let e={};return Object.getOwnPropertyNames(r).forEach(function(t){e[t]=r[t]}),JSON.parse(JSON.stringify(e,Zj(r)))};$.errorToJSON=Xj;var eA=1/0,tA=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===-eA?"-0":e};$.toString=tA;$.QUEUE_EVENT_SUFFIX=":qe";function rA(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}async function nA(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({[fu.TelemetryAttributes.QueueName]:t,[fu.TelemetryAttributes.QueueOperation]:n});let p,y;return e===fu.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 iA(){if(typeof du.randomUUID=="function")return(0,du.randomUUID)();let r=(0,du.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 Nm=h(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.ChildProcessor=void 0;var sA=ws(),et=st(),hu=ct(),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 yi=process.env.NODE_ENV==="test"?500:5e3,yu=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,hu.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,hu.errorToJSON)(new Error("cannot start a not idling child process"))});this.status=Er.Started,this.abortController=new sA.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,hu.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}}),mi(a,this.receiver,yi,"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}),mi(i,this.receiver,yi,"getChildrenValues")},getIgnoredChildrenFailures:async()=>{let i=Math.random().toString(36).substring(2,15);return await t({requestId:i,cmd:et.ParentCommand.GetIgnoredChildrenFailures}),mi(i,this.receiver,yi,"getIgnoredChildrenFailures")},getDependenciesCount:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependenciesCount,value:i}),mi(s,this.receiver,yi,"getDependenciesCount")},getDependencies:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependencies,value:i}),mi(s,this.receiver,yi,"getDependencies")}});return n}};qs.ChildProcessor=yu;var mi=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 Lm=h(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.DelayedError=Yr.DELAYED_ERROR=void 0;Yr.DELAYED_ERROR="bullmq:movedToDelayed";var mu=class extends Error{constructor(e=Yr.DELAYED_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Yr.DelayedError=mu});var qm=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 bu=class extends Error{constructor(e=Br.RATE_LIMIT_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Br.RateLimitError=bu});var vu=h(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.UnrecoverableError=Wr.UNRECOVERABLE_ERROR=void 0;Wr.UNRECOVERABLE_ERROR="bullmq:unrecoverable";var gu=class extends Error{constructor(e=Wr.UNRECOVERABLE_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Wr.UnrecoverableError=gu});var Jm=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 Ku=class extends Error{constructor(e=Ur.WAITING_CHILDREN_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Ur.WaitingChildrenError=Ku});var Fm=h(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.WaitingError=zr.WAITING_ERROR=void 0;zr.WAITING_ERROR="bullmq:movedToWait";var Su=class extends Error{constructor(e=zr.WAITING_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};zr.WaitingError=Su});var Js=h($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});var bi=(Qe(),nt(He));bi.__exportStar(Lm(),$r);bi.__exportStar(qm(),$r);bi.__exportStar(vu(),$r);bi.__exportStar(Jm(),$r);bi.__exportStar(Fm(),$r)});var Ym=h(($P,Gm)=>{"use strict";var Vm=()=>process.platform==="linux",Fs=null,aA=()=>{if(!Fs)if(Vm()&&process.report){let r=process.report.excludeNetwork;process.report.excludeNetwork=!0,Fs=process.report.getReport(),process.report.excludeNetwork=r}else Fs={};return Fs};Gm.exports={isLinux:Vm,getReport:aA}});var Wm=h((HP,Bm)=>{"use strict";var Rn=B("fs"),oA="/usr/bin/ldd",lA="/proc/self/exe",Vs=2048,cA=r=>{let e=Rn.openSync(r,"r"),t=Buffer.alloc(Vs),n=Rn.readSync(e,t,0,Vs,0);return Rn.close(e,()=>{}),t.subarray(0,n)},uA=r=>new Promise((e,t)=>{Rn.open(r,"r",(n,i)=>{if(n)t(n);else{let s=Buffer.alloc(Vs);Rn.read(i,s,0,Vs,0,(a,o)=>{e(s.subarray(0,o)),Rn.close(i,()=>{})})}})});Bm.exports={LDD_PATH:oA,SELF_PATH:lA,readFileSync:cA,readFile:uA}});var zm=h((QP,Um)=>{"use strict";var dA=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};Um.exports={interpreterPath:dA}});var fb=h((ZP,pb)=>{"use strict";var Hm=B("child_process"),{isLinux:On,getReport:Qm}=Ym(),{LDD_PATH:Gs,SELF_PATH:Zm,readFile:Eu,readFileSync:ku}=Wm(),{interpreterPath:Xm}=zm(),Vt,Gt,Yt,eb="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",kr="",tb=()=>kr||new Promise(r=>{Hm.exec(eb,(e,t)=>{kr=e?" ":t,r(kr)})}),rb=()=>{if(!kr)try{kr=Hm.execSync(eb,{encoding:"utf8"})}catch{kr=" "}return kr},er="glibc",nb=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Hr="musl",pA=r=>r.includes("libc.musl-")||r.includes("ld-musl-"),ib=()=>{let r=Qm();return r.header&&r.header.glibcVersionRuntime?er:Array.isArray(r.sharedObjects)&&r.sharedObjects.some(pA)?Hr:null},sb=r=>{let[e,t]=r.split(/[\r\n]+/);return e&&e.includes(er)?er:t&&t.includes(Hr)?Hr:null},ab=r=>{if(r){if(r.includes("/ld-musl-"))return Hr;if(r.includes("/ld-linux-"))return er}return null},ob=r=>(r=r.toString(),r.includes("musl")?Hr:r.includes("GNU C Library")?er:null),fA=async()=>{if(Gt!==void 0)return Gt;Gt=null;try{let r=await Eu(Gs);Gt=ob(r)}catch{}return Gt},hA=()=>{if(Gt!==void 0)return Gt;Gt=null;try{let r=ku(Gs);Gt=ob(r)}catch{}return Gt},yA=async()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=await Eu(Zm),e=Xm(r);Vt=ab(e)}catch{}return Vt},mA=()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=ku(Zm),e=Xm(r);Vt=ab(e)}catch{}return Vt},lb=async()=>{let r=null;if(On()&&(r=await yA(),!r&&(r=await fA(),r||(r=ib()),!r))){let e=await tb();r=sb(e)}return r},cb=()=>{let r=null;if(On()&&(r=mA(),!r&&(r=hA(),r||(r=ib()),!r))){let e=rb();r=sb(e)}return r},bA=async()=>On()&&await lb()!==er,gA=()=>On()&&cb()!==er,vA=async()=>{if(Yt!==void 0)return Yt;Yt=null;try{let e=(await Eu(Gs)).match(nb);e&&(Yt=e[1])}catch{}return Yt},KA=()=>{if(Yt!==void 0)return Yt;Yt=null;try{let e=ku(Gs).match(nb);e&&(Yt=e[1])}catch{}return Yt},ub=()=>{let r=Qm();return r.header&&r.header.glibcVersionRuntime?r.header.glibcVersionRuntime:null},$m=r=>r.trim().split(/\s+/)[1],db=r=>{let[e,t,n]=r.split(/[\r\n]+/);return e&&e.includes(er)?$m(e):t&&n&&t.includes(Hr)?$m(n):null},SA=async()=>{let r=null;if(On()&&(r=await vA(),r||(r=ub()),!r)){let e=await tb();r=db(e)}return r},EA=()=>{let r=null;if(On()&&(r=KA(),r||(r=ub()),!r)){let e=rb();r=db(e)}return r};pb.exports={GLIBC:er,MUSL:Hr,family:lb,familySync:cb,isNonGlibcLinux:bA,isNonGlibcLinuxSync:gA,version:SA,versionSync:EA}});var Tb=h((XP,wb)=>{var kA=B("fs"),Rt=B("path"),IA=B("url"),mb=B("os"),bb=typeof __webpack_require__=="function"?__non_webpack_require__:B,xA=process.config&&process.config.variables||{},wA=!!process.env.PREBUILDS_ONLY,ju=process.versions,xu=ju.modules;(ju.deno||process.isBun)&&(xu="unsupported");var Iu=AA()?"electron":jA()?"node-webkit":"node",Ys=process.env.npm_config_arch||mb.arch(),Bs=process.env.npm_config_platform||mb.platform(),gb=process.env.LIBC||(DA(Bs)?"musl":"glibc"),wu=process.env.ARM_VERSION||(Ys==="arm64"?"8":xA.arm_version)||"",vb=(ju.uv||"").split(".")[0];wb.exports=Bt;function Bt(r){return bb(Bt.resolve(r))}Bt.resolve=Bt.path=function(r){r=Rt.resolve(r||".");var e="",t;try{e=bb(Rt.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(!wA){var i=hb(Rt.join(r,"build/Release"),yb);if(i)return i;var s=hb(Rt.join(r,"build/Debug"),yb);if(s)return s}var a=p(r);if(a)return a;var o=p(Rt.dirname(process.execPath));if(o)return o;var l=(e[0]=="@"?"":"@"+e+"/")+e+"-"+Bs+"-"+Ys,c;try{var u=Rt.dirname(B("module").createRequire(IA.pathToFileURL(Rt.join(r,"package.json"))).resolve(l));return y(u)}catch(g){c=g}var d=["platform="+Bs,"arch="+Ys,"runtime="+Iu,"abi="+xu,"uv="+vb,wu?"armv="+wu:"","libc="+gb,"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 S=xu(Rt.join(g,"prebuilds")).map(gb),k=S.filter(vb(Bs,Ys)).sort(Kb)[0];if(k)return y(Rt.join(g,"prebuilds",k.name))}function y(g){var S=xu(g).map(Sb),k=S.filter(Eb(Eu,ku)),I=k.sort(kb(Eu))[0];if(I)return Rt.join(g,I.file)}};function xu(r){try{return SA.readdirSync(r)}catch{return[]}}function pb(r,e){var t=xu(r).filter(e);return t[0]&&Rt.join(r,t[0])}function fb(r){return/\.node$/.test(r)}function gb(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 vb(r,e){return function(t){return t==null||t.platform!==r?!1:t.architectures.includes(e)}}function Kb(r,e){return r.architectures.length-e.architectures.length}function Sb(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 Eb(r,e){return function(t){return!(t==null||t.runtime!==r&&!xA(t)||t.abi!==e&&!t.napi||t.uv&&t.uv!==bb||t.armv&&t.armv!==Iu||t.libc&&t.libc!==mb)}}function xA(r){return r.runtime==="node"&&r.napi}function kb(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 wA(){return!!(process.versions&&process.versions.nw)}function TA(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}function jA(r){if(r!=="linux")return!1;let{familySync:e,MUSL:t}=db();return e()===t}Bt.parseTags=Sb;Bt.matchTags=Eb;Bt.compareTags=kb;Bt.parseTuple=gb;Bt.matchTuple=vb;Bt.compareTuples=Kb});var wb=h((QP,ju)=>{var Tu=typeof __webpack_require__=="function"?__non_webpack_require__:V;typeof Tu.addon=="function"?ju.exports=Tu.addon.bind(Tu):ju.exports=xb()});var jb=h((XP,Tb)=>{Tb.exports=wb()(__dirname)});var ag=h(ue=>{"use strict";var Gb=V("stream"),AA=V("module"),Ou;try{Ou=new TextDecoder}catch{}var _,pt,b=0,Cu=[],Zr=Cu,vi=0,he={},oe,tr,dt=0,xt=0,Me,rr,ze=[],ae,Ab={useRecords:!1,mapsAsObjects:!0},$s=class{},_u=new $s;_u.name="MessagePack 0xC1";var Ir=!1,Db=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 Zb(()=>(Qs(),this?this.unpack(e,t):r.prototype.unpack.call(Ab,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),vi=0,xt=0,tr=null,Zr=Cu,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,Ws(t);(!oe||oe.length>0)&&(oe=[])}else he=Ab,(!oe||oe.length>0)&&(oe=[]);return Ws(t)}unpackMultiple(e,t){let n,i=0;try{Ir=!0;let s=e.length,a=this?this.unpack(e,s):na.unpack(e,s);if(t){if(t(a,i,b)===!1)return;for(;b<s;)if(i=b,t(Ws(),i,b)===!1)return}else{for(n=[a];b<s;)i=b,n.push(Ws());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Ir=!1,Qs()}}_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 Ws(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&&Rb(),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&&Rb(),Qs(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")||b>pt)&&(e.incomplete=!0),e}}function Rb(){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&&Yb()[r&63];return e?(e.read||(e.read=Mu(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=$b();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?Pu(e):zb(e);if(t!=null)return t}return Hs(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)):_u;case 194:return!1;case 195:return!0;case 196:if(e=_[b++],e===void 0)throw new Error("Unexpected end of buffer");return Au(e);case 197:return e=ae.getUint16(b),b+=2,Au(e);case 198:return e=ae.getUint32(b),b+=4,Au(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=ra[(_[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 Nb(_[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++,Nb(_[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):Bb(e);case 218:return e=ae.getUint16(b),b+=2,xt>=b?tr.slice(b-dt,(b+=e)-dt):Wb(e);case 219:return e=ae.getUint32(b),b+=4,xt>=b?tr.slice(b-dt,(b+=e)-dt):Ub(e);case 220:return e=ae.getUint16(b),b+=2,Cb(e);case 221:return e=ae.getUint32(b),b+=4,Cb(e);case 222:return e=ae.getUint16(b),b+=2,_b(e);case 223:return e=ae.getUint32(b),b+=4,_b(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 DA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Mu(r,e){function t(){if(t.count++>Db){let i;try{i=r.read=new Function("r","return function(){return "+(he.freezeData?"Object.freeze":"")+"({"+r.map(s=>s==="__proto__"?"__proto_:r()":DA.test(s)?s+":r()":"["+JSON.stringify(s)+"]:r()").join(",")+"})}")(De)}catch{return Db=1/0,t()}return r.highByte===0&&(r.read=Ob(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?Ob(e,t):t}var Ob=(r,e)=>function(){let t=_[b++];if(t===0)return e();let n=r<32?-(r+(t<<5)):r+(t<<5),i=oe[n]||Yb()[n];if(!i)throw new Error("Record id is not defined for "+n);return i.read||(i.read=Mu(i,r)),i.read()};function Yb(){let r=Zb(()=>(_=null,he.getStructures()));return oe=he._mergeStructures(r,oe)}var Hs=Mn,Bb=Mn,Wb=Mn,Ub=Mn;ue.isNativeAccelerationEnabled=!1;function RA(r){ue.isNativeAccelerationEnabled=!0,Hs=e(1),Bb=e(2),Wb=e(3),Ub=e(5);function e(t){return function(i){let s=Zr[vi++];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=Cu;else if(Zr=l,vi=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=Pu(r)))return e;if(r>64&&Ou)return Ou.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 Cb(r){let e=new Array(r);for(let t=0;t<r;t++)e[t]=De();return he.freezeData?Object.freeze(e):e}function _b(r){if(he.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=$b();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 zb(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 Pu(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 Mb(){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 Au(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 Pb=new Array(4096);function $b(){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 Hs(r)}else return b--,Hb(De());let e=(r<<5^(r>1?ae.getUint16(b):r>0?_[b]:0))&4095,t=Pb[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=[],Pb[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?Pu(r):zb(r);return o!=null?t.string=o:t.string=Hs(r)}function Hb(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 Nb=(r,e)=>{let t=De().map(Hb),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=Mu(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 Lb={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError:typeof AggregateError=="function"?AggregateError:null};ze[101]=()=>{let r=De();if(!Lb[r[0]]){let e=Error(r[1],{cause:r[2]});return e.name=r[0],e}return Lb[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 Qb=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(r=>r+"Array"),OA=typeof globalThis=="object"?globalThis:window;ze[116]=r=>{let e=r[0],t=Uint8Array.prototype.slice.call(r,1).buffer,n=Qb[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 OA[n](t)};ze[120]=()=>{let r=De();return new RegExp(r[0],r[1])};var CA=[];ze[98]=r=>{let e=(r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3],t=b;return b+=e-r.length,Me=CA,Me=[Mb(),Mb()],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 Zb(r){he&&he._onSaveState&&he._onSaveState();let e=pt,t=b,n=vi,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,vi=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 Qs(){_=null,rr=null,oe=null}function _A(r){r.unpack?ze[r.type]=r.unpack:ze[r.type]=r}var ra=new Array(147);for(let r=0;r<256;r++)ra[r]=+("1e"+Math.floor(45.15-r*.30103));var MA=nr,na=new nr({useRecords:!1}),PA=na.unpack,NA=na.unpackMultiple,LA=na.unpack,Xb={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},eg=new Float32Array(1),qb=new Uint8Array(eg.buffer,0,4);function qA(r){eg[0]=r;let e=ra[(qb[3]&127)<<1|qb[2]>>7];return(e*r+(r>0?.5:-.5)>>0)/e}nr.SUPPORTS_STRUCT_HOOKS=!0;var zs;try{zs=new TextEncoder}catch{}var Zs,Xs,_n=typeof Buffer<"u",Us=_n?function(r){return Buffer.allocUnsafeSlow(r)}:Uint8Array,tg=_n?Buffer:Uint8Array,Jb=_n?4294967296:2144337920,K,gi,ge,v=0,Ue,Te=null,JA=21760,FA=/[\u0080-\uFFFF]/,Cn=Symbol("record-id"),ir=class extends nr{constructor(e){super(e),this.offset=0;let t,n,i,s,a=tg.prototype.utf8Write?function(m,A){return K.utf8Write(m,A,K.byteLength-A)}:zs&&zs.encodeInto?function(m,A){return zs.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 Us(8192),ge=K.dataView||(K.dataView=new DataView(K.buffer,0,8192)),v=0),Ue=K.length-10,Ue-v<2048?(K=new Us(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&sg&&(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)&&!Xs.some(T=>m instanceof T)?C(m.toJSON?m.toJSON():m):R(m):R(m);let D=Te;if(Te&&Vb(t,R,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=VA(K.subarray(t,v),T);return s=null,W}return o.offset=v,A&ng?(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||YA)(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&ig&&(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=[]}},O=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++)R(m[j])},R=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)>JA){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,Vb(t,R,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=FA.test(m);Te[G?0:1]+=m,K[v++]=193,R(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*ra[(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)O(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)R(T),R(Y)}else{for(let T=0,Y=Zs.length;T<Y;T++){let G=Xs[T];if(m instanceof G){let W=Zs[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)?O(m):F(m):R($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}),R)}finally{ye&&(K=ye,ge=de,v=nt,Ue=K.length-10)}At&&(At.length+v>Ue&&w(At.length+v),v=Fb(At,K,v,W.type));return}}if(Array.isArray(m))O(m);else{if(m.toJSON){let T=m.toJSON();if(T!==m)return R(T)}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,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 R(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=Fb(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);R(isNaN(Y)?D:Y),R(m[D])}else for(let T=0;T<j;T++)R(D=A[T]),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},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]}R(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))&&R(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 R(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>Jb)throw new Error("Packed buffer would be larger than maximum buffer size");A=Math.min(Jb,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 Us(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),R(A))},te=(m,A,j,D)=>{let T=K,Y=v,G=Ue,W=t;K=gi,v=0,t=0,K||(gi=K=new Us(8192)),Ue=K.length-10,U(m,A,D),gi=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(gi.slice(0,ye),nt),v=de}else K[j+t]=gi[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=[])}};Xs=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,DataView,$s];Zs=[{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?Du(r,16,e):Ru(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let t=r.constructor;t!==tg&&this.moreTypes?Du(r,Qb.indexOf(t.name),e):Ru(r,e)}},{pack(r,e){this.moreTypes?Du(r,17,e):Ru(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let{target:t,position:n}=e(1);t[n]=193}}];function Du(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 Ru(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 Fb(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 VA(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 Vb(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 GA(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)");Xs.unshift(r.Class),Zs.unshift(r)}_A(r)}function YA(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 rg=new ir({useRecords:!1}),BA=rg.pack,WA=rg.pack,UA=ir,{NEVER:zA,ALWAYS:$A,DECIMAL_ROUND:HA,DECIMAL_FIT:QA}=Xb,ng=512,ig=1024,sg=2048,ea=class extends Gb.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()}},ta=class extends Gb.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 ZA(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 XA(r,e);if(typeof r.then=="function"||typeof r[Symbol.asyncIterator]=="function")return eD(r,e);throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a Promise")}function*XA(r,e){let t=new ir(e);for(let n of r)yield t.pack(n)}async function*eD(r,e){let t=new ir(e);for await(let n of r)yield t.pack(n)}function tD(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 rD=tD,nD=ZA,iD=!1,sD=!0,aD=process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!aD){let r;try{typeof V=="function"?r=jb():r=AA.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&&RA(r.extractStrings)}catch{}}ue.ALWAYS=$A;ue.C1=_u;ue.DECIMAL_FIT=QA;ue.DECIMAL_ROUND=HA;ue.Decoder=MA;ue.DecoderStream=ta;ue.Encoder=UA;ue.EncoderStream=ea;ue.FLOAT32_OPTIONS=Xb;ue.NEVER=zA;ue.Packr=ir;ue.PackrStream=ea;ue.RESERVE_START_SPACE=sg;ue.RESET_BUFFER_MODE=ig;ue.REUSE_BUFFER_MODE=ng;ue.Unpackr=nr;ue.UnpackrStream=ta;ue.addExtension=GA;ue.clearSource=Qs;ue.decode=LA;ue.decodeIter=rD;ue.encode=WA;ue.encodeIter=nD;ue.mapsAsObjects=sD;ue.pack=BA;ue.roundFloat32=qA;ue.unpack=PA;ue.unpackMultiple=NA;ue.useRecords=iD});var sa=h(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.version=void 0;ia.version="5.76.6"});var Lu=h(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.Scripts=void 0;Ki.raw2NextJobData=aa;var oD=ag(),lD=new oD.Packr({useRecords:!1,encodeUndefinedAsNil:!0}),Pe=lD.pack,Ot=at(),xr=ut(),cD=sa(),uD=Js(),Nu=class{constructor(e){this.queue=e,this.version=cD.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,O=s==="completed"?I.removeOnComplete:I.removeOnFail,R=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]=R,x[13]=this.queue.keys.marker;let E=this.getKeepJobs(i,O),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 aa(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 aa(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 aa(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 Ot.ErrorCode.JobNotExist:a=new Error(`Missing key for job ${t}. ${i}`);break;case Ot.ErrorCode.JobLockNotExist:a=new Error(`Missing lock for job ${t}. ${i}`);break;case Ot.ErrorCode.JobNotInState:a=new Error(`Job ${t} is not in the ${s} state. ${i}`);break;case Ot.ErrorCode.JobPendingChildren:a=new Error(`Job ${t} has pending dependencies. ${i}`);break;case Ot.ErrorCode.ParentJobNotExist:a=new Error(`Missing key for parent job ${n}. ${i}`);break;case Ot.ErrorCode.JobLockMismatch:a=new Error(`Lock mismatch for job ${t}. Cmd ${i} from ${s}`);break;case Ot.ErrorCode.ParentJobCannotBeReplaced:a=new Error(`The parent job ${n} cannot be replaced. ${i}`);break;case Ot.ErrorCode.JobBelongsToJobScheduler:a=new Error(`Job ${t} belongs to a job scheduler and cannot be removed directly. ${i}`);break;case Ot.ErrorCode.JobHasFailedChildren:a=new uD.UnrecoverableError(`Cannot complete job ${t} because it has at least one failed child. ${i}`);break;case Ot.ErrorCode.SchedulerJobIdCollision:a=new Error(`Cannot create job scheduler iteration - job ID already exists. ${i}`);break;case Ot.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)}};Ki.Scripts=Nu;function aa(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 la=h(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.createScripts=void 0;var dD=Lu(),pD=r=>new dD.Scripts({keys:r.keys,client:r.client,get redisVersion(){return r.redisVersion},toKey:r.toKey,opts:r.opts,closing:r.closing,databaseType:r.databaseType});oa.createScripts=pD});var Pn=h(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.Job=wr.PRIORITY_LIMIT=void 0;var og=(Qe(),it(He)),fD=V("util"),tt=ut(),hD=la(),lg=Pc(),yD=bu(),ot=at(),mD=(0,fD.debuglog)("bull");wr.PRIORITY_LIMIT=2**21;var qu=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=og.__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=lg.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=bD(t.stacktrace),typeof t.returnvalue=="string"&&(a.returnvalue=cg(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,hD.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 og.__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 yD.UnrecoverableError||e.name=="UnrecoverableError")){let t=this.queue.opts,n=await lg.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 O=0;O<k.length;++O)O%2&&(I[k[O-1]]=JSON.parse(k[O]));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 O=0;O<k.length;++O)O%2&&(I[k[O-1]]=k[O]);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:cg(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=qu;function bD(r){if(!r)return[];let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);return e===tt.errorObject||!(e instanceof Array)?[]:e}function cg(r){let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);if(e!==tt.errorObject)return e;mD("corrupted returnvalue: "+r,e)}});var ua=h(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.QueueKeys=void 0;var Ju=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}`}};ca.QueueKeys=Ju});var ug=h(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.addDelayedJob=void 0;var gD=`--[[
165
+ `),new Error(f);function p(g){var E=Tu(Rt.join(g,"prebuilds")).map(Kb),k=E.filter(Sb(Bs,Ys)).sort(Eb)[0];if(k)return y(Rt.join(g,"prebuilds",k.name))}function y(g){var E=Tu(g).map(kb),k=E.filter(Ib(Iu,xu)),I=k.sort(xb(Iu))[0];if(I)return Rt.join(g,I.file)}};function Tu(r){try{return kA.readdirSync(r)}catch{return[]}}function hb(r,e){var t=Tu(r).filter(e);return t[0]&&Rt.join(r,t[0])}function yb(r){return/\.node$/.test(r)}function Kb(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 Sb(r,e){return function(t){return t==null||t.platform!==r?!1:t.architectures.includes(e)}}function Eb(r,e){return r.architectures.length-e.architectures.length}function kb(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 Ib(r,e){return function(t){return!(t==null||t.runtime!==r&&!TA(t)||t.abi!==e&&!t.napi||t.uv&&t.uv!==vb||t.armv&&t.armv!==wu||t.libc&&t.libc!==gb)}}function TA(r){return r.runtime==="node"&&r.napi}function xb(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 jA(){return!!(process.versions&&process.versions.nw)}function AA(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}function DA(r){if(r!=="linux")return!1;let{familySync:e,MUSL:t}=fb();return e()===t}Bt.parseTags=kb;Bt.matchTags=Ib;Bt.compareTags=xb;Bt.parseTuple=Kb;Bt.matchTuple=Sb;Bt.compareTuples=Eb});var jb=h((tN,Du)=>{var Au=typeof __webpack_require__=="function"?__non_webpack_require__:B;typeof Au.addon=="function"?Du.exports=Au.addon.bind(Au):Du.exports=Tb()});var Db=h((nN,Ab)=>{Ab.exports=jb()(__dirname)});var lg=h(de=>{"use strict";var Bb=B("stream"),RA=B("module"),_u;try{_u=new TextDecoder}catch{}var _,dt,b=0,Mu=[],Zr=Mu,vi=0,he={},le,tr,ut=0,It=0,Me,rr,ze=[],oe,Rb={useRecords:!1,mapsAsObjects:!0},$s=class{},Pu=new $s;Pu.name="MessagePack 0xC1";var Ir=!1,Ob=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 eg(()=>(Qs(),this?this.unpack(e,t):r.prototype.unpack.call(Rb,e,t)));!e.buffer&&e.constructor===ArrayBuffer&&(e=typeof Buffer<"u"?Buffer.from(e):new Uint8Array(e)),typeof t=="object"?(dt=t.end||e.length,b=t.start||0):(b=0,dt=t>-1?t:e.length),vi=0,It=0,tr=null,Zr=Mu,Me=null,_=e;try{oe=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 le=this.structures,Ws(t);(!le||le.length>0)&&(le=[])}else he=Rb,(!le||le.length>0)&&(le=[]);return Ws(t)}unpackMultiple(e,t){let n,i=0;try{Ir=!0;let s=e.length,a=this?this.unpack(e,s):na.unpack(e,s);if(t){if(t(a,i,b)===!1)return;for(;b<s;)if(i=b,t(Ws(),i,b)===!1)return}else{for(n=[a];b<s;)i=b,n.push(Ws());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Ir=!1,Qs()}}_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 Ws(r){try{if(!he.trusted&&!Ir){let t=le.sharedLength||0;t<le.length&&(le.length=t)}let e;if(he._readStruct&&_[b]<64&&_[b]>=32?(e=he._readStruct(_,b,dt),_=null,!(r&&r.lazy)&&e&&(e=e.toJSON()),b=dt):e=De(),Me&&(b=Me.postBundlePosition,Me=null),Ir&&(le.restoreStructures=null),b==dt)le&&le.restoreStructures&&Cb(),le=null,_=null,rr&&(rr=null);else{if(b>dt)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 le&&le.restoreStructures&&Cb(),Qs(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")||b>dt)&&(e.incomplete=!0),e}}function Cb(){for(let r in le.restoreStructures)le[r]=le.restoreStructures[r];le.restoreStructures=null}function De(){let r=_[b++];if(r<160)if(r<128){if(r<64)return r;{let e=le[r&63]||he.getStructures&&Wb()[r&63];return e?(e.read||(e.read=Nu(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=Qb();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(It>=b)return tr.slice(b-ut,(b+=e)-ut);if(It==0&&dt<140){let t=e<16?Lu(e):Hb(e);if(t!=null)return t}return Hs(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)):Pu;case 194:return!1;case 195:return!0;case 196:if(e=_[b++],e===void 0)throw new Error("Unexpected end of buffer");return Ru(e);case 197:return e=oe.getUint16(b),b+=2,Ru(e);case 198:return e=oe.getUint32(b),b+=4,Ru(e);case 199:return Qr(_[b++]);case 200:return e=oe.getUint16(b),b+=2,Qr(e);case 201:return e=oe.getUint32(b),b+=4,Qr(e);case 202:if(e=oe.getFloat32(b),he.useFloat32>2){let t=ra[(_[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=oe.getFloat64(b),b+=8,e;case 204:return _[b++];case 205:return e=oe.getUint16(b),b+=2,e;case 206:return e=oe.getUint32(b),b+=4,e;case 207:return he.int64AsType==="number"?(e=oe.getUint32(b)*4294967296,e+=oe.getUint32(b+4)):he.int64AsType==="string"?e=oe.getBigUint64(b).toString():he.int64AsType==="auto"?(e=oe.getBigUint64(b),e<=BigInt(2)<<BigInt(52)&&(e=Number(e))):e=oe.getBigUint64(b),b+=8,e;case 208:return oe.getInt8(b++);case 209:return e=oe.getInt16(b),b+=2,e;case 210:return e=oe.getInt32(b),b+=4,e;case 211:return he.int64AsType==="number"?(e=oe.getInt32(b)*4294967296,e+=oe.getUint32(b+4)):he.int64AsType==="string"?e=oe.getBigInt64(b).toString():he.int64AsType==="auto"?(e=oe.getBigInt64(b),e>=BigInt(-2)<<BigInt(52)&&e<=BigInt(2)<<BigInt(52)&&(e=Number(e))):e=oe.getBigInt64(b),b+=8,e;case 212:if(e=_[b++],e==114)return qb(_[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++,qb(_[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++],It>=b?tr.slice(b-ut,(b+=e)-ut):Ub(e);case 218:return e=oe.getUint16(b),b+=2,It>=b?tr.slice(b-ut,(b+=e)-ut):zb(e);case 219:return e=oe.getUint32(b),b+=4,It>=b?tr.slice(b-ut,(b+=e)-ut):$b(e);case 220:return e=oe.getUint16(b),b+=2,Mb(e);case 221:return e=oe.getUint32(b),b+=4,Mb(e);case 222:return e=oe.getUint16(b),b+=2,Pb(e);case 223:return e=oe.getUint32(b),b+=4,Pb(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 OA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Nu(r,e){function t(){if(t.count++>Ob){let i;try{i=r.read=new Function("r","return function(){return "+(he.freezeData?"Object.freeze":"")+"({"+r.map(s=>s==="__proto__"?"__proto_:r()":OA.test(s)?s+":r()":"["+JSON.stringify(s)+"]:r()").join(",")+"})}")(De)}catch{return Ob=1/0,t()}return r.highByte===0&&(r.read=_b(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?_b(e,t):t}var _b=(r,e)=>function(){let t=_[b++];if(t===0)return e();let n=r<32?-(r+(t<<5)):r+(t<<5),i=le[n]||Wb()[n];if(!i)throw new Error("Record id is not defined for "+n);return i.read||(i.read=Nu(i,r)),i.read()};function Wb(){let r=eg(()=>(_=null,he.getStructures()));return le=he._mergeStructures(r,le)}var Hs=Mn,Ub=Mn,zb=Mn,$b=Mn;de.isNativeAccelerationEnabled=!1;function CA(r){de.isNativeAccelerationEnabled=!0,Hs=e(1),Ub=e(2),zb=e(3),$b=e(5);function e(t){return function(i){let s=Zr[vi++];if(s==null){if(Me)return Mn(i);let o=_.byteOffset,l=r(b-t+o,dt+o,_.buffer);if(typeof l=="string")s=l,Zr=Mu;else if(Zr=l,vi=1,It=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,ut=b,It=b+a,b+=i,s.slice(0,i))}}}function Mn(r){let e;if(r<16&&(e=Lu(r)))return e;if(r>64&&_u)return _u.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 Mb(r){let e=new Array(r);for(let t=0;t<r;t++)e[t]=De();return he.freezeData?Object.freeze(e):e}function Pb(r){if(he.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=Qb();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 Hb(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 Lu(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 Nb(){let r=_[b++],e;if(r<192)e=r-160;else switch(r){case 217:e=_[b++];break;case 218:e=oe.getUint16(b),b+=2;break;case 219:e=oe.getUint32(b),b+=4;break;default:throw new Error("Expected string")}return Mn(e)}function Ru(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 Lb=new Array(4096);function Qb(){let r=_[b++];if(r>=160&&r<192){if(r=r-160,It>=b)return tr.slice(b-ut,(b+=r)-ut);if(!(It==0&&dt<180))return Hs(r)}else return b--,Zb(De());let e=(r<<5^(r>1?oe.getUint16(b):r>0?_[b]:0))&4095,t=Lb[e],n=b,i=b+r-3,s,a=0;if(t&&t.bytes==r){for(;n<i;){if(s=oe.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=[],Lb[e]=t,t.bytes=r;n<i;)s=oe.getUint32(n),t.push(s),n+=4;for(i+=3;n<i;)s=_[n++],t.push(s);let o=r<16?Lu(r):Hb(r);return o!=null?t.string=o:t.string=Hs(r)}function Zb(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 qb=(r,e)=>{let t=De().map(Zb),n=r;e!==void 0&&(r=r<32?-((e<<5)+r):(e<<5)+r,t.highByte=e);let i=le[r];return i&&(i.isShared||Ir)&&((le.restoreStructures||(le.restoreStructures=[]))[r]=i),le[r]=t,t.read=Nu(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 Jb={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError:typeof AggregateError=="function"?AggregateError:null};ze[101]=()=>{let r=De();if(!Jb[r[0]]){let e=Error(r[1],{cause:r[2]});return e.name=r[0],e}return Jb[r[0]](r[1],{cause:r[2]})};ze[105]=r=>{if(he.structuredClone===!1)throw new Error("Structured clone extension is disabled");let e=oe.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=oe.getUint32(b-4),t=rr.get(e);return t.used=!0,t.target};ze[115]=()=>new Set(De());var Xb=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(r=>r+"Array"),_A=typeof globalThis=="object"?globalThis:window;ze[116]=r=>{let e=r[0],t=Uint8Array.prototype.slice.call(r,1).buffer,n=Xb[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 _A[n](t)};ze[120]=()=>{let r=De();return new RegExp(r[0],r[1])};var MA=[];ze[98]=r=>{let e=(r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3],t=b;return b+=e-r.length,Me=MA,Me=[Nb(),Nb()],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 eg(r){he&&he._onSaveState&&he._onSaveState();let e=dt,t=b,n=vi,i=ut,s=It,a=tr,o=Zr,l=rr,c=Me,u=new Uint8Array(_.slice(0,dt)),d=le,f=le.slice(0,le.length),p=he,y=Ir,g=r();return dt=e,b=t,vi=n,ut=i,It=s,tr=a,Zr=o,rr=l,Me=c,_=u,Ir=y,le=d,le.splice(0,le.length,...f),he=p,oe=new DataView(_.buffer,_.byteOffset,_.byteLength),g}function Qs(){_=null,rr=null,le=null}function PA(r){r.unpack?ze[r.type]=r.unpack:ze[r.type]=r}var ra=new Array(147);for(let r=0;r<256;r++)ra[r]=+("1e"+Math.floor(45.15-r*.30103));var NA=nr,na=new nr({useRecords:!1}),LA=na.unpack,qA=na.unpackMultiple,JA=na.unpack,tg={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},rg=new Float32Array(1),Fb=new Uint8Array(rg.buffer,0,4);function FA(r){rg[0]=r;let e=ra[(Fb[3]&127)<<1|Fb[2]>>7];return(e*r+(r>0?.5:-.5)>>0)/e}nr.SUPPORTS_STRUCT_HOOKS=!0;var zs;try{zs=new TextEncoder}catch{}var Zs,Xs,_n=typeof Buffer<"u",Us=_n?function(r){return Buffer.allocUnsafeSlow(r)}:Uint8Array,ng=_n?Buffer:Uint8Array,Vb=_n?4294967296:2144337920,K,gi,ge,v=0,Ue,Te=null,VA=21760,GA=/[\u0080-\uFFFF]/,Cn=Symbol("record-id"),ir=class extends nr{constructor(e){super(e),this.offset=0;let t,n,i,s,a=ng.prototype.utf8Write?function(m,w){return K.utf8Write(m,w,K.byteLength-w)}:zs&&zs.encodeInto?function(m,w){return zs.encodeInto(m,K.subarray(w)).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=[],E=0,k=0;this.pack=this.encode=function(m,w){if(K||(K=new Us(8192),ge=K.dataView||(K.dataView=new DataView(K.buffer,0,8192)),v=0),Ue=K.length-10,Ue-v<2048?(K=new Us(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,w&og&&(v+=w&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 j=i.sharedLength||0;if(j>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 A=0;A<j;A++){let W=i[A];if(!W)continue;let q,G=i.transitions;for(let ie=0,ye=W.length;ie<ye;ie++){let jt=W[ie];q=G[jt],q||(q=G[jt]=Object.create(null)),G=q}G[Cn]=A+64}this.lastNamedStructuresLength=j}l||(i.nextId=j+64)}n&&(n=!1);let T;try{o._writeStruct&&m&&typeof m=="object"?m.constructor===Object?C(m):m.constructor!==Map&&!Array.isArray(m)&&!Xs.some(A=>m instanceof A)?C(m.toJSON?m.toJSON():m):D(m):D(m);let j=Te;if(Te&&Yb(t,D,0),s&&s.idsToInsert){let A=s.idsToInsert.sort((ie,ye)=>ie.offset>ye.offset?1:-1),W=A.length,q=-1;for(;j&&W>0;){let ie=A[--W].offset+t;ie<j.stringsPosition+t&&q===-1&&(q=0),ie>j.position+t?q>=0&&(q+=6):(q>=0&&(ge.setUint32(j.position+t,ge.getUint32(j.position+t)+q),q=-1),j=j.previous,W++)}q>=0&&j&&ge.setUint32(j.position+t,ge.getUint32(j.position+t)+q),v+=A.length*6,v>Ue&&V(v),o.offset=v;let G=YA(K.subarray(t,v),A);return s=null,G}return o.offset=v,w&sg?(K.start=t,K.end=v,K):K.subarray(t,v)}catch(j){throw T=j,j}finally{if(i&&(I(),n&&o.saveStructures)){let j=i.sharedLength||0,A=K.subarray(t,v),W=(o._prepareStructures||WA)(i,o);if(!T)return o.saveStructures(W,W.isCompatible)===!1?o.pack(m,w):(o.lastNamedStructuresLength=j,K.length>1073741824&&(K=null),A)}K.length>1073741824&&(K=null),w&ag&&(v=t)}};let I=()=>{k<10&&k++;let m=i.sharedLength||0;if(i.length>m&&!l&&(i.length=m),E>1e4)i.transitions=null,k=0,E=0,g.length>0&&(g=[]);else if(g.length>0&&!l){for(let w=0,T=g.length;w<T;w++)g[w][Cn]=0;g=[]}},R=m=>{var w=m.length;w<16?K[v++]=144|w:w<65536?(K[v++]=220,K[v++]=w>>8,K[v++]=w&255):(K[v++]=221,ge.setUint32(v,w),v+=4);for(let T=0;T<w;T++)D(m[T])},D=m=>{v>Ue&&(K=V(v));var w=typeof m,T;if(w==="string"){let j=m.length;if(Te&&j>=4&&j<4096){if((Te.size+=j)>VA){let G,ie=(Te[0]?Te[0].length*3+Te[1].length:0)+10;v+ie>Ue&&(K=V(v+ie));let ye;Te.position?(ye=Te,K[v]=200,v+=3,K[v++]=98,G=v-t,v+=4,Yb(t,D,0),ge.setUint16(G+t-3,v-t-G)):(K[v++]=214,K[v++]=98,G=v-t,v+=4),Te=["",""],Te.previous=ye,Te.size=0,Te.position=G}let q=GA.test(m);Te[q?0:1]+=m,K[v++]=193,D(q?-j:j);return}let A;j<32?A=1:j<256?A=2:j<65536?A=3:A=5;let W=j*3;if(v+W>Ue&&(K=V(v+W)),j<64||!a){let q,G,ie,ye=v+A;for(q=0;q<j;q++)G=m.charCodeAt(q),G<128?K[ye++]=G:G<2048?(K[ye++]=G>>6|192,K[ye++]=G&63|128):(G&64512)===55296&&((ie=m.charCodeAt(q+1))&64512)===56320?(G=65536+((G&1023)<<10)+(ie&1023),q++,K[ye++]=G>>18|240,K[ye++]=G>>12&63|128,K[ye++]=G>>6&63|128,K[ye++]=G&63|128):(K[ye++]=G>>12|224,K[ye++]=G>>6&63|128,K[ye++]=G&63|128);T=ye-v-A}else T=a(m,v+A);T<32?K[v++]=160|T:T<256?(A<2&&K.copyWithin(v+2,v+1,v+1+T),K[v++]=217,K[v++]=T):T<65536?(A<3&&K.copyWithin(v+3,v+2,v+2+T),K[v++]=218,K[v++]=T>>8,K[v++]=T&255):(A<5&&K.copyWithin(v+5,v+3,v+3+T),K[v++]=219,ge.setUint32(v,T),v+=4),v+=T}else if(w==="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 j;if((j=this.useFloat32)>0&&m<4294967296&&m>=-2147483648){K[v++]=202,ge.setFloat32(v,m);let A;if(j<4||(A=m*ra[(K[v]&127)<<1|K[v+1]>>7])>>0===A){v+=4;return}else v--}K[v++]=203,ge.setFloat64(v,m),v+=8}else if(w==="object"||w==="function")if(!m)K[v++]=192;else{if(s){let A=s.get(m);if(A){if(!A.id){let W=s.idsToInsert||(s.idsToInsert=[]);A.id=W.push(A)}K[v++]=214,K[v++]=112,ge.setUint32(v,A.id),v+=4;return}else s.set(m,{offset:v-t})}let j=m.constructor;if(j===Object)S(m);else if(j===Array)R(m);else if(j===Map)if(this.mapAsEmptyObject)K[v++]=128;else{T=m.size,T<16?K[v++]=128|T:T<65536?(K[v++]=222,K[v++]=T>>8,K[v++]=T&255):(K[v++]=223,ge.setUint32(v,T),v+=4);for(let[A,W]of m)D(A),D(W)}else{for(let A=0,W=Zs.length;A<W;A++){let q=Xs[A];if(m instanceof q){let G=Zs[A];if(G.write){G.type&&(K[v++]=212,K[v++]=G.type,K[v++]=0);let $t=G.write.call(this,m);$t===m?Array.isArray(m)?R(m):S(m):D($t);return}let ie=K,ye=ge,jt=v;K=null;let At;try{At=G.pack.call(this,m,$t=>(K=ie,ie=null,v+=$t,v>Ue&&V(v),{target:K,targetView:ge,position:v-$t}),D)}finally{ie&&(K=ie,ge=ye,v=jt,Ue=K.length-10)}At&&(At.length+v>Ue&&V(At.length+v),v=Gb(At,K,v,G.type));return}}if(Array.isArray(m))R(m);else{if(m.toJSON){let A=m.toJSON();if(A!==m)return D(A)}if(w==="function")return D(this.writeFunction&&this.writeFunction(m));S(m)}}}else if(w==="boolean")K[v++]=m?195:194;else if(w==="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 D(m.toString());if(this.useBigIntExtension||this.moreTypes){let j=m<0?BigInt(-1):BigInt(0),A;if(m>>BigInt(65536)===j){let W=BigInt(18446744073709552e3)-BigInt(1),q=[];for(;q.push(m&W),m>>BigInt(63)!==j;)m>>=BigInt(64);A=new Uint8Array(new BigUint64Array(q).buffer),A.reverse()}else{let W=m<0,q=(W?~m:m).toString(16);if(q.length%2?q="0"+q:parseInt(q.charAt(0),16)>=8&&(q="00"+q),_n)A=Buffer.from(q,"hex");else{A=new Uint8Array(q.length/2);for(let G=0;G<A.length;G++)A[G]=parseInt(q.slice(G*2,G*2+2),16)}if(W)for(let G=0;G<A.length;G++)A[G]=~A[G]}A.length+v>Ue&&V(A.length+v),v=Gb(A,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(w==="undefined")this.encodeUndefinedAsNil?K[v++]=192:(K[v++]=212,K[v++]=0,K[v++]=0);else throw new Error("Unknown type: "+w)},Y=this.variableMapSize||this.coercibleKeyAsNumber||this.skipValues?m=>{let w;if(this.skipValues){w=[];for(let A in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(A))&&!this.skipValues.includes(m[A])&&w.push(A)}else w=Object.keys(m);let T=w.length;T<16?K[v++]=128|T:T<65536?(K[v++]=222,K[v++]=T>>8,K[v++]=T&255):(K[v++]=223,ge.setUint32(v,T),v+=4);let j;if(this.coercibleKeyAsNumber)for(let A=0;A<T;A++){j=w[A];let W=Number(j);D(isNaN(W)?j:W),D(m[j])}else for(let A=0;A<T;A++)D(j=w[A]),D(m[j])}:m=>{K[v++]=222;let w=v-t;v+=2;let T=0;for(let j in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(j))&&(D(j),D(m[j]),T++);if(T>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[w+++t]=T>>8,K[w+t]=T&255},ae=this.useRecords===!1?Y:e.progressiveRecords&&!f?m=>{let w,T=i.transitions||(i.transitions=Object.create(null)),j=v++-t,A;for(let W in m)if(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(W)){if(w=T[W],w)T=w;else{let q=Object.keys(m),G=T;T=i.transitions;let ie=0;for(let ye=0,jt=q.length;ye<jt;ye++){let At=q[ye];w=T[At],w||(w=T[At]=Object.create(null),ie++),T=w}j+t+1==v?(v--,M(T,q,ie)):O(T,q,j,ie),A=!0,T=G[W]}D(m[W])}if(!A){let W=T[Cn];W?K[j+t]=W:O(T,Object.keys(m),j,0)}}:m=>{let w,T=i.transitions||(i.transitions=Object.create(null)),j=0;for(let W in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(W))&&(w=T[W],w||(w=T[W]=Object.create(null),j++),T=w);let A=T[Cn];A?A>=96&&f?(K[v++]=((A-=96)&31)+96,K[v++]=A>>5):K[v++]=A:M(T,T.__keys__||Object.keys(m),j);for(let W in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(W))&&D(m[W])},x=typeof this.useRecords=="function"&&this.useRecords,S=x?m=>{x(m)?ae(m):Y(m)}:ae,C=m=>{let w=o._writeStruct(m,K,t,v,i,V,(T,j,A)=>{if(A)return n=!0;v=j;let W=K;return D(T),I(),W!==K?{position:v,targetView:ge,target:K}:v});if(w===0)return S(m);v=w},V=m=>{let w;if(m>16777216){if(m-t>Vb)throw new Error("Packed buffer would be larger than maximum buffer size");w=Math.min(Vb,Math.round(Math.max((m-t)*(m>67108864?1.25:2),4194304)/4096)*4096)}else w=(Math.max(m-t<<2,K.length-1)>>12)+1<<12;let T=new Us(w);return ge=T.dataView||(T.dataView=new DataView(T.buffer,0,w)),m=Math.min(m,K.length),K.copy?K.copy(T,0,t,m):T.set(K.slice(t,m)),v-=t,t=0,Ue=T.length-10,K=T},M=(m,w,T)=>{let j=i.nextId;j||(j=64),j<p&&this.shouldShareStructure&&!this.shouldShareStructure(w)?(j=i.nextOwnId,j<y||(j=p),i.nextOwnId=j+1):(j>=y&&(j=p),i.nextId=j+1);let A=w.highByte=j>=96&&f?j-96>>5:-1;m[Cn]=j,m.__keys__=w,i[j-64]=w,j<p?(w.isShared=!0,i.sharedLength=j-63,n=!0,A>=0?(K[v++]=(j&31)+96,K[v++]=A):K[v++]=j):(A>=0?(K[v++]=213,K[v++]=114,K[v++]=(j&31)+96,K[v++]=A):(K[v++]=212,K[v++]=114,K[v++]=j),T&&(E+=k*T),g.length>=d&&(g.shift()[Cn]=0),g.push(m),D(w))},O=(m,w,T,j)=>{let A=K,W=v,q=Ue,G=t;K=gi,v=0,t=0,K||(gi=K=new Us(8192)),Ue=K.length-10,M(m,w,j),gi=K;let ie=v;if(K=A,v=W,Ue=q,t=G,ie>1){let ye=v+ie-1;ye>Ue&&V(ye);let jt=T+t;K.copyWithin(jt+ie,jt+1,v),K.set(gi.slice(0,ie),jt),v=ye}else K[T+t]=gi[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=[])}};Xs=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,DataView,$s];Zs=[{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?Ou(r,16,e):Cu(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let t=r.constructor;t!==ng&&this.moreTypes?Ou(r,Xb.indexOf(t.name),e):Cu(r,e)}},{pack(r,e){this.moreTypes?Ou(r,17,e):Cu(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let{target:t,position:n}=e(1);t[n]=193}}];function Ou(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 Cu(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 Gb(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 YA(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 Yb(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 BA(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)");Xs.unshift(r.Class),Zs.unshift(r)}PA(r)}function WA(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 ig=new ir({useRecords:!1}),UA=ig.pack,zA=ig.pack,$A=ir,{NEVER:HA,ALWAYS:QA,DECIMAL_ROUND:ZA,DECIMAL_FIT:XA}=tg,sg=512,ag=1024,og=2048,ea=class extends Bb.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()}},ta=class extends Bb.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 eD(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 tD(r,e);if(typeof r.then=="function"||typeof r[Symbol.asyncIterator]=="function")return rD(r,e);throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a Promise")}function*tD(r,e){let t=new ir(e);for(let n of r)yield t.pack(n)}async function*rD(r,e){let t=new ir(e);for await(let n of r)yield t.pack(n)}function nD(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 iD=nD,sD=eD,aD=!1,oD=!0,lD=process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!lD){let r;try{typeof B=="function"?r=Db():r=RA.createRequire(typeof document>"u"?new(B("url")).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("node.cjs",document.baseURI).href)("msgpackr-extract"),r&&CA(r.extractStrings)}catch{}}de.ALWAYS=QA;de.C1=Pu;de.DECIMAL_FIT=XA;de.DECIMAL_ROUND=ZA;de.Decoder=NA;de.DecoderStream=ta;de.Encoder=$A;de.EncoderStream=ea;de.FLOAT32_OPTIONS=tg;de.NEVER=HA;de.Packr=ir;de.PackrStream=ea;de.RESERVE_START_SPACE=og;de.RESET_BUFFER_MODE=ag;de.REUSE_BUFFER_MODE=sg;de.Unpackr=nr;de.UnpackrStream=ta;de.addExtension=BA;de.clearSource=Qs;de.decode=JA;de.decodeIter=iD;de.encode=zA;de.encodeIter=sD;de.mapsAsObjects=oD;de.pack=UA;de.roundFloat32=FA;de.unpack=LA;de.unpackMultiple=qA;de.useRecords=aD});var sa=h(ia=>{"use strict";Object.defineProperty(ia,"__esModule",{value:!0});ia.version=void 0;ia.version="5.76.6"});var Ju=h(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.Scripts=void 0;Ki.raw2NextJobData=aa;var cD=lg(),uD=new cD.Packr({useRecords:!1,encodeUndefinedAsNil:!0}),Pe=uD.pack,Ot=st(),xr=ct(),dD=sa(),pD=Js(),qu=class{constructor(e){this.queue=e,this.version=dD.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,E;let k=this.queue.keys,I=this.queue.opts,R=s==="completed"?I.removeOnComplete:I.removeOnFail,D=this.queue.toKey(`metrics:${s}`),Y=this.moveToFinishedKeys;Y[10]=k[s],Y[11]=this.queue.toKey((u=e.id)!==null&&u!==void 0?u:""),Y[12]=D,Y[13]=this.queue.keys.marker;let ae=this.getKeepJobs(i,R),x=[e.id,o,n,typeof t>"u"?"null":t,s,!l||this.queue.closing?0:1,k[""],Pe({token:a,name:I.name,keepJobs:ae,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:!!(!((E=e.opts)===null||E===void 0)&&E.removeDependencyOnFailure)}),c?Pe((0,xr.objectToFlatArray)(c)):void 0];return Y.concat(x)}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 aa(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 aa(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 aa(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[E,k]=f[g];try{y.push({id:E,v:JSON.parse(k)})}catch(I){y.push({id:E,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 Ot.ErrorCode.JobNotExist:a=new Error(`Missing key for job ${t}. ${i}`);break;case Ot.ErrorCode.JobLockNotExist:a=new Error(`Missing lock for job ${t}. ${i}`);break;case Ot.ErrorCode.JobNotInState:a=new Error(`Job ${t} is not in the ${s} state. ${i}`);break;case Ot.ErrorCode.JobPendingChildren:a=new Error(`Job ${t} has pending dependencies. ${i}`);break;case Ot.ErrorCode.ParentJobNotExist:a=new Error(`Missing key for parent job ${n}. ${i}`);break;case Ot.ErrorCode.JobLockMismatch:a=new Error(`Lock mismatch for job ${t}. Cmd ${i} from ${s}`);break;case Ot.ErrorCode.ParentJobCannotBeReplaced:a=new Error(`The parent job ${n} cannot be replaced. ${i}`);break;case Ot.ErrorCode.JobBelongsToJobScheduler:a=new Error(`Job ${t} belongs to a job scheduler and cannot be removed directly. ${i}`);break;case Ot.ErrorCode.JobHasFailedChildren:a=new pD.UnrecoverableError(`Cannot complete job ${t} because it has at least one failed child. ${i}`);break;case Ot.ErrorCode.SchedulerJobIdCollision:a=new Error(`Cannot create job scheduler iteration - job ID already exists. ${i}`);break;case Ot.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)}};Ki.Scripts=qu;function aa(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 la=h(oa=>{"use strict";Object.defineProperty(oa,"__esModule",{value:!0});oa.createScripts=void 0;var fD=Ju(),hD=r=>new fD.Scripts({keys:r.keys,client:r.client,get redisVersion(){return r.redisVersion},toKey:r.toKey,opts:r.opts,closing:r.closing,databaseType:r.databaseType});oa.createScripts=hD});var Pn=h(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.Job=wr.PRIORITY_LIMIT=void 0;var cg=(Qe(),nt(He)),yD=B("util"),tt=ct(),mD=la(),ug=Lc(),bD=vu(),at=st(),gD=(0,yD.debuglog)("bull");wr.PRIORITY_LIMIT=2**21;var Fu=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=cg.__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=ug.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=vD(t.stacktrace),typeof t.returnvalue=="string"&&(a.returnvalue=dg(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,mD.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 cg.__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(at.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 bD.UnrecoverableError||e.name=="UnrecoverableError")){let t=this.queue.opts,n=await ug.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(at.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={[at.TelemetryAttributes.QueueName]:this.queue.name,[at.TelemetryAttributes.JobName]:this.name,[at.TelemetryAttributes.JobStatus]:e},o={completed:at.MetricNames.JobsCompleted,failed:at.MetricNames.JobsFailed,delayed:at.MetricNames.JobsDelayed,retried:at.MetricNames.JobsRetried,waiting:at.MetricNames.JobsWaiting,"waiting-children":at.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(at.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,E)=>{switch(g){case"processed":{l=o[E][1][0];let k=o[E][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[E][1];break}case"ignored":{p=o[E][1][0];let k=o[E][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[E][1][0],d=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}:{}),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:dg(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({[at.TelemetryAttributes.JobName]:this.name,[at.TelemetryAttributes.JobId]:this.id})}};wr.Job=Fu;function vD(r){if(!r)return[];let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);return e===tt.errorObject||!(e instanceof Array)?[]:e}function dg(r){let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);if(e!==tt.errorObject)return e;gD("corrupted returnvalue: "+r,e)}});var ua=h(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.QueueKeys=void 0;var Vu=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}`}};ca.QueueKeys=Vu});var pg=h(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.addDelayedJob=void 0;var KD=`--[[
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
- `;da.addDelayedJob={name:"addDelayedJob",content:gD,keys:6}});var dg=h(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.addJobScheduler=void 0;var vD=`--[[
733
+ `;da.addDelayedJob={name:"addDelayedJob",content:KD,keys:6}});var fg=h(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.addJobScheduler=void 0;var SD=`--[[
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
- `;pa.addJobScheduler={name:"addJobScheduler",content:vD,keys:11}});var pg=h(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.addLog=void 0;var KD=`--[[
1307
+ `;pa.addJobScheduler={name:"addJobScheduler",content:SD,keys:11}});var hg=h(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.addLog=void 0;var ED=`--[[
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
- `;fa.addLog={name:"addLog",content:KD,keys:2}});var fg=h(ha=>{"use strict";Object.defineProperty(ha,"__esModule",{value:!0});ha.addParentJob=void 0;var SD=`--[[
1330
+ `;fa.addLog={name:"addLog",content:ED,keys:2}});var yg=h(ha=>{"use strict";Object.defineProperty(ha,"__esModule",{value:!0});ha.addParentJob=void 0;var kD=`--[[
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
- `;ha.addParentJob={name:"addParentJob",content:SD,keys:6}});var hg=h(ya=>{"use strict";Object.defineProperty(ya,"__esModule",{value:!0});ya.addPrioritizedJob=void 0;var ED=`--[[
1795
+ `;ha.addParentJob={name:"addParentJob",content:kD,keys:6}});var mg=h(ya=>{"use strict";Object.defineProperty(ya,"__esModule",{value:!0});ya.addPrioritizedJob=void 0;var ID=`--[[
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
- `;ya.addPrioritizedJob={name:"addPrioritizedJob",content:ED,keys:9}});var yg=h(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.addRepeatableJob=void 0;var kD=`--[[
2333
+ `;ya.addPrioritizedJob={name:"addPrioritizedJob",content:ID,keys:9}});var bg=h(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.addRepeatableJob=void 0;var xD=`--[[
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
- `;ma.addRepeatableJob={name:"addRepeatableJob",content:kD,keys:2}});var mg=h(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.addStandardJob=void 0;var ID=`--[[
2561
+ `;ma.addRepeatableJob={name:"addRepeatableJob",content:xD,keys:2}});var gg=h(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.addStandardJob=void 0;var wD=`--[[
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
- `;ba.addStandardJob={name:"addStandardJob",content:ID,keys:9}});var bg=h(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.changeDelay=void 0;var xD=`--[[
3103
+ `;ba.addStandardJob={name:"addStandardJob",content:wD,keys:9}});var vg=h(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.changeDelay=void 0;var TD=`--[[
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`;ga.changeDelay={name:"changeDelay",content:xD,keys:4}});var gg=h(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.changePriority=void 0;var wD=`--[[
3200
+ end`;ga.changeDelay={name:"changeDelay",content:TD,keys:4}});var Kg=h(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.changePriority=void 0;var jD=`--[[
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
- `;va.changePriority={name:"changePriority",content:wD,keys:7}});var vg=h(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.cleanJobsInSet=void 0;var TD=`--[[
3318
+ `;va.changePriority={name:"changePriority",content:jD,keys:7}});var Sg=h(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.cleanJobsInSet=void 0;var AD=`--[[
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
- `;Ka.cleanJobsInSet={name:"cleanJobsInSet",content:TD,keys:3}});var Kg=h(Sa=>{"use strict";Object.defineProperty(Sa,"__esModule",{value:!0});Sa.drain=void 0;var jD=`--[[
3677
+ `;Ka.cleanJobsInSet={name:"cleanJobsInSet",content:AD,keys:3}});var Eg=h(Sa=>{"use strict";Object.defineProperty(Sa,"__esModule",{value:!0});Sa.drain=void 0;var DD=`--[[
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
- `;Sa.drain={name:"drain",content:jD,keys:5}});var Sg=h(Ea=>{"use strict";Object.defineProperty(Ea,"__esModule",{value:!0});Ea.extendLock=void 0;var AD=`--[[
3942
+ `;Sa.drain={name:"drain",content:DD,keys:5}});var kg=h(Ea=>{"use strict";Object.defineProperty(Ea,"__esModule",{value:!0});Ea.extendLock=void 0;var RD=`--[[
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
- `;Ea.extendLock={name:"extendLock",content:AD,keys:2}});var Eg=h(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.extendLocks=void 0;var DD=`--[[
3962
+ `;Ea.extendLock={name:"extendLock",content:RD,keys:2}});var Ig=h(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.extendLocks=void 0;var OD=`--[[
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
- `;ka.extendLocks={name:"extendLocks",content:DD,keys:1}});var kg=h(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.getCounts=void 0;var RD=`--[[
4002
+ `;ka.extendLocks={name:"extendLocks",content:OD,keys:1}});var xg=h(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.getCounts=void 0;var CD=`--[[
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
- `;Ia.getCounts={name:"getCounts",content:RD,keys:1}});var Ig=h(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.getCountsPerPriority=void 0;var OD=`--[[
4034
+ `;Ia.getCounts={name:"getCounts",content:CD,keys:1}});var wg=h(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.getCountsPerPriority=void 0;var _D=`--[[
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
- `;xa.getCountsPerPriority={name:"getCountsPerPriority",content:OD,keys:4}});var xg=h(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.getDependencyCounts=void 0;var CD=`--[[
4070
+ `;xa.getCountsPerPriority={name:"getCountsPerPriority",content:_D,keys:4}});var Tg=h(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.getDependencyCounts=void 0;var MD=`--[[
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
- `;wa.getDependencyCounts={name:"getDependencyCounts",content:CD,keys:4}});var wg=h(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.getJobScheduler=void 0;var _D=`--[[
4097
+ `;wa.getDependencyCounts={name:"getDependencyCounts",content:MD,keys:4}});var jg=h(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.getJobScheduler=void 0;var PD=`--[[
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
- `;Ta.getJobScheduler={name:"getJobScheduler",content:_D,keys:1}});var Tg=h(ja=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});ja.getMetrics=void 0;var MD=`--[[
4110
+ `;Ta.getJobScheduler={name:"getJobScheduler",content:PD,keys:1}});var Ag=h(ja=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});ja.getMetrics=void 0;var ND=`--[[
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
- `;ja.getMetrics={name:"getMetrics",content:MD,keys:2}});var jg=h(Aa=>{"use strict";Object.defineProperty(Aa,"__esModule",{value:!0});Aa.getRanges=void 0;var PD=`--[[
4125
+ `;ja.getMetrics={name:"getMetrics",content:ND,keys:2}});var Dg=h(Aa=>{"use strict";Object.defineProperty(Aa,"__esModule",{value:!0});Aa.getRanges=void 0;var LD=`--[[
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
- `;Aa.getRanges={name:"getRanges",content:PD,keys:1}});var Ag=h(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.getRateLimitTtl=void 0;var ND=`--[[
4188
+ `;Aa.getRanges={name:"getRanges",content:LD,keys:1}});var Rg=h(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.getRateLimitTtl=void 0;var qD=`--[[
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
- `;Da.getRateLimitTtl={name:"getRateLimitTtl",content:ND,keys:2}});var Dg=h(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.getState=void 0;var LD=`--[[
4222
+ `;Da.getRateLimitTtl={name:"getRateLimitTtl",content:qD,keys:2}});var Og=h(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.getState=void 0;var JD=`--[[
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
- `;Ra.getState={name:"getState",content:LD,keys:8}});var Rg=h(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.getStateV2=void 0;var qD=`--[[
4285
+ `;Ra.getState={name:"getState",content:JD,keys:8}});var Cg=h(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.getStateV2=void 0;var FD=`--[[
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:qD,keys:8}});var Og=h(Ca=>{"use strict";Object.defineProperty(Ca,"__esModule",{value:!0});Ca.isFinished=void 0;var JD=`--[[
4332
+ `;Oa.getStateV2={name:"getStateV2",content:FD,keys:8}});var _g=h(Ca=>{"use strict";Object.defineProperty(Ca,"__esModule",{value:!0});Ca.isFinished=void 0;var VD=`--[[
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
- `;Ca.isFinished={name:"isFinished",content:JD,keys:3}});var Cg=h(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.isJobInList=void 0;var FD=`--[[
4371
+ `;Ca.isFinished={name:"isFinished",content:VD,keys:3}});var Mg=h(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.isJobInList=void 0;var GD=`--[[
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
- `;_a.isJobInList={name:"isJobInList",content:FD,keys:1}});var _g=h(Ma=>{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.isMaxed=void 0;var VD=`--[[
4393
+ `;_a.isJobInList={name:"isJobInList",content:GD,keys:1}});var Pg=h(Ma=>{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.isMaxed=void 0;var YD=`--[[
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
- `;Ma.isMaxed={name:"isMaxed",content:VD,keys:2}});var Mg=h(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.moveJobFromActiveToWait=void 0;var GD=`--[[
4417
+ `;Ma.isMaxed={name:"isMaxed",content:YD,keys:2}});var Ng=h(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.moveJobFromActiveToWait=void 0;var BD=`--[[
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
- `;Pa.moveJobFromActiveToWait={name:"moveJobFromActiveToWait",content:GD,keys:9}});var Pg=h(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.moveJobsToWait=void 0;var YD=`--[[
4541
+ `;Pa.moveJobFromActiveToWait={name:"moveJobFromActiveToWait",content:BD,keys:9}});var Lg=h(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.moveJobsToWait=void 0;var WD=`--[[
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
- `;Na.moveJobsToWait={name:"moveJobsToWait",content:YD,keys:8}});var Ng=h(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.moveStalledJobsToWait=void 0;var BD=`--[[
4649
+ `;Na.moveJobsToWait={name:"moveJobsToWait",content:WD,keys:8}});var qg=h(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.moveStalledJobsToWait=void 0;var UD=`--[[
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
- `;La.moveStalledJobsToWait={name:"moveStalledJobsToWait",content:BD,keys:8}});var Lg=h(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.moveToActive=void 0;var WD=`--[[
4824
+ `;La.moveStalledJobsToWait={name:"moveStalledJobsToWait",content:UD,keys:8}});var Jg=h(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.moveToActive=void 0;var zD=`--[[
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
- `;qa.moveToActive={name:"moveToActive",content:WD,keys:11}});var qg=h(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.moveToDelayed=void 0;var UD=`--[[
5058
+ `;qa.moveToActive={name:"moveToActive",content:zD,keys:11}});var Fg=h(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.moveToDelayed=void 0;var $D=`--[[
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
- `;Ja.moveToDelayed={name:"moveToDelayed",content:UD,keys:12}});var Jg=h(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});Fa.moveToFinished=void 0;var zD=`--[[
5447
+ `;Ja.moveToDelayed={name:"moveToDelayed",content:$D,keys:12}});var Vg=h(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});Fa.moveToFinished=void 0;var HD=`--[[
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
- `;Fa.moveToFinished={name:"moveToFinished",content:zD,keys:14}});var Fg=h(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});Va.moveToWaitingChildren=void 0;var $D=`--[[
6474
+ `;Fa.moveToFinished={name:"moveToFinished",content:HD,keys:14}});var Gg=h(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});Va.moveToWaitingChildren=void 0;var QD=`--[[
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
- `;Va.moveToWaitingChildren={name:"moveToWaitingChildren",content:$D,keys:7}});var Vg=h(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.obliterate=void 0;var HD=`--[[
6571
+ `;Va.moveToWaitingChildren={name:"moveToWaitingChildren",content:QD,keys:7}});var Yg=h(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.obliterate=void 0;var ZD=`--[[
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
- `;Ga.obliterate={name:"obliterate",content:HD,keys:2}});var Gg=h(Ya=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});Ya.paginate=void 0;var QD=`--[[
6905
+ `;Ga.obliterate={name:"obliterate",content:ZD,keys:2}});var Bg=h(Ya=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});Ya.paginate=void 0;var XD=`--[[
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
- `;Ya.paginate={name:"paginate",content:QD,keys:1}});var Yg=h(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.pause=void 0;var ZD=`--[[
7005
+ `;Ya.paginate={name:"paginate",content:XD,keys:1}});var Wg=h(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.pause=void 0;var eR=`--[[
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
- `;Ba.pause={name:"pause",content:ZD,keys:7}});var Bg=h(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});Wa.promote=void 0;var XD=`--[[
7062
+ `;Ba.pause={name:"pause",content:eR,keys:7}});var Ug=h(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});Wa.promote=void 0;var tR=`--[[
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
- `;Wa.promote={name:"promote",content:XD,keys:9}});var Wg=h(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.releaseLock=void 0;var eR=`--[[
7162
+ `;Wa.promote={name:"promote",content:tR,keys:9}});var zg=h(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.releaseLock=void 0;var rR=`--[[
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
- `;Ua.releaseLock={name:"releaseLock",content:eR,keys:1}});var Ug=h(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.removeChildDependency=void 0;var tR=`--[[
7177
+ `;Ua.releaseLock={name:"releaseLock",content:rR,keys:1}});var $g=h(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.removeChildDependency=void 0;var nR=`--[[
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`;za.removeChildDependency={name:"removeChildDependency",content:tR,keys:1}});var zg=h($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});$a.removeDeduplicationKey=void 0;var rR=`--[[
7332
+ end`;za.removeChildDependency={name:"removeChildDependency",content:nR,keys:1}});var Hg=h($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});$a.removeDeduplicationKey=void 0;var iR=`--[[
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
- `;$a.removeDeduplicationKey={name:"removeDeduplicationKey",content:rR,keys:1}});var $g=h(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.removeJob=void 0;var nR=`--[[
7349
+ `;$a.removeDeduplicationKey={name:"removeDeduplicationKey",content:iR,keys:1}});var Qg=h(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.removeJob=void 0;var sR=`--[[
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
- `;Ha.removeJob={name:"removeJob",content:nR,keys:2}});var Hg=h(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.removeJobScheduler=void 0;var iR=`--[[
7691
+ `;Ha.removeJob={name:"removeJob",content:sR,keys:2}});var Zg=h(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.removeJobScheduler=void 0;var aR=`--[[
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
- `;Qa.removeJobScheduler={name:"removeJobScheduler",content:iR,keys:3}});var Qg=h(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.removeOrphanedJobs=void 0;var sR=`--[[
7730
+ `;Qa.removeJobScheduler={name:"removeJobScheduler",content:aR,keys:3}});var Xg=h(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.removeOrphanedJobs=void 0;var oR=`--[[
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
- `;Za.removeOrphanedJobs={name:"removeOrphanedJobs",content:sR,keys:1}});var Zg=h(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.removeRepeatable=void 0;var aR=`--[[
7797
+ `;Za.removeOrphanedJobs={name:"removeOrphanedJobs",content:oR,keys:1}});var e0=h(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.removeRepeatable=void 0;var lR=`--[[
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
- `;Xa.removeRepeatable={name:"removeRepeatable",content:aR,keys:3}});var Xg=h(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.removeUnprocessedChildren=void 0;var oR=`--[[
7850
+ `;Xa.removeRepeatable={name:"removeRepeatable",content:lR,keys:3}});var t0=h(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.removeUnprocessedChildren=void 0;var cR=`--[[
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
- `;eo.removeUnprocessedChildren={name:"removeUnprocessedChildren",content:oR,keys:2}});var e0=h(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.reprocessJob=void 0;var lR=`--[[
8182
+ `;eo.removeUnprocessedChildren={name:"removeUnprocessedChildren",content:cR,keys:2}});var r0=h(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.reprocessJob=void 0;var uR=`--[[
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
- `;to.reprocessJob={name:"reprocessJob",content:lR,keys:8}});var t0=h(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.retryJob=void 0;var cR=`--[[
8291
+ `;to.reprocessJob={name:"reprocessJob",content:uR,keys:8}});var n0=h(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.retryJob=void 0;var dR=`--[[
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
- `;ro.retryJob={name:"retryJob",content:cR,keys:11}});var r0=h(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.saveStacktrace=void 0;var uR=`--[[
8495
+ `;ro.retryJob={name:"retryJob",content:dR,keys:11}});var i0=h(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.saveStacktrace=void 0;var pR=`--[[
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
- `;no.saveStacktrace={name:"saveStacktrace",content:uR,keys:1}});var n0=h(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.updateData=void 0;var dR=`--[[
8512
+ `;no.saveStacktrace={name:"saveStacktrace",content:pR,keys:1}});var s0=h(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.updateData=void 0;var fR=`--[[
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
- `;io.updateData={name:"updateData",content:dR,keys:1}});var i0=h(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.updateJobScheduler=void 0;var pR=`--[[
8528
+ `;io.updateData={name:"updateData",content:fR,keys:1}});var a0=h(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.updateJobScheduler=void 0;var hR=`--[[
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
- `;so.updateJobScheduler={name:"updateJobScheduler",content:pR,keys:12}});var s0=h(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.updateProgress=void 0;var fR=`--[[
8850
+ `;so.updateJobScheduler={name:"updateJobScheduler",content:hR,keys:12}});var o0=h(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.updateProgress=void 0;var yR=`--[[
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
- `;ao.updateProgress={name:"updateProgress",content:fR,keys:3}});var a0=h(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.updateRepeatableJobMillis=void 0;var hR=`--[[
8886
+ `;ao.updateProgress={name:"updateProgress",content:yR,keys:3}});var l0=h(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.updateRepeatableJobMillis=void 0;var mR=`--[[
8887
8887
  Adds a repeatable job
8888
8888
  Input:
8889
8889
  KEYS[1] 'repeat' key
@@ -8906,16 +8906,16 @@ elseif rcall("ZSCORE", repeatKey, legacyCustomKey) ~= false then
8906
8906
  return legacyCustomKey
8907
8907
  end
8908
8908
  return ''
8909
- `;oo.updateRepeatableJobMillis={name:"updateRepeatableJobMillis",content:hR,keys:1}});var o0=h(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});var z=(Qe(),it(He));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(Rg(),B);z.__exportStar(Og(),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);z.__exportStar(r0(),B);z.__exportStar(n0(),B);z.__exportStar(i0(),B);z.__exportStar(s0(),B);z.__exportStar(a0(),B)});var Ei=h(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.RedisConnection=void 0;var yR=(Qe(),it(He)),mR=V("events"),l0=ds(),c0=Oe(),rt=ut(),bR=sa(),gR=o0(),vR=["BullMQ: WARNING! Your redis options maxRetriesPerRequest must be null","and will be overridden by BullMQ."].join(" "),KR="BullMQ: Your redis options maxRetriesPerRequest must be null.",lo=Symbol("bullmqClusterReconnectPromise"),Fu=Symbol("bullmqClusterPatchedForBlocking"),co=Symbol("bullmqClusterOriginalBzpopmin"),Vu=Symbol("bullmqClusterWrappedBzpopmin"),Nn=Symbol("bullmqClusterPatchRefCount"),Xr=Symbol("bullmqClusterClosingRefCount"),Si=class r extends mR.EventEmitter{constructor(e,t){if(super(),this.extraOptions=t,this.capabilities={canDoubleTimeout:!1,canBlockFor1Ms:!0},this.status="initializing",this.dbType="redis",this.packageVersion=bR.version,this.disabledBlockingClusterReconnect=!1,this.extraOptions=Object.assign({shared:!1,blocking:!0,skipVersionCheck:!1,skipWaitingForReady:!1},t),!(0,rt.isRedisInstance)(e))this.checkBlockingOptions(vR,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(KR,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(c0.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(c0.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||gR;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=yR.__rest(e,["url"]);this._client=t?new l0.default(t,n):new l0.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[Fu]))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[co]=n,t[Vu]=i,t[Fu]=!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[co]&&e.bzpopmin===e[Vu]&&(e.bzpopmin=e[co]),delete e[Nn],delete e[Xr],delete e[co],delete e[Vu],delete e[Fu],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[lo]||(e[lo]=(async()=>{e.disconnect(!1),await e.connect()})().finally(()=>{e[lo]=null})),await e[lo])}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}};uo.RedisConnection=Si;Si.minimumVersion="5.0.0";Si.recommendedMinimumVersion="6.2.0"});var u0=h(fo=>{"use strict";Object.defineProperty(fo,"__esModule",{value:!0});fo.FlowProducer=void 0;var SR=V("events"),Tr=ut(),ER=Pn(),po=ua(),kR=Ei(),Wt=at(),Gu=class extends SR.EventEmitter{constructor(e={connection:{}},t=kR.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 po.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 ER.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 po.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 R=(y=S.telemetry)===null||y===void 0?void 0:y.omitContext,x=((g=S.telemetry)===null||g===void 0?void 0:g.metadata)||!R&&p;(x||R)&&(k={metadata:x,omitContext:R})}let I=new this.Job(l,t.name,t.data,Object.assign(Object.assign(Object.assign({},u),S),{parent:n?.parentOpts,telemetry:k}),d),O=(0,Tr.getParentKey)(n?.parentOpts);if(t.children&&t.children.length>0){let R=d,x=new po.QueueKeys(t.prefix||this.opts.prefix);await I.addJob(e,{parentDependenciesKey:n?.parentDependenciesKey,addToWaitingChildren:!0,parentKey:O});let E=`${x.toKey(t.queueName,R)}:dependencies`,M=await this.addChildren({multi:e,nodes:t.children,parent:{parentOpts:{id:R,queue:x.getQueueQualifiedName(t.queueName)},parentDependenciesKey:E},queuesOpts:i});return{job:I,children:M}}else return await I.addJob(e,{parentDependenciesKey:n?.parentDependenciesKey,parentKey:O}),{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 po.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()}};fo.FlowProducer=Gu});var Jv=h(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});var ar=class extends Error{},Xu=class extends ar{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},ed=class extends ar{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},td=class extends ar{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Dr=class extends ar{},So=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",Eo={year:N,month:N,day:N},F0={year:N,month:Mt,day:N},IR={year:N,month:Mt,day:N,weekday:Mt},V0={year:N,month:yt,day:N},G0={year:N,month:yt,day:N,weekday:yt},Y0={hour:N,minute:N},B0={hour:N,minute:N,second:N},W0={hour:N,minute:N,second:N,timeZoneName:Mt},U0={hour:N,minute:N,second:N,timeZoneName:yt},z0={hour:N,minute:N,hourCycle:"h23"},$0={hour:N,minute:N,second:N,hourCycle:"h23"},H0={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:Mt},Q0={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:yt},Z0={year:N,month:N,day:N,hour:N,minute:N},X0={year:N,month:N,day:N,hour:N,minute:N,second:N},ev={year:N,month:Mt,day:N,hour:N,minute:N},tv={year:N,month:Mt,day:N,hour:N,minute:N,second:N},xR={year:N,month:Mt,day:N,weekday:Mt,hour:N,minute:N},rv={year:N,month:yt,day:N,hour:N,minute:N,timeZoneName:Mt},nv={year:N,month:yt,day:N,hour:N,minute:N,second:N,timeZoneName:Mt},iv={year:N,month:yt,day:N,weekday:yt,hour:N,minute:N,timeZoneName:yt},sv={year:N,month:yt,day:N,weekday:yt,hour:N,minute:N,second:N,timeZoneName:yt},Or=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}},Yu=null,ji=class r extends Or{static get instance(){return Yu===null&&(Yu=new r),Yu}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return mv(e,t,n)}formatOffset(e,t){return Ti(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},rd=new Map;function wR(r){let e=rd.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"}),rd.set(r,e)),e}var TR={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function jR(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 AR(r,e){let t=r.formatToParts(e),n=[];for(let i=0;i<t.length;i++){let{type:s,value:a}=t[i],o=TR[s];s==="era"?n[o]=a:Q(o)||(n[o]=parseInt(a,10))}return n}var Bu=new Map,or=class r extends Or{static create(e){let t=Bu.get(e);return t===void 0&&Bu.set(e,t=new r(e)),t}static resetCache(){Bu.clear(),rd.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 mv(e,t,n,this.name)}formatOffset(e,t){return Ti(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=wR(this.name),[i,s,a,o,l,c,u]=n.formatToParts?AR(n,t):jR(n,t);o==="BC"&&(i=-Math.abs(i)+1);let f=Ao({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}},d0={};function DR(r,e={}){let t=JSON.stringify([r,e]),n=d0[t];return n||(n=new Intl.ListFormat(r,e),d0[t]=n),n}var nd=new Map;function id(r,e={}){let t=JSON.stringify([r,e]),n=nd.get(t);return n===void 0&&(n=new Intl.DateTimeFormat(r,e),nd.set(t,n)),n}var sd=new Map;function RR(r,e={}){let t=JSON.stringify([r,e]),n=sd.get(t);return n===void 0&&(n=new Intl.NumberFormat(r,e),sd.set(t,n)),n}var ad=new Map;function OR(r,e={}){let{base:t,...n}=e,i=JSON.stringify([r,n]),s=ad.get(i);return s===void 0&&(s=new Intl.RelativeTimeFormat(r,e),ad.set(i,s)),s}var Ii=null;function CR(){return Ii||(Ii=new Intl.DateTimeFormat().resolvedOptions().locale,Ii)}var od=new Map;function av(r){let e=od.get(r);return e===void 0&&(e=new Intl.DateTimeFormat(r).resolvedOptions(),od.set(r,e)),e}var ld=new Map;function _R(r){let e=ld.get(r);if(!e){let t=new Intl.Locale(r);e="getWeekInfo"in t?t.getWeekInfo():t.weekInfo,"minimalDays"in e||(e={...ov,...e}),ld.set(r,e)}return e}function MR(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=id(r).resolvedOptions(),i=r}catch{let l=r.substring(0,t);n=id(l).resolvedOptions(),i=l}let{numberingSystem:s,calendar:a}=n;return[i,s,a]}}function PR(r,e,t){return(t||e)&&(r.includes("-u-")||(r+="-u"),t&&(r+=`-ca-${t}`),e&&(r+=`-nu-${e}`)),r}function NR(r){let e=[];for(let t=1;t<=12;t++){let n=xe.utc(2009,t,1);e.push(r(n))}return e}function LR(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 ho(r,e,t,n){let i=r.listingMode();return i==="error"?null:i==="en"?t(e):n(e)}function qR(r){return r.numberingSystem&&r.numberingSystem!=="latn"?!1:r.numberingSystem==="latn"||!r.locale||r.locale.startsWith("en")||av(r.locale).numberingSystem==="latn"}var cd=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=RR(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):Kd(e,3);return Ce(t,this.padTo)}}},ud=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=id(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()}},dd=class{constructor(e,t,n){this.opts={style:"long",...n},!t&&hv()&&(this.rtf=OR(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):aO(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},ov={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":CR()),l=t||Ie.defaultNumberingSystem,c=n||Ie.defaultOutputCalendar,u=fd(i)||Ie.defaultWeekSettings;return new r(o,l,c,u,a)}static resetCache(){Ii=null,nd.clear(),sd.clear(),ad.clear(),od.clear(),ld.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]=MR(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||l||null,this.weekSettings=i,this.intl=PR(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=qR(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,fd(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 ho(this,e,vv,()=>{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]=NR(a)}return this.monthsCache[s][e]})}weekdays(e,t=!1){return ho(this,e,Ev,()=>{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]=LR(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return ho(this,void 0,()=>kv,()=>{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 ho(this,e,Iv,()=>{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 cd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new ud(e,this.intl,t)}relFormatter(e={}){return new dd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return DR(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||av(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:yv()?_R(this.locale):ov}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})`}},Wu=null,mt=class r extends Or{static get utcInstance(){return Wu===null&&(Wu=new r(0)),Wu}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(Do(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Ti(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Ti(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return Ti(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}},ko=class extends Or{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 Or)return r;if(BR(r)){let t=r.toLowerCase();return t==="default"?e:t==="local"||t==="system"?ji.instance:t==="utc"||t==="gmt"?mt.utcInstance:mt.parseSpecifier(t)||or.create(r)}else return Rr(r)?mt.instance(r):typeof r=="object"&&"offset"in r&&typeof r.offset=="function"?r:new ko(r)}var md={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"},p0={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]},JR=md.hanidec.replace(/[\[|\]]/g,"").split("");function FR(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(md.hanidec)!==-1)e+=JR.indexOf(r[t]);else for(let i in p0){let[s,a]=p0[i];n>=s&&n<=a&&(e+=n-s)}}return parseInt(e,10)}else return e}var pd=new Map;function VR(){pd.clear()}function Ct({numberingSystem:r},e=""){let t=r||"latn",n=pd.get(t);n===void 0&&(n=new Map,pd.set(t,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${md[t]}${e}`),n.set(e,i)),i}var f0=()=>Date.now(),h0="system",y0=null,m0=null,b0=null,g0=60,v0,K0=null,Ie=class{static get now(){return f0}static set now(e){f0=e}static set defaultZone(e){h0=e}static get defaultZone(){return Ar(h0,ji.instance)}static get defaultLocale(){return y0}static set defaultLocale(e){y0=e}static get defaultNumberingSystem(){return m0}static set defaultNumberingSystem(e){m0=e}static get defaultOutputCalendar(){return b0}static set defaultOutputCalendar(e){b0=e}static get defaultWeekSettings(){return K0}static set defaultWeekSettings(e){K0=fd(e)}static get twoDigitCutoffYear(){return g0}static set twoDigitCutoffYear(e){g0=e%100}static get throwOnInvalid(){return v0}static set throwOnInvalid(e){v0=e}static resetCaches(){ve.resetCache(),or.resetCache(),xe.resetCache(),VR()}},ht=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},lv=[0,31,59,90,120,151,181,212,243,273,304,334],cv=[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 bd(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 uv(r,e,t){return t+(Di(r)?cv:lv)[e-1]}function dv(r,e){let t=Di(r)?cv:lv,n=t.findIndex(s=>s<e),i=e-t[n];return{month:n+1,day:i}}function gd(r,e){return(r-e+7)%7+1}function Io(r,e=4,t=1){let{year:n,month:i,day:s}=r,a=uv(n,i,s),o=gd(bd(n,i,s),t),l=Math.floor((a-o+14-e)/7),c;return l<1?(c=n-1,l=Ai(c,e,t)):l>Ai(n,e,t)?(c=n+1,l=1):c=n,{weekYear:c,weekNumber:l,weekday:o,...Ro(r)}}function S0(r,e=4,t=1){let{weekYear:n,weekNumber:i,weekday:s}=r,a=gd(bd(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}=dv(c,l);return{year:c,month:u,day:d,...Ro(r)}}function Uu(r){let{year:e,month:t,day:n}=r,i=uv(e,t,n);return{year:e,ordinal:i,...Ro(r)}}function E0(r){let{year:e,ordinal:t}=r,{month:n,day:i}=dv(e,t);return{year:e,month:n,day:i,...Ro(r)}}function k0(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 GR(r,e=4,t=1){let n=jo(r.weekYear),i=jt(r.weekNumber,1,Ai(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 YR(r){let e=jo(r.year),t=jt(r.ordinal,1,Fn(r.year));return e?t?!1:Tt("ordinal",r.ordinal):Tt("year",r.year)}function pv(r){let e=jo(r.year),t=jt(r.month,1,12),n=jt(r.day,1,xo(r.year,r.month));return e?t?n?!1:Tt("day",r.day):Tt("month",r.month):Tt("year",r.year)}function fv(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 Rr(r){return typeof r=="number"}function jo(r){return typeof r=="number"&&r%1===0}function BR(r){return typeof r=="string"}function WR(r){return Object.prototype.toString.call(r)==="[object Date]"}function hv(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function yv(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function UR(r){return Array.isArray(r)?r:[r]}function I0(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 zR(r,e){return e.reduce((t,n)=>(t[n]=r[n],t),{})}function Gn(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function fd(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 jo(r)&&r>=e&&r<=t}function $R(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 vd(r){if(!(Q(r)||r===null||r==="")){let e=parseFloat("0."+r)*1e3;return Math.floor(e)}}function Kd(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 Di(r){return r%4===0&&(r%100!==0||r%400===0)}function Fn(r){return Di(r)?366:365}function xo(r,e){let t=$R(e-1,12)+1,n=r+(e-t)/12;return t===2?Di(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function Ao(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 x0(r,e,t){return-gd(bd(r,1,e),t)+e-1}function Ai(r,e=4,t=1){let n=x0(r,e,t),i=x0(r+1,e,t);return(Fn(r)-n+i)/7}function hd(r){return r>99?r:r>Ie.twoDigitCutoffYear?1900+r:2e3+r}function mv(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 Do(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 bv(r){let e=Number(r);if(typeof r=="boolean"||r===""||!Number.isFinite(e))throw new Fe(`Invalid unit value ${r}`);return e}function wo(r,e){let t={};for(let n in r)if(Gn(r,n)){let i=r[n];if(i==null)continue;t[e(n)]=bv(i)}return t}function Ti(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 Ro(r){return zR(r,["hour","minute","second","millisecond"])}var HR=["January","February","March","April","May","June","July","August","September","October","November","December"],gv=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],QR=["J","F","M","A","M","J","J","A","S","O","N","D"];function vv(r){switch(r){case"narrow":return[...QR];case"short":return[...gv];case"long":return[...HR];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 Kv=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Sv=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ZR=["M","T","W","T","F","S","S"];function Ev(r){switch(r){case"narrow":return[...ZR];case"short":return[...Sv];case"long":return[...Kv];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var kv=["AM","PM"],XR=["Before Christ","Anno Domini"],eO=["BC","AD"],tO=["B","A"];function Iv(r){switch(r){case"narrow":return[...tO];case"short":return[...eO];case"long":return[...XR];default:return null}}function rO(r){return kv[r.hour<12?0:1]}function nO(r,e){return Ev(e)[r.weekday-1]}function iO(r,e){return vv(e)[r.month-1]}function sO(r,e){return Iv(e)[r.year<0?0:1]}function aO(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 w0(r,e){let t="";for(let n of r)n.literal?t+=n.val:t+=e(n.val);return t}var oO={D:Eo,DD:F0,DDD:V0,DDDD:G0,t:Y0,tt:B0,ttt:W0,tttt:U0,T:z0,TT:$0,TTT:H0,TTTT:Q0,f:Z0,ff:ev,fff:rv,ffff:iv,F:X0,FF:tv,FFF:nv,FFFF:sv},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 oO[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?rO(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(p,y)=>n?iO(e,p):s(y?{month:p}:{month:p,day:"numeric"},"month"),c=(p,y)=>n?nO(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?sO(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 w0(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 w0(a,s(l,c))}},xv=/[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 wv(...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 Tv=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,lO=`(?:${Tv.source}?(?:\\[(${xv.source})\\])?)?`,Sd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,jv=RegExp(`${Sd.source}${lO}`),Ed=RegExp(`(?:[Tt]${jv.source})?`),cO=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,uO=/(\d{4})-?W(\d\d)(?:-?(\d))?/,dO=/(\d{4})-?(\d{3})/,pO=wv("weekYear","weekNumber","weekDay"),fO=wv("year","ordinal"),hO=/(\d{4})-(\d\d)-(\d\d)/,Av=RegExp(`${Sd.source} ?(?:${Tv.source}|(${xv.source}))?`),yO=RegExp(`(?: ${Av.source})?`);function Vn(r,e,t){let n=r[e];return Q(n)?t:jr(n)}function mO(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:vd(r[e+3])},null,e+4]}function Ri(r,e){let t=!r[e]&&!r[e+1],n=Do(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 bO=RegExp(`^T?${Sd.source}$`),gO=/^-?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 vO(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(vd(c),d)}]}var KO={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function kd(r,e,t,n,i,s,a){let o={year:e.length===2?hd(jr(e)):jr(e),month:gv.indexOf(t)+1,day:jr(n),hour:jr(i),minute:jr(s)};return a&&(o.second=jr(a)),r&&(o.weekday=r.length>3?Kv.indexOf(r)+1:Sv.indexOf(r)+1),o}var SO=/^(?:(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 EO(r){let[,e,t,n,i,s,a,o,l,c,u,d]=r,f=kd(e,i,n,t,s,a,o),p;return l?p=KO[l]:c?p=0:p=Do(u,d),[f,new mt(p)]}function kO(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var IO=/^(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$/,xO=/^(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$/,wO=/^(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 T0(r){let[,e,t,n,i,s,a,o]=r;return[kd(e,i,n,t,s,a,o),mt.utcInstance]}function TO(r){let[,e,t,n,i,s,a,o]=r;return[kd(e,o,t,n,i,s,a),mt.utcInstance]}var jO=Yn(cO,Ed),AO=Yn(uO,Ed),DO=Yn(dO,Ed),RO=Yn(jv),Dv=Bn(mO,Un,Ri,Oi),OO=Bn(pO,Un,Ri,Oi),CO=Bn(fO,Un,Ri,Oi),_O=Bn(Un,Ri,Oi);function MO(r){return Wn(r,[jO,Dv],[AO,OO],[DO,CO],[RO,_O])}function PO(r){return Wn(kO(r),[SO,EO])}function NO(r){return Wn(r,[IO,T0],[xO,T0],[wO,TO])}function LO(r){return Wn(r,[gO,vO])}var qO=Bn(Un);function JO(r){return Wn(r,[bO,qO])}var FO=Yn(hO,yO),VO=Yn(Av),GO=Bn(Un,Ri,Oi);function YO(r){return Wn(r,[FO,Dv],[VO,GO])}var j0="Invalid Duration",Rv={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}},BO={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},...Rv},wt=146097/400,Ln=146097/4800,WO={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},...Rv},rn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],UO=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 Ov(r,e){var t;let n=(t=e.milliseconds)!=null?t:0;for(let i of UO.slice(1))e[i]&&(n+=e[i]*r[i].milliseconds);return n}function A0(r,e){let t=Ov(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 D0(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?WO:BO;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:wo(e,r.normalizeUnit),loc:ve.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(Rr(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]=LO(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]=JO(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 td(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 So(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):j0}toHuman(e={}){if(!this.isValid)return j0;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+=Kd(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?Ov(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]=bv(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,...wo(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 A0(this.matrix,e),sr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=D0(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;Rr(i[a])&&(o+=i[a]);let l=Math.trunc(o);t[a]=l,n[a]=(o*1e3-l*1e3)/1e3}else Rr(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 A0(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=D0(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 zO(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 ed(n);return new r({invalid:n})}static fromDateTimes(e,t){let n=ki(e),i=ki(t),s=zO(n,i);return s??new r({start:n,end:i})}static after(e,t){let n=Ne.fromDurationLike(t),i=ki(e);return r.fromDateTimes(i,i.plus(n))}static before(e,t){let n=Ne.fromDurationLike(t),i=ki(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(ki).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=Eo,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:hv(),localeWeek:yv()}}};function R0(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 $O(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=R0(l,c);return(u-u%7)/7}],["days",R0]],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 HO(r,e,t,n){let[i,s,a,o]=$O(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 QO="missing Intl.DateTimeFormat.formatToParts support";function fe(r,e=t=>t){return{regex:r,deser:([t])=>e(FR(t))}}var ZO="\xA0",Cv=`[ ${ZO}]`,_v=new RegExp(Cv,"g");function XO(r){return r.replace(/\./g,"\\.?").replace(_v,Cv)}function O0(r){return r.replace(/\./g,"").replace(_v," ").toLowerCase()}function _t(r,e){return r===null?null:{regex:RegExp(r.map(XO).join("|")),deser:([t])=>r.findIndex(n=>O0(t)===O0(n))+e}}function C0(r,e){return{regex:r,deser:([,t,n])=>Do(t,n),groups:e}}function yo(r){return{regex:r,deser:([e])=>e}}function eC(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function tC(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(eC(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,hd);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 yo(u);case"uu":return yo(o);case"uuu":return fe(t);case"a":return _t(e.meridiems(),0);case"kkkk":return fe(s);case"kk":return fe(d,hd);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 C0(new RegExp(`([+-]${o.source})(?::(${n.source}))?`),2);case"ZZZ":return C0(new RegExp(`([+-]${o.source})(${n.source})?`),2);case"z":return yo(/[a-z_+-/]{1,256}?/i);case" ":return yo(/[^\S\n\r]/);default:return p(S)}})(r)||{invalidReason:QO};return g.token=r,g}var rC={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 nC(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=rC[a];if(typeof o=="object"&&(o=o[s]),o)return{literal:!1,val:o}}function iC(r){return[`^${r.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,r]}function sC(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 aC(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=vd(r.u)),[Object.keys(r).reduce((s,a)=>{let o=e(a);return o&&(s[o]=r[a]),s},{}),t,n]}var zu=null;function oC(){return zu||(zu=xe.fromMillis(1555555555555)),zu}function lC(r,e){if(r.literal)return r;let t=ft.macroTokenToFormatOpts(r.val),n=Nv(t,e);return n==null||n.includes(void 0)?r:n}function Mv(r,e){return Array.prototype.concat(...r.map(t=>lC(t,e)))}var To=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Mv(ft.parseFormat(t),e),this.units=this.tokens.map(n=>tC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=iC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[t,n]=sC(e,this.regex,this.handlers),[i,s,a]=n?aC(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 Pv(r,e,t){return new To(r,t).explainFromTokens(e)}function cC(r,e,t){let{result:n,zone:i,specificOffset:s,invalidReason:a}=Pv(r,e,t);return[n,i,s,a]}function Nv(r,e){if(!r)return null;let n=ft.create(e,r).dtFormatter(oC()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(a=>nC(a,r,s))}var $u="Invalid DateTime",_0=864e13;function xi(r){return new ht("unsupported zone",`the zone "${r.name}" is not supported`)}function Hu(r){return r.weekData===null&&(r.weekData=Io(r.c)),r.weekData}function Qu(r){return r.localWeekData===null&&(r.localWeekData=Io(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 Lv(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 mo(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 go(r,e,t){return Lv(Ao(r),e,t)}function M0(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,xo(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=Ao(s),[l,c]=Lv(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 bo(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 P0(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 qv={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},uC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},dC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},vo=["year","month","day","hour","minute","second","millisecond"],pC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],fC=["year","ordinal","hour","minute","second","millisecond"];function Ko(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 So(r);return e}function N0(r){switch(r.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Ko(r)}}function hC(r){if(wi===void 0&&(wi=Ie.now()),r.type!=="iana")return r.offset(wi);let e=r.name,t=yd.get(e);return t===void 0&&(t=r.offset(wi),yd.set(e,t)),t}function L0(r,e){let t=Ar(e.zone,Ie.defaultZone);if(!t.isValid)return xe.invalid(xi(t));let n=ve.fromObject(e),i,s;if(Q(r.year))i=Ie.now();else{for(let l of vo)Q(r[l])&&(r[l]=qv[l]);let a=pv(r)||fv(r);if(a)return xe.invalid(a);let o=hC(t);[i,s]=go(r,o,t)}return new xe({ts:i,zone:t,loc:n,o:s})}function q0(r,e,t){let n=Q(t.round)?!0:t.round,i=Q(t.rounding)?"trunc":t.rounding,s=(o,l)=>(o=Kd(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 J0(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 wi,yd=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:xi(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=Rr(e.o)&&!e.old?e.o:t.offset(this.ts);i=mo(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]=J0(arguments),[n,i,s,a,o,l,c]=t;return L0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static utc(){let[e,t]=J0(arguments),[n,i,s,a,o,l,c]=t;return e.zone=mt.utcInstance,L0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static fromJSDate(e,t={}){let n=WR(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(xi(i))}static fromMillis(e,t={}){if(Rr(e))return e<-_0||e>_0?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(Rr(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(xi(n));let i=ve.fromObject(t),s=wo(e,N0),{minDaysInFirstWeek:a,startOfWeek:o}=k0(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=mo(l,c);g?(S=pC,k=uC,I=Io(I,a,o)):u?(S=fC,k=dC,I=Uu(I)):(S=vo,k=qv);let O=!1;for(let w of S){let U=s[w];Q(U)?O?s[w]=k[w]:s[w]=I[w]:O=!0}let R=g?GR(s,a,o):u?YR(s):pv(s),x=R||fv(s);if(x)return r.invalid(x);let E=g?S0(s,a,o):u?E0(s):s,[M,F]=go(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]=MO(e);return Jn(n,i,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[n,i]=PO(e);return Jn(n,i,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[n,i]=NO(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]=cC(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]=YO(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 Xu(n);return new r({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=Nv(e,ve.fromObject(t));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,t={}){return Mv(ft.parseFormat(e),ve.fromObject(t)).map(i=>i.val).join("")}static resetCache(){wi=void 0,yd.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?Hu(this).weekYear:NaN}get weekNumber(){return this.isValid?Hu(this).weekNumber:NaN}get weekday(){return this.isValid?Hu(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Qu(this).weekday:NaN}get localWeekNumber(){return this.isValid?Qu(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Qu(this).weekYear:NaN}get ordinal(){return this.isValid?Uu(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=Ao(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=mo(l,a),d=mo(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 Di(this.year)}get daysInMonth(){return xo(this.year,this.month)}get daysInYear(){return this.isValid?Fn(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ai(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Ai(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]=go(a,s,e)}return tn(this,{ts:i,zone:e})}else return r.invalid(xi(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=wo(e,N0),{minDaysInFirstWeek:n,startOfWeek:i}=k0(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=S0({...Io(this.c,n,i),...t},n,i):Q(t.ordinal)?(d={...this.toObject(),...t},Q(t.day)&&(d.day=Math.min(xo(d.year,d.month),d.day))):d=E0({...Uu(this.c),...t});let[f,p]=go(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,M0(this,t))}minus(e){if(!this.isValid)return this;let t=Ne.fromDurationLike(e).negate();return tn(this,M0(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):$u}toLocaleString(e=Eo,t={}){return this.isValid?ft.create(this.loc.clone(t),e).formatDateTime(this):$u}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=Ko(a);let o=e==="extended",l=Zu(this,o,a);return vo.indexOf(a)>=3&&(l+="T"),l+=P0(this,o,t,n,i,s,a),l}toISODate({format:e="extended",precision:t="day"}={}){return this.isValid?Zu(this,e==="extended",Ko(t)):null}toISOWeekDate(){return bo(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=Ko(o),(i&&vo.indexOf(o)>=3?"T":"")+P0(this,a==="extended",t,e,n,s,o)):null}toRFC2822(){return bo(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return bo(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")),bo(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():$u}[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=UR(t).map(Ne.normalizeUnit),a=e.valueOf()>this.valueOf(),o=a?this:e,l=a?e:this,c=HO(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),q0(t,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?q0(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 I0(e,t=>t.valueOf(),Math.min)}static max(...e){if(!e.every(r.isDateTime))throw new Fe("max requires all arguments be DateTimes");return I0(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 Pv(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 To(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 Eo}static get DATE_MED(){return F0}static get DATE_MED_WITH_WEEKDAY(){return IR}static get DATE_FULL(){return V0}static get DATE_HUGE(){return G0}static get TIME_SIMPLE(){return Y0}static get TIME_WITH_SECONDS(){return B0}static get TIME_WITH_SHORT_OFFSET(){return W0}static get TIME_WITH_LONG_OFFSET(){return U0}static get TIME_24_SIMPLE(){return z0}static get TIME_24_WITH_SECONDS(){return $0}static get TIME_24_WITH_SHORT_OFFSET(){return H0}static get TIME_24_WITH_LONG_OFFSET(){return Q0}static get DATETIME_SHORT(){return Z0}static get DATETIME_SHORT_WITH_SECONDS(){return X0}static get DATETIME_MED(){return ev}static get DATETIME_MED_WITH_SECONDS(){return tv}static get DATETIME_MED_WITH_WEEKDAY(){return xR}static get DATETIME_FULL(){return rv}static get DATETIME_FULL_WITH_SECONDS(){return nv}static get DATETIME_HUGE(){return iv}static get DATETIME_HUGE_WITH_SECONDS(){return sv}};function ki(r){if(xe.isDateTime(r))return r;if(r&&r.valueOf&&Rr(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 yC="3.7.2";bt.DateTime=xe;bt.Duration=Ne;bt.FixedOffsetZone=mt;bt.IANAZone=or;bt.Info=nn;bt.Interval=sn;bt.InvalidZone=ko;bt.Settings=Ie;bt.SystemZone=ji;bt.VERSION=yC;bt.Zone=Or});var Vv=h((lL,Fv)=>{"use strict";var an=Jv();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))}Fv.exports=X});var Bv=h((cL,Yv)=>{"use strict";function on(r){return{start:r,count:1}}function Gv(r,e){r.end=e,r.step=e-r.start,r.count=2}function Id(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 mC(r){for(var e=[],t=void 0,n=0;n<r.length;n++){var i=r[n];typeof i!="number"?(Id(e,t,on(i)),t=void 0):t?t.count===1?Gv(t,i):t.step===i-t.end?(t.count++,t.end=i):t.count===2?(e.push(on(t.start)),t=on(t.end),Gv(t,i)):(Id(e,t),t=on(i)):t=on(i)}return Id(e,t),e}Yv.exports=mC});var Uv=h((uL,Wv)=>{"use strict";var bC=Bv();function gC(r,e,t){var n=bC(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(",")}Wv.exports=gC});var Hv=h((dL,$v)=>{"use strict";var ln=Vv(),vC=Uv(),zv=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 O=0,R=I.length;O<R;O++)if(I[O]>=k)return I[O]===k;return I[0]===k}function n(k,I){if(I<6){if(k.getDate()<8&&I===1)return!0;var O=k.getDate()%7?1:0,R=k.getDate()-k.getDate()%7,x=Math.floor(R/7)+O;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 O=Number.parseInt(I[0])%7;if(Number.isNaN(O))throw new Error("Invalid last weekday of the month expression: "+I);return a.getDay()===O&&a.isLastWeekdayOfMonth()})}for(;u<zv;){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>=zv)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(vC(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(O){var R=O.split("#");if(R.length>1){var x=+R[R.length-1];if(/,/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(R.length>2||Number.isNaN(x)||x<1||x>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=x,R[0]}return O}}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||{})};$v.exports=L});var xd=h((pL,Qv)=>{"use strict";var Oo=Hv();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()))})};Qv.exports=Cr});var _r=h(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.QueueBase=void 0;var KC=V("events"),Ci=ut(),SC=la(),EC=Ei(),kC=Pn(),IC=ua(),wd=class extends KC.EventEmitter{constructor(e,t={connection:{}},n=EC.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,Ci.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 IC.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 kC.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=Ci.DELAY_TIME_5){try{return await e()}catch(n){if((0,Ci.isNotConnectionError)(n)&&this.emit("error",n),!this.closing&&t)await(0,Ci.delay)(t);else return}}trace(e,t,n,i,s){return(0,Ci.trace)(this.opts.telemetry,e,this.name,t,n,i,s)}};Co.QueueBase=wd});var Mo=h(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.defaultRepeatStrategy=cn.JobScheduler=void 0;var xC=(Qe(),it(He)),wC=xd(),_o=Pn(),TC=_r(),_i=at(),jC=ut(),Td=class extends TC.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=xC.__rest(t,["immediately"]),I,O=null;if(u&&(I=await this.repeatStrategy(p,t,n),I<p&&(I=p)),I||l)return this.trace(_i.SpanKind.PRODUCER,"add",`${this.name}.${n}`,async(R,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,O);if(a){I<p&&(I=p);let[w,U]=await this.scripts.addJobScheduler(e,I,JSON.stringify(typeof i>"u"?{}:i),_o.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:O},_o.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,R?.setAttributes({[_i.TelemetryAttributes.JobSchedulerId]:e,[_i.TelemetryAttributes.JobId]:m.id}),m}else{let w=await this.scripts.updateJobSchedulerNextMillis(e,I,JSON.stringify(typeof i>"u"?{}:i),_o.Job.optsAsJSON(C),o);if(w){let U=new this.Job(this,n,i,C,w);return U.id=w,R?.setAttributes({[_i.TelemetryAttributes.JobSchedulerId]:e,[_i.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,jC.array2obj)(t):null,n?parseInt(n):null)}getTemplateFromJSON(e,t){let n={};return e&&(n.data=JSON.parse(e)),t&&(n.opts=_o.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=Td;var AC=(r,e)=>{let{pattern:t}=e,n=new Date(r),i=e.startDate&&new Date(e.startDate),s=i>n?i:n,a=(0,wC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:s}));try{return e.immediately?new Date().getTime():a.next().getTime()}catch{}};cn.defaultRepeatStrategy=AC});var Ad=h(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.LockManager=void 0;var DC=ws(),Po=at(),jd=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(Po.SpanKind.INTERNAL,"extendLocks",this.worker.name,async t=>{t?.setAttributes({[Po.TelemetryAttributes.WorkerId]:this.opts.workerId,[Po.TelemetryAttributes.WorkerName]:this.opts.workerName,[Po.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 DC.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())}};No.LockManager=jd});var Xv=h(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.QueueEvents=void 0;var Zv=(Qe(),it(He)),Lo=ut(),RC=_r(),Dd=class extends RC.QueueBase{constructor(e,t={connection:{}},n){var i,{connection:s,autorun:a=!0}=t,o=Zv.__rest(t,["connection","autorun"]);super(e,Object.assign(Object.assign({},o),{connection:(0,Lo.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(Lo.QUEUE_EVENT_SUFFIX))}catch(t){if(!Lo.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,Lo.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=Zv.__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}};qo.QueueEvents=Dd});var eK=h(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.QueueEventsProducer=void 0;var OC=(Qe(),it(He)),CC=_r(),Rd=class extends CC.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=OC.__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=Rd});var _d=h(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.QueueGetters=void 0;var _C=(Qe(),it(He)),MC=_r(),tK=ut(),Od=at();function rK(r){return String(r).replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}var Cd=class extends MC.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(Od.MetricNames.QueueJobsCount,{description:"Number of jobs in the queue by state",unit:"{jobs}"});for(let[a,o]of Object.entries(n))s.record(o,{[Od.TelemetryAttributes.QueueName]:this.name,[Od.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=_C.__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(!tK.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()}${tK.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=rK(this.name),s=e?Object.keys(e).reduce((l,c)=>`${l}, ${c}="${rK(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
- `)}};Fo.QueueGetters=Cd});var Vo=h(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.getNextMillis=un.Repeat=void 0;var PC=(Qe(),it(He)),NC=xd(),LC=V("crypto"),qC=_r(),Md=class extends qC.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=nK(e,o),I=(a=n.repeat.key)!==null&&a!==void 0?a:this.hash(k),O;if(i)O=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;O=await this.scripts.updateRepeatableJobMillis(E,I,f,k)}let{immediately:R}=o,x=PC.__rest(o,["immediately"]);return this.createNextJob(e,f,O,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=nK(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,LC.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=Md;function nK(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 JC=(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,NC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:n}));try{return e.immediately?new Date().getTime():i.next().getTime()}catch{}};un.getNextMillis=JC});var iK=h(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.Queue=void 0;var FC=Pn(),VC=_d(),GC=Vo(),ne=at(),YC=Mo(),BC=sa(),WC=ut(),Pd=class extends VC.QueueGetters{constructor(e,t,n){var i;super(e,Object.assign({},t),n),this.token=(0,WC.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}:${BC.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 GC.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 YC.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 FC.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 O=S.slice(0,k);if(i.has(O))continue}let I=k===-1?S:S.slice(0,k);if(k!==-1){let O=S.slice(k+1);if(!a.includes(O))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}};Go.Queue=Pd});var Ld=h(Nd=>{"use strict";Object.defineProperty(Nd,"__esModule",{value:!0});var _e=at(),UC=(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,O;try{switch(y.cmd){case _e.ParentCommand.Completed:d(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,(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 R=await n.moveToWaitingChildren((I=y.value)===null||I===void 0?void 0:I.token,(O=y.value)===null||O===void 0?void 0:O.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 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))}};Nd.default=UC});var aK=h((Bo,sK)=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.Worker=void 0;var Yo=V("fs"),zC=V("url"),Mi=V("path"),$C=ws(),zn=ut(),HC=_r(),QC=Vo(),ZC=Fc(),XC=Ei(),e_=Ld(),t_=Mc(),$n=Js(),ie=at(),r_=Mo(),n_=Ad(),i_=10,qd=class extends HC.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 zC.URL){if(!Yo.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(Mi.extname(t))?"":".js");if(!Yo.existsSync(f))throw new Error(`File ${f} does not exist`)}let o=Mi.dirname(sK.filename||__filename),l=Mi.join(o,"main-worker.js"),c=Mi.join(o,"main.js"),u=this.opts.useWorkerThreads?l:c;try{Yo.statSync(u)}catch{let f=this.opts.useWorkerThreads?"main-worker.js":"main.js";u=Mi.join(process.cwd(),`dist/cjs/classes/${f}`),Yo.statSync(u)}this.childPool=new ZC.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 XC.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 n_.LockManager(this,{lockRenewTime:this.opts.lockRenewTime,lockDuration:this.opts.lockDuration,workerId:this.id,workerName:this.opts.name})}createSandbox(e){this.processFn=(0,e_.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 QC.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 r_.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 $C.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 t_.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,i_)}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)}};Bo.Worker=qd});var oK=h(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});var Re=(Qe(),it(He));Re.__exportStar(Mc(),je);Re.__exportStar(Pc(),je);Re.__exportStar(Lc(),je);Re.__exportStar(Fc(),je);Re.__exportStar(Mm(),je);Re.__exportStar(Js(),je);Re.__exportStar(u0(),je);Re.__exportStar(Pn(),je);Re.__exportStar(Mo(),je);Re.__exportStar(Ad(),je);Re.__exportStar(_r(),je);Re.__exportStar(Xv(),je);Re.__exportStar(eK(),je);Re.__exportStar(_d(),je);Re.__exportStar(ua(),je);Re.__exportStar(iK(),je);Re.__exportStar(Ei(),je);Re.__exportStar(Vo(),je);Re.__exportStar(Ld(),je);Re.__exportStar(Lu(),je);Re.__exportStar(aK(),je)});var cK=h(lK=>{"use strict";Object.defineProperty(lK,"__esModule",{value:!0})});var dK=h(uK=>{"use strict";Object.defineProperty(uK,"__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 TK=h(wK=>{"use strict";Object.defineProperty(wK,"__esModule",{value:!0})});var AK=h(jK=>{"use strict";Object.defineProperty(jK,"__esModule",{value:!0})});var RK=h(DK=>{"use strict";Object.defineProperty(DK,"__esModule",{value:!0})});var CK=h(OK=>{"use strict";Object.defineProperty(OK,"__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 qK=h(LK=>{"use strict";Object.defineProperty(LK,"__esModule",{value:!0})});var FK=h(JK=>{"use strict";Object.defineProperty(JK,"__esModule",{value:!0})});var GK=h(VK=>{"use strict";Object.defineProperty(VK,"__esModule",{value:!0})});var BK=h(Wo=>{"use strict";Object.defineProperty(Wo,"__esModule",{value:!0});Wo.ClientType=void 0;var YK;(function(r){r.blocking="blocking",r.normal="normal"})(YK||(Wo.ClientType=YK={}))});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 dS=h(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0})});var fS=h(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0})});var yS=h(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0})});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 KS=h(le=>{"use strict";Object.defineProperty(le,"__esModule",{value:!0});var ce=(Qe(),it(He));ce.__exportStar(cK(),le);ce.__exportStar(dK(),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(TK(),le);ce.__exportStar(AK(),le);ce.__exportStar(RK(),le);ce.__exportStar(CK(),le);ce.__exportStar(MK(),le);ce.__exportStar(NK(),le);ce.__exportStar(qK(),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(dS(),le);ce.__exportStar(fS(),le);ce.__exportStar(yS(),le);ce.__exportStar(bS(),le);ce.__exportStar(vS(),le)});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 jS=h(TS=>{"use strict";Object.defineProperty(TS,"__esModule",{value:!0})});var DS=h(AS=>{"use strict";Object.defineProperty(AS,"__esModule",{value:!0})});var OS=h(RS=>{"use strict";Object.defineProperty(RS,"__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 LS=h(NS=>{"use strict";Object.defineProperty(NS,"__esModule",{value:!0})});var JS=h(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0})});var VS=h(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0})});var GS=h(gt=>{"use strict";Object.defineProperty(gt,"__esModule",{value:!0});var Pt=(Qe(),it(He));Pt.__exportStar(ES(),gt);Pt.__exportStar(IS(),gt);Pt.__exportStar(wS(),gt);Pt.__exportStar(jS(),gt);Pt.__exportStar(DS(),gt);Pt.__exportStar(OS(),gt);Pt.__exportStar(_S(),gt);Pt.__exportStar(PS(),gt);Pt.__exportStar(LS(),gt);Pt.__exportStar(JS(),gt);Pt.__exportStar(VS(),gt)});var BS=h(YS=>{"use strict";Object.defineProperty(YS,"__esModule",{value:!0})});var WS=h(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});var dn=(Qe(),it(He));dn.__exportStar(oK(),lr);dn.__exportStar(at(),lr);dn.__exportStar(KS(),lr);dn.__exportStar(GS(),lr);dn.__exportStar(ut(),lr);dn.__exportStar(BS(),lr);dn.__exportStar(la(),lr)});var Bd=$d(ds(),1);var Xo=$d(WS(),1);import{MessageId as u_}from"@workflow/world";import Uo from"node:crypto";var Pi="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Ni=32;var $S=16,zo=10,US=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 s_(r){let e=Math.floor(r()*Ni)%Ni;return Pi.charAt(e)}function zS(r,e,t){return e>r.length-1?r:r.substr(0,e)+t+r.substr(e+1)}function a_(r){let e,t=r.length,n,i,s=r,a=Ni-1;for(;!e&&t-->=0;){if(n=s[t],i=Pi.indexOf(n),i===-1)throw new ur(cr.Base32IncorrectEncoding,"Incorrectly encoded string");if(i===a){s=zS(s,t,Pi[0]);continue}e=zS(s,t,Pi[i+1])}if(typeof e=="string")return e;throw new ur(cr.Base32IncorrectEncoding,"Failed incrementing string")}function HS(r){let e=o_(),t=e&&(e.crypto||e.msCrypto)||(typeof Uo<"u"?Uo: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(Uo?.randomBytes)return()=>Uo.randomBytes(1).readUInt8()/256;throw new ur(cr.PRNGDetectFailure,"Failed to find a reliable PRNG")}function o_(){return l_()?self:typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:null}function QS(r,e){let t="";for(;r>0;r--)t=s_(e)+t;return t}function Jd(r,e=zo){if(isNaN(r))throw new ur(cr.EncodeTimeValueMalformed,`Time must be a number: ${r}`);if(r>US)throw new ur(cr.EncodeTimeSizeExceeded,`Cannot encode a time larger than ${US}: ${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%Ni,n=Pi.charAt(t)+n,r=(r-t)/Ni;return n}function l_(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function $o(r){let e=r||HS(),t=0,n;return function(s){let a=!s||isNaN(s)?Date.now():s;if(a<=t){let l=n=a_(n);return Jd(t,zo)+l}t=a;let o=n=QS($S,e);return Jd(a,zo)+o}}function Ho(r,e){let t=e||HS(),n=!r||isNaN(r)?Date.now():r;return Jd(n,zo)+QS($S,t)}var Qo=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 Zo=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 c_(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 Fd=c_("stackbone-workflow-world");function ZS(r){return new Promise(e=>setTimeout(e,r))}var d_={workflow:"flow",step:"step"},p_=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 XS(r,e){return Promise.race([r,new Promise(t=>{setTimeout(t,e).unref?.()})])}function f_(r){return r.baseUrl?r.baseUrl:process.env.WORKFLOW_BASE_URL?process.env.WORKFLOW_BASE_URL:`http://localhost:${process.env.PORT??"3000"}`}function eE(r,e){let t=$o(),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 Xo.Queue(F,{connection:p}));let S=async(M,F,C)=>{let w=p_(M),U=y.get(w);if(!U)throw new Error(`No BullMQ queue registered for kind ${w}`);let te=u_.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){Fd("queue add returned:",A)}return{messageId:te}};function k(M){let F=d_[M];return async C=>{let U=`${f_(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 Fd("queue handler error:",A),Response.json({error:String(A)},{status:500})}},O=async()=>"redis";async function R(){let M=e.queueConcurrency||10;for(let[F,C]of Object.entries(i)){let w=new Xo.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=>XS(M.close(),f).catch(()=>{}))),await Promise.all(Array.from(y.values()).map(M=>XS(M.close(),f).catch(()=>{})))}return{createQueueHandler:I,getDeploymentId:O,queue:S,getQueueStats:x,async start(){await R()},async stop(){await E()}}}var tE=r=>`${r}events_notify`;function h_(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 rE(r,e,t){try{await r.publish(tE(e),JSON.stringify(t))}catch{}}function nE(r){let{redis:e,keyPrefix:t}=r,n=tE(t),i=e.duplicate(),s=new Set,a=i.subscribe(n).then(()=>{});return i.on("message",(o,l)=>{if(o!==n)return;let c=h_(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()}}}}var y_=3e4,m_=`-- fifo:admit
8909
+ `;oo.updateRepeatableJobMillis={name:"updateRepeatableJobMillis",content:mR,keys:1}});var c0=h(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});var z=(Qe(),nt(He));z.__exportStar(pg(),U);z.__exportStar(fg(),U);z.__exportStar(hg(),U);z.__exportStar(yg(),U);z.__exportStar(mg(),U);z.__exportStar(bg(),U);z.__exportStar(gg(),U);z.__exportStar(vg(),U);z.__exportStar(Kg(),U);z.__exportStar(Sg(),U);z.__exportStar(Eg(),U);z.__exportStar(kg(),U);z.__exportStar(Ig(),U);z.__exportStar(xg(),U);z.__exportStar(wg(),U);z.__exportStar(Tg(),U);z.__exportStar(jg(),U);z.__exportStar(Ag(),U);z.__exportStar(Dg(),U);z.__exportStar(Rg(),U);z.__exportStar(Og(),U);z.__exportStar(Cg(),U);z.__exportStar(_g(),U);z.__exportStar(Mg(),U);z.__exportStar(Pg(),U);z.__exportStar(Ng(),U);z.__exportStar(Lg(),U);z.__exportStar(qg(),U);z.__exportStar(Jg(),U);z.__exportStar(Fg(),U);z.__exportStar(Vg(),U);z.__exportStar(Gg(),U);z.__exportStar(Yg(),U);z.__exportStar(Bg(),U);z.__exportStar(Wg(),U);z.__exportStar(Ug(),U);z.__exportStar(zg(),U);z.__exportStar($g(),U);z.__exportStar(Hg(),U);z.__exportStar(Qg(),U);z.__exportStar(Zg(),U);z.__exportStar(Xg(),U);z.__exportStar(e0(),U);z.__exportStar(t0(),U);z.__exportStar(r0(),U);z.__exportStar(n0(),U);z.__exportStar(i0(),U);z.__exportStar(s0(),U);z.__exportStar(a0(),U);z.__exportStar(o0(),U);z.__exportStar(l0(),U)});var Ei=h(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.RedisConnection=void 0;var bR=(Qe(),nt(He)),gR=B("events"),u0=ds(),d0=Oe(),rt=ct(),vR=sa(),KR=c0(),SR=["BullMQ: WARNING! Your redis options maxRetriesPerRequest must be null","and will be overridden by BullMQ."].join(" "),ER="BullMQ: Your redis options maxRetriesPerRequest must be null.",lo=Symbol("bullmqClusterReconnectPromise"),Gu=Symbol("bullmqClusterPatchedForBlocking"),co=Symbol("bullmqClusterOriginalBzpopmin"),Yu=Symbol("bullmqClusterWrappedBzpopmin"),Nn=Symbol("bullmqClusterPatchRefCount"),Xr=Symbol("bullmqClusterClosingRefCount"),Si=class r extends gR.EventEmitter{constructor(e,t){if(super(),this.extraOptions=t,this.capabilities={canDoubleTimeout:!1,canBlockFor1Ms:!0},this.status="initializing",this.dbType="redis",this.packageVersion=vR.version,this.disabledBlockingClusterReconnect=!1,this.extraOptions=Object.assign({shared:!1,blocking:!0,skipVersionCheck:!1,skipWaitingForReady:!1},t),!(0,rt.isRedisInstance)(e))this.checkBlockingOptions(SR,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(ER,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(d0.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(d0.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||KR;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=bR.__rest(e,["url"]);this._client=t?new u0.default(t,n):new u0.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[Gu]))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[co]=n,t[Yu]=i,t[Gu]=!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[co]&&e.bzpopmin===e[Yu]&&(e.bzpopmin=e[co]),delete e[Nn],delete e[Xr],delete e[co],delete e[Yu],delete e[Gu],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[lo]||(e[lo]=(async()=>{e.disconnect(!1),await e.connect()})().finally(()=>{e[lo]=null})),await e[lo])}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}};uo.RedisConnection=Si;Si.minimumVersion="5.0.0";Si.recommendedMinimumVersion="6.2.0"});var p0=h(fo=>{"use strict";Object.defineProperty(fo,"__esModule",{value:!0});fo.FlowProducer=void 0;var kR=B("events"),Tr=ct(),IR=Pn(),po=ua(),xR=Ei(),Wt=st(),Bu=class extends kR.EventEmitter{constructor(e={connection:{}},t=xR.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 po.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 IR.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 po.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 E=t.opts,k=E?.telemetry;if(p&&E){let D=(y=E.telemetry)===null||y===void 0?void 0:y.omitContext,Y=((g=E.telemetry)===null||g===void 0?void 0:g.metadata)||!D&&p;(Y||D)&&(k={metadata:Y,omitContext:D})}let I=new this.Job(l,t.name,t.data,Object.assign(Object.assign(Object.assign({},u),E),{parent:n?.parentOpts,telemetry:k}),d),R=(0,Tr.getParentKey)(n?.parentOpts);if(t.children&&t.children.length>0){let D=d,Y=new po.QueueKeys(t.prefix||this.opts.prefix);await I.addJob(e,{parentDependenciesKey:n?.parentDependenciesKey,addToWaitingChildren:!0,parentKey:R});let ae=`${Y.toKey(t.queueName,D)}:dependencies`,x=await this.addChildren({multi:e,nodes:t.children,parent:{parentOpts:{id:D,queue:Y.getQueueQualifiedName(t.queueName)},parentDependenciesKey:ae},queuesOpts:i});return{job:I,children:x}}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 po.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()}};fo.FlowProducer=Bu});var Vv=h(mt=>{"use strict";Object.defineProperty(mt,"__esModule",{value:!0});var ar=class extends Error{},td=class extends ar{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},rd=class extends ar{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},nd=class extends ar{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Dr=class extends ar{},So=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",ht="long",Eo={year:N,month:N,day:N},G0={year:N,month:Mt,day:N},wR={year:N,month:Mt,day:N,weekday:Mt},Y0={year:N,month:ht,day:N},B0={year:N,month:ht,day:N,weekday:ht},W0={hour:N,minute:N},U0={hour:N,minute:N,second:N},z0={hour:N,minute:N,second:N,timeZoneName:Mt},$0={hour:N,minute:N,second:N,timeZoneName:ht},H0={hour:N,minute:N,hourCycle:"h23"},Q0={hour:N,minute:N,second:N,hourCycle:"h23"},Z0={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:Mt},X0={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:ht},ev={year:N,month:N,day:N,hour:N,minute:N},tv={year:N,month:N,day:N,hour:N,minute:N,second:N},rv={year:N,month:Mt,day:N,hour:N,minute:N},nv={year:N,month:Mt,day:N,hour:N,minute:N,second:N},TR={year:N,month:Mt,day:N,weekday:Mt,hour:N,minute:N},iv={year:N,month:ht,day:N,hour:N,minute:N,timeZoneName:Mt},sv={year:N,month:ht,day:N,hour:N,minute:N,second:N,timeZoneName:Mt},av={year:N,month:ht,day:N,weekday:ht,hour:N,minute:N,timeZoneName:ht},ov={year:N,month:ht,day:N,weekday:ht,hour:N,minute:N,second:N,timeZoneName:ht},Or=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}},Wu=null,ji=class r extends Or{static get instance(){return Wu===null&&(Wu=new r),Wu}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return gv(e,t,n)}formatOffset(e,t){return Ti(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},id=new Map;function jR(r){let e=id.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"}),id.set(r,e)),e}var AR={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function DR(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 RR(r,e){let t=r.formatToParts(e),n=[];for(let i=0;i<t.length;i++){let{type:s,value:a}=t[i],o=AR[s];s==="era"?n[o]=a:Q(o)||(n[o]=parseInt(a,10))}return n}var Uu=new Map,or=class r extends Or{static create(e){let t=Uu.get(e);return t===void 0&&Uu.set(e,t=new r(e)),t}static resetCache(){Uu.clear(),id.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 gv(e,t,n,this.name)}formatOffset(e,t){return Ti(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=jR(this.name),[i,s,a,o,l,c,u]=n.formatToParts?RR(n,t):DR(n,t);o==="BC"&&(i=-Math.abs(i)+1);let f=Ao({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}},f0={};function OR(r,e={}){let t=JSON.stringify([r,e]),n=f0[t];return n||(n=new Intl.ListFormat(r,e),f0[t]=n),n}var sd=new Map;function ad(r,e={}){let t=JSON.stringify([r,e]),n=sd.get(t);return n===void 0&&(n=new Intl.DateTimeFormat(r,e),sd.set(t,n)),n}var od=new Map;function CR(r,e={}){let t=JSON.stringify([r,e]),n=od.get(t);return n===void 0&&(n=new Intl.NumberFormat(r,e),od.set(t,n)),n}var ld=new Map;function _R(r,e={}){let{base:t,...n}=e,i=JSON.stringify([r,n]),s=ld.get(i);return s===void 0&&(s=new Intl.RelativeTimeFormat(r,e),ld.set(i,s)),s}var Ii=null;function MR(){return Ii||(Ii=new Intl.DateTimeFormat().resolvedOptions().locale,Ii)}var cd=new Map;function lv(r){let e=cd.get(r);return e===void 0&&(e=new Intl.DateTimeFormat(r).resolvedOptions(),cd.set(r,e)),e}var ud=new Map;function PR(r){let e=ud.get(r);if(!e){let t=new Intl.Locale(r);e="getWeekInfo"in t?t.getWeekInfo():t.weekInfo,"minimalDays"in e||(e={...cv,...e}),ud.set(r,e)}return e}function NR(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=ad(r).resolvedOptions(),i=r}catch{let l=r.substring(0,t);n=ad(l).resolvedOptions(),i=l}let{numberingSystem:s,calendar:a}=n;return[i,s,a]}}function LR(r,e,t){return(t||e)&&(r.includes("-u-")||(r+="-u"),t&&(r+=`-ca-${t}`),e&&(r+=`-nu-${e}`)),r}function qR(r){let e=[];for(let t=1;t<=12;t++){let n=xe.utc(2009,t,1);e.push(r(n))}return e}function JR(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 ho(r,e,t,n){let i=r.listingMode();return i==="error"?null:i==="en"?t(e):n(e)}function FR(r){return r.numberingSystem&&r.numberingSystem!=="latn"?!1:r.numberingSystem==="latn"||!r.locale||r.locale.startsWith("en")||lv(r.locale).numberingSystem==="latn"}var dd=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=CR(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):Ed(e,3);return Ce(t,this.padTo)}}},pd=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=ad(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()}},fd=class{constructor(e,t,n){this.opts={style:"long",...n},!t&&mv()&&(this.rtf=_R(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):lO(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},cv={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":MR()),l=t||Ie.defaultNumberingSystem,c=n||Ie.defaultOutputCalendar,u=yd(i)||Ie.defaultWeekSettings;return new r(o,l,c,u,a)}static resetCache(){Ii=null,sd.clear(),od.clear(),ld.clear(),cd.clear(),ud.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]=NR(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||l||null,this.weekSettings=i,this.intl=LR(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=FR(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,yd(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 ho(this,e,Sv,()=>{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]=qR(a)}return this.monthsCache[s][e]})}weekdays(e,t=!1){return ho(this,e,Iv,()=>{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]=JR(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return ho(this,void 0,()=>xv,()=>{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 ho(this,e,wv,()=>{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 dd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new pd(e,this.intl,t)}relFormatter(e={}){return new fd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return OR(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||lv(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:bv()?PR(this.locale):cv}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})`}},zu=null,yt=class r extends Or{static get utcInstance(){return zu===null&&(zu=new r(0)),zu}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(Do(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Ti(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Ti(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return Ti(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}},ko=class extends Or{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 Or)return r;if(UR(r)){let t=r.toLowerCase();return t==="default"?e:t==="local"||t==="system"?ji.instance:t==="utc"||t==="gmt"?yt.utcInstance:yt.parseSpecifier(t)||or.create(r)}else return Rr(r)?yt.instance(r):typeof r=="object"&&"offset"in r&&typeof r.offset=="function"?r:new ko(r)}var gd={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"},h0={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]},VR=gd.hanidec.replace(/[\[|\]]/g,"").split("");function GR(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(gd.hanidec)!==-1)e+=VR.indexOf(r[t]);else for(let i in h0){let[s,a]=h0[i];n>=s&&n<=a&&(e+=n-s)}}return parseInt(e,10)}else return e}var hd=new Map;function YR(){hd.clear()}function Ct({numberingSystem:r},e=""){let t=r||"latn",n=hd.get(t);n===void 0&&(n=new Map,hd.set(t,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${gd[t]}${e}`),n.set(e,i)),i}var y0=()=>Date.now(),m0="system",b0=null,g0=null,v0=null,K0=60,S0,E0=null,Ie=class{static get now(){return y0}static set now(e){y0=e}static set defaultZone(e){m0=e}static get defaultZone(){return Ar(m0,ji.instance)}static get defaultLocale(){return b0}static set defaultLocale(e){b0=e}static get defaultNumberingSystem(){return g0}static set defaultNumberingSystem(e){g0=e}static get defaultOutputCalendar(){return v0}static set defaultOutputCalendar(e){v0=e}static get defaultWeekSettings(){return E0}static set defaultWeekSettings(e){E0=yd(e)}static get twoDigitCutoffYear(){return K0}static set twoDigitCutoffYear(e){K0=e%100}static get throwOnInvalid(){return S0}static set throwOnInvalid(e){S0=e}static resetCaches(){ve.resetCache(),or.resetCache(),xe.resetCache(),YR()}},ft=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},uv=[0,31,59,90,120,151,181,212,243,273,304,334],dv=[0,31,60,91,121,152,182,213,244,274,305,335];function wt(r,e){return new ft("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${r}, which is invalid`)}function vd(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 pv(r,e,t){return t+(Di(r)?dv:uv)[e-1]}function fv(r,e){let t=Di(r)?dv:uv,n=t.findIndex(s=>s<e),i=e-t[n];return{month:n+1,day:i}}function Kd(r,e){return(r-e+7)%7+1}function Io(r,e=4,t=1){let{year:n,month:i,day:s}=r,a=pv(n,i,s),o=Kd(vd(n,i,s),t),l=Math.floor((a-o+14-e)/7),c;return l<1?(c=n-1,l=Ai(c,e,t)):l>Ai(n,e,t)?(c=n+1,l=1):c=n,{weekYear:c,weekNumber:l,weekday:o,...Ro(r)}}function k0(r,e=4,t=1){let{weekYear:n,weekNumber:i,weekday:s}=r,a=Kd(vd(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}=fv(c,l);return{year:c,month:u,day:d,...Ro(r)}}function $u(r){let{year:e,month:t,day:n}=r,i=pv(e,t,n);return{year:e,ordinal:i,...Ro(r)}}function I0(r){let{year:e,ordinal:t}=r,{month:n,day:i}=fv(e,t);return{year:e,month:n,day:i,...Ro(r)}}function x0(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 BR(r,e=4,t=1){let n=jo(r.weekYear),i=Tt(r.weekNumber,1,Ai(r.weekYear,e,t)),s=Tt(r.weekday,1,7);return n?i?s?!1:wt("weekday",r.weekday):wt("week",r.weekNumber):wt("weekYear",r.weekYear)}function WR(r){let e=jo(r.year),t=Tt(r.ordinal,1,Fn(r.year));return e?t?!1:wt("ordinal",r.ordinal):wt("year",r.year)}function hv(r){let e=jo(r.year),t=Tt(r.month,1,12),n=Tt(r.day,1,xo(r.year,r.month));return e?t?n?!1:wt("day",r.day):wt("month",r.month):wt("year",r.year)}function yv(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:wt("millisecond",i):wt("second",n):wt("minute",t):wt("hour",e)}function Q(r){return typeof r>"u"}function Rr(r){return typeof r=="number"}function jo(r){return typeof r=="number"&&r%1===0}function UR(r){return typeof r=="string"}function zR(r){return Object.prototype.toString.call(r)==="[object Date]"}function mv(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function bv(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function $R(r){return Array.isArray(r)?r:[r]}function w0(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 HR(r,e){return e.reduce((t,n)=>(t[n]=r[n],t),{})}function Gn(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function yd(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 QR(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 Sd(r){if(!(Q(r)||r===null||r==="")){let e=parseFloat("0."+r)*1e3;return Math.floor(e)}}function Ed(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 Di(r){return r%4===0&&(r%100!==0||r%400===0)}function Fn(r){return Di(r)?366:365}function xo(r,e){let t=QR(e-1,12)+1,n=r+(e-t)/12;return t===2?Di(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function Ao(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 T0(r,e,t){return-Kd(vd(r,1,e),t)+e-1}function Ai(r,e=4,t=1){let n=T0(r,e,t),i=T0(r+1,e,t);return(Fn(r)-n+i)/7}function md(r){return r>99?r:r>Ie.twoDigitCutoffYear?1900+r:2e3+r}function gv(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 Do(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 vv(r){let e=Number(r);if(typeof r=="boolean"||r===""||!Number.isFinite(e))throw new Fe(`Invalid unit value ${r}`);return e}function wo(r,e){let t={};for(let n in r)if(Gn(r,n)){let i=r[n];if(i==null)continue;t[e(n)]=vv(i)}return t}function Ti(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 Ro(r){return HR(r,["hour","minute","second","millisecond"])}var ZR=["January","February","March","April","May","June","July","August","September","October","November","December"],Kv=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],XR=["J","F","M","A","M","J","J","A","S","O","N","D"];function Sv(r){switch(r){case"narrow":return[...XR];case"short":return[...Kv];case"long":return[...ZR];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 Ev=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],kv=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],eO=["M","T","W","T","F","S","S"];function Iv(r){switch(r){case"narrow":return[...eO];case"short":return[...kv];case"long":return[...Ev];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var xv=["AM","PM"],tO=["Before Christ","Anno Domini"],rO=["BC","AD"],nO=["B","A"];function wv(r){switch(r){case"narrow":return[...nO];case"short":return[...rO];case"long":return[...tO];default:return null}}function iO(r){return xv[r.hour<12?0:1]}function sO(r,e){return Iv(e)[r.weekday-1]}function aO(r,e){return Sv(e)[r.month-1]}function oO(r,e){return wv(e)[r.year<0?0:1]}function lO(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 j0(r,e){let t="";for(let n of r)n.literal?t+=n.val:t+=e(n.val);return t}var cO={D:Eo,DD:G0,DDD:Y0,DDDD:B0,t:W0,tt:U0,ttt:z0,tttt:$0,T:H0,TT:Q0,TTT:Z0,TTTT:X0,f:ev,ff:rv,fff:iv,ffff:av,F:tv,FF:nv,FFF:sv,FFFF:ov},pt=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 cO[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?iO(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(p,y)=>n?aO(e,p):s(y?{month:p}:{month:p,day:"numeric"},"month"),c=(p,y)=>n?sO(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?oO(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 j0(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 j0(a,s(l,c))}},Tv=/[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 jv(...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 Av=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,uO=`(?:${Av.source}?(?:\\[(${Tv.source})\\])?)?`,kd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Dv=RegExp(`${kd.source}${uO}`),Id=RegExp(`(?:[Tt]${Dv.source})?`),dO=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,pO=/(\d{4})-?W(\d\d)(?:-?(\d))?/,fO=/(\d{4})-?(\d{3})/,hO=jv("weekYear","weekNumber","weekDay"),yO=jv("year","ordinal"),mO=/(\d{4})-(\d\d)-(\d\d)/,Rv=RegExp(`${kd.source} ?(?:${Av.source}|(${Tv.source}))?`),bO=RegExp(`(?: ${Rv.source})?`);function Vn(r,e,t){let n=r[e];return Q(n)?t:jr(n)}function gO(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:Sd(r[e+3])},null,e+4]}function Ri(r,e){let t=!r[e]&&!r[e+1],n=Do(r[e+1],r[e+2]),i=t?null:yt.instance(n);return[{},i,e+3]}function Oi(r,e){let t=r[e]?or.create(r[e]):null;return[{},t,e+1]}var vO=RegExp(`^T?${kd.source}$`),KO=/^-?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 SO(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(Sd(c),d)}]}var EO={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function xd(r,e,t,n,i,s,a){let o={year:e.length===2?md(jr(e)):jr(e),month:Kv.indexOf(t)+1,day:jr(n),hour:jr(i),minute:jr(s)};return a&&(o.second=jr(a)),r&&(o.weekday=r.length>3?Ev.indexOf(r)+1:kv.indexOf(r)+1),o}var kO=/^(?:(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 IO(r){let[,e,t,n,i,s,a,o,l,c,u,d]=r,f=xd(e,i,n,t,s,a,o),p;return l?p=EO[l]:c?p=0:p=Do(u,d),[f,new yt(p)]}function xO(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var wO=/^(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$/,TO=/^(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$/,jO=/^(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 A0(r){let[,e,t,n,i,s,a,o]=r;return[xd(e,i,n,t,s,a,o),yt.utcInstance]}function AO(r){let[,e,t,n,i,s,a,o]=r;return[xd(e,o,t,n,i,s,a),yt.utcInstance]}var DO=Yn(dO,Id),RO=Yn(pO,Id),OO=Yn(fO,Id),CO=Yn(Dv),Ov=Bn(gO,Un,Ri,Oi),_O=Bn(hO,Un,Ri,Oi),MO=Bn(yO,Un,Ri,Oi),PO=Bn(Un,Ri,Oi);function NO(r){return Wn(r,[DO,Ov],[RO,_O],[OO,MO],[CO,PO])}function LO(r){return Wn(xO(r),[kO,IO])}function qO(r){return Wn(r,[wO,A0],[TO,A0],[jO,AO])}function JO(r){return Wn(r,[KO,SO])}var FO=Bn(Un);function VO(r){return Wn(r,[vO,FO])}var GO=Yn(mO,bO),YO=Yn(Rv),BO=Bn(Un,Ri,Oi);function WO(r){return Wn(r,[GO,Ov],[YO,BO])}var D0="Invalid Duration",Cv={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}},UO={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},...Cv},xt=146097/400,Ln=146097/4800,zO={years:{quarters:4,months:12,weeks:xt/7,days:xt,hours:xt*24,minutes:xt*24*60,seconds:xt*24*60*60,milliseconds:xt*24*60*60*1e3},quarters:{months:3,weeks:xt/28,days:xt/4,hours:xt*24/4,minutes:xt*24*60/4,seconds:xt*24*60*60/4,milliseconds:xt*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},...Cv},rn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],$O=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 _v(r,e){var t;let n=(t=e.milliseconds)!=null?t:0;for(let i of $O.slice(1))e[i]&&(n+=e[i]*r[i].milliseconds);return n}function R0(r,e){let t=_v(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 O0(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?zO:UO;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:wo(e,r.normalizeUnit),loc:ve.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(Rr(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]=JO(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]=VO(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 ft?e:new ft(e,t);if(Ie.throwOnInvalid)throw new nd(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 So(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?pt.create(this.loc,n).formatDurationFromString(this,e):D0}toHuman(e={}){if(!this.isValid)return D0;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+=Ed(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?_v(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]=vv(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,...wo(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 R0(this.matrix,e),sr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=O0(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;Rr(i[a])&&(o+=i[a]);let l=Math.trunc(o);t[a]=l,n[a]=(o*1e3-l*1e3)/1e3}else Rr(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 R0(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=O0(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 HO(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 ft?e:new ft(e,t);if(Ie.throwOnInvalid)throw new rd(n);return new r({invalid:n})}static fromDateTimes(e,t){let n=ki(e),i=ki(t),s=HO(n,i);return s??new r({start:n,end:i})}static after(e,t){let n=Ne.fromDurationLike(t),i=ki(e);return r.fromDateTimes(i,i.plus(n))}static before(e,t){let n=Ne.fromDurationLike(t),i=ki(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(ki).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=Eo,t={}){return this.isValid?pt.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:mv(),localeWeek:bv()}}};function C0(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 QO(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=C0(l,c);return(u-u%7)/7}],["days",C0]],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 ZO(r,e,t,n){let[i,s,a,o]=QO(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 XO="missing Intl.DateTimeFormat.formatToParts support";function fe(r,e=t=>t){return{regex:r,deser:([t])=>e(GR(t))}}var eC="\xA0",Mv=`[ ${eC}]`,Pv=new RegExp(Mv,"g");function tC(r){return r.replace(/\./g,"\\.?").replace(Pv,Mv)}function _0(r){return r.replace(/\./g,"").replace(Pv," ").toLowerCase()}function _t(r,e){return r===null?null:{regex:RegExp(r.map(tC).join("|")),deser:([t])=>r.findIndex(n=>_0(t)===_0(n))+e}}function M0(r,e){return{regex:r,deser:([,t,n])=>Do(t,n),groups:e}}function yo(r){return{regex:r,deser:([e])=>e}}function rC(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function nC(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=E=>({regex:RegExp(rC(E.val)),deser:([k])=>k,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(d,md);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 yo(u);case"uu":return yo(o);case"uuu":return fe(t);case"a":return _t(e.meridiems(),0);case"kkkk":return fe(s);case"kk":return fe(d,md);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 M0(new RegExp(`([+-]${o.source})(?::(${n.source}))?`),2);case"ZZZ":return M0(new RegExp(`([+-]${o.source})(${n.source})?`),2);case"z":return yo(/[a-z_+-/]{1,256}?/i);case" ":return yo(/[^\S\n\r]/);default:return p(E)}})(r)||{invalidReason:XO};return g.token=r,g}var iC={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 sC(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=iC[a];if(typeof o=="object"&&(o=o[s]),o)return{literal:!1,val:o}}function aC(r){return[`^${r.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,r]}function oC(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 lC(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 yt(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=Sd(r.u)),[Object.keys(r).reduce((s,a)=>{let o=e(a);return o&&(s[o]=r[a]),s},{}),t,n]}var Hu=null;function cC(){return Hu||(Hu=xe.fromMillis(1555555555555)),Hu}function uC(r,e){if(r.literal)return r;let t=pt.macroTokenToFormatOpts(r.val),n=qv(t,e);return n==null||n.includes(void 0)?r:n}function Nv(r,e){return Array.prototype.concat(...r.map(t=>uC(t,e)))}var To=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Nv(pt.parseFormat(t),e),this.units=this.tokens.map(n=>nC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=aC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[t,n]=oC(e,this.regex,this.handlers),[i,s,a]=n?lC(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 Lv(r,e,t){return new To(r,t).explainFromTokens(e)}function dC(r,e,t){let{result:n,zone:i,specificOffset:s,invalidReason:a}=Lv(r,e,t);return[n,i,s,a]}function qv(r,e){if(!r)return null;let n=pt.create(e,r).dtFormatter(cC()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(a=>sC(a,r,s))}var Qu="Invalid DateTime",P0=864e13;function xi(r){return new ft("unsupported zone",`the zone "${r.name}" is not supported`)}function Zu(r){return r.weekData===null&&(r.weekData=Io(r.c)),r.weekData}function Xu(r){return r.localWeekData===null&&(r.localWeekData=Io(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 Jv(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 mo(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 go(r,e,t){return Jv(Ao(r),e,t)}function N0(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,xo(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=Ao(s),[l,c]=Jv(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 ft("unparsable",`the input "${i}" can't be parsed as ${n}`))}function bo(r,e,t=!0){return r.isValid?pt.create(ve.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(r,e):null}function ed(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 L0(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 Fv={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},pC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},fC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},vo=["year","month","day","hour","minute","second","millisecond"],hC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],yC=["year","ordinal","hour","minute","second","millisecond"];function Ko(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 So(r);return e}function q0(r){switch(r.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Ko(r)}}function mC(r){if(wi===void 0&&(wi=Ie.now()),r.type!=="iana")return r.offset(wi);let e=r.name,t=bd.get(e);return t===void 0&&(t=r.offset(wi),bd.set(e,t)),t}function J0(r,e){let t=Ar(e.zone,Ie.defaultZone);if(!t.isValid)return xe.invalid(xi(t));let n=ve.fromObject(e),i,s;if(Q(r.year))i=Ie.now();else{for(let l of vo)Q(r[l])&&(r[l]=Fv[l]);let a=hv(r)||yv(r);if(a)return xe.invalid(a);let o=mC(t);[i,s]=go(r,o,t)}return new xe({ts:i,zone:t,loc:n,o:s})}function F0(r,e,t){let n=Q(t.round)?!0:t.round,i=Q(t.rounding)?"trunc":t.rounding,s=(o,l)=>(o=Ed(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 V0(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 wi,bd=new Map,xe=class r{constructor(e){let t=e.zone||Ie.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new ft("invalid input"):null)||(t.isValid?null:xi(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=Rr(e.o)&&!e.old?e.o:t.offset(this.ts);i=mo(this.ts,o),n=Number.isNaN(i.year)?new ft("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]=V0(arguments),[n,i,s,a,o,l,c]=t;return J0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static utc(){let[e,t]=V0(arguments),[n,i,s,a,o,l,c]=t;return e.zone=yt.utcInstance,J0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static fromJSDate(e,t={}){let n=zR(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(xi(i))}static fromMillis(e,t={}){if(Rr(e))return e<-P0||e>P0?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(Rr(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(xi(n));let i=ve.fromObject(t),s=wo(e,q0),{minDaysInFirstWeek:a,startOfWeek:o}=x0(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,E,k,I=mo(l,c);g?(E=hC,k=pC,I=Io(I,a,o)):u?(E=yC,k=fC,I=$u(I)):(E=vo,k=Fv);let R=!1;for(let V of E){let M=s[V];Q(M)?R?s[V]=k[V]:s[V]=I[V]:R=!0}let D=g?BR(s,a,o):u?WR(s):hv(s),Y=D||yv(s);if(Y)return r.invalid(Y);let ae=g?k0(s,a,o):u?I0(s):s,[x,S]=go(ae,c,n),C=new r({ts:x,zone:n,o:S,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]=NO(e);return Jn(n,i,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[n,i]=LO(e);return Jn(n,i,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[n,i]=qO(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]=dC(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]=WO(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 ft?e:new ft(e,t);if(Ie.throwOnInvalid)throw new td(n);return new r({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=qv(e,ve.fromObject(t));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,t={}){return Nv(pt.parseFormat(e),ve.fromObject(t)).map(i=>i.val).join("")}static resetCache(){wi=void 0,bd.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?Zu(this).weekYear:NaN}get weekNumber(){return this.isValid?Zu(this).weekNumber:NaN}get weekday(){return this.isValid?Zu(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Xu(this).weekday:NaN}get localWeekNumber(){return this.isValid?Xu(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Xu(this).weekYear:NaN}get ordinal(){return this.isValid?$u(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=Ao(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=mo(l,a),d=mo(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 Di(this.year)}get daysInMonth(){return xo(this.year,this.month)}get daysInYear(){return this.isValid?Fn(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ai(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Ai(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:i}=pt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:i}}toUTC(e=0,t={}){return this.setZone(yt.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]=go(a,s,e)}return tn(this,{ts:i,zone:e})}else return r.invalid(xi(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=wo(e,q0),{minDaysInFirstWeek:n,startOfWeek:i}=x0(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=k0({...Io(this.c,n,i),...t},n,i):Q(t.ordinal)?(d={...this.toObject(),...t},Q(t.day)&&(d.day=Math.min(xo(d.year,d.month),d.day))):d=I0({...$u(this.c),...t});let[f,p]=go(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,N0(this,t))}minus(e){if(!this.isValid)return this;let t=Ne.fromDurationLike(e).negate();return tn(this,N0(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?pt.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Qu}toLocaleString(e=Eo,t={}){return this.isValid?pt.create(this.loc.clone(t),e).formatDateTime(this):Qu}toLocaleParts(e={}){return this.isValid?pt.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=Ko(a);let o=e==="extended",l=ed(this,o,a);return vo.indexOf(a)>=3&&(l+="T"),l+=L0(this,o,t,n,i,s,a),l}toISODate({format:e="extended",precision:t="day"}={}){return this.isValid?ed(this,e==="extended",Ko(t)):null}toISOWeekDate(){return bo(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=Ko(o),(i&&vo.indexOf(o)>=3?"T":"")+L0(this,a==="extended",t,e,n,s,o)):null}toRFC2822(){return bo(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return bo(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?ed(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")),bo(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Qu}[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=$R(t).map(Ne.normalizeUnit),a=e.valueOf()>this.valueOf(),o=a?this:e,l=a?e:this,c=ZO(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),F0(t,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?F0(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 w0(e,t=>t.valueOf(),Math.min)}static max(...e){if(!e.every(r.isDateTime))throw new Fe("max requires all arguments be DateTimes");return w0(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 Lv(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 To(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 Eo}static get DATE_MED(){return G0}static get DATE_MED_WITH_WEEKDAY(){return wR}static get DATE_FULL(){return Y0}static get DATE_HUGE(){return B0}static get TIME_SIMPLE(){return W0}static get TIME_WITH_SECONDS(){return U0}static get TIME_WITH_SHORT_OFFSET(){return z0}static get TIME_WITH_LONG_OFFSET(){return $0}static get TIME_24_SIMPLE(){return H0}static get TIME_24_WITH_SECONDS(){return Q0}static get TIME_24_WITH_SHORT_OFFSET(){return Z0}static get TIME_24_WITH_LONG_OFFSET(){return X0}static get DATETIME_SHORT(){return ev}static get DATETIME_SHORT_WITH_SECONDS(){return tv}static get DATETIME_MED(){return rv}static get DATETIME_MED_WITH_SECONDS(){return nv}static get DATETIME_MED_WITH_WEEKDAY(){return TR}static get DATETIME_FULL(){return iv}static get DATETIME_FULL_WITH_SECONDS(){return sv}static get DATETIME_HUGE(){return av}static get DATETIME_HUGE_WITH_SECONDS(){return ov}};function ki(r){if(xe.isDateTime(r))return r;if(r&&r.valueOf&&Rr(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 bC="3.7.2";mt.DateTime=xe;mt.Duration=Ne;mt.FixedOffsetZone=yt;mt.IANAZone=or;mt.Info=nn;mt.Interval=sn;mt.InvalidZone=ko;mt.Settings=Ie;mt.SystemZone=ji;mt.VERSION=bC;mt.Zone=Or});var Yv=h((pL,Gv)=>{"use strict";var an=Vv();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))}Gv.exports=X});var Uv=h((fL,Wv)=>{"use strict";function on(r){return{start:r,count:1}}function Bv(r,e){r.end=e,r.step=e-r.start,r.count=2}function wd(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 gC(r){for(var e=[],t=void 0,n=0;n<r.length;n++){var i=r[n];typeof i!="number"?(wd(e,t,on(i)),t=void 0):t?t.count===1?Bv(t,i):t.step===i-t.end?(t.count++,t.end=i):t.count===2?(e.push(on(t.start)),t=on(t.end),Bv(t,i)):(wd(e,t),t=on(i)):t=on(i)}return wd(e,t),e}Wv.exports=gC});var $v=h((hL,zv)=>{"use strict";var vC=Uv();function KC(r,e,t){var n=vC(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(",")}zv.exports=KC});var Zv=h((yL,Qv)=>{"use strict";var ln=Yv(),SC=$v(),Hv=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,E=y.length;g<E;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,E=p;g<=E;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,D=I.length;R<D;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,D=k.getDate()-k.getDate()%7,Y=Math.floor(D/7)+R;return Y===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<Hv;){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,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(u>=Hv)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(SC(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 E=L.map[u];g[E]=o[u]}var k=L._handleMaxDaysInMonth(g);return g.dayOfMonth=k||g.dayOfMonth,new L(g,a);function I(R){var D=R.split("#");if(D.length>1){var Y=+D[D.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(D.length>2||Number.isNaN(Y)||Y<1||Y>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=Y,D[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,E=p.length;g<E;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||{})};Qv.exports=L});var Td=h((mL,Xv)=>{"use strict";var Oo=Zv();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){B("fs").readFile(e,function(n,i){if(n){t(n);return}return t(null,Cr.parseString(i.toString()))})};Xv.exports=Cr});var _r=h(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.QueueBase=void 0;var EC=B("events"),Ci=ct(),kC=la(),IC=Ei(),xC=Pn(),wC=ua(),jd=class extends EC.EventEmitter{constructor(e,t={connection:{}},n=IC.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,Ci.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 wC.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,kC.createScripts)(this)}get redisVersion(){return this.connection.redisVersion}get databaseType(){return this.connection.databaseType}get Job(){return xC.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=Ci.DELAY_TIME_5){try{return await e()}catch(n){if((0,Ci.isNotConnectionError)(n)&&this.emit("error",n),!this.closing&&t)await(0,Ci.delay)(t);else return}}trace(e,t,n,i,s){return(0,Ci.trace)(this.opts.telemetry,e,this.name,t,n,i,s)}};Co.QueueBase=jd});var Mo=h(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.defaultRepeatStrategy=cn.JobScheduler=void 0;var TC=(Qe(),nt(He)),jC=Td(),_o=Pn(),AC=_r(),_i=st(),DC=ct(),Ad=class extends AC.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:E}=t,k=TC.__rest(t,["immediately"]),I,R=null;if(u&&(I=await this.repeatStrategy(p,t,n),I<p&&(I=p)),I||l)return this.trace(_i.SpanKind.PRODUCER,"add",`${this.name}.${n}`,async(D,Y)=>{var ae,x;let S=s.telemetry;if(Y){let V=(ae=s.telemetry)===null||ae===void 0?void 0:ae.omitContext,M=((x=s.telemetry)===null||x===void 0?void 0:x.metadata)||!V&&Y;(M||V)&&(S={metadata:M,omitContext:V})}let C=this.getNextJobOpts(I,e,Object.assign(Object.assign({},s),{repeat:k,telemetry:S}),f,R);if(a){I<p&&(I=p);let[V,M]=await this.scripts.addJobScheduler(e,I,JSON.stringify(typeof i>"u"?{}:i),_o.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},_o.Job.optsAsJSON(C),o),O=typeof M=="string"?parseInt(M,10):M,m=new this.Job(this,n,i,Object.assign(Object.assign({},C),{delay:O}),V);return m.id=V,D?.setAttributes({[_i.TelemetryAttributes.JobSchedulerId]:e,[_i.TelemetryAttributes.JobId]:m.id}),m}else{let V=await this.scripts.updateJobSchedulerNextMillis(e,I,JSON.stringify(typeof i>"u"?{}:i),_o.Job.optsAsJSON(C),o);if(V){let M=new this.Job(this,n,i,C,V);return M.id=V,D?.setAttributes({[_i.TelemetryAttributes.JobSchedulerId]:e,[_i.TelemetryAttributes.JobId]:M.id}),M}}})}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,DC.array2obj)(t):null,n?parseInt(n):null)}getTemplateFromJSON(e,t){let n={};return e&&(n.data=JSON.parse(e)),t&&(n.opts=_o.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=Ad;var RC=(r,e)=>{let{pattern:t}=e,n=new Date(r),i=e.startDate&&new Date(e.startDate),s=i>n?i:n,a=(0,jC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:s}));try{return e.immediately?new Date().getTime():a.next().getTime()}catch{}};cn.defaultRepeatStrategy=RC});var Rd=h(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.LockManager=void 0;var OC=ws(),Po=st(),Dd=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(Po.SpanKind.INTERNAL,"extendLocks",this.worker.name,async t=>{t?.setAttributes({[Po.TelemetryAttributes.WorkerId]:this.opts.workerId,[Po.TelemetryAttributes.WorkerName]:this.opts.workerName,[Po.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 OC.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())}};No.LockManager=Dd});var tK=h(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.QueueEvents=void 0;var eK=(Qe(),nt(He)),Lo=ct(),CC=_r(),Od=class extends CC.QueueBase{constructor(e,t={connection:{}},n){var i,{connection:s,autorun:a=!0}=t,o=eK.__rest(t,["connection","autorun"]);super(e,Object.assign(Object.assign({},o),{connection:(0,Lo.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(Lo.QUEUE_EVENT_SUFFIX))}catch(t){if(!Lo.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,Lo.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=eK.__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}};qo.QueueEvents=Od});var rK=h(Jo=>{"use strict";Object.defineProperty(Jo,"__esModule",{value:!0});Jo.QueueEventsProducer=void 0;var _C=(Qe(),nt(He)),MC=_r(),Cd=class extends MC.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=_C.__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=Cd});var Pd=h(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.QueueGetters=void 0;var PC=(Qe(),nt(He)),NC=_r(),nK=ct(),_d=st();function iK(r){return String(r).replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}var Md=class extends NC.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(_d.MetricNames.QueueJobsCount,{description:"Number of jobs in the queue by state",unit:"{jobs}"});for(let[a,o]of Object.entries(n))s.record(o,{[_d.TelemetryAttributes.QueueName]:this.name,[_d.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=PC.__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(!nK.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()}${nK.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=iK(this.name),s=e?Object.keys(e).reduce((l,c)=>`${l}, ${c}="${iK(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
+ `)}};Fo.QueueGetters=Md});var Vo=h(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.getNextMillis=un.Repeat=void 0;var LC=(Qe(),nt(He)),qC=Td(),JC=B("crypto"),FC=_r(),Nd=class extends FC.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),E=g&&p?c-f:void 0;if(f){!d&&n.jobId&&(o.jobId=n.jobId);let k=sK(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 ae=await this.client;R=await this.scripts.updateRepeatableJobMillis(ae,I,f,k)}let{immediately:D}=o,Y=LC.__rest(o,["immediately"]);return this.createNextJob(e,f,R,Object.assign(Object.assign({},n),{repeat:Object.assign({offset:E},Y)}),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=sK(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,JC.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=Nd;function sK(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 VC=(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,qC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:n}));try{return e.immediately?new Date().getTime():i.next().getTime()}catch{}};un.getNextMillis=VC});var aK=h(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.Queue=void 0;var GC=Pn(),YC=Pd(),BC=Vo(),re=st(),WC=Mo(),UC=sa(),zC=ct(),Ld=class extends YC.QueueGetters{constructor(e,t,n){var i;super(e,Object.assign({},t),n),this.token=(0,zC.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}:${UC.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 BC.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 WC.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(re.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({[re.TelemetryAttributes.JobName]:e,[re.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(re.SpanKind.PRODUCER,"addBulk",this.name,async(t,n)=>(t&&t.setAttributes({[re.TelemetryAttributes.BulkNames]:e.map(i=>i.name),[re.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(re.SpanKind.INTERNAL,"pause",this.name,async()=>{await this.scripts.pause(!0),this.emit("paused")})}async close(){await this.trace(re.SpanKind.INTERNAL,"close",this.name,async()=>{this.closing||this._repeat&&await this._repeat.close(),await super.close()})}async rateLimit(e){await this.trace(re.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[re.TelemetryAttributes.QueueRateLimit]:e}),await this.client.then(n=>n.set(this.keys.limiter,Number.MAX_SAFE_INTEGER,"PX",e))})}async resume(){await this.trace(re.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(re.SpanKind.INTERNAL,"removeRepeatable",`${this.name}.${e}`,async i=>(i?.setAttributes({[re.TelemetryAttributes.JobName]:e,[re.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(re.SpanKind.INTERNAL,"removeDebounceKey",`${this.name}`,async t=>(t?.setAttributes({[re.TelemetryAttributes.JobKey]:e}),await(await this.client).del(`${this.keys.de}:${e}`)))}async removeDeduplicationKey(e){return this.trace(re.SpanKind.INTERNAL,"removeDeduplicationKey",`${this.name}`,async t=>(t?.setAttributes({[re.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(re.SpanKind.INTERNAL,"removeRepeatableByKey",`${this.name}`,async t=>(t?.setAttributes({[re.TelemetryAttributes.JobKey]:e}),!await(await this.repeat).removeRepeatableByKey(e)))}async remove(e,{removeChildren:t=!0}={}){return this.trace(re.SpanKind.INTERNAL,"remove",this.name,async n=>{n?.setAttributes({[re.TelemetryAttributes.JobId]:e,[re.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(re.SpanKind.INTERNAL,"updateJobProgress",this.name,async n=>{n?.setAttributes({[re.TelemetryAttributes.JobId]:e,[re.TelemetryAttributes.JobProgress]:JSON.stringify(t)}),await this.scripts.updateProgress(e,t),this.emit("progress",e,t)})}async addJobLog(e,t,n){return GC.Job.addJobLog(this,e,t,n)}async drain(e=!1){await this.trace(re.SpanKind.INTERNAL,"drain",this.name,async t=>{t?.setAttributes({[re.TelemetryAttributes.QueueDrainDelay]:e}),await this.scripts.drain(e)})}async clean(e,t,n="completed"){return this.trace(re.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({[re.TelemetryAttributes.QueueGrace]:e,[re.TelemetryAttributes.JobType]:n,[re.TelemetryAttributes.QueueCleanLimit]:s,[re.TelemetryAttributes.JobIds]:c}),c})}async obliterate(e){await this.trace(re.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(re.SpanKind.PRODUCER,"retryJobs",this.name,async t=>{t?.setAttributes({[re.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(re.SpanKind.INTERNAL,"promoteJobs",this.name,async t=>{t?.setAttributes({[re.TelemetryAttributes.QueueOptions]:JSON.stringify(e)});let n=0;do n=await this.scripts.promoteJobs(e.count);while(n)})}async trimEvents(e){return this.trace(re.SpanKind.INTERNAL,"trimEvents",this.name,async t=>(t?.setAttributes({[re.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 E=g.slice(o.length);if(i.has(E))continue;let k=E.indexOf(":");if(k!==-1){let R=E.slice(0,k);if(i.has(R))continue}let I=k===-1?E:E.slice(0,k);if(k!==-1){let R=E.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}};Go.Queue=Ld});var Jd=h(qd=>{"use strict";Object.defineProperty(qd,"__esModule",{value:!0});var _e=st(),$C=(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,E,k,I,R;try{switch(y.cmd){case _e.ParentCommand.Completed:d(y.value);break;case _e.ParentCommand.Failed:case _e.ParentCommand.Error:{let D=new Error;Object.assign(D,y.value),f(D);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((k=y.value)===null||k===void 0?void 0:k.token);break;case _e.ParentCommand.MoveToWaitingChildren:{let D=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:D})}break;case _e.ParentCommand.Update:await n.updateData(y.value);break;case _e.ParentCommand.GetChildrenValues:{let D=await n.getChildrenValues();a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetChildrenValuesResponse,value:D})}break;case _e.ParentCommand.GetIgnoredChildrenFailures:{let D=await n.getIgnoredChildrenFailures();a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetIgnoredChildrenFailuresResponse,value:D})}break;case _e.ParentCommand.GetDependenciesCount:{let D=await n.getDependenciesCount(y.value);a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetDependenciesCountResponse,value:D})}break;case _e.ParentCommand.GetDependencies:{let D=await n.getDependencies(y.value);a.send({requestId:y.requestId,cmd:_e.ChildCommand.GetDependenciesResponse,value:D})}break}}catch(D){f(D)}},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))}};qd.default=$C});var lK=h((Bo,oK)=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.Worker=void 0;var Yo=B("fs"),HC=B("url"),Mi=B("path"),QC=ws(),zn=ct(),ZC=_r(),XC=Vo(),e_=Gc(),t_=Ei(),r_=Jd(),n_=Nc(),$n=Js(),ne=st(),i_=Mo(),s_=Rd(),a_=10,Fd=class extends ZC.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 HC.URL){if(!Yo.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(Mi.extname(t))?"":".js");if(!Yo.existsSync(f))throw new Error(`File ${f} does not exist`)}let o=Mi.dirname(oK.filename||__filename),l=Mi.join(o,"main-worker.js"),c=Mi.join(o,"main.js"),u=this.opts.useWorkerThreads?l:c;try{Yo.statSync(u)}catch{let f=this.opts.useWorkerThreads?"main-worker.js":"main.js";u=Mi.join(process.cwd(),`dist/cjs/classes/${f}`),Yo.statSync(u)}this.childPool=new e_.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 t_.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 s_.LockManager(this,{lockRenewTime:this.opts.lockRenewTime,lockDuration:this.opts.lockDuration,workerId:this.id,workerName:this.opts.name})}createSandbox(e){this.processFn=(0,r_.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 XC.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 i_.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 QC.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 n_.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(ne.SpanKind.INTERNAL,"getNextJob",this.name,async a=>(a?.setAttributes({[ne.TelemetryAttributes.WorkerId]:this.id,[ne.TelemetryAttributes.QueueName]:this.name,[ne.TelemetryAttributes.WorkerName]:this.opts.name,[ne.TelemetryAttributes.WorkerOptions]:JSON.stringify({block:t}),[ne.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(ne.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[ne.TelemetryAttributes.WorkerId]:this.id,[ne.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,a_)}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(ne.SpanKind.CONSUMER,"process",this.name,async o=>{o?.setAttributes({[ne.TelemetryAttributes.WorkerId]:this.id,[ne.TelemetryAttributes.WorkerName]:this.opts.name,[ne.TelemetryAttributes.JobId]:e.id,[ne.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({[ne.TelemetryAttributes.JobFinishedTimestamp]:c,[ne.TelemetryAttributes.JobAttemptFinishedTimestamp]:e.finishedOn||c,[ne.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",{[ne.TelemetryAttributes.JobResult]:JSON.stringify(e)}),s?.setAttributes({[ne.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",{[ne.TelemetryAttributes.JobFailedReason]:e.message}),s?.setAttributes({[ne.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(ne.SpanKind.INTERNAL,"pause",this.name,async t=>{var n;t?.setAttributes({[ne.TelemetryAttributes.WorkerId]:this.id,[ne.TelemetryAttributes.WorkerName]:this.opts.name,[ne.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(ne.SpanKind.INTERNAL,"resume",this.name,e=>{e?.setAttributes({[ne.TelemetryAttributes.WorkerId]:this.id,[ne.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(ne.SpanKind.INTERNAL,"close",this.name,async t=>{var n,i;t?.setAttributes({[ne.TelemetryAttributes.WorkerId]:this.id,[ne.TelemetryAttributes.WorkerName]:this.opts.name,[ne.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(ne.SpanKind.INTERNAL,"startStalledCheckTimer",this.name,async e=>{e?.setAttributes({[ne.TelemetryAttributes.WorkerId]:this.id,[ne.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(ne.SpanKind.INTERNAL,"moveStalledJobsToWait",this.name,async e=>{let t=await this.scripts.moveStalledJobsToWait();e?.setAttributes({[ne.TelemetryAttributes.WorkerId]:this.id,[ne.TelemetryAttributes.WorkerName]:this.opts.name,[ne.TelemetryAttributes.WorkerStalledJobs]:t}),t.forEach(n=>{e?.addEvent("job stalled",{[ne.TelemetryAttributes.JobId]:n}),this.emit("stalled",n,"active")})})}moveLimitedBackToWait(e,t){return e.moveToWait(t)}};Bo.Worker=Fd});var cK=h(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});var Re=(Qe(),nt(He));Re.__exportStar(Nc(),je);Re.__exportStar(Lc(),je);Re.__exportStar(Jc(),je);Re.__exportStar(Gc(),je);Re.__exportStar(Nm(),je);Re.__exportStar(Js(),je);Re.__exportStar(p0(),je);Re.__exportStar(Pn(),je);Re.__exportStar(Mo(),je);Re.__exportStar(Rd(),je);Re.__exportStar(_r(),je);Re.__exportStar(tK(),je);Re.__exportStar(rK(),je);Re.__exportStar(Pd(),je);Re.__exportStar(ua(),je);Re.__exportStar(aK(),je);Re.__exportStar(Ei(),je);Re.__exportStar(Vo(),je);Re.__exportStar(Jd(),je);Re.__exportStar(Ju(),je);Re.__exportStar(lK(),je)});var dK=h(uK=>{"use strict";Object.defineProperty(uK,"__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 TK=h(wK=>{"use strict";Object.defineProperty(wK,"__esModule",{value:!0})});var AK=h(jK=>{"use strict";Object.defineProperty(jK,"__esModule",{value:!0})});var RK=h(DK=>{"use strict";Object.defineProperty(DK,"__esModule",{value:!0})});var CK=h(OK=>{"use strict";Object.defineProperty(OK,"__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 qK=h(LK=>{"use strict";Object.defineProperty(LK,"__esModule",{value:!0})});var FK=h(JK=>{"use strict";Object.defineProperty(JK,"__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(Wo=>{"use strict";Object.defineProperty(Wo,"__esModule",{value:!0});Wo.ClientType=void 0;var WK;(function(r){r.blocking="blocking",r.normal="normal"})(WK||(Wo.ClientType=WK={}))});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 dS=h(uS=>{"use strict";Object.defineProperty(uS,"__esModule",{value:!0})});var fS=h(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0})});var yS=h(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0})});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 ES=h(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});var ue=(Qe(),nt(He));ue.__exportStar(dK(),ce);ue.__exportStar(fK(),ce);ue.__exportStar(yK(),ce);ue.__exportStar(bK(),ce);ue.__exportStar(vK(),ce);ue.__exportStar(SK(),ce);ue.__exportStar(kK(),ce);ue.__exportStar(xK(),ce);ue.__exportStar(TK(),ce);ue.__exportStar(AK(),ce);ue.__exportStar(RK(),ce);ue.__exportStar(CK(),ce);ue.__exportStar(MK(),ce);ue.__exportStar(NK(),ce);ue.__exportStar(qK(),ce);ue.__exportStar(FK(),ce);ue.__exportStar(GK(),ce);ue.__exportStar(BK(),ce);ue.__exportStar(UK(),ce);ue.__exportStar($K(),ce);ue.__exportStar(QK(),ce);ue.__exportStar(XK(),ce);ue.__exportStar(tS(),ce);ue.__exportStar(nS(),ce);ue.__exportStar(sS(),ce);ue.__exportStar(oS(),ce);ue.__exportStar(cS(),ce);ue.__exportStar(dS(),ce);ue.__exportStar(fS(),ce);ue.__exportStar(yS(),ce);ue.__exportStar(bS(),ce);ue.__exportStar(vS(),ce);ue.__exportStar(SS(),ce)});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 jS=h(TS=>{"use strict";Object.defineProperty(TS,"__esModule",{value:!0})});var DS=h(AS=>{"use strict";Object.defineProperty(AS,"__esModule",{value:!0})});var OS=h(RS=>{"use strict";Object.defineProperty(RS,"__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 LS=h(NS=>{"use strict";Object.defineProperty(NS,"__esModule",{value:!0})});var JS=h(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0})});var VS=h(FS=>{"use strict";Object.defineProperty(FS,"__esModule",{value:!0})});var YS=h(GS=>{"use strict";Object.defineProperty(GS,"__esModule",{value:!0})});var BS=h(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});var Pt=(Qe(),nt(He));Pt.__exportStar(IS(),bt);Pt.__exportStar(wS(),bt);Pt.__exportStar(jS(),bt);Pt.__exportStar(DS(),bt);Pt.__exportStar(OS(),bt);Pt.__exportStar(_S(),bt);Pt.__exportStar(PS(),bt);Pt.__exportStar(LS(),bt);Pt.__exportStar(JS(),bt);Pt.__exportStar(VS(),bt);Pt.__exportStar(YS(),bt)});var US=h(WS=>{"use strict";Object.defineProperty(WS,"__esModule",{value:!0})});var zS=h(lr=>{"use strict";Object.defineProperty(lr,"__esModule",{value:!0});var dn=(Qe(),nt(He));dn.__exportStar(cK(),lr);dn.__exportStar(st(),lr);dn.__exportStar(ES(),lr);dn.__exportStar(BS(),lr);dn.__exportStar(ct(),lr);dn.__exportStar(US(),lr);dn.__exportStar(la(),lr)});var Wd=Qd(ds(),1);var el=Qd(zS(),1);import{MessageId as p_}from"@workflow/world";import Uo from"node:crypto";var Pi="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Ni=32;var QS=16,zo=10,$S=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 o_(r){let e=Math.floor(r()*Ni)%Ni;return Pi.charAt(e)}function HS(r,e,t){return e>r.length-1?r:r.substr(0,e)+t+r.substr(e+1)}function l_(r){let e,t=r.length,n,i,s=r,a=Ni-1;for(;!e&&t-->=0;){if(n=s[t],i=Pi.indexOf(n),i===-1)throw new ur(cr.Base32IncorrectEncoding,"Incorrectly encoded string");if(i===a){s=HS(s,t,Pi[0]);continue}e=HS(s,t,Pi[i+1])}if(typeof e=="string")return e;throw new ur(cr.Base32IncorrectEncoding,"Failed incrementing string")}function ZS(r){let e=c_(),t=e&&(e.crypto||e.msCrypto)||(typeof Uo<"u"?Uo: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(Uo?.randomBytes)return()=>Uo.randomBytes(1).readUInt8()/256;throw new ur(cr.PRNGDetectFailure,"Failed to find a reliable PRNG")}function c_(){return u_()?self:typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:null}function XS(r,e){let t="";for(;r>0;r--)t=o_(e)+t;return t}function Vd(r,e=zo){if(isNaN(r))throw new ur(cr.EncodeTimeValueMalformed,`Time must be a number: ${r}`);if(r>$S)throw new ur(cr.EncodeTimeSizeExceeded,`Cannot encode a time larger than ${$S}: ${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%Ni,n=Pi.charAt(t)+n,r=(r-t)/Ni;return n}function u_(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function $o(r){let e=r||ZS(),t=0,n;return function(s){let a=!s||isNaN(s)?Date.now():s;if(a<=t){let l=n=l_(n);return Vd(t,zo)+l}t=a;let o=n=XS(QS,e);return Vd(a,zo)+o}}function Ho(r,e){let t=e||ZS(),n=!r||isNaN(r)?Date.now():r;return Vd(n,zo)+XS(QS,t)}var Qo=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 Zo=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 d_(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 Xo=d_("stackbone-workflow-world");function eE(r){return new Promise(e=>setTimeout(e,r))}var f_=r=>r instanceof Error&&r.code===-2&&r.message.startsWith("Missing lock for job"),h_={workflow:"flow",step:"step"},y_=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 tE(r,e){return Promise.race([r,new Promise(t=>{setTimeout(t,e).unref?.()})])}function m_(r){return r.baseUrl?r.baseUrl:process.env.WORKFLOW_BASE_URL?process.env.WORKFLOW_BASE_URL:`http://localhost:${process.env.PORT??"3000"}`}function rE(r,e){let t=$o(),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[x,S]of Object.entries(i))y.set(x,new el.Queue(S,{connection:p}));let E=async(x,S,C)=>{let V=y_(x),M=y.get(V);if(!M)throw new Error(`No BullMQ queue registered for kind ${V}`);let O=p_.parse(`msg_${t()}`),m=C?.delaySeconds?Math.max(0,C.delaySeconds*1e3):void 0;try{await M.add(x,{queueName:x,message:S},{jobId:O,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(w){Xo("queue add returned:",w)}return{messageId:O}};function k(x){let S=h_[x];return async C=>{let M=`${m_(e)}/.well-known/workflow/v1/${S}`,O=C.id??`msg_${t()}`,m=await fetch(M,{method:"POST",headers:{"content-type":"application/json","x-vqs-queue-name":C.data.queueName,"x-vqs-message-id":O,"x-vqs-message-attempt":String(C.attemptsMade+1)},body:JSON.stringify(C.data.message),signal:AbortSignal.timeout(l)});if(m.ok)return;let w=await m.text();if(m.status===503)try{let T=JSON.parse(w);if(typeof T?.timeoutSeconds=="number"){let j=T.timeoutSeconds*1e3;await C.moveToDelayed(Date.now()+j,C.token);return}}catch{}throw new Error(`HTTP ${m.status}: ${w}`)}}let I=(x,S)=>async C=>{let V=C.headers.get("x-vqs-queue-name"),M=C.headers.get("x-vqs-message-id"),O=C.headers.get("x-vqs-message-attempt");if(!V||!M||!O||!C.body)return Response.json({error:"Missing required headers or body"},{status:400});if(!V.startsWith(x))return Response.json({error:"Unhandled queue"},{status:400});let m=Number.parseInt(O,10);try{let w=await C.json(),T=await S(w,{attempt:m,queueName:V,messageId:M});return T&&typeof T.timeoutSeconds=="number"?Response.json({timeoutSeconds:T.timeoutSeconds},{status:503}):Response.json({ok:!0})}catch(w){return Xo("queue handler error:",w),Response.json({error:String(w)},{status:500})}},R=async()=>"redis";async function D(){let x=e.queueConcurrency||10;for(let[S,C]of Object.entries(i)){let V=new el.Worker(C,k(S),{connection:p,concurrency:x,stalledInterval:c,maxStalledCount:u,drainDelay:300});V.on("failed",(M,O)=>{console.error(`Job ${M?.id} failed:`,O)}),V.on("error",M=>{if(f_(M)){Xo("worker lock race (auto-recovered):",M instanceof Error?M.message:M);return}console.error("Worker error:",M)}),g.set(S,V)}await Promise.all(Array.from(g.values()).map(S=>S.waitUntilReady()))}async function Y(){let x={waiting:0,active:0,completed:0,failed:0,delayed:0};for(let S of y.values()){let C=await S.getJobCounts("waiting","active","completed","failed","delayed");x.waiting+=C.waiting,x.active+=C.active,x.completed+=C.completed,x.failed+=C.failed,x.delayed+=C.delayed}return x}async function ae(){await Promise.all(Array.from(g.values()).map(x=>tE(x.close(),f).catch(()=>{}))),await Promise.all(Array.from(y.values()).map(x=>tE(x.close(),f).catch(()=>{})))}return{createQueueHandler:I,getDeploymentId:R,queue:E,getQueueStats:Y,async start(){await D()},async stop(){await ae()}}}var nE=r=>`${r}events_notify`;function b_(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 iE(r,e,t){try{await r.publish(nE(e),JSON.stringify(t))}catch{}}function sE(r){let{redis:e,keyPrefix:t}=r,n=nE(t),i=e.duplicate(),s=new Set,a=i.subscribe(n).then(()=>{});return i.on("message",(o,l)=>{if(o!==n)return;let c=b_(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()}}}}var g_=3e4,v_=`-- fifo:admit
8914
8914
  if redis.call('SET', KEYS[1], ARGV[1], 'NX', 'PX', tonumber(ARGV[3])) then
8915
8915
  return 'admitted'
8916
8916
  end
8917
8917
  redis.call('RPUSH', KEYS[2], ARGV[2])
8918
- return 'queued'`,b_=`-- fifo:release
8918
+ return 'queued'`,K_=`-- fifo:release
8919
8919
  if redis.call('GET', KEYS[1]) ~= ARGV[1] then
8920
8920
  return nil
8921
8921
  end
@@ -8925,12 +8925,12 @@ if nxt then
8925
8925
  return nxt
8926
8926
  end
8927
8927
  redis.call('DEL', KEYS[1])
8928
- return nil`,g_=`-- fifo:renew
8928
+ return nil`,S_=`-- fifo:renew
8929
8929
  if redis.call('GET', KEYS[1]) == ARGV[1] then
8930
8930
  redis.call('PEXPIRE', KEYS[1], tonumber(ARGV[2]))
8931
8931
  return 1
8932
8932
  end
8933
- return 0`,v_=`-- fifo:recover
8933
+ return 0`,E_=`-- fifo:recover
8934
8934
  if redis.call('EXISTS', KEYS[1]) == 1 then
8935
8935
  return nil
8936
8936
  end
@@ -8939,4 +8939,4 @@ if nxt then
8939
8939
  redis.call('SET', KEYS[1], ARGV[1], 'PX', tonumber(ARGV[2]))
8940
8940
  return nxt
8941
8941
  end
8942
- return nil`,Hn="__fifoEnc";function Vd(r){if(r instanceof Uint8Array)return{[Hn]:"u8",d:Array.from(r)};if(r instanceof Date)return{[Hn]:"date",d:r.toISOString()};if(Array.isArray(r))return r.map(Vd);if(r&&typeof r=="object"){let e={};for(let[t,n]of Object.entries(r))e[t]=Vd(n);return Hn in e?{[Hn]:"esc",d:e}:e}return r}function iE(r){let e={};for(let[t,n]of Object.entries(r))e[t]=Gd(n);return e}function Gd(r){if(Array.isArray(r))return r.map(Gd);if(r&&typeof r=="object"){let e=r;if(Hn in e)switch(e[Hn]){case"u8":return new Uint8Array(e.d);case"date":return new Date(e.d);case"esc":return iE(e.d)}return iE(e)}return r}function sE(r){return JSON.stringify(Vd(r))}function aE(r){return Gd(JSON.parse(r))}function oE(r,e={}){let{redis:t,keyPrefix:n}=r,i=e.lockTtlMs??y_,s=o=>`${n}serial:lock:${o}`,a=o=>`${n}serial:wait:${o}`;return{async tryAdmit(o,l){let c=Ho();return await t.eval(m_,2,s(o),a(o),c,sE(l),String(i))==="admitted"?{admitted:!0,token:c}:{admitted:!1}},async release(o,l){let c=Ho(),u=await t.eval(b_,2,s(o),a(o),l,c,String(i));return u===null?null:{trigger:aE(u),token:c}},async renew(o,l){return await t.eval(g_,1,s(o),l,String(i))===1},async recoverOrphans(o){let l=Ho(),c=await t.eval(v_,2,s(o),a(o),l,String(i));return c===null?null:{trigger:aE(c),token:l}},async requeue(o,l){await t.rpush(a(o),sE(l))}}}import{EntityConflictError as lE,HookNotFoundError as K_,RunExpiredError as S_,WorkflowWorldError as vt}from"@workflow/errors";import{EventSchema as pn,HookSchema as el,isLegacySpecVersion as E_,requiresNewerWorld as k_,SPEC_VERSION_CURRENT as Yd,StepSchema as Mr,WorkflowRunSchema as zt}from"@workflow/world";var I_=3,x_=30,w_=new Set(["createdAt","updatedAt","startedAt","completedAt","retryAfter"]);function T_(r,e){if(w_.has(r)&&typeof e=="string"){let t=new Date(e);return Number.isNaN(t.getTime())?e:t}return e}function j_(r,e){return e instanceof Uint8Array?{__uint8array:!0,data:Array.from(e)}:e}function A_(r,e){let t=T_(r,e);return t&&typeof t=="object"&&t.__uint8array===!0?new Uint8Array(t.data):t}function Ve(r){return JSON.stringify(r,j_)}function be(r){return JSON.parse(r,A_)}async function dE(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 cE(r,e){if(e==="none"&&"metadata"in r){let{metadata:t,...n}=r;return{metadata:void 0,...n}}return r}function uE(r,e){if(e==="none"){let{input:t,output:n,...i}=r;return{input:void 0,output:void 0,...i}}return r}function tl(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 pE(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(tl(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 tl(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),O=I.slice(0,d),R=I.length>d;return{data:O,hasMore:R,cursor:O.at(-1)?.runId??null}})}}function fE(r){let{redis:e,keyPrefix:t}=r,n=$o(),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 dE(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 O(x){let E=[];for(let M of x??[])if(M?.[1]){let F=be(M[1]);E.push(F)}return E}async function R(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:tl(D,w)}}return{}}case"wait_completed":case"hook_received":{let U=new Date,te={...M,runId:x,eventId:E,createdAt:U,specVersion:Yd};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??Yd,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(k_(T.specVersion))throw new(await import("@workflow/errors")).RunNotSupportedError(T.specVersion,Yd);if(E_(T.specVersion))return R(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),Li=M?.resolveData??"all";return{event:fn(Nt,Li),run:Z?be(Z):void 0}}if(E.eventType==="run_started")throw new S_(`Workflow run "${w}" is already in terminal state "${T.status}"`);if(P.includes(E.eventType)||E.eventType==="run_cancelled")throw new lE(`Cannot transition run from terminal state "${T.status}"`);if(E.eventType==="step_created"||E.eventType==="hook_created")throw new lE(`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?tl(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,Li={eventType:"hook_conflict",correlationId:E.correlationId,eventData:pe,runId:w,eventId:F,createdAt:Nt,specVersion:U};await e.set(i(F),Ve(Li));let Ud=Nt.getTime(),il=e.pipeline();il.zadd(s(w),Ud,F),E.correlationId&&il.zadd(a(E.correlationId),Ud,F),await il.exec();let KE=pn.parse(Li),SE=M?.resolveData??"all";return{event:fn(KE,SE),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=el.parse(Ee(se));else{let pe=await e.get(p(E.correlationId));pe&&(A=el.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 rE(e,t,{runId:w,eventId:F,eventType:E.eventType,...E.correlationId?{correlationId:E.correlationId}:{}});let vE=pn.parse(nt),Wd=M?.resolveData??"all",nl;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();nl=O(se).map(H=>{let pe=pn.parse(Ee(H));return fn(pe,Wd)})}else nl=[]}return{event:fn(vE,Wd),run:te,step:m,hook:A,events:nl}},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=O(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=O(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 hE(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 uE(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(O=>(O??0)+1):0,f=await e.zrevrange(u,d,d+l),p=e.pipeline();for(let O of f)p.get(n(o.runId,O));let y=await p.exec(),g=o?.resolveData??"all",S=[];for(let O of y??[])if(O?.[1]){let R=be(O[1]),x=Mr.parse(Ee(R));S.push(uE(x,g))}let k=S.slice(0,l),I=S.length>l;return{data:k,hasMore:I,cursor:k.at(-1)?.stepId??null}})}}function yE(r){let{redis:e,keyPrefix:t}=r,n=r.hookResolveRetries??I_,i=r.hookResolveRetryMs??x_,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=el.parse(Ee(d)),p=c?.resolveData??"all";return cE(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 K_(l);await ZS(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(O=>(O??0)+1):0,p=await e.zrevrange(d,f,f+c),y=e.pipeline();for(let O of p)y.get(s(O));let g=await y.exec(),S=[];for(let O of g??[])if(O?.[1]){let R=be(O[1]),x=el.parse(Ee(R)),E=cE(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 mE=10080*60*1e3;function bE(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,O=await d(l);for(let R of O){let x=R.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 dE(n,i,x),k+=1)}catch{}}if(y){let R=await n.zrange(a("running"),0,-1);for(let x of R)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 D_}from"node:events";function R_(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 gE(r){let{redis:e,keyPrefix:t}=r,n=new D_,i=new Map,s=y=>{let g=i.get(y);return g||(g=new Zo(async()=>{i.delete(y)}),i.set(y,g)),g.inc(),{mutex:new Qo,[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=R_(g);if(!S)return;let k=`strm:${S.streamId}`;if(!n.listenerCount(k))return;await s(k).mutex.andThen(async()=>{let O=await e.xrange(a(S.streamId),S.entryId,S.entryId);if(O.length===0)return;let[R,x]=O[0],E=Buffer.from(x[1],"base64"),M=x[3]==="true";n.emit(k,{id:R,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 O="",R=S??0,x=[],E=m=>O>=m,M=()=>R>0?(R--,!0):!1,F=m=>{m.data.byteLength&&I.enqueue(new Uint8Array(m.data)),m.eof&&I.close(),O=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,O]=await e.scan(k,"MATCH",`${g}*`,"COUNT",200);k=I;for(let R of O)S.push(R.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:O,done:R}=await p(g),x=O.slice(I,I+k).map((F,C)=>({index:I+C,data:F})),E=I+x.length,M=E<O.length;return{data:x,cursor:M?String(E):null,hasMore:M,done:R}},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 rl(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 O_=3600*1e3;function C_(r,e,t,n){let i={redis:r,keyPrefix:e,hookResolveRetries:t,hookResolveRetryMs:n};return{runs:pE(i),events:fE(i),hooks:yE(i),steps:hE(i)}}function Fq(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 Bd.Redis(r.redis):new Bd.Redis(r.redis),t=r.keyPrefix||"workflow:",n=r.hookResolveRetries??rl(process.env.WORKFLOW_HOOK_RESOLVE_RETRIES,3),i=r.hookResolveRetryMs??rl(process.env.WORKFLOW_HOOK_RESOLVE_RETRY_MS,30),s=r.enableRunCancellationGc??process.env.WORKFLOW_ENABLE_RUN_CANCELLATION_GC==="true",a=r.maxRunAgeForCancellationMs??rl(process.env.WORKFLOW_RUN_CANCELLATION_AGE_MS,mE,O_),o=r.serialLockTtlMs??rl(process.env.WORKFLOW_SERIAL_LOCK_TTL_MS,3e4,1),l=eE(e,r),c=C_(e,t,n,i),u=oE({redis:e,keyPrefix:t},{lockTtlMs:o}),d=bE({redis:e,keyPrefix:t},c.events,{enableRunCancellation:s,maxRunAgeMs:a}),{stop:f,...p}=gE({redis:e,keyPrefix:t}),y=nE({redis:e,keyPrefix:t});return{...c,...p,...l,eventsSubscriber:y,pruneOrphanState:d,serialGate:u,specVersion:5,processExitTriggersQueueRedelivery:!1,async start(){await l.start()},async close(){try{await l.stop()}catch{}try{await f()}catch{}try{await y.stop()}catch{}try{await e.quit()}catch{}},async resolveLatestDeploymentId(){return"redis"}}}export{Fq as createWorld};
8942
+ return nil`,Hn="__fifoEnc";function Gd(r){if(r instanceof Uint8Array)return{[Hn]:"u8",d:Array.from(r)};if(r instanceof Date)return{[Hn]:"date",d:r.toISOString()};if(Array.isArray(r))return r.map(Gd);if(r&&typeof r=="object"){let e={};for(let[t,n]of Object.entries(r))e[t]=Gd(n);return Hn in e?{[Hn]:"esc",d:e}:e}return r}function aE(r){let e={};for(let[t,n]of Object.entries(r))e[t]=Yd(n);return e}function Yd(r){if(Array.isArray(r))return r.map(Yd);if(r&&typeof r=="object"){let e=r;if(Hn in e)switch(e[Hn]){case"u8":return new Uint8Array(e.d);case"date":return new Date(e.d);case"esc":return aE(e.d)}return aE(e)}return r}function oE(r){return JSON.stringify(Gd(r))}function lE(r){return Yd(JSON.parse(r))}function cE(r,e={}){let{redis:t,keyPrefix:n}=r,i=e.lockTtlMs??g_,s=o=>`${n}serial:lock:${o}`,a=o=>`${n}serial:wait:${o}`;return{async tryAdmit(o,l){let c=Ho();return await t.eval(v_,2,s(o),a(o),c,oE(l),String(i))==="admitted"?{admitted:!0,token:c}:{admitted:!1}},async release(o,l){let c=Ho(),u=await t.eval(K_,2,s(o),a(o),l,c,String(i));return u===null?null:{trigger:lE(u),token:c}},async renew(o,l){return await t.eval(S_,1,s(o),l,String(i))===1},async recoverOrphans(o){let l=Ho(),c=await t.eval(E_,2,s(o),a(o),l,String(i));return c===null?null:{trigger:lE(c),token:l}},async requeue(o,l){await t.rpush(a(o),oE(l))}}}import{EntityConflictError as uE,HookNotFoundError as k_,RunExpiredError as I_,WorkflowWorldError as gt}from"@workflow/errors";import{EventSchema as pn,HookSchema as tl,isLegacySpecVersion as x_,requiresNewerWorld as w_,SPEC_VERSION_CURRENT as Bd,StepSchema as Mr,WorkflowRunSchema as zt}from"@workflow/world";var T_=3,j_=30,A_=new Set(["createdAt","updatedAt","startedAt","completedAt","retryAfter"]);function D_(r,e){if(A_.has(r)&&typeof e=="string"){let t=new Date(e);return Number.isNaN(t.getTime())?e:t}return e}function R_(r,e){return e instanceof Uint8Array?{__uint8array:!0,data:Array.from(e)}:e}function O_(r,e){let t=D_(r,e);return t&&typeof t=="object"&&t.__uint8array===!0?new Uint8Array(t.data):t}function Ve(r){return JSON.stringify(r,R_)}function be(r){return JSON.parse(r,O_)}function C_(){let r=new Map;return async function(t,n){let i=r.get(t)??Promise.resolve(),s,a=new Promise(l=>{s=l}),o=i.then(()=>a);r.set(t,o);try{return await i,await n()}finally{s(),r.get(t)===o&&r.delete(t)}}}async function fE(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 dE(r,e){if(e==="none"&&"metadata"in r){let{metadata:t,...n}=r;return{metadata:void 0,...n}}return r}function pE(r,e){if(e==="none"){let{input:t,output:n,...i}=r;return{input:void 0,output:void 0,...i}}return r}function rl(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 hE(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,E=!d?.workflowName||y.workflowName===d.workflowName;if(g&&E){let k=d?.resolveData??"all",I=zt.parse(Ee(y));f.push(rl(I,k))}}return f}return{get:(async(u,d)=>{let f=await e.get(n(u));if(!f)throw new gt(`Run not found: ${u}`,{status:404});let p=be(f),y=zt.parse(Ee(p)),g=d?.resolveData??"all";return rl(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),E=e.pipeline();for(let Y of g)E.get(n(Y));let k=await E.exec(),I=c(k,u),R=I.slice(0,d),D=I.length>d;return{data:R,hasMore:D,cursor:R.at(-1)?.runId??null}})}}function yE(r){let{redis:e,keyPrefix:t}=r,n=$o(),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,S)=>`${t}step:${x}:${S}`,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 E(x){await fE(e,t,x)}async function k(x,S,C){return S?(await e[C==="desc"?"zrevrank":"zrank"](x,S)??0)+1:0}async function I(x,S,C,V){return e[V==="desc"?"zrevrange":"zrange"](x,S,S+C)}function R(x){let S=[];for(let C of x??[])if(C?.[1]){let V=be(C[1]);S.push(V)}return S}async function D(x,S,C,V,M){let O=M?.resolveData??"all";switch(C.eventType){case"run_cancelled":{let m=new Date,w=await e.get(o(x));if(w){let T=be(w),j={...T,status:"cancelled",completedAt:m,updatedAt:m};await e.set(o(x),Ve(j));let A=e.pipeline();A.zrem(u(T.status),x),A.zadd(u("cancelled"),m.getTime(),x),await A.exec(),await E(x);let W=zt.parse(Ee(j));return{run:rl(W,O)}}return{}}case"wait_completed":case"hook_received":{let m=new Date,w={...C,runId:x,eventId:S,createdAt:m,specVersion:Bd};await e.set(i(S),Ve(w));let T=m.getTime(),j=e.pipeline();j.zadd(s(x),T,S),C.correlationId&&j.zadd(a(C.correlationId),T,S),await j.exec();let A=pn.parse(w);return{event:fn(A,O)}}default:throw new Error(`Event type '${C.eventType}' not supported for legacy runs (specVersion: ${V.specVersion||"undefined"}). Please upgrade @workflow packages.`)}}let Y=C_(),ae=async(x,S,C)=>{let V=`wevt_${n()}`,M=new Date,O;if(S.eventType==="run_created"&&(!x||x===""))O=`wrun_${n()}`;else if(x)O=x;else throw new Error("runId is required for non-run_created events");let m=S.specVersion??Bd,w,T,j,A=P=>["completed","failed","cancelled"].includes(P),W=P=>["completed","failed","cancelled"].includes(P),q=null,G=["step_completed","step_retrying"];if(S.eventType!=="run_created"&&!G.includes(S.eventType)){let P=await e.get(o(O));if(P){let Z=be(P);q={status:Z.status,specVersion:Z.specVersion}}}if(S.eventType==="run_started"&&!q&&"eventData"in S&&S.eventData){let P=S.eventData;if(P.deploymentId&&P.workflowName&&P.input!==void 0){let Z={runId:O,deploymentId:P.deploymentId,workflowName:P.workflowName,specVersion:m,input:P.input,executionContext:P.executionContext,status:"pending",output:void 0,error:void 0,completedAt:void 0,startedAt:void 0,createdAt:M,updatedAt:M};if(await e.setnx(o(O),Ve(Z))===1){let H=M.getTime();await e.pipeline().zadd(l(),H,O).zadd(c(P.workflowName),H,O).zadd(u("pending"),H,O).exec();let pe=`wevt_${n()}`,Nt={eventType:"run_created",eventData:{deploymentId:P.deploymentId,workflowName:P.workflowName,input:P.input,executionContext:P.executionContext},runId:O,eventId:pe,createdAt:M,specVersion:m};await e.set(i(pe),Ve(Nt)),await e.zadd(s(O),M.getTime(),pe),q={status:"pending",specVersion:m}}else{let H=await e.get(o(O));if(H){let pe=be(H);q={status:pe.status,specVersion:pe.specVersion}}}}}if(q){if(w_(q.specVersion))throw new(await import("@workflow/errors")).RunNotSupportedError(q.specVersion,Bd);if(x_(q.specVersion))return D(O,V,S,q,C)}if(q&&A(q.status)){let P=["run_started","run_completed","run_failed"];if(S.eventType==="run_cancelled"&&q.status==="cancelled"){let Z=await e.get(o(O)),se=new Date,H={...S,runId:O,eventId:V,createdAt:se,specVersion:m};await e.set(i(V),Ve(H));let pe=se.getTime();await e.zadd(s(O),pe,V);let Nt=pn.parse(H),Li=C?.resolveData??"all";return{event:fn(Nt,Li),run:Z?be(Z):void 0}}if(S.eventType==="run_started")throw new I_(`Workflow run "${O}" is already in terminal state "${q.status}"`);if(P.includes(S.eventType)||S.eventType==="run_cancelled")throw new uE(`Cannot transition run from terminal state "${q.status}"`);if(S.eventType==="step_created"||S.eventType==="hook_created")throw new uE(`Cannot create new entities on run in terminal state "${q.status}"`)}let ie=null;if(["step_started","step_retrying"].includes(S.eventType)&&S.correlationId){let P=await e.get(d(O,S.correlationId));if(P){let Z=be(P);ie={status:Z.status,startedAt:Z.startedAt}}if(!ie)throw new gt(`Step "${S.correlationId}" not found`,{status:404});if(W(ie.status))throw new gt(`Cannot modify step in terminal state "${ie.status}"`,{status:410});if(q&&A(q.status)&&ie.status!=="running")throw new gt(`Cannot modify non-running step on run in terminal state "${q.status}"`,{status:410})}if(["hook_disposed","hook_received"].includes(S.eventType)&&S.correlationId&&!await e.get(p(S.correlationId)))throw new gt(`Hook "${S.correlationId}" not found`,{status:404});if(S.eventType==="run_created"){let P=S.eventData,Z={runId:O,deploymentId:P.deploymentId,workflowName:P.workflowName,specVersion:m,input:P.input,executionContext:P.executionContext,status:"pending",output:void 0,error:void 0,completedAt:void 0,startedAt:void 0,createdAt:M,updatedAt:M},se=await e.setnx(o(O),Ve(Z)),H=M.getTime();if(await e.pipeline().zadd(l(),H,O).zadd(c(P.workflowName),H,O).zadd(u("pending"),H,O).exec(),se===1)w=zt.parse(Ee(Z));else{let pe=await e.get(o(O));pe&&(w=zt.parse(Ee(be(pe))))}}if(S.eventType==="run_started"){if(q?.status==="running"){let Z=await e.get(o(O));Z&&(w=zt.parse(Ee(be(Z))));let se=C?.resolveData??"all";return{run:w?rl(w,se):void 0}}let P=await e.get(o(O));if(P){let Z=be(P),se={...Z,status:"running",startedAt:M,updatedAt:M};await e.set(o(O),Ve(se));let H=e.pipeline();H.zrem(u(Z.status),O),H.zadd(u("running"),M.getTime(),O),await H.exec(),w=zt.parse(Ee(se))}}if(S.eventType==="run_completed"){let P=S.eventData,Z=await e.get(o(O));if(Z){let se=be(Z),H={...se,status:"completed",output:P.output,completedAt:M,updatedAt:M};await e.set(o(O),Ve(H));let pe=e.pipeline();pe.zrem(u(se.status),O),pe.zadd(u("completed"),M.getTime(),O),await pe.exec(),await E(O),w=zt.parse(Ee(H))}}if(S.eventType==="run_failed"){let P=S.eventData,Z=typeof P.error=="string"?P.error:P.error?.message??"Unknown error",se=await e.get(o(O));if(se){let H=be(se),pe={...H,status:"failed",error:{message:Z,stack:P.error?.stack,code:P.errorCode},completedAt:M,updatedAt:M};await e.set(o(O),Ve(pe));let Nt=e.pipeline();Nt.zrem(u(H.status),O),Nt.zadd(u("failed"),M.getTime(),O),await Nt.exec(),await E(O),w=zt.parse(Ee(pe))}}if(S.eventType==="run_cancelled"){let P=await e.get(o(O));if(P){let Z=be(P),se={...Z,status:"cancelled",completedAt:M,updatedAt:M};await e.set(o(O),Ve(se));let H=e.pipeline();H.zrem(u(Z.status),O),H.zadd(u("cancelled"),M.getTime(),O),await H.exec(),await E(O),w=zt.parse(Ee(se))}}if(S.eventType==="step_created"){let P=S.eventData,Z={runId:O,stepId:S.correlationId,stepName:P.stepName,input:P.input,status:"pending",attempt:0,specVersion:m,createdAt:M,updatedAt:M},se=await e.setnx(d(O,S.correlationId),Ve(Z));if(await e.zadd(f(O),M.getTime(),S.correlationId),se===1)T=Mr.parse(Ee(Z));else{let H=await e.get(d(O,S.correlationId));H&&(T=Mr.parse(Ee(be(H))))}}if(S.eventType==="step_started"){let P=!ie?.startedAt,Z=await e.get(d(O,S.correlationId));if(Z){let se=be(Z),H={...se,status:"running",attempt:se.attempt+1,...P?{startedAt:M}:{},updatedAt:M};await e.set(d(O,S.correlationId),Ve(H)),T=Mr.parse(Ee(H))}}if(S.eventType==="step_completed"){let P=S.eventData,Z=await e.get(d(O,S.correlationId));if(Z){let se=be(Z);if(["completed","failed","cancelled"].includes(se.status))throw new gt(`Cannot modify step in terminal state "${se.status}"`,{status:410});let H={...se,status:"completed",output:P.result,completedAt:M,updatedAt:M};await e.set(d(O,S.correlationId),Ve(H)),T=Mr.parse(Ee(H))}else throw new gt(`Step "${S.correlationId}" not found`,{status:404})}if(S.eventType==="step_failed"){let P=S.eventData,Z=typeof P.error=="string"?P.error:P.error?.message??"Unknown error",se=await e.get(d(O,S.correlationId));if(se){let H=be(se);if(["completed","failed","cancelled"].includes(H.status))throw new gt(`Cannot modify step in terminal state "${H.status}"`,{status:410});let pe={...H,status:"failed",error:{message:Z,stack:P.stack},completedAt:M,updatedAt:M};await e.set(d(O,S.correlationId),Ve(pe)),T=Mr.parse(Ee(pe))}else throw new gt(`Step "${S.correlationId}" not found`,{status:404})}if(S.eventType==="step_retrying"){let P=S.eventData,Z=typeof P.error=="string"?P.error:P.error?.message??"Unknown error",se=await e.get(d(O,S.correlationId));if(se){let pe={...be(se),status:"pending",error:{message:Z,stack:P.stack},retryAfter:P.retryAfter,updatedAt:M};await e.set(d(O,S.correlationId),Ve(pe)),T=Mr.parse(Ee(pe))}}if(S.eventType==="hook_created"){let P=S.eventData;if(await e.get(y(P.token))){let pe={token:P.token},Nt=new Date,Li={eventType:"hook_conflict",correlationId:S.correlationId,eventData:pe,runId:O,eventId:V,createdAt:Nt,specVersion:m};await e.set(i(V),Ve(Li));let $d=Nt.getTime(),al=e.pipeline();al.zadd(s(O),$d,V),S.correlationId&&al.zadd(a(S.correlationId),$d,V),await al.exec();let EE=pn.parse(Li),kE=C?.resolveData??"all";return{event:fn(EE,kE),run:w,step:T,hook:void 0}}let se={runId:O,hookId:S.correlationId,token:P.token,ownerId:"",projectId:"",environment:"",metadata:P.metadata,specVersion:m,createdAt:M},H=await e.setnx(p(S.correlationId),Ve(se));if(await e.pipeline().set(y(P.token),S.correlationId).zadd(g(O),M.getTime(),S.correlationId).exec(),H===1)j=tl.parse(Ee(se));else{let pe=await e.get(p(S.correlationId));pe&&(j=tl.parse(Ee(be(pe))))}}if(S.eventType==="hook_disposed"&&S.correlationId){let P=await e.get(p(S.correlationId));if(P){let Z=be(P);await e.pipeline().del(p(S.correlationId)).del(y(Z.token)).zrem(g(O),S.correlationId).exec()}}let At=new Date,$t={...S,runId:O,eventId:V,createdAt:At,specVersion:m};S.eventType==="run_started"&&delete $t.eventData,await e.set(i(V),Ve($t));let Ud=At.getTime(),il=e.pipeline();il.zadd(s(O),Ud,V),S.correlationId&&il.zadd(a(S.correlationId),Ud,V),await il.exec(),await iE(e,t,{runId:O,eventId:V,eventType:S.eventType,...S.correlationId?{correlationId:S.correlationId}:{}});let SE=pn.parse($t),zd=C?.resolveData??"all",sl;if(S.eventType==="run_started"&&w){let P=await e.zrange(s(O),0,-1);if(P.length>0){let Z=e.pipeline();for(let H of P)Z.get(i(H));let se=await Z.exec();sl=R(se).map(H=>{let pe=pn.parse(Ee(H));return fn(pe,zd)})}else sl=[]}return{event:fn(SE,zd),run:w,step:T,hook:j,events:sl}};return{create(x,S,C){return x?Y(x,()=>ae(x,S,C)):ae(x,S,C)},async get(x,S){let C=await e.get(i(S));if(!C)throw new gt(`Event not found: ${S}`,{status:404});return be(C)},async list(x){let S=x?.pagination?.limit??100,C=x.pagination?.sortOrder||"asc",V=x?.pagination?.cursor,M=s(x.runId),O=await k(M,V,C),m=await I(M,O,S,C),w=e.pipeline();for(let G of m)w.get(i(G));let T=await w.exec(),j=R(T),A=j.slice(0,S),W=j.length>S,q=x?.resolveData??"all";return{data:A.map(G=>{let ie=pn.parse(Ee(G));return fn(ie,q)}),cursor:A.at(-1)?.eventId??null,hasMore:W}},async listByCorrelationId(x){let S=x?.pagination?.limit??100,C=x.pagination?.sortOrder||"asc",V=x?.pagination?.cursor,M=a(x.correlationId),O=await k(M,V,C),m=await I(M,O,S,C),w=e.pipeline();for(let G of m)w.get(i(G));let T=await w.exec(),j=R(T),A=j.slice(0,S),W=j.length>S,q=x?.resolveData??"all";return{data:A.map(G=>{let ie=pn.parse(Ee(G));return fn(ie,q)}),cursor:A.at(-1)?.eventId??null,hasMore:W}}}}function mE(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 gt(`Step not found: ${l}`,{status:404});let d=be(u),f=Mr.parse(Ee(d)),p=c?.resolveData??"all";return pE(f,p)}return{get:(async(o,l,c)=>{if(!o){let u=`${t}step:*:${l}`,d=await s(u);if(!d)throw new gt(`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",E=[];for(let R of y??[])if(R?.[1]){let D=be(R[1]),Y=Mr.parse(Ee(D));E.push(pE(Y,g))}let k=E.slice(0,l),I=E.length>l;return{data:k,hasMore:I,cursor:k.at(-1)?.stepId??null}})}}function bE(r){let{redis:e,keyPrefix:t}=r,n=r.hookResolveRetries??T_,i=r.hookResolveRetryMs??j_,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 gt(`Hook not found: ${l}`,{status:404});let d=be(u),f=tl.parse(Ee(d)),p=c?.resolveData??"all";return dE(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 k_(l);await eE(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(),E=[];for(let R of g??[])if(R?.[1]){let D=be(R[1]),Y=tl.parse(Ee(D)),ae=dE(Y,l?.resolveData??"all");E.push(ae)}let k=E.slice(0,c),I=E.length>c;return{data:k,cursor:k.at(-1)?.hookId??null,hasMore:I}}}}var gE=10080*60*1e3;function vE(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,E]=await n.scan(y,"MATCH",f,"COUNT",200);for(let k of E)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,E=p?.now??Date.now,k=0,I=0,R=await d(l);for(let D of R){let Y=D.slice(c.length);if(Y)try{let ae=await n.get(s(Y)),x=!1;if(!ae)x=!0;else{let S=be(ae);u.has(S.status)&&(x=!0)}x&&(await fE(n,i,Y),k+=1)}catch{}}if(y){let D=await n.zrange(a("running"),0,-1);for(let Y of D)try{let ae=await n.get(s(Y));if(!ae||be(ae).status!=="running")continue;let S=await n.zrevrange(o(Y),0,0,"WITHSCORES"),C=S.length===2?Number(S[1]):void 0;if(C===void 0||Number.isNaN(C)||E()-C<=g)continue;await e.create(Y,{eventType:"run_cancelled"}),I+=1}catch{}}return{orphanHookRunsPruned:k,staleRunsCancelled:I}}}import{EventEmitter as __}from"node:events";function M_(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 KE(r){let{redis:e,keyPrefix:t}=r,n=new __,i=new Map,s=y=>{let g=i.get(y);return g||(g=new Zo(async()=>{i.delete(y)}),i.set(y,g)),g.inc(),{mutex:new Qo,[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=M_(g);if(!E)return;let k=`strm:${E.streamId}`;if(!n.listenerCount(k))return;await s(k).mutex.andThen(async()=>{let R=await e.xrange(a(E.streamId),E.entryId,E.entryId);if(R.length===0)return;let[D,Y]=R[0],ae=Buffer.from(Y[1],"base64"),x=Y[3]==="true";n.emit(k,{id:D,data:ae,eof:x})})}catch(E){console.error("Error processing stream notification:",E)}});async function u(y,g,E){let k=Buffer.isBuffer(E)?E:Buffer.from(E),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 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 k=[];return new ReadableStream({async start(I){let R="",D=E??0,Y=[],ae=m=>R>=m,x=()=>D>0?(D--,!0):!1,S=m=>{m.data.byteLength&&I.enqueue(new Uint8Array(m.data)),m.eof&&I.close(),R=m.id};function C(m){ae(m.id)||x()||S(m)}function V(m){if(Y){Y.push(m);return}C(m)}n.on(`strm:${g}`,V),k.push(()=>{n.off(`strm:${g}`,V)});let M=await e.xrange(a(g),"-","+"),O=[];for(let[m,w]of M){let T=Buffer.from(w[1],"base64"),j=w[3]==="true";O.push({id:m,data:T,eof:j})}for(let m of[...O,...Y??[]])C(m);Y=null},cancel(){k.forEach(I=>{I()})}})}async function p(y){let g=await e.xrange(a(y),"-","+"),E=[],k=!1;for(let[,I]of g){if(I[3]==="true"){k=!0;continue}E.push(new Uint8Array(Buffer.from(I[1],"base64")))}return{chunks:E,done:k}}return{streams:{write:u,close:d,get:f,async list(y){let g=`${t}stream:`,E=[],k="0";do{let[I,R]=await e.scan(k,"MATCH",`${g}*`,"COUNT",200);k=I;for(let D of R)E.push(D.slice(g.length))}while(k!=="0");return E},async getChunks(y,g,E){let k=Math.min(Math.max(E?.limit??100,1),1e3),I=E?.cursor&&Number.parseInt(E.cursor,10)||0,{chunks:R,done:D}=await p(g),Y=R.slice(I,I+k).map((S,C)=>({index:I+C,data:S})),ae=I+Y.length,x=ae<R.length;return{data:Y,cursor:x?String(ae):null,hasMore:x,done:D}},async getInfo(y,g){let{chunks:E,done:k}=await p(g);return{tailIndex:E.length-1,done:k}}},async stop(){l.removeAllListeners("message");try{await l.quit()}catch{l.disconnect()}}}}function nl(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 P_=3600*1e3;function N_(r,e,t,n){let i={redis:r,keyPrefix:e,hookResolveRetries:t,hookResolveRetryMs:n};return{runs:hE(i),events:yE(i),hooks:bE(i),steps:mE(i)}}function Bq(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 Wd.Redis(r.redis):new Wd.Redis(r.redis),t=r.keyPrefix||"workflow:",n=r.hookResolveRetries??nl(process.env.WORKFLOW_HOOK_RESOLVE_RETRIES,3),i=r.hookResolveRetryMs??nl(process.env.WORKFLOW_HOOK_RESOLVE_RETRY_MS,30),s=r.enableRunCancellationGc??process.env.WORKFLOW_ENABLE_RUN_CANCELLATION_GC==="true",a=r.maxRunAgeForCancellationMs??nl(process.env.WORKFLOW_RUN_CANCELLATION_AGE_MS,gE,P_),o=r.serialLockTtlMs??nl(process.env.WORKFLOW_SERIAL_LOCK_TTL_MS,3e4,1),l=rE(e,r),c=N_(e,t,n,i),u=cE({redis:e,keyPrefix:t},{lockTtlMs:o}),d=vE({redis:e,keyPrefix:t},c.events,{enableRunCancellation:s,maxRunAgeMs:a}),{stop:f,...p}=KE({redis:e,keyPrefix:t}),y=sE({redis:e,keyPrefix:t});return{...c,...p,...l,eventsSubscriber:y,pruneOrphanState:d,serialGate:u,specVersion:5,processExitTriggersQueueRedelivery:!1,async start(){await l.start()},async close(){try{await l.stop()}catch{}try{await f()}catch{}try{await y.stop()}catch{}try{await e.quit()}catch{}},async resolveLatestDeploymentId(){return"redis"}}}export{Bq as createWorld};