@stackbone/cli 0.3.4 → 0.4.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +111 -0
- package/main.js +45253 -30538
- package/migrations/0047_prompts_owner.sql +99 -0
- package/migrations/0048_prompt_publish.sql +58 -0
- package/migrations/0049_run_steps_annotations.sql +46 -0
- package/migrations/0051_logs.sql +137 -0
- package/migrations/0052_telemetry_export_state.sql +43 -0
- package/migrations/0053_runs_exported_at.sql +51 -0
- package/migrations/0054_runs_trace_parent.sql +35 -0
- package/migrations/0055_audit_log.sql +105 -0
- package/package.json +3 -1
- package/runtime-deps/@stackbone/workflow-world/index.js +73 -73
- package/stackbone-cli-0.4.0-alpha.0.tgz +0 -0
- package/stackbone-cli-0.3.4.tgz +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createRequire as __sbCreateRequire } from 'module'; const require = __sbCreateRequire(import.meta.url);
|
|
2
|
-
var AE=Object.create;var Fi=Object.defineProperty;var DE=Object.getOwnPropertyDescriptor;var RE=Object.getOwnPropertyNames;var OE=Object.getPrototypeOf,CE=Object.prototype.hasOwnProperty;var Y=(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 _E=(r,e)=>()=>(r&&(e=r(r=0)),e);var y=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ME=(r,e)=>{for(var t in e)Fi(r,t,{get:e[t],enumerable:!0})},tp=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of RE(e))!CE.call(r,i)&&i!==t&&Fi(r,i,{get:()=>e[i],enumerable:!(n=DE(e,i))||n.enumerable});return r};var rp=(r,e,t)=>(t=r!=null?AE(OE(r)):{},tp(e||!r||!r.__esModule?Fi(t,"default",{value:r,enumerable:!0}):t,r)),nt=r=>tp(Fi({},"__esModule",{value:!0}),r);var np=y((B_,PE)=>{PE.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=y(ot=>{"use strict";var NE=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 Vi=NE(np());ot.list=Object.keys(Vi.default);var cl={};ot.list.forEach(r=>{cl[r]=Vi.default[r].flags.reduce(function(e,t){return e[t]=!0,e},{})});function LE(r,e){return r=e?.caseInsensitive?String(r).toLowerCase():r,!!Vi.default[r]}ot.exists=LE;function qE(r,e,t){if(r=t?.nameCaseInsensitive?String(r).toLowerCase():r,!cl[r])throw new Error("Unknown command "+r);return!!cl[r][e]}ot.hasFlag=qE;function JE(r,e,t){r=t?.nameCaseInsensitive?String(r).toLowerCase():r;let n=Vi.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,ip(c)]):i.push(l))):u==="BY"?(l+=1,s?i.push([l,ip(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=JE;function ip(r){typeof r!="string"&&(r=String(r));let e=r.indexOf("->");return e===-1?r.length:e}});var sp=y(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.tryCatch=dr.errorObj=void 0;dr.errorObj={e:{}};var ul;function FE(r,e){try{let t=ul;return ul=null,t.apply(this,arguments)}catch(t){return dr.errorObj.e=t,dr.errorObj}}function VE(r){return ul=r,FE}dr.tryCatch=VE});var pr=y(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});var hn=sp();function ap(r){setTimeout(function(){throw r},0)}function GE(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&&ap(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&&ap(i.e)}),r}dl.default=GE});var cp=y(($_,lp)=>{"use strict";var op=Y("assert"),Xn=Y("util");function yn(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Xn.inherits(yn,Error);Object.defineProperty(yn.prototype,"name",{value:"RedisError",configurable:!0,writable:!0});function pl(r,e,t){op(e),op.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}Xn.inherits(pl,yn);Object.defineProperty(pl.prototype,"name",{value:"ParserError",configurable:!0,writable:!0});function fl(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}Xn.inherits(fl,yn);Object.defineProperty(fl.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0});function Gi(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Xn.inherits(Gi,yn);Object.defineProperty(Gi.prototype,"name",{value:"AbortError",configurable:!0,writable:!0});function hl(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Xn.inherits(hl,Gi);Object.defineProperty(hl.prototype,"name",{value:"InterruptError",configurable:!0,writable:!0});lp.exports={RedisError:yn,ParserError:pl,ReplyError:fl,AbortError:Gi,InterruptError:hl}});var pp=y((H_,dp)=>{"use strict";var up=Y("assert"),mn=class extends Error{get name(){return this.constructor.name}},yl=class extends mn{constructor(e,t,n){up(t),up.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}},ml=class extends mn{constructor(e){let t=Error.stackTraceLimit;Error.stackTraceLimit=2,super(e),Error.stackTraceLimit=t}get name(){return this.constructor.name}},Yi=class extends mn{get name(){return this.constructor.name}},bl=class extends Yi{get name(){return this.constructor.name}};dp.exports={RedisError:mn,ParserError:yl,ReplyError:ml,AbortError:Yi,InterruptError:bl}});var Nr=y((Q_,fp)=>{"use strict";var YE=process.version.charCodeAt(1)<55&&process.version.charCodeAt(2)===46?cp():pp();fp.exports=YE});var ei=y((Z_,gl)=>{var hp=[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],BE=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},yp=gl.exports=function(e){for(var t,n=0,i=-1,s=0,a=0,o=typeof e=="string"?BE(e):e,l=o.length;n<l;){if(t=o[n++],i===-1)t===123&&(i=n);else if(t!==125)a=hp[(t^a>>8)&255]^a<<8;else if(n-1!==i)return a&16383;s=hp[(t^s>>8)&255]^s<<8}return s&16383};gl.exports.generateMulti=function(e){for(var t=1,n=e.length,i=yp(e[0]);t<n;)if(yp(e[t++])!==i)return-1;return i}});var kp=y((X_,Ep)=>{var bp=9007199254740991,WE="[object Arguments]",UE="[object Function]",zE="[object GeneratorFunction]",$E=/^(?:0|[1-9]\d*)$/;function gp(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 HE(r,e){for(var t=-1,n=Array(r);++t<r;)n[t]=e(t);return n}var ti=Object.prototype,ri=ti.hasOwnProperty,vp=ti.toString,QE=ti.propertyIsEnumerable,mp=Math.max;function ZE(r,e){var t=lk(r)||ok(r)?HE(r.length,String):[],n=t.length,i=!!n;for(var s in r)(e||ri.call(r,s))&&!(i&&(s=="length"||Sp(s,n)))&&t.push(s);return t}function XE(r,e,t,n){return r===void 0||vl(r,ti[t])&&!ri.call(n,t)?e:r}function ek(r,e,t){var n=r[e];(!(ri.call(r,e)&&vl(n,t))||t===void 0&&!(e in r))&&(r[e]=t)}function tk(r){if(!Sl(r))return ak(r);var e=sk(r),t=[];for(var n in r)n=="constructor"&&(e||!ri.call(r,n))||t.push(n);return t}function Kp(r,e){return e=mp(e===void 0?r.length-1:e,0),function(){for(var t=arguments,n=-1,i=mp(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,gp(r,this,a)}}function rk(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;ek(t,a,o===void 0?r[a]:o)}return t}function nk(r){return Kp(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&&ik(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 Sp(r,e){return e=e??bp,!!e&&(typeof r=="number"||$E.test(r))&&r>-1&&r%1==0&&r<e}function ik(r,e,t){if(!Sl(t))return!1;var n=typeof e;return(n=="number"?Kl(t)&&Sp(e,t.length):n=="string"&&e in t)?vl(t[e],r):!1}function sk(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||ti;return r===t}function ak(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}function vl(r,e){return r===e||r!==r&&e!==e}function ok(r){return ck(r)&&ri.call(r,"callee")&&(!QE.call(r,"callee")||vp.call(r)==WE)}var lk=Array.isArray;function Kl(r){return r!=null&&dk(r.length)&&!uk(r)}function ck(r){return pk(r)&&Kl(r)}function uk(r){var e=Sl(r)?vp.call(r):"";return e==UE||e==zE}function dk(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=bp}function Sl(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function pk(r){return!!r&&typeof r=="object"}var fk=nk(function(r,e,t,n){rk(e,yk(e),r,n)}),hk=Kp(function(r){return r.push(void 0,XE),gp(fk,void 0,r)});function yk(r){return Kl(r)?ZE(r,!0):tk(r)}Ep.exports=hk});var wp=y((eM,xp)=>{var mk=9007199254740991,bk="[object Arguments]",gk="[object Function]",vk="[object GeneratorFunction]",El=Object.prototype,Kk=El.hasOwnProperty,Ip=El.toString,Sk=El.propertyIsEnumerable;function Ek(r){return Ik(r)&&Kk.call(r,"callee")&&(!Sk.call(r,"callee")||Ip.call(r)==bk)}function kk(r){return r!=null&&wk(r.length)&&!xk(r)}function Ik(r){return jk(r)&&kk(r)}function xk(r){var e=Tk(r)?Ip.call(r):"";return e==gk||e==vk}function wk(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=mk}function Tk(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function jk(r){return!!r&&typeof r=="object"}xp.exports=Ek});var Bi=y(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.isArguments=fr.defaults=fr.noop=void 0;var Ak=kp();fr.defaults=Ak;var Dk=wp();fr.isArguments=Dk;function Rk(){}fr.noop=Rk});var jp=y((rM,Tp)=>{var bn=1e3,gn=bn*60,vn=gn*60,Lr=vn*24,Ok=Lr*7,Ck=Lr*365.25;Tp.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return _k(r);if(t==="number"&&isFinite(r))return e.long?Pk(r):Mk(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function _k(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*Ck;case"weeks":case"week":case"w":return t*Ok;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 Mk(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 Pk(r){var e=Math.abs(r);return e>=Lr?Wi(r,e,Lr,"day"):e>=vn?Wi(r,e,vn,"hour"):e>=gn?Wi(r,e,gn,"minute"):e>=bn?Wi(r,e,bn,"second"):r+" ms"}function Wi(r,e,t,n){var i=e>=t*1.5;return Math.round(r/t)+" "+n+(i?"s":"")}});var kl=y((nM,Ap)=>{function Nk(r){t.debug=t,t.default=t,t.coerce=l,t.disable=a,t.enable=i,t.enabled=o,t.humanize=jp(),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,m;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,(oe,z)=>{if(oe==="%%")return"%";D++;let A=t.formatters[z];if(typeof A=="function"){let K=E[D];oe=A.call(k,K),E.splice(D,1),D--}return oe}),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,m=t.enabled(u)),m),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,m=-1,g=0;for(;f<u.length;)if(p<d.length&&(d[p]===u[f]||d[p]==="*"))d[p]==="*"?(m=p,g=f,p++):(f++,p++);else if(m!==-1)p=m+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}Ap.exports=Nk});var Dp=y((it,Ui)=>{it.formatArgs=qk;it.save=Jk;it.load=Fk;it.useColors=Lk;it.storage=Vk();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 Lk(){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 qk(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+Ui.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 Jk(r){try{r?it.storage.setItem("debug",r):it.storage.removeItem("debug")}catch{}}function Fk(){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 Vk(){try{return localStorage}catch{}}Ui.exports=kl()(it);var{formatters:Gk}=Ui.exports;Gk.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Op=y((iM,Rp)=>{"use strict";Rp.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 Mp=y((sM,_p)=>{"use strict";var Yk=Y("os"),Cp=Y("tty"),gt=Op(),{env:Le}=process,zi;gt("no-color")||gt("no-colors")||gt("color=false")||gt("color=never")?zi=0:(gt("color")||gt("colors")||gt("color=true")||gt("color=always"))&&(zi=1);function Bk(){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 Wk(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function Uk(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=Bk();n!==void 0&&(zi=n);let i=t?zi:n;if(i===0)return 0;if(t){if(gt("color=16m")||gt("color=full")||gt("color=truecolor"))return 3;if(gt("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=Yk.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 Il(r,e={}){let t=Uk(r,{streamIsTTY:r&&r.isTTY,...e});return Wk(t)}_p.exports={supportsColor:Il,stdout:Il({isTTY:Cp.isatty(1)}),stderr:Il({isTTY:Cp.isatty(2)})}});var Np=y((qe,Hi)=>{var zk=Y("tty"),$i=Y("util");qe.init=tI;qe.log=Zk;qe.formatArgs=Hk;qe.save=Xk;qe.load=eI;qe.useColors=$k;qe.destroy=$i.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=Mp();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 $k(){return"colors"in qe.inspectOpts?!!qe.inspectOpts.colors:zk.isatty(process.stderr.fd)}function Hk(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 CE=Object.create;var Gi=Object.defineProperty;var _E=Object.getOwnPropertyDescriptor;var ME=Object.getOwnPropertyNames;var PE=Object.getPrototypeOf,NE=Object.prototype.hasOwnProperty;var Y=(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 LE=(r,e)=>()=>(r&&(e=r(r=0)),e);var y=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),qE=(r,e)=>{for(var t in e)Gi(r,t,{get:e[t],enumerable:!0})},nf=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ME(e))!NE.call(r,i)&&i!==t&&Gi(r,i,{get:()=>e[i],enumerable:!(n=_E(e,i))||n.enumerable});return r};var sf=(r,e,t)=>(t=r!=null?CE(PE(r)):{},nf(e||!r||!r.__esModule?Gi(t,"default",{value:r,enumerable:!0}):t,r)),nt=r=>nf(Gi({},"__esModule",{value:!0}),r);var af=y(($_,JE)=>{JE.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 Nr=y(ot=>{"use strict";var FE=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 Yi=FE(af());ot.list=Object.keys(Yi.default);var ol={};ot.list.forEach(r=>{ol[r]=Yi.default[r].flags.reduce(function(e,t){return e[t]=!0,e},{})});function VE(r,e){return r=e?.caseInsensitive?String(r).toLowerCase():r,!!Yi.default[r]}ot.exists=VE;function GE(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=GE;function YE(r,e,t){r=t?.nameCaseInsensitive?String(r).toLowerCase():r;let n=Yi.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 p=0;p<d;p++)u.push(p+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,of(c)]):i.push(l))):u==="BY"?(l+=1,s?i.push([l,of(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=YE;function of(r){typeof r!="string"&&(r=String(r));let e=r.indexOf("->");return e===-1?r.length:e}});var lf=y(dr=>{"use strict";Object.defineProperty(dr,"__esModule",{value:!0});dr.tryCatch=dr.errorObj=void 0;dr.errorObj={e:{}};var ll;function BE(r,e){try{let t=ll;return ll=null,t.apply(this,arguments)}catch(t){return dr.errorObj.e=t,dr.errorObj}}function WE(r){return ll=r,BE}dr.tryCatch=WE});var fr=y(cl=>{"use strict";Object.defineProperty(cl,"__esModule",{value:!0});var hn=lf();function cf(r){setTimeout(function(){throw r},0)}function UE(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&&cf(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&&cf(i.e)}),r}cl.default=UE});var ff=y((X_,df)=>{"use strict";var uf=Y("assert"),Xn=Y("util");function mn(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Xn.inherits(mn,Error);Object.defineProperty(mn.prototype,"name",{value:"RedisError",configurable:!0,writable:!0});function ul(r,e,t){uf(e),uf.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}Xn.inherits(ul,mn);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}Xn.inherits(dl,mn);Object.defineProperty(dl.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0});function Bi(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Xn.inherits(Bi,mn);Object.defineProperty(Bi.prototype,"name",{value:"AbortError",configurable:!0,writable:!0});function fl(r){Object.defineProperty(this,"message",{value:r||"",configurable:!0,writable:!0}),Error.captureStackTrace(this,this.constructor)}Xn.inherits(fl,Bi);Object.defineProperty(fl.prototype,"name",{value:"InterruptError",configurable:!0,writable:!0});df.exports={RedisError:mn,ParserError:ul,ReplyError:dl,AbortError:Bi,InterruptError:fl}});var hf=y((eM,yf)=>{"use strict";var pf=Y("assert"),bn=class extends Error{get name(){return this.constructor.name}},pl=class extends bn{constructor(e,t,n){pf(t),pf.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}},yl=class extends bn{constructor(e){let t=Error.stackTraceLimit;Error.stackTraceLimit=2,super(e),Error.stackTraceLimit=t}get name(){return this.constructor.name}},Wi=class extends bn{get name(){return this.constructor.name}},hl=class extends Wi{get name(){return this.constructor.name}};yf.exports={RedisError:bn,ParserError:pl,ReplyError:yl,AbortError:Wi,InterruptError:hl}});var Lr=y((tM,mf)=>{"use strict";var zE=process.version.charCodeAt(1)<55&&process.version.charCodeAt(2)===46?ff():hf();mf.exports=zE});var ei=y((rM,ml)=>{var bf=[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],$E=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},gf=ml.exports=function(e){for(var t,n=0,i=-1,s=0,a=0,o=typeof e=="string"?$E(e):e,l=o.length;n<l;){if(t=o[n++],i===-1)t===123&&(i=n);else if(t!==125)a=bf[(t^a>>8)&255]^a<<8;else if(n-1!==i)return a&16383;s=bf[(t^s>>8)&255]^s<<8}return s&16383};ml.exports.generateMulti=function(e){for(var t=1,n=e.length,i=gf(e[0]);t<n;)if(gf(e[t++])!==i)return-1;return i}});var wf=y((nM,xf)=>{var Kf=9007199254740991,HE="[object Arguments]",QE="[object Function]",ZE="[object GeneratorFunction]",XE=/^(?:0|[1-9]\d*)$/;function Sf(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 ek(r,e){for(var t=-1,n=Array(r);++t<r;)n[t]=e(t);return n}var ti=Object.prototype,ri=ti.hasOwnProperty,Ef=ti.toString,tk=ti.propertyIsEnumerable,vf=Math.max;function rk(r,e){var t=fk(r)||dk(r)?ek(r.length,String):[],n=t.length,i=!!n;for(var s in r)(e||ri.call(r,s))&&!(i&&(s=="length"||If(s,n)))&&t.push(s);return t}function nk(r,e,t,n){return r===void 0||bl(r,ti[t])&&!ri.call(n,t)?e:r}function ik(r,e,t){var n=r[e];(!(ri.call(r,e)&&bl(n,t))||t===void 0&&!(e in r))&&(r[e]=t)}function sk(r){if(!vl(r))return uk(r);var e=ck(r),t=[];for(var n in r)n=="constructor"&&(e||!ri.call(r,n))||t.push(n);return t}function kf(r,e){return e=vf(e===void 0?r.length-1:e,0),function(){for(var t=arguments,n=-1,i=vf(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,Sf(r,this,a)}}function ak(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;ik(t,a,o===void 0?r[a]:o)}return t}function ok(r){return kf(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&&lk(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 If(r,e){return e=e??Kf,!!e&&(typeof r=="number"||XE.test(r))&&r>-1&&r%1==0&&r<e}function lk(r,e,t){if(!vl(t))return!1;var n=typeof e;return(n=="number"?gl(t)&&If(e,t.length):n=="string"&&e in t)?bl(t[e],r):!1}function ck(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||ti;return r===t}function uk(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 dk(r){return pk(r)&&ri.call(r,"callee")&&(!tk.call(r,"callee")||Ef.call(r)==HE)}var fk=Array.isArray;function gl(r){return r!=null&&hk(r.length)&&!yk(r)}function pk(r){return mk(r)&&gl(r)}function yk(r){var e=vl(r)?Ef.call(r):"";return e==QE||e==ZE}function hk(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=Kf}function vl(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function mk(r){return!!r&&typeof r=="object"}var bk=ok(function(r,e,t,n){ak(e,vk(e),r,n)}),gk=kf(function(r){return r.push(void 0,nk),Sf(bk,void 0,r)});function vk(r){return gl(r)?rk(r,!0):sk(r)}xf.exports=gk});var Af=y((iM,jf)=>{var Kk=9007199254740991,Sk="[object Arguments]",Ek="[object Function]",kk="[object GeneratorFunction]",Kl=Object.prototype,Ik=Kl.hasOwnProperty,Tf=Kl.toString,xk=Kl.propertyIsEnumerable;function wk(r){return jk(r)&&Ik.call(r,"callee")&&(!xk.call(r,"callee")||Tf.call(r)==Sk)}function Tk(r){return r!=null&&Dk(r.length)&&!Ak(r)}function jk(r){return Ok(r)&&Tk(r)}function Ak(r){var e=Rk(r)?Tf.call(r):"";return e==Ek||e==kk}function Dk(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=Kk}function Rk(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function Ok(r){return!!r&&typeof r=="object"}jf.exports=wk});var Ui=y(pr=>{"use strict";Object.defineProperty(pr,"__esModule",{value:!0});pr.isArguments=pr.defaults=pr.noop=void 0;var Ck=wf();pr.defaults=Ck;var _k=Af();pr.isArguments=_k;function Mk(){}pr.noop=Mk});var Rf=y((aM,Df)=>{var gn=1e3,vn=gn*60,Kn=vn*60,qr=Kn*24,Pk=qr*7,Nk=qr*365.25;Df.exports=function(r,e){e=e||{};var t=typeof r;if(t==="string"&&r.length>0)return Lk(r);if(t==="number"&&isFinite(r))return e.long?Jk(r):qk(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function Lk(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*Nk;case"weeks":case"week":case"w":return t*Pk;case"days":case"day":case"d":return t*qr;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Kn;case"minutes":case"minute":case"mins":case"min":case"m":return t*vn;case"seconds":case"second":case"secs":case"sec":case"s":return t*gn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function qk(r){var e=Math.abs(r);return e>=qr?Math.round(r/qr)+"d":e>=Kn?Math.round(r/Kn)+"h":e>=vn?Math.round(r/vn)+"m":e>=gn?Math.round(r/gn)+"s":r+"ms"}function Jk(r){var e=Math.abs(r);return e>=qr?zi(r,e,qr,"day"):e>=Kn?zi(r,e,Kn,"hour"):e>=vn?zi(r,e,vn,"minute"):e>=gn?zi(r,e,gn,"second"):r+" ms"}function zi(r,e,t,n){var i=e>=t*1.5;return Math.round(r/t)+" "+n+(i?"s":"")}});var Sl=y((oM,Of)=>{function Fk(r){t.debug=t,t.default=t,t.coerce=l,t.disable=a,t.enable=i,t.enabled=o,t.humanize=Rf(),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 p=0;p<u.length;p++)d=(d<<5)-d+u.charCodeAt(p),d|=0;return t.colors[Math.abs(d)%t.colors.length]}t.selectColor=e;function t(u){let d,p=null,f,h;function g(...k){if(!g.enabled)return;let E=g,I=Number(new Date),O=I-(d||I);E.diff=O,E.prev=d,E.curr=I,d=I,k[0]=t.coerce(k[0]),typeof k[0]!="string"&&k.unshift("%O");let D=0;k[0]=k[0].replace(/%([a-zA-Z%])/g,(ae,w)=>{if(ae==="%%")return"%";D++;let K=t.formatters[w];if(typeof K=="function"){let M=k[D];ae=K.call(E,M),k.splice(D,1),D--}return ae}),t.formatArgs.call(E,k),(E.log||t.log).apply(E,k)}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:()=>p!==null?p:(f!==t.namespaces&&(f=t.namespaces,h=t.enabled(u)),h),set:k=>{p=k}}),typeof t.init=="function"&&t.init(g),g}function n(u,d){let p=t(this.namespace+(typeof d>"u"?":":d)+u);return p.log=this.log,p}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 p of d)p[0]==="-"?t.skips.push(p.slice(1)):t.names.push(p)}function s(u,d){let p=0,f=0,h=-1,g=0;for(;p<u.length;)if(f<d.length&&(d[f]===u[p]||d[f]==="*"))d[f]==="*"?(h=f,g=p,f++):(p++,f++);else if(h!==-1)f=h+1,g++,p=g;else return!1;for(;f<d.length&&d[f]==="*";)f++;return f===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}Of.exports=Fk});var Cf=y((it,$i)=>{it.formatArgs=Gk;it.save=Yk;it.load=Bk;it.useColors=Vk;it.storage=Wk();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 Vk(){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 Gk(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+$i.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 Yk(r){try{r?it.storage.setItem("debug",r):it.storage.removeItem("debug")}catch{}}function Bk(){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 Wk(){try{return localStorage}catch{}}$i.exports=Sl()(it);var{formatters:Uk}=$i.exports;Uk.j=function(r){try{return JSON.stringify(r)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Mf=y((lM,_f)=>{"use strict";_f.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 Lf=y((cM,Nf)=>{"use strict";var zk=Y("os"),Pf=Y("tty"),gt=Mf(),{env:Le}=process,Hi;gt("no-color")||gt("no-colors")||gt("color=false")||gt("color=never")?Hi=0:(gt("color")||gt("colors")||gt("color=true")||gt("color=always"))&&(Hi=1);function $k(){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 Hk(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function Qk(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=$k();n!==void 0&&(Hi=n);let i=t?Hi:n;if(i===0)return 0;if(t){if(gt("color=16m")||gt("color=full")||gt("color=truecolor"))return 3;if(gt("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=zk.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=Qk(r,{streamIsTTY:r&&r.isTTY,...e});return Hk(t)}Nf.exports={supportsColor:El,stdout:El({isTTY:Pf.isatty(1)}),stderr:El({isTTY:Pf.isatty(2)})}});var Jf=y((qe,Zi)=>{var Zk=Y("tty"),Qi=Y("util");qe.init=sI;qe.log=rI;qe.formatArgs=eI;qe.save=nI;qe.load=iI;qe.useColors=Xk;qe.destroy=Qi.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=Lf();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 Xk(){return"colors"in qe.inspectOpts?!!qe.inspectOpts.colors:Zk.isatty(process.stderr.fd)}function eI(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+"+
|
|
5
|
-
`)}function
|
|
6
|
-
`).map(e=>e.trim()).join(" ")};
|
|
4
|
+
`+s),r.push(i+"m+"+Zi.exports.humanize(this.diff)+"\x1B[0m")}else r[0]=tI()+e+" "+r[0]}function tI(){return qe.inspectOpts.hideDate?"":new Date().toISOString()+" "}function rI(...r){return process.stderr.write(Qi.formatWithOptions(qe.inspectOpts,...r)+`
|
|
5
|
+
`)}function nI(r){r?process.env.DEBUG=r:delete process.env.DEBUG}function iI(){return process.env.DEBUG}function sI(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:qf}=Zi.exports;qf.o=function(r){return this.inspectOpts.colors=this.useColors,Qi.inspect(r,this.inspectOpts).split(`
|
|
6
|
+
`).map(e=>e.trim()).join(" ")};qf.O=function(r){return this.inspectOpts.colors=this.useColors,Qi.inspect(r,this.inspectOpts)}});var Ff=y((uM,kl)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?kl.exports=Cf():kl.exports=Jf()});var Yf=y($t=>{"use strict";Object.defineProperty($t,"__esModule",{value:!0});$t.genRedactedString=$t.getStringValue=$t.MAX_ARGUMENT_LENGTH=void 0;var aI=Ff(),Il=200;$t.MAX_ARGUMENT_LENGTH=Il;var oI="ioredis";function Vf(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}}$t.getStringValue=Vf;function Gf(r,e){let{length:t}=r;return t<=e?r:r.slice(0,e)+' ... <REDACTED full-length="'+t+'">'}$t.genRedactedString=Gf;function lI(r){let e=(0,aI.default)(`${oI}:${r}`);function t(...n){if(e.enabled){for(let i=1;i<n.length;i++){let s=Vf(n[i]);typeof s=="string"&&s.length>Il&&(n[i]=Gf(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}$t.default=lI});var Wf=y(xl=>{"use strict";Object.defineProperty(xl,"__esModule",{value:!0});var Bf=`-----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-----`,
|
|
144
|
+
-----END CERTIFICATE-----`,cI={RedisCloudFixed:{ca:Bf},RedisCloudFlexible:{ca:Bf}};xl.default=cI});var Oe=y(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.noop=ne.defaults=ne.Debug=ne.getPackageMeta=ne.zipMap=ne.CONNECTION_CLOSED_ERROR_MSG=ne.shuffle=ne.sample=ne.resolveTLSProfile=ne.parseURL=ne.optimizeErrorStack=ne.toArg=ne.convertMapToArray=ne.convertObjectToArray=ne.timeout=ne.packObject=ne.isInt=ne.wrapMultiResult=ne.convertBufferToString=void 0;var uI=Y("fs"),dI=Y("path"),Uf=Y("url"),wl=Ui();Object.defineProperty(ne,"defaults",{enumerable:!0,get:function(){return wl.defaults}});Object.defineProperty(ne,"noop",{enumerable:!0,get:function(){return wl.noop}});var fI=Yf();ne.Debug=fI.default;var pI=Wf();function zf(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():zf(r[i],e);return n}return r}ne.convertBufferToString=zf;function yI(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}ne.wrapMultiResult=yI;function $f(r){let e=parseFloat(r);return!isNaN(r)&&(e|0)===e}ne.isInt=$f;function hI(r){let e={},t=r.length;for(let n=1;n<t;n+=2)e[r[n-1]]=r[n];return e}ne.packObject=hI;function mI(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}ne.timeout=mI;function bI(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}ne.convertObjectToArray=bI;function gI(r){let e=[],t=0;return r.forEach(function(n,i){e[t]=i,e[t+1]=n,t+=2}),e}ne.convertMapToArray=gI;function vI(r){return r===null||typeof r>"u"?"":String(r)}ne.toArg=vI;function KI(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}ne.optimizeErrorStack=
|
|
147
|
+
`);r.stack=r.stack.slice(0,a)+i}return r}ne.optimizeErrorStack=KI;function SI(r){if($f(r))return{port:r};let e=(0,Uf.parse)(r,!0,!0);!e.slashes&&r[0]!=="/"&&(r="//"+r,e=(0,Uf.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}ne.parseURL=SI;function EI(r){let e=r?.tls;typeof e=="string"&&(e={profile:e});let t=pI.default[e?.profile];return t&&(e=Object.assign({},t,e),delete e.profile,r=Object.assign({},r,{tls:e})),r}ne.resolveTLSProfile=EI;function kI(r,e=0){let t=r.length;return e>=t?null:r[e+Math.floor(Math.random()*(t-e))]}ne.sample=kI;function II(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}ne.shuffle=II;ne.CONNECTION_CLOSED_ERROR_MSG="Connection is closed.";function xI(r,e){let t=new Map;return r.forEach((n,i)=>{t.set(n,e[i])}),t}ne.zipMap=xI;var Sn=null;async function wI(){if(Sn)return Sn;try{let r=(0,dI.resolve)(__dirname,"..","..","package.json"),e=await uI.promises.readFile(r,"utf8");return Sn={version:JSON.parse(e).version},Sn}catch{return Sn={version:"error-fetching-version"},Sn}}ne.getPackageMeta=wI});var Hf=y(En=>{"use strict";Object.defineProperty(En,"__esModule",{value:!0});En.parseBlockOption=En.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}},TI=r=>{if(typeof r=="string")return r;if(Buffer.isBuffer(r))return r.toString()},jI=r=>{let e=Tl(r);if(e!==void 0)return e<=0?0:e*1e3};En.parseSecondsArgument=jI;var AI=r=>{for(let e=0;e<r.length;e++){let t=TI(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};En.parseBlockOption=AI});var Ht=y(Dl=>{"use strict";Object.defineProperty(Dl,"__esModule",{value:!0});var Qf=Nr(),DI=ei(),RI=fr(),Jr=Oe(),jl=Hf(),Nt=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:DI(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
|
|
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,Dl.parseSecondsArgument)(e[e.length-1]);if(r.checkFlag("FIRST_ARG_TIMEOUT_COMMANDS",t))return(0,Dl.parseSecondsArgument)(e[0]);if(r.checkFlag("BLOCK_OPTION_COMMANDS",t))return(0,Dl.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,TI.default)(e,this.callback)}_iterateKeys(e=t=>t){if(typeof this.keys>"u"&&(this.keys=[],(0,zp.exists)(this.name,{caseInsensitive:!0}))){let t=(0,zp.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}}};Ol.default=Pt;Pt.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"]};Pt._transformer={argument:{},reply:{}};var $p=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},Hp=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};Pt.setArgumentTransformer("mset",$p);Pt.setArgumentTransformer("msetnx",$p);Pt.setArgumentTransformer("hset",Hp);Pt.setArgumentTransformer("hmset",Hp);Pt.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 Rl=class{constructor(){this.length=0,this.items=[]}push(e){this.length+=Buffer.byteLength(e),this.items.push(e)}toBuffer(){let e=Buffer.allocUnsafe(this.length),t=0;for(let n of this.items){let i=Buffer.byteLength(n);Buffer.isBuffer(n)?n.copy(e,t):e.write(n,t,i),t+=i}return e}}});var Qp=y(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});var jI=Nr(),Qi=class extends jI.RedisError{constructor(e,t){super(e),this.lastNodeError=t,Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}};Cl.default=Qi;Qi.defaultMessage="Failed to refresh slots cache."});var Zi=y(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});var AI=Y("stream"),_l=class extends AI.Readable{constructor(e){super(e),this.opt=e,this._redisCursor="0",this._redisDrained=!1}_read(){if(this._redisDrained){this.push(null);return}let e=[this._redisCursor];this.opt.key&&e.unshift(this.opt.key),this.opt.match&&e.push("MATCH",this.opt.match),this.opt.type&&e.push("TYPE",this.opt.type),this.opt.count&&e.push("COUNT",String(this.opt.count)),this.opt.noValues&&e.push("NOVALUES"),this.opt.redis[this.opt.command](e,(t,n)=>{if(t){this.emit("error",t);return}this._redisCursor=n[0]instanceof Buffer?n[0].toString():n[0],this._redisCursor==="0"&&(this._redisDrained=!0),this.push(n[1])})}close(){this._redisDrained=!0}};Ml.default=_l});var sf=y(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.executeWithAutoPipelining=Ae.getFirstValueInFlattenedArray=Ae.shouldUseAutoPipelining=Ae.notAllowedAutoPipelineCommands=Ae.kCallbacks=Ae.kExec=void 0;var ef=Bi(),DI=ei(),Zp=pr(),Xp=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 tf(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)&&tf(r,e)})}function RI(r,e,t){return e&&r.options.enableAutoPipelining&&!r.isPipeline&&!Ae.notAllowedAutoPipelineCommands.includes(t)&&!r.options.autoPipeliningIgnoredCommands.includes(t)}Ae.shouldUseAutoPipelining=RI;function rf(r){for(let e=0;e<r.length;e++){let t=r[e];if(typeof t=="string")return t;if(Array.isArray(t)||(0,ef.isArguments)(t)){if(t.length===0)continue;return t[0]}let n=[t].flat();if(n.length>0)return n[0]}}Ae.getFirstValueInFlattenedArray=rf;function nf(r,e,t,n,i){if(r.isCluster&&!r.slots.length)return r.status==="wait"&&r.connect().catch(ef.noop),(0,Zp.default)(new Promise(function(c,u){r.delayUntilReady(d=>{if(d){u(d);return}nf(r,e,t,n,null).then(c,u)})}),i);let s=r.options.keyPrefix||"",a=r.isCluster?r.slots[DI(`${s}${rf(n)}`)].join(","):"main";if(r.isCluster&&r.options.scaleReads!=="master"){let c=(0,Xp.exists)(t)&&(0,Xp.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(tf,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,Zp.default)(l,i)}Ae.executeWithAutoPipelining=nf});var af=y(Nl=>{"use strict";Object.defineProperty(Nl,"__esModule",{value:!0});var OI=Y("crypto"),CI=$t(),_I=pr(),Pl=class{constructor(e,t=null,n="",i=!1){this.lua=e,this.numberOfKeys=t,this.keyPrefix=n,this.readOnly=i,this.sha=(0,OI.createHash)("sha1").update(e).digest("hex");let s=this.sha,a=new WeakSet;this.Command=class extends CI.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,_I.default)(s.promise,i),e.sendCommand(s)}};Nl.default=Pl});var es=y(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});var MI=Pr(),Xi=sf(),PI=$t(),NI=af(),Ht=class{constructor(){this.options={},this.scriptsSet={},this.addedBuiltinSet=new Set}getBuiltinCommands(){return Ll.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 NI.default(t.lua,t.numberOfKeys,this.options.keyPrefix,t.readOnly);this.scriptsSet[e]=n,this[e]=of(e,e,n,"utf8"),this[e+"Buffer"]=of(e+"Buffer",e,n,null)}sendCommand(e,t,n){throw new Error('"sendCommand" is not implemented')}},Ll=MI.list.filter(r=>r!=="monitor");Ll.push("sentinel");Ll.forEach(function(r){Ht.prototype[r]=hr(r,r,"utf8"),Ht.prototype[r+"Buffer"]=hr(r+"Buffer",r,null)});Ht.prototype.call=hr("call","utf8");Ht.prototype.callBuffer=hr("callBuffer",null);Ht.prototype.send_command=Ht.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,Xi.shouldUseAutoPipelining)(this,r,i)?(0,Xi.executeWithAutoPipelining)(this,r,i,n,s):this.sendCommand(new PI.default(i,n,a,s))}}function of(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,Xi.shouldUseAutoPipelining)(this,r,e)?(0,Xi.executeWithAutoPipelining)(this,r,e,i,s):t.execute(this,i,a,s)}}ql.default=Ht});var Vl=y(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});var Jl=ei(),lf=Pr(),cf=pr(),LI=Y("util"),qI=$t(),JI=Oe(),FI=es();function VI(r,e){let t=Jl(e[0]),n=r._groupsBySlot[t];for(let i=1;i<e.length;i++)if(r._groupsBySlot[Jl(e[i])]!==n)return-1;return t}var yr=class extends FI.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,lf.exists)(l.name,{caseInsensitive:!0})&&(0,lf.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 m=new qI.default("asking");m.ignore=!0,this.sendCommand(m)}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,m){a.preferKey=m,f.slots[o[1]]?f.slots[o[1]][0]!==m&&(f.slots[o[1]]=[m]):f.slots[o[1]]=[m],f._groupsBySlot[o[1]]=f._groupsIds[f.slots[o[1]].join(";")],f.refreshSlotsCache(),a.exec()},ask:function(p,m){a.preferKey=m,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}};Fl.default=yr;var GI=yr.prototype.multi;yr.prototype.multi=function(){return this._transactions+=1,GI.apply(this,arguments)};var uf=yr.prototype.execBuffer;yr.prototype.execBuffer=(0,LI.deprecate)(function(){return this._transactions>0&&(this._transactions-=1),uf.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(JI.noop),r&&!this.nodeifiedPromise&&(this.nodeifiedPromise=!0,(0,cf.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,uf.apply(this,arguments);this.nodeifiedPromise||(this.nodeifiedPromise=!0,(0,cf.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&&Jl.generateMulti(a)<0)return this.reject(new Error("All the keys in a pipeline command should belong to the same slot")),this.promise}if(i.length){if(e=VI(this.redis,i),e<0)return this.reject(new Error("All keys in the pipeline should belong to the same slots allocation group")),this.promise}else e=Math.random()*16384|0}let t=this;return n(),this.promise;function n(){let i=t.replyPending=t._queue.length,s;t.isCluster&&(s={slot:e,redis:t.redis.connectionPool.nodes.all[t.preferKey]});let a="",o,l={isPipeline:!0,destination:t.isCluster?s:{redis:t.redis},write(c){typeof c!="string"?(o||(o=[]),a&&(o.push(Buffer.from(a,"utf8")),a=""),o.push(c)):a+=c,--i||(o?(a&&o.push(Buffer.from(a,"utf8")),l.destination.redis.stream.write(Buffer.concat(o))):l.destination.redis.stream.write(a),i=t._queue.length,a="",o=void 0)}};for(let c=0;c<t._queue.length;++c)t.redis.sendCommand(t._queue[c],l,s);return t.promise}}});var Bl=y(ts=>{"use strict";Object.defineProperty(ts,"__esModule",{value:!0});ts.addTransactionSupport=void 0;var Gl=Oe(),Yl=pr(),df=Vl();function YI(r){r.pipeline=function(n){let i=new df.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 df.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(Gl.noop),(0,Yl.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,Yl.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,Gl.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,Yl.default)(t.call(this).then(function(i){return Array.isArray(i)&&(i=(0,Gl.wrapMultiResult)(i)),i}),n)}}ts.addTransactionSupport=YI});var Ul=y(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});function BI(r,e){Object.getOwnPropertyNames(e.prototype).forEach(t=>{Object.defineProperty(r.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})}Wl.default=BI});var ff=y(rs=>{"use strict";Object.defineProperty(rs,"__esModule",{value:!0});rs.DEFAULT_CLUSTER_OPTIONS=void 0;var pf=Y("dns");rs.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:pf.resolveSrv,dnsLookup:pf.lookup,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],shardedSubscribers:!1}});var En=y(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 hf=Oe(),WI=Y("net");function UI(r){return r.port=r.port||6379,r.host=r.host||"127.0.0.1",r.host+":"+r.port}Ye.getNodeKey=UI;function zI(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=zI;function $I(r){return r.map(e=>{let t={};if(typeof e=="object")Object.assign(t,e);else if(typeof e=="string")Object.assign(t,(0,hf.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,hf.resolveTLSProfile)(t)})}Ye.normalizeNodeOptions=$I;function HI(r){let e={};return r.forEach(t=>{e[t.host]=!0}),Object.keys(e).filter(t=>!(0,WI.isIP)(t))}Ye.getUniqueHostnamesFromOptions=HI;function QI(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=QI;function ZI(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=ZI;function XI(r,e){let t=`ioredis-cluster(${r})`;return e?`${t}:${e}`:t}Ye.getConnectionName=XI});var mf=y(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});var yf=En(),zl=Oe(),ex=Qt(),Nt=(0,zl.Debug)("cluster:subscriber"),$l=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){Nt("subscriber has disconnected, but ClusterSubscriber is not started, so not reconnecting.");return}Nt("subscriber has disconnected, selecting a new one..."),this.selectSubscriber()},this.connectionPool.on("-node",(i,s)=>{!this.started||!this.subscriber||(0,yf.getNodeKey)(this.subscriber.options)===s&&(Nt("subscriber has left, selecting a new one..."),this.selectSubscriber())}),this.connectionPool.on("+node",()=>{!this.started||this.subscriber||(Nt("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(),Nt("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,zl.sample)(this.connectionPool.getNodes());if(!t){Nt("selecting subscriber failed since there is no node discovered in the cluster yet"),this.subscriber=null;return}let{options:n}=t;Nt("selected a subscriber %s:%s",n.host,n.port);let i="subscriber";this.isSharded&&(i="ssubscriber"),this.subscriber=new ex.default({port:n.port,host:n.host,username:n.username,password:n.password,enableReadyCheck:!0,connectionName:(0,yf.getConnectionName)(i,n.connectionName),lazyConnect:!0,tls:n.tls,retryStrategy:null}),this.subscriber.on("error",zl.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(Nt("%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(()=>{Nt("failed to ssubscribe to channel: %s",c)});else a+=1,this.subscriber[o](l).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{Nt("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)})}};Hl.default=$l});var bf=y(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});var tx=Y("events"),ns=Oe(),Ql=En(),rx=Qt(),ni=(0,ns.Debug)("cluster:connectionPool"),Zl=class extends tx.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,ns.sample)(t);return this.nodes[e][n]}addMasterNode(e){let t=(0,Ql.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 rx.default((0,ns.defaults)({retryStrategy:null,enableOfflineQueue:!0,readOnly:t},e,this.redisOptions,{lazyConnect:!0}))}findOrCreate(e,t=!1){let n=(0,Ql.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,ni("Change role of %s to %s",n,t?"slave":"master"),i[t?"readonly":"readwrite"]().catch(ns.noop),t?(delete this.nodes.master[n],this.nodes.slave[n]=i):(delete this.nodes.slave[n],this.nodes.master[n]=i))):(ni("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){ni("Reset with %O",e);let t={};e.forEach(n=>{let i=(0,Ql.getNodeKey)(n);n.readOnly&&t[i]||(t[i]=n)}),Object.keys(this.nodes.all).forEach(n=>{t[n]||(ni("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]&&(ni("Remove %s from the pool",e),delete t.all[e]),delete t.master[e],delete t.slave[e]}};Xl.default=Zl});var is=y((xM,gf)=>{"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)};gf.exports=we});var vf=y(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var nx=Oe(),ix=is(),sx=(0,nx.Debug)("delayqueue"),ec=class{constructor(){this.queues={},this.timeouts={}}push(e,t,n){let i=n.callback||process.nextTick;this.queues[e]||(this.queues[e]=new ix),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(sx("send %d commands in %s queue",n,e),this.queues[e]=null;t.length>0;)t.shift()()}};tc.default=ec});var kf=y(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});var Kf=En(),Ef=Oe(),ax=Qt(),Sf=(0,Ef.Debug)("cluster:subscriberGroup:shardedSubscriber"),be={IDLE:"idle",STARTING:"starting",CONNECTED:"connected",STOPPING:"stopping",ENDED:"ended"},ox={[be.IDLE]:[be.STARTING,be.STOPPING,be.ENDED],[be.STARTING]:[be.CONNECTED,be.STOPPING,be.ENDED],[be.CONNECTED]:[be.STOPPING,be.ENDED],[be.STOPPING]:[be.ENDED],[be.ENDED]:[]},rc=class{constructor(e,t,n){var i;this.emitter=e,this.status=be.IDLE,this.instance=null,this.connectPromise=null,this.messageListeners=new Map,this.onEnd=()=>{this.updateStatus(be.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 ax.default((0,Ef.defaults)({enableReadyCheck:!1,enableOfflineQueue:!0,connectionName:(0,Kf.getConnectionName)("ssubscriber",t.connectionName),retryStrategy:null,lazyConnect:!0},t,n)),this.lazyConnect=(i=n?.lazyConnect)!==null&&i!==void 0?i:!0,this.nodeKey=(0,Kf.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===be.STARTING||this.status===be.CONNECTED)){if(this.status===be.ENDED||!this.instance)throw new Error(`Sharded subscriber ${this.nodeKey} cannot be restarted once ended.`);this.updateStatus(be.STARTING),this.connectPromise=this.instance.connect();try{await this.connectPromise,this.updateStatus(be.CONNECTED)}catch(e){throw this.updateStatus(be.ENDED),e}finally{this.connectPromise=null}}}stop(){this.updateStatus(be.STOPPING),this.instance&&(this.instance.disconnect(),this.instance.removeAllListeners(),this.messageListeners.clear(),this.instance=null),this.updateStatus(be.ENDED),Sf("stopped %s",this.nodeKey)}isStarted(){return[be.CONNECTED,be.STARTING].includes(this.status)}get subscriberStatus(){return this.status}isHealthy(){return(this.status===be.IDLE||this.status===be.CONNECTED||this.status===be.STARTING)&&this.instance!==null}getInstance(){return this.instance}getNodeKey(){return this.nodeKey}isLazyConnect(){return this.lazyConnect}updateStatus(e){if(this.status!==e){if(!ox[this.status].includes(e)){Sf("Invalid status transition for %s: %s -> %s",this.nodeKey,this.status,e);return}this.status=e}}};nc.default=rc});var If=y(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var lx=Oe(),cx=En(),ss=ei(),ux=kf(),vt=(0,lx.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);vt("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=ss(e[0]);for(let i of e)if(ss(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=ss(e[0]);for(let i of e)if(ss(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){vt("No topology change detected or failed subscribers. Skipping reset.");return}for(let[a,o]of this.shardedSubscribers){if(this.subscriberToSlotsIndex.has(a)&&o.isHealthy()){vt("Skipping deleting subscriber for %s",a);continue}vt("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()){vt("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()&&(vt("Replacing subscriber for %s",a),l.stop(),this.shardedSubscribers.delete(a),this.subscriberGroupEmitter.emit("-subscriber")),vt("Creating new subscriber for %s",a);let c=t.find(d=>(0,cx.getNodeKey)(d.options)===a);if(!c){vt("Failed to find node for key %s",a);continue}let u=new ux.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 vt("Nothing to refresh because the new cluster map is equal to the previous one."),!1;vt("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=>{vt("Failed to ssubscribe on node %s: %s",t,o)}):s.once("ready",()=>{s.ssubscribe(...a).catch(o=>{vt("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}};ic.default=kn;kn.MAX_RETRY_ATTEMPTS=10;kn.MAX_BACKOFF_MS=2e3;kn.BASE_BACKOFF_MS=100});var oc=y(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});var xf=Pr(),sc=Y("events"),In=Nr(),wf=pr(),Tf=$t(),as=Qp(),dx=Qt(),px=Zi(),fx=Bl(),lt=Oe(),hx=Ul(),yx=es(),mx=ff(),bx=mf(),gx=bf(),vx=vf(),xn=En(),jf=is(),Kx=If(),Ke=(0,lt.Debug)("cluster"),Af=new WeakSet,ii=class r extends yx.default{constructor(e,t={}){if(super(),this.slots=[],this._groupsIds={},this._groupsBySlot=Array(16384),this.isCluster=!0,this.retryAttempts=0,this.delayQueue=new vx.default,this.offlineQueue=new jf,this.isRefreshing=!1,this._refreshSlotsCacheCallbacks=[],this._autoPipelines=new Map,this._runningAutoPipelines=new Set,this._readyDelayedCallbacks=[],this.connectionEpoch=0,sc.EventEmitter.call(this),this.startupNodes=e,this.options=(0,lt.defaults)({},t,mx.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 gx.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 bx.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===as.default.defaultMessage&&(dx.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,wf.default)(Promise.resolve("OK"),e);return setImmediate(function(){this.setStatus("close"),this.handleCloseEvent()}.bind(this)),n}return(0,wf.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 as.default(as.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,xf.exists)(e.name)&&(0,xf.hasFlag)(e.name,"readonly")||(i="master"));let s=n?n.slot:e.getSlot(),a={},o=this;if(!n&&!Af.has(e)){Af.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 m=o.natMapper(p);o.connectionPool.findOrCreate(m),l(!1,`${m.host}:${m.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(Tf.default.checkFlag("ENTER_SUBSCRIBER_MODE",e.name)||Tf.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(m){return o.connectionPool.getInstanceByKey(m)});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 jf}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 m=this.natMapper({host:c[p][0],port:c[p][1]});m.readOnly=p!==2,a.push(m),f.push(m.host+":"+m.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(m=>t({host:m,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 px.default({objectMode:!0,key:t,redis:this,command:e,...n})}createShardedSubscriberGroup(){this.subscriberGroupEmitter=new sc.EventEmitter,this.shardedSubscribers=new Kx.default(this.subscriberGroupEmitter,this.options);let e=t=>{t instanceof as.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,hx.default)(ii,sc.EventEmitter);(0,fx.addTransactionSupport)(ii.prototype);ac.default=ii});var os=y(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Sx=Oe(),Ex=(0,Sx.Debug)("AbstractConnector"),lc=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(()=>{Ex("stream %s:%s still open, destroying it",e.remoteAddress,e.remotePort),e.destroy()},this.disconnectTimeout);e.on("close",()=>clearTimeout(t)),e.end()}}};cc.default=lc});var Df=y(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});var kx=Y("net"),Ix=Y("tls"),xx=Oe(),wx=os(),uc=class extends wx.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(xx.CONNECTION_CLOSED_ERROR_MSG));return}try{t.tls?this.stream=(0,Ix.connect)(n):this.stream=(0,kx.createConnection)(n)}catch(a){s(a);return}this.stream.once("error",a=>{this.firstError=a}),i(this.stream)})})}};dc.default=uc});var Rf=y(fc=>{"use strict";Object.defineProperty(fc,"__esModule",{value:!0});function Tx(r,e){return(r.host||"127.0.0.1")===(e.host||"127.0.0.1")&&(r.port||26379)===(e.port||26379)}var pc=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(Tx(e,this.sentinels[t]))return!1;return this.sentinels.push(e),!0}toString(){return`${JSON.stringify(this.sentinels)} @${this.cursor}`}};fc.default=pc});var Cf=y(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.FailoverDetector=void 0;var jx=Oe(),hc=(0,jx.Debug)("FailoverDetector"),Of="+switch-master",yc=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(){hc("Starting FailoverDetector");let e=[];for(let t of this.sentinels){let n=t.client.subscribe(Of).catch(i=>{hc("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===Of&&this.disconnect()})}await Promise.all(e)}disconnect(){this.isDisconnected=!0,hc("Failover detected, disconnecting"),this.connector.disconnect()}};ls.FailoverDetector=yc});var cs=y(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.SentinelIterator=void 0;var Ax=Y("net"),si=Oe(),Dx=Y("tls"),_f=Rf();ai.SentinelIterator=_f.default;var Rx=os(),Ox=Qt(),Cx=Cf(),wn=(0,si.Debug)("SentinelConnector"),mc=class extends Rx.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 _f.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(si.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,Dx.connect)(s),this.stream.once("secureConnect",this.initFailoverDetector.bind(this))):(this.stream=(0,Ax.createConnection)(s),this.stream.once("connect",this.initFailoverDetector.bind(this))),this.stream.once("error",l=>{this.firstError=l}),this.stream;{let l=a?"failed to connect to sentinel "+o+" because "+a.message:"connected to sentinel "+o+" successfully, but got an invalid reply: "+s;return wn(l),e("sentinelError",new Error(l)),a&&(t=a),n()}};return n()}async updateSentinels(e){if(!this.options.updateSentinels)return;let t=await e.sentinel("sentinels",this.options.name);Array.isArray(t)&&(t.map(si.packObject).forEach(n=>{if((n.flags?n.flags.split(","):[]).indexOf("disconnected")===-1&&n.ip&&n.port){let s=this.sentinelNatResolve(Mf(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(si.packObject).filter(i=>i.flags&&!i.flags.match(/(disconnected|s_down|o_down)/));return this.sentinelNatResolve(_x(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 Ox.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",Mx);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 Cx.FailoverDetector(this,t),await this.failoverDetector.subscribe(),(e=this.emitter)===null||e===void 0||e.emit("failoverSubscribed")}};ai.default=mc;function _x(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,si.sample)(r)),Mf(t)}function Mf(r){return{host:r.ip,port:Number(r.port)}}function Mx(){}});var Pf=y(Tn=>{"use strict";Object.defineProperty(Tn,"__esModule",{value:!0});Tn.SentinelConnector=Tn.StandaloneConnector=void 0;var Px=Df();Tn.StandaloneConnector=Px.default;var Nx=cs();Tn.SentinelConnector=Nx.default});var Nf=y(gc=>{"use strict";Object.defineProperty(gc,"__esModule",{value:!0});var Lx=Nr(),bc=class extends Lx.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}};gc.default=bc});var Lf=y(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});us.MaxRetriesPerRequestError=void 0;var qx=Nf();us.MaxRetriesPerRequestError=qx.default});var Bf=y((LM,Yf)=>{"use strict";var Ic=Y("buffer").Buffer,Jx=Y("string_decoder").StringDecoder,vc=new Jx,qf=Nr(),Fx=qf.ReplyError,Vx=qf.ParserError,jt=Ic.allocUnsafe(32*1024),$e=0,ds=null,oi=0,Kc=0;function Gx(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 Yx(r){let e=r.buffer.length-1;var t=r.offset,n=0,i="";for(r.buffer[t]===45&&(i+="-",t++);t<e;){var s=r.buffer[t++];if(s===13)return r.offset=t+1,n!==0&&(i+=n),i;n>429496728?(i+=n*10+(s-48),n=0):s===48&&n===0?i+=0:n=n*10+(s-48)}}function Jf(r){let e=r.offset,t=r.buffer,n=t.length-1;for(var i=e;i<n;)if(t[i++]===13)return r.offset=i+1,r.optionReturnBuffers===!0?r.buffer.slice(e,i-1):r.buffer.toString("utf8",e,i-1)}function Ff(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 Bx(r){return r.optionStringNumbers===!0?Yx(r):Gx(r)}function Wx(r){let e=Ff(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 Ux(r){var e=Jf(r);if(e!==void 0)return r.optionReturnBuffers===!0&&(e=e.toString()),new Fx(e)}function zx(r,e){let t=new Vx("Protocol error, got "+JSON.stringify(String.fromCharCode(e))+" as reply type byte",JSON.stringify(r.buffer),r.offset);r.buffer=null,r.returnFatalError(t)}function $x(r){let e=Ff(r);if(e===void 0)return;if(e<0)return null;let t=new Array(e);return Vf(r,t,0)}function Sc(r,e,t){r.arrayCache.push(e),r.arrayPos.push(t)}function Ec(r){let e=r.arrayCache.pop();var t=r.arrayPos.pop();if(r.arrayCache.length){let n=Ec(r);if(n===void 0){Sc(r,e,t);return}e[t++]=n}return Vf(r,e,t)}function Vf(r,e,t){let n=r.buffer.length;for(;t<e.length;){let i=r.offset;if(r.offset>=n){Sc(r,e,t);return}let s=Gf(r,r.buffer[r.offset++]);if(s===void 0){r.arrayCache.length||r.bufferCache.length||(r.offset=i),Sc(r,e,t);return}e[t]=s,t++}return e}function Gf(r,e){switch(e){case 36:return Wx(r);case 43:return Jf(r);case 42:return $x(r);case 58:return Bx(r);case 45:return Ux(r);default:return zx(r,e)}}function Hx(){if(jt.length>50*1024)if(oi===1||Kc>oi*2){let r=Math.floor(jt.length/10),e=r<$e?$e:r;$e=0,jt=jt.slice(e,jt.length)}else Kc++,oi--;else clearInterval(ds),oi=0,Kc=0,ds=null}function Qx(r){if(jt.length<r+$e){let e=r>78643200?2:3;$e>1024*1024*111&&($e=1024*1024*50),jt=Ic.allocUnsafe(r*e+$e),$e=0,oi++,ds===null&&(ds=setInterval(Hx,50))}}function Zx(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=vc.write(e[0].slice(t)),a=1;a<n-1;a++)s+=vc.write(e[a]);return s+=vc.end(e[a].slice(0,i-2)),s}function Xx(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}Qx(n);let a=$e;e[0].copy(jt,a,t,e[0].length),$e+=e[0].length-t;for(var o=1;o<i-1;o++)e[o].copy(jt,$e),$e+=e[o].length;return e[o].copy(jt,$e,0,s-2),$e+=s-2,jt.slice(a,$e)}var kc=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=Ic.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=Ec(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?Xx(this):Zx(this);if(this.bigStrSize=0,this.bufferCache=[],this.buffer=e,this.arrayCache.length&&(this.arrayCache[0][this.arrayPos[0]++]=t,t=Ec(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=Gf(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}};Yf.exports=kc});var Uf=y((qM,Wf)=>{"use strict";Wf.exports=Bf()});var zf=y(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var wc=class{constructor(){this.set={subscribe:{},psubscribe:{},ssubscribe:{}}}add(e,t){this.set[xc(e)][t]=!0}del(e,t){delete this.set[xc(e)][t]}channels(e){return Object.keys(this.set[xc(e)])}isEmpty(){return this.channels("subscribe").length===0&&this.channels("psubscribe").length===0&&this.channels("ssubscribe").length===0}};Tc.default=wc;function xc(r){return r==="unsubscribe"?"subscribe":r==="punsubscribe"?"psubscribe":r==="sunsubscribe"?"ssubscribe":r}});var Zf=y(Ac=>{"use strict";Object.defineProperty(Ac,"__esModule",{value:!0});var $f=$t(),ew=Oe(),tw=Uf(),rw=zf(),nw=(0,ew.Debug)("dataHandler"),jc=class{constructor(e,t){this.redis=e;let n=new tw({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&&($f.default.checkFlag("ENTER_SUBSCRIBER_MODE",t.command.name)?(this.redis.condition.subscriber=new rw.default,this.redis.condition.subscriber.add(t.command.name,e[1].toString()),Hf(t.command,e[2])||this.redis.commandQueue.unshift(t)):$f.default.checkFlag("EXIT_SUBSCRIBER_MODE",t.command.name)?Qf(t.command,e[2])||this.redis.commandQueue.unshift(t):t.command.resolve(e))}handleSubscriberReply(e){if(!this.redis.condition.subscriber)return!1;let t=Array.isArray(e)?e[0].toString():null;switch(nw('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;Hf(i.command,e[2])||this.redis.commandQueue.unshift(i);break}case"sunsubscribe":case"unsubscribe":case"punsubscribe":{let n=e[1]?e[1].toString():null;n&&this.redis.condition.subscriber.del(t,n);let i=e[2];Number(i)===0&&(this.redis.condition.subscriber=!1);let s=this.shiftCommand(e);if(!s)return;Qf(s.command,i)||this.redis.commandQueue.unshift(s);break}default:{let n=this.shiftCommand(e);if(!n)return;n.command.resolve(e)}}return!0}handleMonitorReply(e){if(this.redis.status!=="monitoring")return!1;let t=e.toString();if(t==="OK")return!1;let n=t.indexOf(" "),i=t.slice(0,n),s=t.indexOf('"'),a=t.slice(s+1,-1).split('" "').map(l=>l.replace(/\\"/g,'"')),o=t.slice(n+2,s-2).split(" ");return this.redis.emit("monitor",i,a,o[1],o[0]),!0}shiftCommand(e){let t=this.redis.commandQueue.shift();if(!t){let n="Command queue state error. If you can reproduce this, please report it.",i=new Error(n+(e instanceof Error?` Last error: ${e.message}`:` Last reply: ${e.toString()}`));return this.redis.emit("error",i),null}return t}};Ac.default=jc;var mr=new WeakMap;function Hf(r,e){let t=mr.has(r)?mr.get(r):r.args.length;return t-=1,t<=0?(r.resolve(e),mr.delete(r),!0):(mr.set(r,t),!1)}function Qf(r,e){let t=mr.has(r)?mr.get(r):r.args.length;return t===0?Number(e)===0?(mr.delete(r),r.resolve(e),!0):!1:(t-=1,t<=0?(r.resolve(e),!0):(mr.set(r,t),!1))}});var Xf=y(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.readyHandler=Kt.errorHandler=Kt.closeHandler=Kt.connectHandler=void 0;var iw=Nr(),sw=$t(),aw=Lf(),Lt=Oe(),ow=Zf(),Ge=(0,Lt.Debug)("connection");function lw(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 ow.default(r,{stringNumbers:r.options.stringNumbers});let i=[];r.options.connectionName&&(Ge("set the connection name [%s]",r.options.connectionName),i.push(r.client("setname",r.options.connectionName).catch(Lt.noop))),r.options.disableClientInfo||(Ge("set the client info"),i.push((0,Lt.getPackageMeta)().then(s=>r.client("SETINFO","LIB-VER",s.version).catch(Lt.noop)).catch(Lt.noop)),i.push(r.client("SETINFO","LIB-NAME",!((e=r.options)===null||e===void 0)&&e.clientInfoTag?`ioredis(${r.options.clientInfoTag})`:"ioredis").catch(Lt.noop))),Promise.all(i).catch(Lt.noop).finally(()=>{r.options.enableReadyCheck||Kt.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)?Kt.readyHandler(r)():r.disconnect(!0))})})}}Kt.connectHandler=lw;function Dc(r){let e=new iw.AbortError("Command aborted due to connection close");return e.command={name:r.name,args:r.args},e}function cw(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(Dc(i));continue}n++}}function uw(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(Dc(n));break}n.inTransaction?(r.remove(t,1),n.reject(Dc(n))):t++}}function dw(r){return function(){let t=r.status;if(r.setStatus("close"),r.commandQueue.length&&cw(r.commandQueue),r.offlineQueue.length&&uw(r.offlineQueue),t==="ready"&&(r.prevCondition||(r.prevCondition=r.condition),r.commandQueue.length&&(r.prevCommandQueue=r.commandQueue)),r.manuallyClosing)return r.manuallyClosing=!1,Ge("skip reconnecting since the connection is manually closed."),e();if(typeof r.options.retryStrategy!="function")return Ge("skip reconnecting because `retryStrategy` is not a function"),e();let n=r.options.retryStrategy(++r.retryAttempts);if(typeof n!="number")return Ge("skip reconnecting because `retryStrategy` doesn't return a number"),e();Ge("reconnect in %sms",n),r.setStatus("reconnecting",n),r.reconnectTimeout=setTimeout(function(){r.reconnectTimeout=null,r.connect().catch(Lt.noop)},n);let{maxRetriesPerRequest:i}=r.options;typeof i=="number"&&(i<0?Ge("maxRetriesPerRequest is negative, ignoring..."):r.retryAttempts%(i+1)===0&&(Ge("reach maxRetriesPerRequest limitation, flushing command queue..."),r.flushQueue(new aw.MaxRetriesPerRequestError(i))))};function e(){r.setStatus("end"),r.flushQueue(new Error(Lt.CONNECTION_CLOSED_ERROR_MSG))}}Kt.closeHandler=dw;function pw(r){return function(e){Ge("error: %s",e),r.silentEmit("error",e)}}Kt.errorHandler=pw;function fw(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 sw.default.checkFlag("VALID_IN_MONITOR_MODE",n.name)?t.call(r,n):(n.reject(new Error("Connection is in monitoring mode, can't process commands.")),n.promise)},r.once("close",function(){delete r.sendCommand});return}let e=r.prevCondition?r.prevCondition.select:r.condition.select;if(r.options.readOnly&&(Ge("set the connection to readonly mode"),r.readonly().catch(Lt.noop)),r.prevCondition){let t=r.prevCondition;if(r.prevCondition=null,t.subscriber&&r.options.autoResubscribe){r.condition.select!==e&&(Ge("connect to db [%d]",e),r.select(e));let n=t.subscriber.channels("subscribe");n.length&&(Ge("subscribe %d channels",n.length),r.subscribe(n));let i=t.subscriber.channels("psubscribe");i.length&&(Ge("psubscribe %d channels",i.length),r.psubscribe(i));let s=t.subscriber.channels("ssubscribe");if(s.length){Ge("ssubscribe %s",s.length);for(let a of s)r.ssubscribe(a)}}}if(r.prevCommandQueue)if(r.options.autoResendUnfulfilledCommands)for(Ge("resend %d unfulfilled commands",r.prevCommandQueue.length);r.prevCommandQueue.length>0;){let t=r.prevCommandQueue.shift();t.select!==r.condition.select&&t.command.name!=="select"&&r.select(t.select),r.sendCommand(t.command,t.stream)}else r.prevCommandQueue=null;if(r.offlineQueue.length){Ge("send %d commands in offline queue",r.offlineQueue.length);let t=r.offlineQueue;for(r.resetOfflineQueue();t.length>0;){let n=t.shift();n.select!==r.condition.select&&n.command.name!=="select"&&r.select(n.select),r.sendCommand(n.command,n.stream)}}r.condition.select!==e&&(Ge("connect to db [%d]",e),r.select(e))}}Kt.readyHandler=fw});var eh=y(ps=>{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});ps.DEFAULT_REDIS_OPTIONS=void 0;ps.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 Qt=y(Oc=>{"use strict";Object.defineProperty(Oc,"__esModule",{value:!0});var th=Pr(),nh=Y("events"),Rc=pr(),hw=oc(),Jr=$t(),yw=Pf(),mw=cs(),br=Xf(),ih=eh(),bw=Zi(),gw=Bl(),Fr=Oe(),vw=Ul(),Kw=es(),gr=Bi(),rh=is(),vr=(0,Fr.Debug)("redis"),Kr=class r extends Kw.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),nh.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 mw.default(this.options);i.emitter=this,this.connector=i}else this.connector=new yw.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,Rc.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,Rc.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,Rc.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,th.exists)(e.name,{caseInsensitive:!0})&&((0,th.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:ih.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 rh}resetOfflineQueue(){this.offlineQueue=new rh}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 bw.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=hw.default;Kr.Command=Jr.default;Kr.defaultOptions=ih.DEFAULT_REDIS_OPTIONS;(0,vw.default)(Kr,nh.EventEmitter);(0,gw.addTransactionSupport)(Kr.prototype);Oc.default=Kr});var fs=y((Se,ah)=>{"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=ah.exports=Qt().default;var Sw=Qt();Object.defineProperty(Se,"default",{enumerable:!0,get:function(){return Sw.default}});var Ew=Qt();Object.defineProperty(Se,"Redis",{enumerable:!0,get:function(){return Ew.default}});var kw=oc();Object.defineProperty(Se,"Cluster",{enumerable:!0,get:function(){return kw.default}});var Iw=$t();Object.defineProperty(Se,"Command",{enumerable:!0,get:function(){return Iw.default}});var xw=Zi();Object.defineProperty(Se,"ScanStream",{enumerable:!0,get:function(){return xw.default}});var ww=Vl();Object.defineProperty(Se,"Pipeline",{enumerable:!0,get:function(){return ww.default}});var Tw=os();Object.defineProperty(Se,"AbstractConnector",{enumerable:!0,get:function(){return Tw.default}});var sh=cs();Object.defineProperty(Se,"SentinelConnector",{enumerable:!0,get:function(){return sh.default}});Object.defineProperty(Se,"SentinelIterator",{enumerable:!0,get:function(){return sh.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 jw(r,e){console.log(r?"Error: "+r:"Reply: "+e)}Se.print=jw});var He={};ME(He,{__addDisposableResource:()=>Rh,__assign:()=>hs,__asyncDelegator:()=>kh,__asyncGenerator:()=>Eh,__asyncValues:()=>Ih,__await:()=>jn,__awaiter:()=>mh,__classPrivateFieldGet:()=>jh,__classPrivateFieldIn:()=>Dh,__classPrivateFieldSet:()=>Ah,__createBinding:()=>ms,__decorate:()=>ch,__disposeResources:()=>Oh,__esDecorate:()=>dh,__exportStar:()=>gh,__extends:()=>oh,__generator:()=>bh,__importDefault:()=>Th,__importStar:()=>wh,__makeTemplateObject:()=>xh,__metadata:()=>yh,__param:()=>uh,__propKey:()=>fh,__read:()=>Mc,__rest:()=>lh,__rewriteRelativeImportExtension:()=>Ch,__runInitializers:()=>ph,__setFunctionName:()=>hh,__spread:()=>vh,__spreadArray:()=>Sh,__spreadArrays:()=>Kh,__values:()=>ys,default:()=>Rw});function oh(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Cc(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function lh(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 ch(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 uh(r,e){return function(t,n){e(t,n,r)}}function dh(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 m={};for(var g in n)m[g]=g==="access"?{}:n[g];for(var g in n.access)m.access[g]=n.access[g];m.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],m);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 ph(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 fh(r){return typeof r=="symbol"?r:"".concat(r)}function hh(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 yh(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function mh(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 bh(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 gh(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&ms(e,r,t)}function ys(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 Mc(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 vh(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(Mc(arguments[e]));return r}function Kh(){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 Sh(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 Eh(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(m){return Promise.resolve(m).then(p,d)}}function o(p,m){n[p]&&(i[p]=function(g){return new Promise(function(E,k){s.push([p,g,E,k])>1||l(p,g)})},m&&(i[p]=m(i[p])))}function l(p,m){try{c(n[p](m))}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,m){p(m),s.shift(),s.length&&l(s[0][0],s[0][1])}}function kh(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 Ih(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 ys=="function"?ys(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 xh(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function wh(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t=_c(r),n=0;n<t.length;n++)t[n]!=="default"&&ms(e,r,t[n]);return Aw(e,r),e}function Th(r){return r&&r.__esModule?r:{default:r}}function jh(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 Ah(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 Dh(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 Rh(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 Oh(r){function e(s){r.error=r.hasError?new Dw(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 Ch(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 Cc,hs,ms,Aw,_c,Dw,Rw,Qe=_E(()=>{Cc=function(r,e){return Cc=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])},Cc(r,e)};hs=function(){return hs=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},hs.apply(this,arguments)};ms=Object.create?(function(r,e,t,n){n===void 0&&(n=t);var i=Object.getOwnPropertyDescriptor(e,t);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,i)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]});Aw=Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e},_c=function(r){return _c=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},_c(r)};Dw=typeof SuppressedError=="function"?SuppressedError:function(r,e,t){var n=new Error(t);return n.name="SuppressedError",n.error=r,n.suppressed=e,n};Rw={__extends:oh,__assign:hs,__rest:lh,__decorate:ch,__param:uh,__esDecorate:dh,__runInitializers:ph,__propKey:fh,__setFunctionName:hh,__metadata:yh,__awaiter:mh,__generator:bh,__createBinding:ms,__exportStar:gh,__values:ys,__read:Mc,__spread:vh,__spreadArrays:Kh,__spreadArray:Sh,__await:jn,__asyncGenerator:Eh,__asyncDelegator:kh,__asyncValues:Ih,__makeTemplateObject:xh,__importStar:wh,__importDefault:Th,__classPrivateFieldGet:jh,__classPrivateFieldSet:Ah,__classPrivateFieldIn:Dh,__addDisposableResource:Rh,__disposeResources:Oh,__rewriteRelativeImportExtension:Ch}});var qc=y(bs=>{"use strict";Object.defineProperty(bs,"__esModule",{value:!0});bs.AsyncFifoQueue=void 0;var Pc=class{constructor(e){this.value=void 0,this.next=null,this.value=e}},Nc=class{constructor(){this.length=0,this.head=null,this.tail=null}push(e){let t=new Pc(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}},Lc=class{constructor(e=!1){this.ignoreErrors=e,this.queue=new Nc,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}}};bs.AsyncFifoQueue=Lc});var Jc=y(gs=>{"use strict";Object.defineProperty(gs,"__esModule",{value:!0});gs.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 Ow(e,s)(t,e.type,n,i)}};gs.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 Ow(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 Mh=y(vs=>{"use strict";Object.defineProperty(vs,"__esModule",{value:!0});vs.ChildCommand=void 0;var _h;(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"})(_h||(vs.ChildCommand=_h={}))});var Nh=y(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.ErrorCode=void 0;var Ph;(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"})(Ph||(Ks.ErrorCode=Ph={}))});var qh=y(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.ParentCommand=void 0;var Lh;(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"})(Lh||(Ss.ParentCommand=Lh={}))});var Fh=y(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.MetricsTime=void 0;var Jh;(function(r){r[r.ONE_MINUTE=1]="ONE_MINUTE",r[r.FIVE_MINUTES=5]="FIVE_MINUTES",r[r.FIFTEEN_MINUTES=15]="FIFTEEN_MINUTES",r[r.THIRTY_MINUTES=30]="THIRTY_MINUTES",r[r.ONE_HOUR=60]="ONE_HOUR",r[r.ONE_WEEK=10080]="ONE_WEEK",r[r.TWO_WEEKS=20160]="TWO_WEEKS",r[r.ONE_MONTH=80640]="ONE_MONTH"})(Jh||(Es.MetricsTime=Jh={}))});var Bh=y(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.SpanKind=Sr.MetricNames=Sr.TelemetryAttributes=void 0;var Vh;(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"})(Vh||(Sr.TelemetryAttributes=Vh={}));var Gh;(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"})(Gh||(Sr.MetricNames=Gh={}));var Yh;(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"})(Yh||(Sr.SpanKind=Yh={}))});var st=y(Vr=>{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});var li=(Qe(),nt(He));li.__exportStar(Mh(),Vr);li.__exportStar(Nh(),Vr);li.__exportStar(qh(),Vr);li.__exportStar(Fh(),Vr);li.__exportStar(Bh(),Vr)});var Vc=y(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.Child=void 0;var Cw=Y("child_process"),_w=Y("net"),Mw=Y("worker_threads"),ks=st(),Pw=Y("events"),Nw={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"},Fc=class extends Pw.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 Jw(process.execArgv),t;this.opts.useWorkerThreads?this.worker=t=new Mw.Worker(this.mainFile,Object.assign({execArgv:e,stdin:!0,stdout:!0,stderr:!0},this.opts.workerThreadsOptions?this.opts.workerThreadsOptions:{})):this.childProcess=t=(0,Cw.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=Lw(this.childProcess||this.worker);if(this.killProcess(e),t!==void 0&&(t===0||isFinite(t))){let i=setTimeout(()=>{this.hasProcessExited()||this.killProcess("SIGKILL")},t);await n,clearTimeout(i)}await n}async initChild(){let e=new Promise((t,n)=>{let i=a=>{if(Object.values(ks.ParentCommand).includes(a.cmd)){if(a.cmd===ks.ParentCommand.InitCompleted)t();else if(a.cmd===ks.ParentCommand.InitFailed){let o=new Error;o.stack=a.err.stack,o.message=a.err.message,n(o)}this.off("message",i),this.off("close",s)}},s=(a,o)=>{a>128&&(a-=128);let l=Nw[a]||`Unknown exit code ${a}`;n(new Error(`Error initializing child: ${l} and signal ${o}`)),this.off("message",i),this.off("close",s)};this.on("message",i),this.on("close",s)});await this.send({cmd:ks.ChildCommand.Init,value:this.processFile}),await e}hasProcessExited(){return!!(this.exitCode!==null||this.signalCode)}};Is.Child=Fc;function Lw(r){return new Promise(e=>{r.once("exit",()=>e())})}var qw=async()=>new Promise(r=>{let e=(0,_w.createServer)();e.listen(0,()=>{let{port:t}=e.address();e.close(()=>r(t))})}),Jw=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 qw();t.push(`${s}=${a}`)}}return e.concat(t)}});var Bc=y((xs,Yc)=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.ChildPool=void 0;var Wh=Y("path"),Fw=Vc(),Vw=3e4,Gw=()=>typeof Y=="function"&&typeof Yc=="object"&&typeof Yc.exports=="object",Gc=class{constructor({mainFile:e=Gw()?Wh.join(process.cwd(),"dist/cjs/classes/main.js"):Wh.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 Fw.Child(this.opts.mainFile,e,{useWorkerThreads:this.opts.useWorkerThreads,workerForkOptions:this.opts.workerForkOptions,workerThreadsOptions:this.opts.workerThreadsOptions}),t.on("exit",this.remove.bind(this,t));try{if(await t.init(),t.exitCode!==null||t.signalCode!==null)throw new Error("Child exited before it could be retained");return this.retained[t.pid]=t,t}catch(n){throw console.error(n),this.release(t),n}}release(e){delete this.retained[e.pid],this.getFree(e.processFile).push(e)}remove(e){delete this.retained[e.pid];let t=this.getFree(e.processFile),n=t.indexOf(e);n>-1&&t.splice(n,1)}async kill(e,t="SIGKILL"){return this.remove(e),e.kill(t,Vw)}async clean(){let e=Object.values(this.retained).concat(this.getAllFree());this.retained={},this.free={},await Promise.all(e.map(t=>this.kill(t,"SIGTERM")))}getFree(e){return this.free[e]=this.free[e]||[]}getAllFree(){return Object.values(this.free).reduce((e,t)=>e.concat(t),[])}};xs.ChildPool=Gc});var zh=y((tP,Uh)=>{var{EventEmitter:Yw}=Y("events"),ws=class{constructor(){this.eventEmitter=new Yw,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 ci;return t.abort(),t.signal}static timeout(e){let t=new ci;return setTimeout(()=>t.abort(new Error("TimeoutError")),e),t.signal}},ci=class{constructor(){this.signal=new ws}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"}};Uh.exports={AbortController:ci,AbortSignal:ws}});var js=y(Ts=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});Ts.AbortController=void 0;var Bw=zh(),Wc;globalThis.AbortController?Wc=globalThis.AbortController:Wc=Bw.AbortController;var Uc=class extends Wc{};Ts.AbortController=Uc});var ui=y((nP,$h)=>{"use strict";var Ww="2.0.0",Uw=Number.MAX_SAFE_INTEGER||9007199254740991,zw=16,$w=250,Hw=["major","premajor","minor","preminor","patch","prepatch","prerelease"];$h.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:zw,MAX_SAFE_BUILD_LENGTH:$w,MAX_SAFE_INTEGER:Uw,RELEASE_TYPES:Hw,SEMVER_SPEC_VERSION:Ww,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var di=y((iP,Hh)=>{"use strict";var Qw=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};Hh.exports=Qw});var Dn=y((qt,Qh)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:zc,MAX_SAFE_BUILD_LENGTH:Zw,MAX_LENGTH:Xw}=ui(),e1=di();qt=Qh.exports={};var t1=qt.re=[],r1=qt.safeRe=[],L=qt.src=[],n1=qt.safeSrc=[],q=qt.t={},i1=0,$c="[a-zA-Z0-9-]",s1=[["\\s",1],["\\d",Xw],[$c,Zw]],a1=r=>{for(let[e,t]of s1)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},ee=(r,e,t)=>{let n=a1(e),i=i1++;e1(r,i,e),q[r]=i,L[i]=e,n1[i]=n,t1[i]=new RegExp(e,t?"g":void 0),r1[i]=new RegExp(n,t?"g":void 0)};ee("NUMERICIDENTIFIER","0|[1-9]\\d*");ee("NUMERICIDENTIFIERLOOSE","\\d+");ee("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${$c}*`);ee("MAINVERSION",`(${L[q.NUMERICIDENTIFIER]})\\.(${L[q.NUMERICIDENTIFIER]})\\.(${L[q.NUMERICIDENTIFIER]})`);ee("MAINVERSIONLOOSE",`(${L[q.NUMERICIDENTIFIERLOOSE]})\\.(${L[q.NUMERICIDENTIFIERLOOSE]})\\.(${L[q.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASEIDENTIFIER",`(?:${L[q.NONNUMERICIDENTIFIER]}|${L[q.NUMERICIDENTIFIER]})`);ee("PRERELEASEIDENTIFIERLOOSE",`(?:${L[q.NONNUMERICIDENTIFIER]}|${L[q.NUMERICIDENTIFIERLOOSE]})`);ee("PRERELEASE",`(?:-(${L[q.PRERELEASEIDENTIFIER]}(?:\\.${L[q.PRERELEASEIDENTIFIER]})*))`);ee("PRERELEASELOOSE",`(?:-?(${L[q.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${L[q.PRERELEASEIDENTIFIERLOOSE]})*))`);ee("BUILDIDENTIFIER",`${$c}+`);ee("BUILD",`(?:\\+(${L[q.BUILDIDENTIFIER]}(?:\\.${L[q.BUILDIDENTIFIER]})*))`);ee("FULLPLAIN",`v?${L[q.MAINVERSION]}${L[q.PRERELEASE]}?${L[q.BUILD]}?`);ee("FULL",`^${L[q.FULLPLAIN]}$`);ee("LOOSEPLAIN",`[v=\\s]*${L[q.MAINVERSIONLOOSE]}${L[q.PRERELEASELOOSE]}?${L[q.BUILD]}?`);ee("LOOSE",`^${L[q.LOOSEPLAIN]}$`);ee("GTLT","((?:<|>)?=?)");ee("XRANGEIDENTIFIERLOOSE",`${L[q.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);ee("XRANGEIDENTIFIER",`${L[q.NUMERICIDENTIFIER]}|x|X|\\*`);ee("XRANGEPLAIN",`[v=\\s]*(${L[q.XRANGEIDENTIFIER]})(?:\\.(${L[q.XRANGEIDENTIFIER]})(?:\\.(${L[q.XRANGEIDENTIFIER]})(?:${L[q.PRERELEASE]})?${L[q.BUILD]}?)?)?`);ee("XRANGEPLAINLOOSE",`[v=\\s]*(${L[q.XRANGEIDENTIFIERLOOSE]})(?:\\.(${L[q.XRANGEIDENTIFIERLOOSE]})(?:\\.(${L[q.XRANGEIDENTIFIERLOOSE]})(?:${L[q.PRERELEASELOOSE]})?${L[q.BUILD]}?)?)?`);ee("XRANGE",`^${L[q.GTLT]}\\s*${L[q.XRANGEPLAIN]}$`);ee("XRANGELOOSE",`^${L[q.GTLT]}\\s*${L[q.XRANGEPLAINLOOSE]}$`);ee("COERCEPLAIN",`(^|[^\\d])(\\d{1,${zc}})(?:\\.(\\d{1,${zc}}))?(?:\\.(\\d{1,${zc}}))?`);ee("COERCE",`${L[q.COERCEPLAIN]}(?:$|[^\\d])`);ee("COERCEFULL",L[q.COERCEPLAIN]+`(?:${L[q.PRERELEASE]})?(?:${L[q.BUILD]})?(?:$|[^\\d])`);ee("COERCERTL",L[q.COERCE],!0);ee("COERCERTLFULL",L[q.COERCEFULL],!0);ee("LONETILDE","(?:~>?)");ee("TILDETRIM",`(\\s*)${L[q.LONETILDE]}\\s+`,!0);qt.tildeTrimReplace="$1~";ee("TILDE",`^${L[q.LONETILDE]}${L[q.XRANGEPLAIN]}$`);ee("TILDELOOSE",`^${L[q.LONETILDE]}${L[q.XRANGEPLAINLOOSE]}$`);ee("LONECARET","(?:\\^)");ee("CARETTRIM",`(\\s*)${L[q.LONECARET]}\\s+`,!0);qt.caretTrimReplace="$1^";ee("CARET",`^${L[q.LONECARET]}${L[q.XRANGEPLAIN]}$`);ee("CARETLOOSE",`^${L[q.LONECARET]}${L[q.XRANGEPLAINLOOSE]}$`);ee("COMPARATORLOOSE",`^${L[q.GTLT]}\\s*(${L[q.LOOSEPLAIN]})$|^$`);ee("COMPARATOR",`^${L[q.GTLT]}\\s*(${L[q.FULLPLAIN]})$|^$`);ee("COMPARATORTRIM",`(\\s*)${L[q.GTLT]}\\s*(${L[q.LOOSEPLAIN]}|${L[q.XRANGEPLAIN]})`,!0);qt.comparatorTrimReplace="$1$2$3";ee("HYPHENRANGE",`^\\s*(${L[q.XRANGEPLAIN]})\\s+-\\s+(${L[q.XRANGEPLAIN]})\\s*$`);ee("HYPHENRANGELOOSE",`^\\s*(${L[q.XRANGEPLAINLOOSE]})\\s+-\\s+(${L[q.XRANGEPLAINLOOSE]})\\s*$`);ee("STAR","(<|>)?=?\\s*\\*");ee("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");ee("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var As=y((sP,Zh)=>{"use strict";var o1=Object.freeze({loose:!0}),l1=Object.freeze({}),c1=r=>r?typeof r!="object"?o1:r:l1;Zh.exports=c1});var Hc=y((aP,ty)=>{"use strict";var Xh=/^[0-9]+$/,ey=(r,e)=>{if(typeof r=="number"&&typeof e=="number")return r===e?0:r<e?-1:1;let t=Xh.test(r),n=Xh.test(e);return t&&n&&(r=+r,e=+e),r===e?0:t&&!n?-1:n&&!t?1:r<e?-1:1},u1=(r,e)=>ey(e,r);ty.exports={compareIdentifiers:ey,rcompareIdentifiers:u1}});var Be=y((oP,ny)=>{"use strict";var Ds=di(),{MAX_LENGTH:ry,MAX_SAFE_INTEGER:Rs}=ui(),{safeRe:Os,t:Cs}=Dn(),d1=As(),{compareIdentifiers:Qc}=Hc(),Zc=class r{constructor(e,t){if(t=d1(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>ry)throw new TypeError(`version is longer than ${ry} characters`);Ds("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?Os[Cs.LOOSE]:Os[Cs.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>Rs||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Rs||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Rs||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<Rs)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(Ds("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(Ds("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 Qc(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(Ds("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 Qc(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?Os[Cs.PRERELEASELOOSE]:Os[Cs.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]),Qc(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}};ny.exports=Zc});var Gr=y((lP,sy)=>{"use strict";var iy=Be(),p1=(r,e,t=!1)=>{if(r instanceof iy)return r;try{return new iy(r,e)}catch(n){if(!t)return null;throw n}};sy.exports=p1});var oy=y((cP,ay)=>{"use strict";var f1=Gr(),h1=(r,e)=>{let t=f1(r,e);return t?t.version:null};ay.exports=h1});var cy=y((uP,ly)=>{"use strict";var y1=Gr(),m1=(r,e)=>{let t=y1(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};ly.exports=m1});var py=y((dP,dy)=>{"use strict";var uy=Be(),b1=(r,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new uy(r instanceof uy?r.version:r,t).inc(e,n,i).version}catch{return null}};dy.exports=b1});var yy=y((pP,hy)=>{"use strict";var fy=Gr(),g1=(r,e)=>{let t=fy(r,null,!0),n=fy(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"};hy.exports=g1});var by=y((fP,my)=>{"use strict";var v1=Be(),K1=(r,e)=>new v1(r,e).major;my.exports=K1});var vy=y((hP,gy)=>{"use strict";var S1=Be(),E1=(r,e)=>new S1(r,e).minor;gy.exports=E1});var Sy=y((yP,Ky)=>{"use strict";var k1=Be(),I1=(r,e)=>new k1(r,e).patch;Ky.exports=I1});var ky=y((mP,Ey)=>{"use strict";var x1=Gr(),w1=(r,e)=>{let t=x1(r,e);return t&&t.prerelease.length?t.prerelease:null};Ey.exports=w1});var St=y((bP,xy)=>{"use strict";var Iy=Be(),T1=(r,e,t)=>new Iy(r,t).compare(new Iy(e,t));xy.exports=T1});var Ty=y((gP,wy)=>{"use strict";var j1=St(),A1=(r,e,t)=>j1(e,r,t);wy.exports=A1});var Ay=y((vP,jy)=>{"use strict";var D1=St(),R1=(r,e)=>D1(r,e,!0);jy.exports=R1});var _s=y((KP,Ry)=>{"use strict";var Dy=Be(),O1=(r,e,t)=>{let n=new Dy(r,t),i=new Dy(e,t);return n.compare(i)||n.compareBuild(i)};Ry.exports=O1});var Cy=y((SP,Oy)=>{"use strict";var C1=_s(),_1=(r,e)=>r.sort((t,n)=>C1(t,n,e));Oy.exports=_1});var My=y((EP,_y)=>{"use strict";var M1=_s(),P1=(r,e)=>r.sort((t,n)=>M1(n,t,e));_y.exports=P1});var pi=y((kP,Py)=>{"use strict";var N1=St(),L1=(r,e,t)=>N1(r,e,t)>0;Py.exports=L1});var Ms=y((IP,Ny)=>{"use strict";var q1=St(),J1=(r,e,t)=>q1(r,e,t)<0;Ny.exports=J1});var Xc=y((xP,Ly)=>{"use strict";var F1=St(),V1=(r,e,t)=>F1(r,e,t)===0;Ly.exports=V1});var eu=y((wP,qy)=>{"use strict";var G1=St(),Y1=(r,e,t)=>G1(r,e,t)!==0;qy.exports=Y1});var Ps=y((TP,Jy)=>{"use strict";var B1=St(),W1=(r,e,t)=>B1(r,e,t)>=0;Jy.exports=W1});var Ns=y((jP,Fy)=>{"use strict";var U1=St(),z1=(r,e,t)=>U1(r,e,t)<=0;Fy.exports=z1});var tu=y((AP,Vy)=>{"use strict";var $1=Xc(),H1=eu(),Q1=pi(),Z1=Ps(),X1=Ms(),eT=Ns(),tT=(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 $1(r,t,n);case"!=":return H1(r,t,n);case">":return Q1(r,t,n);case">=":return Z1(r,t,n);case"<":return X1(r,t,n);case"<=":return eT(r,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Vy.exports=tT});var Yy=y((DP,Gy)=>{"use strict";var rT=Be(),nT=Gr(),{safeRe:Ls,t:qs}=Dn(),iT=(r,e)=>{if(r instanceof rT)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?Ls[qs.COERCEFULL]:Ls[qs.COERCE]);else{let l=e.includePrerelease?Ls[qs.COERCERTLFULL]:Ls[qs.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 nT(`${n}.${i}.${s}${a}${o}`,e)};Gy.exports=iT});var Wy=y((RP,By)=>{"use strict";var ru=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}};By.exports=ru});var Et=y((OP,Hy)=>{"use strict";var sT=/\s+/g,nu=class r{constructor(e,t){if(t=oT(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof iu)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(sT," "),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=>!zy(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&&hT(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&&pT)|(this.options.loose&&fT))+":"+e,i=Uy.get(n);if(i)return i;let s=this.options.loose,a=s?Ze[We.HYPHENRANGELOOSE]:Ze[We.HYPHENRANGE];e=e.replace(a,IT(this.options.includePrerelease)),ke("hyphen replace",e),e=e.replace(Ze[We.COMPARATORTRIM],cT),ke("comparator trim",e),e=e.replace(Ze[We.TILDETRIM],uT),ke("tilde trim",e),e=e.replace(Ze[We.CARETTRIM],dT),ke("caret trim",e);let o=e.split(" ").map(d=>yT(d,this.options)).join(" ").split(/\s+/).map(d=>kT(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 iu(d,this.options));for(let d of c){if(zy(d))return[d];l.set(d.value,d)}l.size>1&&l.has("")&&l.delete("");let u=[...l.values()];return Uy.set(n,u),u}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(n=>$y(n,t)&&e.set.some(i=>$y(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 lT(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(xT(this.set[t],e,this.options))return!0;return!1}};Hy.exports=nu;var aT=Wy(),Uy=new aT,oT=As(),iu=fi(),ke=di(),lT=Be(),{safeRe:Ze,t:We,comparatorTrimReplace:cT,tildeTrimReplace:uT,caretTrimReplace:dT}=Dn(),{FLAG_INCLUDE_PRERELEASE:pT,FLAG_LOOSE:fT}=ui(),zy=r=>r.value==="<0.0.0-0",hT=r=>r.value==="",$y=(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},yT=(r,e)=>(r=r.replace(Ze[We.BUILD],""),ke("comp",r,e),r=gT(r,e),ke("caret",r),r=mT(r,e),ke("tildes",r),r=KT(r,e),ke("xrange",r),r=ET(r,e),ke("stars",r),r),Xe=r=>!r||r.toLowerCase()==="x"||r==="*",mT=(r,e)=>r.trim().split(/\s+/).map(t=>bT(t,e)).join(" "),bT=(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})},gT=(r,e)=>r.trim().split(/\s+/).map(t=>vT(t,e)).join(" "),vT=(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})},KT=(r,e)=>(ke("replaceXRanges",r,e),r.split(/\s+/).map(t=>ST(t,e)).join(" ")),ST=(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})},ET=(r,e)=>(ke("replaceStars",r,e),r.trim().replace(Ze[We.STAR],"")),kT=(r,e)=>(ke("replaceGTE0",r,e),r.trim().replace(Ze[e.includePrerelease?We.GTE0PRE:We.GTE0],"")),IT=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()),xT=(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!==iu.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 fi=y((CP,rm)=>{"use strict";var hi=Symbol("SemVer ANY"),ou=class r{static get ANY(){return hi}constructor(e,t){if(t=Qy(t),e instanceof r){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),au("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===hi?this.value="":this.value=this.operator+this.semver.version,au("comp",this)}parse(e){let t=this.options.loose?Zy[Xy.COMPARATORLOOSE]:Zy[Xy.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 em(n[2],this.options.loose):this.semver=hi}toString(){return this.value}test(e){if(au("Comparator.test",e,this.options.loose),this.semver===hi||e===hi)return!0;if(typeof e=="string")try{e=new em(e,this.options)}catch{return!1}return su(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 tm(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new tm(this.value,t).test(e.semver):(t=Qy(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||su(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||su(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};rm.exports=ou;var Qy=As(),{safeRe:Zy,t:Xy}=Dn(),su=tu(),au=di(),em=Be(),tm=Et()});var yi=y((_P,nm)=>{"use strict";var wT=Et(),TT=(r,e,t)=>{try{e=new wT(e,t)}catch{return!1}return e.test(r)};nm.exports=TT});var sm=y((MP,im)=>{"use strict";var jT=Et(),AT=(r,e)=>new jT(r,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));im.exports=AT});var om=y((PP,am)=>{"use strict";var DT=Be(),RT=Et(),OT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new RT(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===-1)&&(n=a,i=new DT(n,t))}),n};am.exports=OT});var cm=y((NP,lm)=>{"use strict";var CT=Be(),_T=Et(),MT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new _T(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===1)&&(n=a,i=new CT(n,t))}),n};lm.exports=MT});var pm=y((LP,dm)=>{"use strict";var lu=Be(),PT=Et(),um=pi(),NT=(r,e)=>{r=new PT(r,e);let t=new lu("0.0.0");if(r.test(t)||(t=new lu("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 lu(a.semver.version);switch(a.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!s||um(o,s))&&(s=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),s&&(!t||um(t,s))&&(t=s)}return t&&r.test(t)?t:null};dm.exports=NT});var hm=y((qP,fm)=>{"use strict";var LT=Et(),qT=(r,e)=>{try{return new LT(r,e).range||"*"}catch{return null}};fm.exports=qT});var Js=y((JP,gm)=>{"use strict";var JT=Be(),bm=fi(),{ANY:FT}=bm,VT=Et(),GT=yi(),ym=pi(),mm=Ms(),YT=Ns(),BT=Ps(),WT=(r,e,t,n)=>{r=new JT(r,n),e=new VT(e,n);let i,s,a,o,l;switch(t){case">":i=ym,s=YT,a=mm,o=">",l=">=";break;case"<":i=mm,s=BT,a=ym,o="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(GT(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===FT&&(p=new bm(">=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};gm.exports=WT});var Km=y((FP,vm)=>{"use strict";var UT=Js(),zT=(r,e,t)=>UT(r,e,">",t);vm.exports=zT});var Em=y((VP,Sm)=>{"use strict";var $T=Js(),HT=(r,e,t)=>$T(r,e,"<",t);Sm.exports=HT});var xm=y((GP,Im)=>{"use strict";var km=Et(),QT=(r,e,t)=>(r=new km(r,t),e=new km(e,t),r.intersects(e,t));Im.exports=QT});var Tm=y((YP,wm)=>{"use strict";var ZT=yi(),XT=St();wm.exports=(r,e,t)=>{let n=[],i=null,s=null,a=r.sort((u,d)=>XT(u,d,t));for(let u of a)ZT(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 Cm=y((BP,Om)=>{"use strict";var jm=Et(),uu=fi(),{ANY:cu}=uu,mi=yi(),du=St(),ej=(r,e,t={})=>{if(r===e)return!0;r=new jm(r,t),e=new jm(e,t);let n=!1;e:for(let i of r.set){for(let s of e.set){let a=rj(i,s,t);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},tj=[new uu(">=0.0.0-0")],Am=[new uu(">=0.0.0")],rj=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===cu){if(e.length===1&&e[0].semver===cu)return!0;t.includePrerelease?r=tj:r=Am}if(e.length===1&&e[0].semver===cu){if(t.includePrerelease)return!0;e=Am}let n=new Set,i,s;for(let p of r)p.operator===">"||p.operator===">="?i=Dm(i,p,t):p.operator==="<"||p.operator==="<="?s=Rm(s,p,t):n.add(p.semver);if(n.size>1)return null;let a;if(i&&s){if(a=du(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&&!mi(p,String(i),t)||s&&!mi(p,String(s),t))return null;for(let m of e)if(!mi(p,String(m),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=Dm(i,p,t),o===p&&o!==i)return!1}else if(i.operator===">="&&!mi(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=Rm(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!mi(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)},Dm=(r,e,t)=>{if(!r)return e;let n=du(r.semver,e.semver,t);return n>0?r:n<0||e.operator===">"&&r.operator===">="?e:r},Rm=(r,e,t)=>{if(!r)return e;let n=du(r.semver,e.semver,t);return n<0?r:n>0||e.operator==="<"&&r.operator==="<="?e:r};Om.exports=ej});var Nm=y((WP,Pm)=>{"use strict";var pu=Dn(),_m=ui(),nj=Be(),Mm=Hc(),ij=Gr(),sj=oy(),aj=cy(),oj=py(),lj=yy(),cj=by(),uj=vy(),dj=Sy(),pj=ky(),fj=St(),hj=Ty(),yj=Ay(),mj=_s(),bj=Cy(),gj=My(),vj=pi(),Kj=Ms(),Sj=Xc(),Ej=eu(),kj=Ps(),Ij=Ns(),xj=tu(),wj=Yy(),Tj=fi(),jj=Et(),Aj=yi(),Dj=sm(),Rj=om(),Oj=cm(),Cj=pm(),_j=hm(),Mj=Js(),Pj=Km(),Nj=Em(),Lj=xm(),qj=Tm(),Jj=Cm();Pm.exports={parse:ij,valid:sj,clean:aj,inc:oj,diff:lj,major:cj,minor:uj,patch:dj,prerelease:pj,compare:fj,rcompare:hj,compareLoose:yj,compareBuild:mj,sort:bj,rsort:gj,gt:vj,lt:Kj,eq:Sj,neq:Ej,gte:kj,lte:Ij,cmp:xj,coerce:wj,Comparator:Tj,Range:jj,satisfies:Aj,toComparators:Dj,maxSatisfying:Rj,minSatisfying:Oj,minVersion:Cj,validRange:_j,outside:Mj,gtr:Pj,ltr:Nj,intersects:Lj,simplifyRange:qj,subset:Jj,SemVer:nj,re:pu.re,src:pu.src,tokens:pu.t,SEMVER_SPEC_VERSION:_m.SEMVER_SPEC_VERSION,RELEASE_TYPES:_m.RELEASE_TYPES,compareIdentifiers:Mm.compareIdentifiers,rcompareIdentifiers:Mm.rcompareIdentifiers}});var ct=y(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.QUEUE_EVENT_SUFFIX=H.toString=H.errorToJSON=H.parseObjectValues=H.isRedisVersionLowerThan=H.childSend=H.asyncSend=H.DELAY_TIME_1=H.DELAY_TIME_5=H.clientCommandMessageReg=H.optsEncodeMap=H.optsDecodeMap=H.errorObject=void 0;H.tryCatch=Gj;H.lengthInUtf8Bytes=Yj;H.isEmpty=Bj;H.array2obj=Wj;H.objectToFlatArray=Uj;H.delay=zj;H.increaseMaxListeners=Lm;H.invertObject=qm;H.isRedisInstance=Jm;H.isRedisCluster=$j;H.decreaseMaxListeners=Hj;H.removeAllQueueData=Qj;H.getParentKey=Zj;H.isNotConnectionError=Fm;H.removeUndefinedFields=oA;H.trace=lA;H.randomUUID=cA;var Fj=fs(),fu=Y("crypto"),Vj=Oe(),hu=Nm(),yu=st();H.errorObject={value:null};function Gj(r,e,t){try{return r.apply(e,t)}catch(n){return H.errorObject.value=n,H.errorObject}}function Yj(r){return Buffer.byteLength(r,"utf8")}function Bj(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e))return!1;return!0}function Wj(r){let e={};for(let t=0;t<r.length;t+=2)e[r[t]]=r[t+1];return e}function Uj(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 zj(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 Lm(r,e){let t=r.getMaxListeners();r.setMaxListeners(t+e)}function qm(r){return Object.entries(r).reduce((e,[t,n])=>(e[n]=t,e),{})}H.optsDecodeMap={de:"deduplication",fpof:"failParentOnFailure",cpof:"continueParentOnFailure",idof:"ignoreDependencyOnFailure",kl:"keepLogs",rdof:"removeDependencyOnFailure"};H.optsEncodeMap=Object.assign(Object.assign({},qm(H.optsDecodeMap)),{debounce:"de"});function Jm(r){return r?["connect","disconnect","duplicate"].every(t=>typeof r[t]=="function"):!1}function $j(r){return Jm(r)&&r.isCluster}function Hj(r,e){Lm(r,-e)}async function Qj(r,e,t=process.env.BULLMQ_TEST_PREFIX||"bull"){if(r instanceof Fj.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(Fm(s))throw s}}function Zj(r){if(r)return`${r.queue}:${r.id}`}H.clientCommandMessageReg=/ERR unknown command ['`]\s*client\s*['`]/;H.DELAY_TIME_5=5e3;H.DELAY_TIME_1=100;function Fm(r){let{code:e,message:t}=r;return t!==Vj.CONNECTION_CLOSED_ERROR_MSG&&!t.includes("ECONNREFUSED")&&e!=="ECONNREFUSED"}var Xj=(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()});H.asyncSend=Xj;var eA=(r,e)=>(0,H.asyncSend)(r,e);H.childSend=eA;var tA=(r,e,t,n="redis")=>{if(t===n){let i=hu.valid(hu.coerce(r));return hu.lt(i,e)}return!1};H.isRedisVersionLowerThan=tA;var rA=r=>{let e={};for(let t of Object.entries(r))e[t[0]]=JSON.parse(t[1]);return e};H.parseObjectValues=rA;var nA=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}},iA=r=>{let e={};return Object.getOwnPropertyNames(r).forEach(function(t){e[t]=r[t]}),JSON.parse(JSON.stringify(e,nA(r)))};H.errorToJSON=iA;var sA=1/0,aA=r=>{if(r==null)return"";if(typeof r=="string")return r;if(Array.isArray(r))return`${r.map(t=>t==null?t:(0,H.toString)(t))}`;if(typeof r=="symbol"||Object.prototype.toString.call(r)=="[object Symbol]")return r.toString();let e=`${r}`;return e==="0"&&1/r===-sA?"-0":e};H.toString=aA;H.QUEUE_EVENT_SUFFIX=":qe";function oA(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}async function lA(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({[yu.TelemetryAttributes.QueueName]:t,[yu.TelemetryAttributes.QueueOperation]:n});let p,m;return e===yu.SpanKind.CONSUMER&&u?p=f.setSpanOnContext(u):p=f.setSpanOnContext(c),s.length==2&&(m=l.getMetadata(p)),await l.with(p,()=>s(f,m))}catch(p){throw f.recordException(p),p}finally{f.end()}}else return s()}function cA(){if(typeof fu.randomUUID=="function")return(0,fu.randomUUID)();let r=(0,fu.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 Vm=y(Fs=>{"use strict";Object.defineProperty(Fs,"__esModule",{value:!0});Fs.ChildProcessor=void 0;var uA=js(),et=st(),mu=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 bi=process.env.NODE_ENV==="test"?500:5e3,bu=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,mu.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,mu.errorToJSON)(new Error("cannot start a not idling child process"))});this.status=Er.Started,this.abortController=new uA.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,mu.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}}),gi(a,this.receiver,bi,"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}),gi(i,this.receiver,bi,"getChildrenValues")},getIgnoredChildrenFailures:async()=>{let i=Math.random().toString(36).substring(2,15);return await t({requestId:i,cmd:et.ParentCommand.GetIgnoredChildrenFailures}),gi(i,this.receiver,bi,"getIgnoredChildrenFailures")},getDependenciesCount:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependenciesCount,value:i}),gi(s,this.receiver,bi,"getDependenciesCount")},getDependencies:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependencies,value:i}),gi(s,this.receiver,bi,"getDependencies")}});return n}};Fs.ChildProcessor=bu;var gi=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 Gm=y(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.DelayedError=Yr.DELAYED_ERROR=void 0;Yr.DELAYED_ERROR="bullmq:movedToDelayed";var gu=class extends Error{constructor(e=Yr.DELAYED_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Yr.DelayedError=gu});var Ym=y(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.RateLimitError=Br.RATE_LIMIT_ERROR=void 0;Br.RATE_LIMIT_ERROR="bullmq:rateLimitExceeded";var vu=class extends Error{constructor(e=Br.RATE_LIMIT_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Br.RateLimitError=vu});var Su=y(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.UnrecoverableError=Wr.UNRECOVERABLE_ERROR=void 0;Wr.UNRECOVERABLE_ERROR="bullmq:unrecoverable";var Ku=class extends Error{constructor(e=Wr.UNRECOVERABLE_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Wr.UnrecoverableError=Ku});var Bm=y(Ur=>{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.WaitingChildrenError=Ur.WAITING_CHILDREN_ERROR=void 0;Ur.WAITING_CHILDREN_ERROR="bullmq:movedToWaitingChildren";var Eu=class extends Error{constructor(e=Ur.WAITING_CHILDREN_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Ur.WaitingChildrenError=Eu});var Wm=y(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.WaitingError=zr.WAITING_ERROR=void 0;zr.WAITING_ERROR="bullmq:movedToWait";var ku=class extends Error{constructor(e=zr.WAITING_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};zr.WaitingError=ku});var Vs=y($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});var vi=(Qe(),nt(He));vi.__exportStar(Gm(),$r);vi.__exportStar(Ym(),$r);vi.__exportStar(Su(),$r);vi.__exportStar(Bm(),$r);vi.__exportStar(Wm(),$r)});var $m=y((tN,zm)=>{"use strict";var Um=()=>process.platform==="linux",Gs=null,dA=()=>{if(!Gs)if(Um()&&process.report){let r=process.report.excludeNetwork;process.report.excludeNetwork=!0,Gs=process.report.getReport(),process.report.excludeNetwork=r}else Gs={};return Gs};zm.exports={isLinux:Um,getReport:dA}});var Qm=y((rN,Hm)=>{"use strict";var Rn=Y("fs"),pA="/usr/bin/ldd",fA="/proc/self/exe",Ys=2048,hA=r=>{let e=Rn.openSync(r,"r"),t=Buffer.alloc(Ys),n=Rn.readSync(e,t,0,Ys,0);return Rn.close(e,()=>{}),t.subarray(0,n)},yA=r=>new Promise((e,t)=>{Rn.open(r,"r",(n,i)=>{if(n)t(n);else{let s=Buffer.alloc(Ys);Rn.read(i,s,0,Ys,0,(a,o)=>{e(s.subarray(0,o)),Rn.close(i,()=>{})})}})});Hm.exports={LDD_PATH:pA,SELF_PATH:fA,readFileSync:hA,readFile:yA}});var Xm=y((nN,Zm)=>{"use strict";var mA=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};Zm.exports={interpreterPath:mA}});var gb=y((iN,bb)=>{"use strict";var tb=Y("child_process"),{isLinux:On,getReport:rb}=$m(),{LDD_PATH:Bs,SELF_PATH:nb,readFile:Iu,readFileSync:xu}=Qm(),{interpreterPath:ib}=Xm(),Jt,Ft,Vt,sb="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",kr="",ab=()=>kr||new Promise(r=>{tb.exec(sb,(e,t)=>{kr=e?" ":t,r(kr)})}),ob=()=>{if(!kr)try{kr=tb.execSync(sb,{encoding:"utf8"})}catch{kr=" "}return kr},Zt="glibc",lb=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Hr="musl",bA=r=>r.includes("libc.musl-")||r.includes("ld-musl-"),cb=()=>{let r=rb();return r.header&&r.header.glibcVersionRuntime?Zt:Array.isArray(r.sharedObjects)&&r.sharedObjects.some(bA)?Hr:null},ub=r=>{let[e,t]=r.split(/[\r\n]+/);return e&&e.includes(Zt)?Zt:t&&t.includes(Hr)?Hr:null},db=r=>{if(r){if(r.includes("/ld-musl-"))return Hr;if(r.includes("/ld-linux-"))return Zt}return null},pb=r=>(r=r.toString(),r.includes("musl")?Hr:r.includes("GNU C Library")?Zt:null),gA=async()=>{if(Ft!==void 0)return Ft;Ft=null;try{let r=await Iu(Bs);Ft=pb(r)}catch{}return Ft},vA=()=>{if(Ft!==void 0)return Ft;Ft=null;try{let r=xu(Bs);Ft=pb(r)}catch{}return Ft},KA=async()=>{if(Jt!==void 0)return Jt;Jt=null;try{let r=await Iu(nb),e=ib(r);Jt=db(e)}catch{}return Jt},SA=()=>{if(Jt!==void 0)return Jt;Jt=null;try{let r=xu(nb),e=ib(r);Jt=db(e)}catch{}return Jt},fb=async()=>{let r=null;if(On()&&(r=await KA(),!r&&(r=await gA(),r||(r=cb()),!r))){let e=await ab();r=ub(e)}return r},hb=()=>{let r=null;if(On()&&(r=SA(),!r&&(r=vA(),r||(r=cb()),!r))){let e=ob();r=ub(e)}return r},EA=async()=>On()&&await fb()!==Zt,kA=()=>On()&&hb()!==Zt,IA=async()=>{if(Vt!==void 0)return Vt;Vt=null;try{let e=(await Iu(Bs)).match(lb);e&&(Vt=e[1])}catch{}return Vt},xA=()=>{if(Vt!==void 0)return Vt;Vt=null;try{let e=xu(Bs).match(lb);e&&(Vt=e[1])}catch{}return Vt},yb=()=>{let r=rb();return r.header&&r.header.glibcVersionRuntime?r.header.glibcVersionRuntime:null},eb=r=>r.trim().split(/\s+/)[1],mb=r=>{let[e,t,n]=r.split(/[\r\n]+/);return e&&e.includes(Zt)?eb(e):t&&n&&t.includes(Hr)?eb(n):null},wA=async()=>{let r=null;if(On()&&(r=await IA(),r||(r=yb()),!r)){let e=await ab();r=mb(e)}return r},TA=()=>{let r=null;if(On()&&(r=xA(),r||(r=yb()),!r)){let e=ob();r=mb(e)}return r};bb.exports={GLIBC:Zt,MUSL:Hr,family:fb,familySync:hb,isNonGlibcLinux:EA,isNonGlibcLinuxSync:kA,version:wA,versionSync:TA}});var Ob=y((sN,Rb)=>{var jA=Y("fs"),At=Y("path"),AA=Y("url"),Sb=Y("os"),Eb=typeof __webpack_require__=="function"?__non_webpack_require__:Y,DA=process.config&&process.config.variables||{},RA=!!process.env.PREBUILDS_ONLY,Du=process.versions,Tu=Du.modules;(Du.deno||process.isBun)&&(Tu="unsupported");var wu=_A()?"electron":CA()?"node-webkit":"node",Ws=process.env.npm_config_arch||Sb.arch(),Us=process.env.npm_config_platform||Sb.platform(),kb=process.env.LIBC||(MA(Us)?"musl":"glibc"),ju=process.env.ARM_VERSION||(Ws==="arm64"?"8":DA.arm_version)||"",Ib=(Du.uv||"").split(".")[0];Rb.exports=Gt;function Gt(r){return Eb(Gt.resolve(r))}Gt.resolve=Gt.path=function(r){r=At.resolve(r||".");var e="",t;try{e=Eb(At.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(!RA){var i=vb(At.join(r,"build/Release"),Kb);if(i)return i;var s=vb(At.join(r,"build/Debug"),Kb);if(s)return s}var a=p(r);if(a)return a;var o=p(At.dirname(process.execPath));if(o)return o;var l=(e[0]=="@"?"":"@"+e+"/")+e+"-"+Us+"-"+Ws,c;try{var u=At.dirname(Y("module").createRequire(AA.pathToFileURL(At.join(r,"package.json"))).resolve(l));return m(u)}catch(g){c=g}var d=["platform="+Us,"arch="+Ws,"runtime="+wu,"abi="+Tu,"uv="+Ib,ju?"armv="+ju:"","libc="+kb,"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,Jr.toArg)(t))}}transformReply(e){this.replyEncoding&&(e=(0,Jr.convertBufferToString)(e,this.replyEncoding));let t=r._transformer.reply[this.name];return t&&(e=t(e)),e}setTimeout(e){this._commandTimeoutTimer||(this._commandTimeoutTimer=setTimeout(()=>{this.isResolved||this.reject(new Error("Command timed out"))},e))}setBlockingTimeout(e){if(e<=0)return;this._blockingTimeoutTimer&&(clearTimeout(this._blockingTimeoutTimer),this._blockingTimeoutTimer=void 0);let t=Date.now();this._blockingDeadline===void 0&&(this._blockingDeadline=t+e);let n=this._blockingDeadline-t;if(n<=0){this.resolve(null);return}this._blockingTimeoutTimer=setTimeout(()=>{if(this.isResolved){this._blockingTimeoutTimer=void 0;return}this._blockingTimeoutTimer=void 0,this.resolve(null)},n)}extractBlockingTimeout(){let e=this.args;if(!e||e.length===0)return;let t=this.name.toLowerCase();if(r.checkFlag("LAST_ARG_TIMEOUT_COMMANDS",t))return(0,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,Jr.optimizeErrorStack)(i,this.errorStack.stack,__dirname)):n(i)}});this.promise=(0,RI.default)(e,this.callback)}_iterateKeys(e=t=>t){if(typeof this.keys>"u"&&(this.keys=[],(0,Qf.exists)(this.name,{caseInsensitive:!0}))){let t=(0,Qf.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=Nt;Nt.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"]};Nt._transformer={argument:{},reply:{}};var Zf=function(r){if(r.length===1){if(r[0]instanceof Map)return(0,Jr.convertMapToArray)(r[0]);if(typeof r[0]=="object"&&r[0]!==null)return(0,Jr.convertObjectToArray)(r[0])}return r},Xf=function(r){if(r.length===2){if(r[1]instanceof Map)return[r[0]].concat((0,Jr.convertMapToArray)(r[1]));if(typeof r[1]=="object"&&r[1]!==null)return[r[0]].concat((0,Jr.convertObjectToArray)(r[1]))}return r};Nt.setArgumentTransformer("mset",Zf);Nt.setArgumentTransformer("msetnx",Zf);Nt.setArgumentTransformer("hset",Xf);Nt.setArgumentTransformer("hmset",Xf);Nt.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 ep=y(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});var OI=Lr(),Xi=class extends OI.RedisError{constructor(e,t){super(e),this.lastNodeError=t,Error.captureStackTrace(this,this.constructor)}get name(){return this.constructor.name}};Rl.default=Xi;Xi.defaultMessage="Failed to refresh slots cache."});var es=y(Cl=>{"use strict";Object.defineProperty(Cl,"__esModule",{value:!0});var CI=Y("stream"),Ol=class extends CI.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 op=y(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.executeWithAutoPipelining=Ae.getFirstValueInFlattenedArray=Ae.shouldUseAutoPipelining=Ae.notAllowedAutoPipelineCommands=Ae.kCallbacks=Ae.kExec=void 0;var np=Ui(),_I=ei(),tp=fr(),rp=Nr();Ae.kExec=Symbol("exec");Ae.kCallbacks=Symbol("callbacks");Ae.notAllowedAutoPipelineCommands=["auth","info","script","quit","cluster","pipeline","multi","subscribe","psubscribe","unsubscribe","unpsubscribe","select","client"];function ip(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)&&ip(r,e)})}function MI(r,e,t){return e&&r.options.enableAutoPipelining&&!r.isPipeline&&!Ae.notAllowedAutoPipelineCommands.includes(t)&&!r.options.autoPipeliningIgnoredCommands.includes(t)}Ae.shouldUseAutoPipelining=MI;function sp(r){for(let e=0;e<r.length;e++){let t=r[e];if(typeof t=="string")return t;if(Array.isArray(t)||(0,np.isArguments)(t)){if(t.length===0)continue;return t[0]}let n=[t].flat();if(n.length>0)return n[0]}}Ae.getFirstValueInFlattenedArray=sp;function ap(r,e,t,n,i){if(r.isCluster&&!r.slots.length)return r.status==="wait"&&r.connect().catch(np.noop),(0,tp.default)(new Promise(function(c,u){r.delayUntilReady(d=>{if(d){u(d);return}ap(r,e,t,n,null).then(c,u)})}),i);let s=r.options.keyPrefix||"",a=r.isCluster?r.slots[_I(`${s}${sp(n)}`)].join(","):"main";if(r.isCluster&&r.options.scaleReads!=="master"){let c=(0,rp.exists)(t)&&(0,rp.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(ip,r,a));let l=new Promise(function(c,u){o[Ae.kCallbacks].push(function(d,p){if(d){u(d);return}c(p)}),e==="call"&&n.unshift(t),o[e](...n)});return(0,tp.default)(l,i)}Ae.executeWithAutoPipelining=ap});var lp=y(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});var PI=Y("crypto"),NI=Ht(),LI=fr(),_l=class{constructor(e,t=null,n="",i=!1){this.lua=e,this.numberOfKeys=t,this.keyPrefix=n,this.readOnly=i,this.sha=(0,PI.createHash)("sha1").update(e).digest("hex");let s=this.sha,a=new WeakSet;this.Command=class extends NI.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,LI.default)(s.promise,i),e.sendCommand(s)}};Ml.default=_l});var rs=y(Nl=>{"use strict";Object.defineProperty(Nl,"__esModule",{value:!0});var qI=Nr(),ts=op(),JI=Ht(),FI=lp(),Qt=class{constructor(){this.options={},this.scriptsSet={},this.addedBuiltinSet=new Set}getBuiltinCommands(){return Pl.slice(0)}createBuiltinCommand(e){return{string:yr(null,e,"utf8"),buffer:yr(null,e,null)}}addBuiltinCommand(e){this.addedBuiltinSet.add(e),this[e]=yr(e,e,"utf8"),this[e+"Buffer"]=yr(e+"Buffer",e,null)}defineCommand(e,t){let n=new FI.default(t.lua,t.numberOfKeys,this.options.keyPrefix,t.readOnly);this.scriptsSet[e]=n,this[e]=cp(e,e,n,"utf8"),this[e+"Buffer"]=cp(e+"Buffer",e,n,null)}sendCommand(e,t,n){throw new Error('"sendCommand" is not implemented')}},Pl=qI.list.filter(r=>r!=="monitor");Pl.push("sentinel");Pl.forEach(function(r){Qt.prototype[r]=yr(r,r,"utf8"),Qt.prototype[r+"Buffer"]=yr(r+"Buffer",r,null)});Qt.prototype.call=yr("call","utf8");Qt.prototype.callBuffer=yr("callBuffer",null);Qt.prototype.send_command=Qt.prototype.call;function yr(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,ts.shouldUseAutoPipelining)(this,r,i)?(0,ts.executeWithAutoPipelining)(this,r,i,n,s):this.sendCommand(new JI.default(i,n,a,s))}}function cp(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,ts.shouldUseAutoPipelining)(this,r,e)?(0,ts.executeWithAutoPipelining)(this,r,e,i,s):t.execute(this,i,a,s)}}Nl.default=Qt});var Jl=y(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});var Ll=ei(),up=Nr(),dp=fr(),VI=Y("util"),GI=Ht(),YI=Oe(),BI=rs();function WI(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 hr=class extends BI.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,up.exists)(l.name,{caseInsensitive:!0})&&(0,up.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 f=0;f<l.length;++f){if(o[0]==="ASK"&&!c&&l[f].name!=="asking"&&(!l[f-1]||l[f-1].name!=="asking")){let h=new GI.default("asking");h.ignore=!0,this.sendCommand(h)}l[f].initPromise(),this.sendCommand(l[f]),c=l[f].inTransaction}let u=!0;typeof this.leftRedirections>"u"&&(this.leftRedirections={});let d=function(){a.exec()},p=this.redis;if(p.handleError(s,this.leftRedirections,{moved:function(f,h){a.preferKey=h,p.slots[o[1]]?p.slots[o[1]][0]!==h&&(p.slots[o[1]]=[h]):p.slots[o[1]]=[h],p._groupsBySlot[o[1]]=p._groupsIds[p.slots[o[1]].join(";")],p.refreshSlotsCache(),a.exec()},ask:function(f,h){a.preferKey=h,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=hr;var UI=hr.prototype.multi;hr.prototype.multi=function(){return this._transactions+=1,UI.apply(this,arguments)};var fp=hr.prototype.execBuffer;hr.prototype.execBuffer=(0,VI.deprecate)(function(){return this._transactions>0&&(this._transactions-=1),fp.apply(this,arguments)},"Pipeline#execBuffer: Use Pipeline#exec instead");hr.prototype.exec=function(r){if(this.isCluster&&!this.redis.slots.length)return this.redis.status==="wait"&&this.redis.connect().catch(YI.noop),r&&!this.nodeifiedPromise&&(this.nodeifiedPromise=!0,(0,dp.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,fp.apply(this,arguments);this.nodeifiedPromise||(this.nodeifiedPromise=!0,(0,dp.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=WI(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=y(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.addTransactionSupport=void 0;var Fl=Oe(),Vl=fr(),pp=Jl();function zI(r){r.pipeline=function(n){let i=new pp.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 pp.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(p=>{if(p){d(p);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 p=0;p<u.length-1;++p)u[p][0]&&d[0].previousErrors.push(u[p][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)}}ns.addTransactionSupport=zI});var Bl=y(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});function $I(r,e){Object.getOwnPropertyNames(e.prototype).forEach(t=>{Object.defineProperty(r.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})}Yl.default=$I});var hp=y(is=>{"use strict";Object.defineProperty(is,"__esModule",{value:!0});is.DEFAULT_CLUSTER_OPTIONS=void 0;var yp=Y("dns");is.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:yp.resolveSrv,dnsLookup:yp.lookup,enableAutoPipelining:!1,autoPipeliningIgnoredCommands:[],shardedSubscribers:!1}});var kn=y(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 mp=Oe(),HI=Y("net");function QI(r){return r.port=r.port||6379,r.host=r.host||"127.0.0.1",r.host+":"+r.port}Ye.getNodeKey=QI;function ZI(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=ZI;function XI(r){return r.map(e=>{let t={};if(typeof e=="object")Object.assign(t,e);else if(typeof e=="string")Object.assign(t,(0,mp.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,mp.resolveTLSProfile)(t)})}Ye.normalizeNodeOptions=XI;function ex(r){let e={};return r.forEach(t=>{e[t.host]=!0}),Object.keys(e).filter(t=>!(0,HI.isIP)(t))}Ye.getUniqueHostnamesFromOptions=ex;function tx(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=tx;function rx(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=rx;function nx(r,e){let t=`ioredis-cluster(${r})`;return e?`${t}:${e}`:t}Ye.getConnectionName=nx});var gp=y(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});var bp=kn(),Wl=Oe(),ix=Zt(),Lt=(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){Lt("subscriber has disconnected, but ClusterSubscriber is not started, so not reconnecting.");return}Lt("subscriber has disconnected, selecting a new one..."),this.selectSubscriber()},this.connectionPool.on("-node",(i,s)=>{!this.started||!this.subscriber||(0,bp.getNodeKey)(this.subscriber.options)===s&&(Lt("subscriber has left, selecting a new one..."),this.selectSubscriber())}),this.connectionPool.on("+node",()=>{!this.started||this.subscriber||(Lt("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(),Lt("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){Lt("selecting subscriber failed since there is no node discovered in the cluster yet"),this.subscriber=null;return}let{options:n}=t;Lt("selected a subscriber %s:%s",n.host,n.port);let i="subscriber";this.isSharded&&(i="ssubscriber"),this.subscriber=new ix.default({port:n.port,host:n.host,username:n.username,password:n.password,enableReadyCheck:!0,connectionName:(0,bp.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(Lt("%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(()=>{Lt("failed to ssubscribe to channel: %s",c)});else a+=1,this.subscriber[o](l).then(()=>{--a||(this.lastActiveSubscriber=this.subscriber)}).catch(()=>{Lt("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 vp=y(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});var sx=Y("events"),ss=Oe(),$l=kn(),ax=Zt(),ni=(0,ss.Debug)("cluster:connectionPool"),Hl=class extends sx.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,ss.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 ax.default((0,ss.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,ni("Change role of %s to %s",n,t?"slave":"master"),i[t?"readonly":"readwrite"]().catch(ss.noop),t?(delete this.nodes.master[n],this.nodes.slave[n]=i):(delete this.nodes.slave[n],this.nodes.master[n]=i))):(ni("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){ni("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]||(ni("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]&&(ni("Remove %s from the pool",e),delete t.all[e]),delete t.master[e],delete t.slave[e]}};Ql.default=Hl});var as=y((AM,Kp)=>{"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)};Kp.exports=we});var Sp=y(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});var ox=Oe(),lx=as(),cx=(0,ox.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 lx),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(cx("send %d commands in %s queue",n,e),this.queues[e]=null;t.length>0;)t.shift()()}};Xl.default=Zl});var xp=y(tc=>{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var Ep=kn(),Ip=Oe(),ux=Zt(),kp=(0,Ip.Debug)("cluster:subscriberGroup:shardedSubscriber"),be={IDLE:"idle",STARTING:"starting",CONNECTED:"connected",STOPPING:"stopping",ENDED:"ended"},dx={[be.IDLE]:[be.STARTING,be.STOPPING,be.ENDED],[be.STARTING]:[be.CONNECTED,be.STOPPING,be.ENDED],[be.CONNECTED]:[be.STOPPING,be.ENDED],[be.STOPPING]:[be.ENDED],[be.ENDED]:[]},ec=class{constructor(e,t,n){var i;this.emitter=e,this.status=be.IDLE,this.instance=null,this.connectPromise=null,this.messageListeners=new Map,this.onEnd=()=>{this.updateStatus(be.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 ux.default((0,Ip.defaults)({enableReadyCheck:!1,enableOfflineQueue:!0,connectionName:(0,Ep.getConnectionName)("ssubscriber",t.connectionName),retryStrategy:null,lazyConnect:!0},t,n)),this.lazyConnect=(i=n?.lazyConnect)!==null&&i!==void 0?i:!0,this.nodeKey=(0,Ep.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===be.STARTING||this.status===be.CONNECTED)){if(this.status===be.ENDED||!this.instance)throw new Error(`Sharded subscriber ${this.nodeKey} cannot be restarted once ended.`);this.updateStatus(be.STARTING),this.connectPromise=this.instance.connect();try{await this.connectPromise,this.updateStatus(be.CONNECTED)}catch(e){throw this.updateStatus(be.ENDED),e}finally{this.connectPromise=null}}}stop(){this.updateStatus(be.STOPPING),this.instance&&(this.instance.disconnect(),this.instance.removeAllListeners(),this.messageListeners.clear(),this.instance=null),this.updateStatus(be.ENDED),kp("stopped %s",this.nodeKey)}isStarted(){return[be.CONNECTED,be.STARTING].includes(this.status)}get subscriberStatus(){return this.status}isHealthy(){return(this.status===be.IDLE||this.status===be.CONNECTED||this.status===be.STARTING)&&this.instance!==null}getInstance(){return this.instance}getNodeKey(){return this.nodeKey}isLazyConnect(){return this.lazyConnect}updateStatus(e){if(this.status!==e){if(!dx[this.status].includes(e)){kp("Invalid status transition for %s: %s -> %s",this.nodeKey,this.status,e);return}this.status=e}}};tc.default=ec});var wp=y(rc=>{"use strict";Object.defineProperty(rc,"__esModule",{value:!0});var fx=Oe(),px=kn(),os=ei(),yx=xp(),vt=(0,fx.Debug)("cluster:subscriberGroup"),In=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);vt("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=os(e[0]);for(let i of e)if(os(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=os(e[0]);for(let i of e)if(os(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){vt("No topology change detected or failed subscribers. Skipping reset.");return}for(let[a,o]of this.shardedSubscribers){if(this.subscriberToSlotsIndex.has(a)&&o.isHealthy()){vt("Skipping deleting subscriber for %s",a);continue}vt("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()){vt("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()&&(vt("Replacing subscriber for %s",a),l.stop(),this.shardedSubscribers.delete(a),this.subscriberGroupEmitter.emit("-subscriber")),vt("Creating new subscriber for %s",a);let c=t.find(d=>(0,px.getNodeKey)(d.options)===a);if(!c){vt("Failed to find node for key %s",a);continue}let u=new yx.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 vt("Nothing to refresh because the new cluster map is equal to the previous one."),!1;vt("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=>{vt("Failed to ssubscribe on node %s: %s",t,o)}):s.once("ready",()=>{s.ssubscribe(...a).catch(o=>{vt("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=In;In.MAX_RETRY_ATTEMPTS=10;In.MAX_BACKOFF_MS=2e3;In.BASE_BACKOFF_MS=100});var sc=y(ic=>{"use strict";Object.defineProperty(ic,"__esModule",{value:!0});var Tp=Nr(),nc=Y("events"),xn=Lr(),jp=fr(),Ap=Ht(),ls=ep(),hx=Zt(),mx=es(),bx=Gl(),lt=Oe(),gx=Bl(),vx=rs(),Kx=hp(),Sx=gp(),Ex=vp(),kx=Sp(),wn=kn(),Dp=as(),Ix=wp(),Ke=(0,lt.Debug)("cluster"),Rp=new WeakSet,ii=class r extends vx.default{constructor(e,t={}){if(super(),this.slots=[],this._groupsIds={},this._groupsBySlot=Array(16384),this.isCluster=!0,this.retryAttempts=0,this.delayQueue=new kx.default,this.offlineQueue=new Dp,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,Kx.DEFAULT_CLUSTER_OPTIONS,this.options),this.options.shardedSubscribers&&this.createShardedSubscriberGroup(),this.options.redisOptions&&this.options.redisOptions.keyPrefix&&!this.options.keyPrefix&&(this.options.keyPrefix=this.options.redisOptions.keyPrefix),typeof this.options.scaleReads!="function"&&["all","master","slave"].indexOf(this.options.scaleReads)===-1)throw new Error('Invalid option scaleReads "'+this.options.scaleReads+'". Expected "all", "master", "slave" or a custom function');this.connectionPool=new Ex.default(this.options.redisOptions),this.connectionPool.on("-node",(n,i)=>{this.emit("-node",n)}),this.connectionPool.on("+node",n=>{this.emit("+node",n)}),this.connectionPool.on("drain",()=>{this.setStatus("close")}),this.connectionPool.on("nodeError",(n,i)=>{this.emit("node error",n,i)}),this.subscriber=new Sx.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 xn.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 xn.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===ls.default.defaultMessage&&(hx.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,jp.default)(Promise.resolve("OK"),e);return setImmediate(function(){this.setStatus("close"),this.handleCloseEvent()}.bind(this)),n}return(0,jp.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 ls.default(ls.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,Tp.exists)(e.name)&&(0,Tp.hasFlag)(e.name,"readonly")||(i="master"));let s=n?n.slot:e.getSlot(),a={},o=this;if(!n&&!Rp.has(e)){Rp.add(e);let c=e.reject;e.reject=function(u){let d=l.bind(null,!0);o.handleError(u,a,{moved:function(p,f){Ke("command %s is moved to %s",e.name,f),s=Number(p),o.slots[p]?o.slots[p][0]=f:o.slots[p]=[f],o._groupsBySlot[p]=o._groupsIds[o.slots[p].join(";")],o.connectionPool.findOrCreate(o.natMapper(f)),l(),Ke("refreshing slot caches... (triggered by MOVED error)"),o.refreshSlotsCache()},ask:function(p,f){Ke("command %s is required to ask %s:%s",e.name,f);let h=o.natMapper(f);o.connectionPool.findOrCreate(h),l(!1,`${h.host}:${h.port}`)},tryagain:d,clusterDown:d,connectionClosed:d,maxRedirections:function(p){c.call(e,p)},defaults:function(){c.call(e,u)}})}}l();function l(c,u){if(o.status==="end"){e.reject(new xn.AbortError("Cluster is ended."));return}let d;if(o.status==="ready"||e.name==="cluster"){if(n&&n.redis)d=n.redis;else if(Ap.default.checkFlag("ENTER_SUBSCRIBER_MODE",e.name)||Ap.default.checkFlag("EXIT_SUBSCRIBER_MODE",e.name)){if(o.options.shardedSubscribers&&(e.name=="ssubscribe"||e.name=="sunsubscribe")){let p=o.shardedSubscribers.getResponsibleSubscriber(s);if(!p){e.reject(new xn.AbortError(`No sharded subscriber for slot: ${s}`));return}let f=-1;e.name=="ssubscribe"&&(f=o.shardedSubscribers.addChannels(e.getKeys())),e.name=="sunsubscribe"&&(f=o.shardedSubscribers.removeChannels(e.getKeys())),f!==-1?d=p.getInstance():e.reject(new xn.AbortError("Possible CROSSSLOT error: All channels must hash to the same slot"))}else d=o.subscriber.getInstance();if(!d){e.reject(new xn.AbortError("No subscriber for the cluster"));return}}else{if(!c){if(typeof s=="number"&&o.slots[s]){let p=o.slots[s];if(typeof i=="function"){let f=p.map(function(h){return o.connectionPool.getInstanceByKey(h)});d=i(f,e),Array.isArray(d)&&(d=(0,lt.sample)(d)),d||(d=f[0])}else{let f;i==="all"?f=(0,lt.sample)(p):i==="slave"&&p.length>1?f=(0,lt.sample)(p,1):f=p[0],d=o.connectionPool.getInstanceByKey(f)}}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 Dp}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,wn.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,wn.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],p=[];for(let f=2;f<c.length;f++){if(!c[f][0])continue;let h=this.natMapper({host:c[f][0],port:c[f][1]});h.readOnly=f!==2,a.push(h),p.push(h.host+":"+h.port)}Ke("cluster slots result [%d]: slots %d~%d served by %s",l,u,d,p);for(let f=u;f<=d;f++)this.slots[f]=p}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,wn.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],p=o[d],f=(0,wn.weightSrvRecords)(p);p.records.length||l.shift(),a.dnsLookup(f.name).then(h=>t({host:h,port:f.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,wn.normalizeNodeOptions)(this.startupNodes),t=(0,wn.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 mx.default({objectMode:!0,key:t,redis:this,command:e,...n})}createShardedSubscriberGroup(){this.subscriberGroupEmitter=new nc.EventEmitter,this.shardedSubscribers=new Ix.default(this.subscriberGroupEmitter,this.options);let e=t=>{t instanceof ls.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,gx.default)(ii,nc.EventEmitter);(0,bx.addTransactionSupport)(ii.prototype);ic.default=ii});var cs=y(oc=>{"use strict";Object.defineProperty(oc,"__esModule",{value:!0});var xx=Oe(),wx=(0,xx.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(()=>{wx("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 Op=y(cc=>{"use strict";Object.defineProperty(cc,"__esModule",{value:!0});var Tx=Y("net"),jx=Y("tls"),Ax=Oe(),Dx=cs(),lc=class extends Dx.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(Ax.CONNECTION_CLOSED_ERROR_MSG));return}try{t.tls?this.stream=(0,jx.connect)(n):this.stream=(0,Tx.createConnection)(n)}catch(a){s(a);return}this.stream.once("error",a=>{this.firstError=a}),i(this.stream)})})}};cc.default=lc});var Cp=y(dc=>{"use strict";Object.defineProperty(dc,"__esModule",{value:!0});function Rx(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(Rx(e,this.sentinels[t]))return!1;return this.sentinels.push(e),!0}toString(){return`${JSON.stringify(this.sentinels)} @${this.cursor}`}};dc.default=uc});var Mp=y(us=>{"use strict";Object.defineProperty(us,"__esModule",{value:!0});us.FailoverDetector=void 0;var Ox=Oe(),fc=(0,Ox.Debug)("FailoverDetector"),_p="+switch-master",pc=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(){fc("Starting FailoverDetector");let e=[];for(let t of this.sentinels){let n=t.client.subscribe(_p).catch(i=>{fc("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===_p&&this.disconnect()})}await Promise.all(e)}disconnect(){this.isDisconnected=!0,fc("Failover detected, disconnecting"),this.connector.disconnect()}};us.FailoverDetector=pc});var ds=y(ai=>{"use strict";Object.defineProperty(ai,"__esModule",{value:!0});ai.SentinelIterator=void 0;var Cx=Y("net"),si=Oe(),_x=Y("tls"),Pp=Cp();ai.SentinelIterator=Pp.default;var Mx=cs(),Px=Zt(),Nx=Mp(),Tn=(0,si.Debug)("SentinelConnector"),yc=class extends Mx.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 Pp.default(this.options.sentinels)}check(e){let t=!e.role||this.options.role===e.role;return t||(Tn("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}`),Tn(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(si.CONNECTION_CLOSED_ERROR_MSG);let o=i.value.host+":"+i.value.port;if(s)return Tn("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,_x.connect)(s),this.stream.once("secureConnect",this.initFailoverDetector.bind(this))):(this.stream=(0,Cx.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 Tn(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(si.packObject).forEach(n=>{if((n.flags?n.flags.split(","):[]).indexOf("disconnected")===-1&&n.ip&&n.port){let s=this.sentinelNatResolve(Np(n));this.sentinelIterator.add(s)&&Tn("adding sentinel %s:%s",s.host,s.port)}}),Tn("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(si.packObject).filter(i=>i.flags&&!i.flags.match(/(disconnected|s_down|o_down)/));return this.sentinelNatResolve(Lx(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 Px.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",qx);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 Nx.FailoverDetector(this,t),await this.failoverDetector.subscribe(),(e=this.emitter)===null||e===void 0||e.emit("failoverSubscribed")}};ai.default=yc;function Lx(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,si.sample)(r)),Np(t)}function Np(r){return{host:r.ip,port:Number(r.port)}}function qx(){}});var Lp=y(jn=>{"use strict";Object.defineProperty(jn,"__esModule",{value:!0});jn.SentinelConnector=jn.StandaloneConnector=void 0;var Jx=Op();jn.StandaloneConnector=Jx.default;var Fx=ds();jn.SentinelConnector=Fx.default});var qp=y(mc=>{"use strict";Object.defineProperty(mc,"__esModule",{value:!0});var Vx=Lr(),hc=class extends Vx.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=hc});var Jp=y(fs=>{"use strict";Object.defineProperty(fs,"__esModule",{value:!0});fs.MaxRetriesPerRequestError=void 0;var Gx=qp();fs.MaxRetriesPerRequestError=Gx.default});var Up=y((VM,Wp)=>{"use strict";var Ec=Y("buffer").Buffer,Yx=Y("string_decoder").StringDecoder,bc=new Yx,Fp=Lr(),Bx=Fp.ReplyError,Wx=Fp.ParserError,At=Ec.allocUnsafe(32*1024),$e=0,ps=null,oi=0,gc=0;function Ux(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 zx(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 Vp(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 Gp(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 $x(r){return r.optionStringNumbers===!0?zx(r):Ux(r)}function Hx(r){let e=Gp(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 Qx(r){var e=Vp(r);if(e!==void 0)return r.optionReturnBuffers===!0&&(e=e.toString()),new Bx(e)}function Zx(r,e){let t=new Wx("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 Xx(r){let e=Gp(r);if(e===void 0)return;if(e<0)return null;let t=new Array(e);return Yp(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 Yp(r,e,t)}function Yp(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=Bp(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 Bp(r,e){switch(e){case 36:return Hx(r);case 43:return Vp(r);case 42:return Xx(r);case 58:return $x(r);case 45:return Qx(r);default:return Zx(r,e)}}function ew(){if(At.length>50*1024)if(oi===1||gc>oi*2){let r=Math.floor(At.length/10),e=r<$e?$e:r;$e=0,At=At.slice(e,At.length)}else gc++,oi--;else clearInterval(ps),oi=0,gc=0,ps=null}function tw(r){if(At.length<r+$e){let e=r>78643200?2:3;$e>1024*1024*111&&($e=1024*1024*50),At=Ec.allocUnsafe(r*e+$e),$e=0,oi++,ps===null&&(ps=setInterval(ew,50))}}function rw(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 nw(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}tw(n);let a=$e;e[0].copy(At,a,t,e[0].length),$e+=e[0].length-t;for(var o=1;o<i-1;o++)e[o].copy(At,$e),$e+=e[o].length;return e[o].copy(At,$e,0,s-2),$e+=s-2,At.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?nw(this):rw(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=Bp(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}};Wp.exports=Sc});var $p=y((GM,zp)=>{"use strict";zp.exports=Up()});var Hp=y(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 ey=y(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});var Qp=Ht(),iw=Oe(),sw=$p(),aw=Hp(),ow=(0,iw.Debug)("dataHandler"),wc=class{constructor(e,t){this.redis=e;let n=new sw({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&&(Qp.default.checkFlag("ENTER_SUBSCRIBER_MODE",t.command.name)?(this.redis.condition.subscriber=new aw.default,this.redis.condition.subscriber.add(t.command.name,e[1].toString()),Zp(t.command,e[2])||this.redis.commandQueue.unshift(t)):Qp.default.checkFlag("EXIT_SUBSCRIBER_MODE",t.command.name)?Xp(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(ow('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;Zp(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;Xp(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 Zp(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 Xp(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 ty=y(Kt=>{"use strict";Object.defineProperty(Kt,"__esModule",{value:!0});Kt.readyHandler=Kt.errorHandler=Kt.closeHandler=Kt.connectHandler=void 0;var lw=Lr(),cw=Ht(),uw=Jp(),qt=Oe(),dw=ey(),Ge=(0,qt.Debug)("connection");function fw(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 dw.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(qt.noop))),r.options.disableClientInfo||(Ge("set the client info"),i.push((0,qt.getPackageMeta)().then(s=>r.client("SETINFO","LIB-VER",s.version).catch(qt.noop)).catch(qt.noop)),i.push(r.client("SETINFO","LIB-NAME",!((e=r.options)===null||e===void 0)&&e.clientInfoTag?`ioredis(${r.options.clientInfoTag})`:"ioredis").catch(qt.noop))),Promise.all(i).catch(qt.noop).finally(()=>{r.options.enableReadyCheck||Kt.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)?Kt.readyHandler(r)():r.disconnect(!0))})})}}Kt.connectHandler=fw;function jc(r){let e=new lw.AbortError("Command aborted due to connection close");return e.command={name:r.name,args:r.args},e}function pw(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 yw(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 hw(r){return function(){let t=r.status;if(r.setStatus("close"),r.commandQueue.length&&pw(r.commandQueue),r.offlineQueue.length&&yw(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(qt.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 uw.MaxRetriesPerRequestError(i))))};function e(){r.setStatus("end"),r.flushQueue(new Error(qt.CONNECTION_CLOSED_ERROR_MSG))}}Kt.closeHandler=hw;function mw(r){return function(e){Ge("error: %s",e),r.silentEmit("error",e)}}Kt.errorHandler=mw;function bw(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 cw.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(qt.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))}}Kt.readyHandler=bw});var ry=y(ys=>{"use strict";Object.defineProperty(ys,"__esModule",{value:!0});ys.DEFAULT_REDIS_OPTIONS=void 0;ys.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 Zt=y(Dc=>{"use strict";Object.defineProperty(Dc,"__esModule",{value:!0});var ny=Nr(),sy=Y("events"),Ac=fr(),gw=sc(),Fr=Ht(),vw=Lp(),Kw=ds(),br=ty(),ay=ry(),Sw=es(),Ew=Gl(),Vr=Oe(),kw=Bl(),Iw=rs(),gr=Ui(),iy=as(),vr=(0,Vr.Debug)("redis"),Kr=class r extends Iw.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),sy.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 Kw.default(this.options);i.emitter=this,this.connector=i}else this.connector=new vw.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 p=!1;l.setTimeout(s.connectTimeout,function(){if(p)return;l.setTimeout(0),l.destroy();let f=new Error("connect ETIMEDOUT");f.errorno="ETIMEDOUT",f.code="ETIMEDOUT",f.syscall="connect",br.errorHandler(a)(f)}),l.once(c,function(){p=!0,l.setTimeout(0)})}}else if(l.destroyed){let p=a.connector.firstError;p&&process.nextTick(()=>{br.errorHandler(a)(p)}),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(Vr.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(Vr.CONNECTION_CLOSED_ERROR_MSG)),e.promise;if(!((n=this.condition)===null||n===void 0)&&n.subscriber&&!Fr.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,ny.exists)(e.name,{caseInsensitive:!0})&&((0,ny.hasFlag)(e.name,"loading",{nameCaseInsensitive:!0})||Fr.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),Fr.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}),Fr.default.checkFlag("BLOCKING_COMMANDS",e.name)){let o=this.getConfiguredBlockingTimeout();o!==void 0&&e.setBlockingTimeout(o)}}if(e.name==="select"&&(0,Vr.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(!Fr.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:ay.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===Vr.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&&!Fr.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 iy}resetOfflineQueue(){this.offlineQueue=new iy}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,Vr.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,Vr.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 Sw.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=gw.default;Kr.Command=Fr.default;Kr.defaultOptions=ay.DEFAULT_REDIS_OPTIONS;(0,kw.default)(Kr,sy.EventEmitter);(0,Ew.addTransactionSupport)(Kr.prototype);Dc.default=Kr});var hs=y((Se,ly)=>{"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=ly.exports=Zt().default;var xw=Zt();Object.defineProperty(Se,"default",{enumerable:!0,get:function(){return xw.default}});var ww=Zt();Object.defineProperty(Se,"Redis",{enumerable:!0,get:function(){return ww.default}});var Tw=sc();Object.defineProperty(Se,"Cluster",{enumerable:!0,get:function(){return Tw.default}});var jw=Ht();Object.defineProperty(Se,"Command",{enumerable:!0,get:function(){return jw.default}});var Aw=es();Object.defineProperty(Se,"ScanStream",{enumerable:!0,get:function(){return Aw.default}});var Dw=Jl();Object.defineProperty(Se,"Pipeline",{enumerable:!0,get:function(){return Dw.default}});var Rw=cs();Object.defineProperty(Se,"AbstractConnector",{enumerable:!0,get:function(){return Rw.default}});var oy=ds();Object.defineProperty(Se,"SentinelConnector",{enumerable:!0,get:function(){return oy.default}});Object.defineProperty(Se,"SentinelIterator",{enumerable:!0,get:function(){return oy.SentinelIterator}});Se.ReplyError=Lr().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 Ow(r,e){console.log(r?"Error: "+r:"Reply: "+e)}Se.print=Ow});var He={};qE(He,{__addDisposableResource:()=>Cy,__assign:()=>ms,__asyncDelegator:()=>xy,__asyncGenerator:()=>Iy,__asyncValues:()=>wy,__await:()=>An,__awaiter:()=>gy,__classPrivateFieldGet:()=>Dy,__classPrivateFieldIn:()=>Oy,__classPrivateFieldSet:()=>Ry,__createBinding:()=>gs,__decorate:()=>dy,__disposeResources:()=>_y,__esDecorate:()=>py,__exportStar:()=>Ky,__extends:()=>cy,__generator:()=>vy,__importDefault:()=>Ay,__importStar:()=>jy,__makeTemplateObject:()=>Ty,__metadata:()=>by,__param:()=>fy,__propKey:()=>hy,__read:()=>Cc,__rest:()=>uy,__rewriteRelativeImportExtension:()=>My,__runInitializers:()=>yy,__setFunctionName:()=>my,__spread:()=>Sy,__spreadArray:()=>ky,__spreadArrays:()=>Ey,__values:()=>bs,default:()=>Mw});function cy(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 uy(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 dy(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 fy(r,e){return function(t,n){e(t,n,r)}}function py(r,e,t,n,i,s){function a(E){if(E!==void 0&&typeof E!="function")throw new TypeError("Function expected");return E}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,p=!1,f=t.length-1;f>=0;f--){var h={};for(var g in n)h[g]=g==="access"?{}:n[g];for(var g in n.access)h.access[g]=n.access[g];h.addInitializer=function(E){if(p)throw new TypeError("Cannot add initializers after decoration has completed");s.push(a(E||null))};var k=(0,t[f])(o==="accessor"?{get:u.get,set:u.set}:u[l],h);if(o==="accessor"){if(k===void 0)continue;if(k===null||typeof k!="object")throw new TypeError("Object expected");(d=a(k.get))&&(u.get=d),(d=a(k.set))&&(u.set=d),(d=a(k.init))&&i.unshift(d)}else(d=a(k))&&(o==="field"?i.unshift(d):u[l]=d)}c&&Object.defineProperty(c,n.name,u),p=!0}function yy(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 hy(r){return typeof r=="symbol"?r:"".concat(r)}function my(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 by(r,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(r,e)}function gy(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 vy(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 Ky(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&gs(e,r,t)}function bs(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 Sy(){for(var r=[],e=0;e<arguments.length;e++)r=r.concat(Cc(arguments[e]));return r}function Ey(){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 ky(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 An(r){return this instanceof An?(this.v=r,this):new An(r)}function Iy(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(f){return function(h){return Promise.resolve(h).then(f,d)}}function o(f,h){n[f]&&(i[f]=function(g){return new Promise(function(k,E){s.push([f,g,k,E])>1||l(f,g)})},h&&(i[f]=h(i[f])))}function l(f,h){try{c(n[f](h))}catch(g){p(s[0][3],g)}}function c(f){f.value instanceof An?Promise.resolve(f.value.v).then(u,d):p(s[0][2],f)}function u(f){l("next",f)}function d(f){l("throw",f)}function p(f,h){f(h),s.shift(),s.length&&l(s[0][0],s[0][1])}}function xy(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:An(r[i](a)),done:!1}:s?s(a):a}:s}}function wy(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 bs=="function"?bs(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 Ty(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}function jy(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"&&gs(e,r,t[n]);return Cw(e,r),e}function Ay(r){return r&&r.__esModule?r:{default:r}}function Dy(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 Ry(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 Oy(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 Cy(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 _y(r){function e(s){r.error=r.hasError?new _w(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 My(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,ms,gs,Cw,Oc,_w,Mw,Qe=LE(()=>{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)};ms=function(){return ms=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},ms.apply(this,arguments)};gs=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]});Cw=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)};_w=typeof SuppressedError=="function"?SuppressedError:function(r,e,t){var n=new Error(t);return n.name="SuppressedError",n.error=r,n.suppressed=e,n};Mw={__extends:cy,__assign:ms,__rest:uy,__decorate:dy,__param:fy,__esDecorate:py,__runInitializers:yy,__propKey:hy,__setFunctionName:my,__metadata:by,__awaiter:gy,__generator:vy,__createBinding:gs,__exportStar:Ky,__values:bs,__read:Cc,__spread:Sy,__spreadArrays:Ey,__spreadArray:ky,__await:An,__asyncGenerator:Iy,__asyncDelegator:xy,__asyncValues:wy,__makeTemplateObject:Ty,__importStar:jy,__importDefault:Ay,__classPrivateFieldGet:Dy,__classPrivateFieldSet:Ry,__classPrivateFieldIn:Oy,__addDisposableResource:Cy,__disposeResources:_y,__rewriteRelativeImportExtension:My}});var Nc=y(vs=>{"use strict";Object.defineProperty(vs,"__esModule",{value:!0});vs.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}}};vs.AsyncFifoQueue=Pc});var Lc=y(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.Backoffs=void 0;var Dn=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 Pw(e,s)(t,e.type,n,i)}};Ks.Backoffs=Dn;Dn.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 Pw(r,e){if(r.type in Dn.builtinStrategies)return Dn.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 Ny=y(Ss=>{"use strict";Object.defineProperty(Ss,"__esModule",{value:!0});Ss.ChildCommand=void 0;var Py;(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"})(Py||(Ss.ChildCommand=Py={}))});var qy=y(Es=>{"use strict";Object.defineProperty(Es,"__esModule",{value:!0});Es.ErrorCode=void 0;var Ly;(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"})(Ly||(Es.ErrorCode=Ly={}))});var Fy=y(ks=>{"use strict";Object.defineProperty(ks,"__esModule",{value:!0});ks.ParentCommand=void 0;var Jy;(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"})(Jy||(ks.ParentCommand=Jy={}))});var Gy=y(Is=>{"use strict";Object.defineProperty(Is,"__esModule",{value:!0});Is.MetricsTime=void 0;var Vy;(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"})(Vy||(Is.MetricsTime=Vy={}))});var Uy=y(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.SpanKind=Sr.MetricNames=Sr.TelemetryAttributes=void 0;var Yy;(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"})(Yy||(Sr.TelemetryAttributes=Yy={}));var By;(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"})(By||(Sr.MetricNames=By={}));var Wy;(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"})(Wy||(Sr.SpanKind=Wy={}))});var st=y(Gr=>{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});var li=(Qe(),nt(He));li.__exportStar(Ny(),Gr);li.__exportStar(qy(),Gr);li.__exportStar(Fy(),Gr);li.__exportStar(Gy(),Gr);li.__exportStar(Uy(),Gr)});var Jc=y(ws=>{"use strict";Object.defineProperty(ws,"__esModule",{value:!0});ws.Child=void 0;var Nw=Y("child_process"),Lw=Y("net"),qw=Y("worker_threads"),xs=st(),Jw=Y("events"),Fw={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 Jw.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 Yw(process.execArgv),t;this.opts.useWorkerThreads?this.worker=t=new qw.Worker(this.mainFile,Object.assign({execArgv:e,stdin:!0,stdout:!0,stderr:!0},this.opts.workerThreadsOptions?this.opts.workerThreadsOptions:{})):this.childProcess=t=(0,Nw.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=Vw(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(xs.ParentCommand).includes(a.cmd)){if(a.cmd===xs.ParentCommand.InitCompleted)t();else if(a.cmd===xs.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=Fw[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:xs.ChildCommand.Init,value:this.processFile}),await e}hasProcessExited(){return!!(this.exitCode!==null||this.signalCode)}};ws.Child=qc;function Vw(r){return new Promise(e=>{r.once("exit",()=>e())})}var Gw=async()=>new Promise(r=>{let e=(0,Lw.createServer)();e.listen(0,()=>{let{port:t}=e.address();e.close(()=>r(t))})}),Yw=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 Gw();t.push(`${s}=${a}`)}}return e.concat(t)}});var Gc=y((Ts,Vc)=>{"use strict";Object.defineProperty(Ts,"__esModule",{value:!0});Ts.ChildPool=void 0;var zy=Y("path"),Bw=Jc(),Ww=3e4,Uw=()=>typeof Y=="function"&&typeof Vc=="object"&&typeof Vc.exports=="object",Fc=class{constructor({mainFile:e=Uw()?zy.join(process.cwd(),"dist/cjs/classes/main.js"):zy.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 Bw.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,Ww)}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),[])}};Ts.ChildPool=Fc});var Hy=y((sP,$y)=>{var{EventEmitter:zw}=Y("events"),js=class{constructor(){this.eventEmitter=new zw,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 ci;return t.abort(),t.signal}static timeout(e){let t=new ci;return setTimeout(()=>t.abort(new Error("TimeoutError")),e),t.signal}},ci=class{constructor(){this.signal=new js}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"}};$y.exports={AbortController:ci,AbortSignal:js}});var Ds=y(As=>{"use strict";Object.defineProperty(As,"__esModule",{value:!0});As.AbortController=void 0;var $w=Hy(),Yc;globalThis.AbortController?Yc=globalThis.AbortController:Yc=$w.AbortController;var Bc=class extends Yc{};As.AbortController=Bc});var ui=y((oP,Qy)=>{"use strict";var Hw="2.0.0",Qw=Number.MAX_SAFE_INTEGER||9007199254740991,Zw=16,Xw=250,e1=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Qy.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Zw,MAX_SAFE_BUILD_LENGTH:Xw,MAX_SAFE_INTEGER:Qw,RELEASE_TYPES:e1,SEMVER_SPEC_VERSION:Hw,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var di=y((lP,Zy)=>{"use strict";var t1=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};Zy.exports=t1});var Rn=y((Jt,Xy)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Wc,MAX_SAFE_BUILD_LENGTH:r1,MAX_LENGTH:n1}=ui(),i1=di();Jt=Xy.exports={};var s1=Jt.re=[],a1=Jt.safeRe=[],J=Jt.src=[],o1=Jt.safeSrc=[],F=Jt.t={},l1=0,Uc="[a-zA-Z0-9-]",c1=[["\\s",1],["\\d",n1],[Uc,r1]],u1=r=>{for(let[e,t]of c1)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},ee=(r,e,t)=>{let n=u1(e),i=l1++;i1(r,i,e),F[r]=i,J[i]=e,o1[i]=n,s1[i]=new RegExp(e,t?"g":void 0),a1[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);Jt.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);Jt.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);Jt.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 Rs=y((cP,eh)=>{"use strict";var d1=Object.freeze({loose:!0}),f1=Object.freeze({}),p1=r=>r?typeof r!="object"?d1:r:f1;eh.exports=p1});var zc=y((uP,nh)=>{"use strict";var th=/^[0-9]+$/,rh=(r,e)=>{if(typeof r=="number"&&typeof e=="number")return r===e?0:r<e?-1:1;let t=th.test(r),n=th.test(e);return t&&n&&(r=+r,e=+e),r===e?0:t&&!n?-1:n&&!t?1:r<e?-1:1},y1=(r,e)=>rh(e,r);nh.exports={compareIdentifiers:rh,rcompareIdentifiers:y1}});var Be=y((dP,sh)=>{"use strict";var Os=di(),{MAX_LENGTH:ih,MAX_SAFE_INTEGER:Cs}=ui(),{safeRe:_s,t:Ms}=Rn(),h1=Rs(),{compareIdentifiers:$c}=zc(),Hc=class r{constructor(e,t){if(t=h1(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>ih)throw new TypeError(`version is longer than ${ih} characters`);Os("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let n=e.trim().match(t.loose?_s[Ms.LOOSE]:_s[Ms.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>Cs||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Cs||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Cs||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<Cs)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(Os("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(Os("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(Os("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?_s[Ms.PRERELEASELOOSE]:_s[Ms.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}};sh.exports=Hc});var Yr=y((fP,oh)=>{"use strict";var ah=Be(),m1=(r,e,t=!1)=>{if(r instanceof ah)return r;try{return new ah(r,e)}catch(n){if(!t)return null;throw n}};oh.exports=m1});var ch=y((pP,lh)=>{"use strict";var b1=Yr(),g1=(r,e)=>{let t=b1(r,e);return t?t.version:null};lh.exports=g1});var dh=y((yP,uh)=>{"use strict";var v1=Yr(),K1=(r,e)=>{let t=v1(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};uh.exports=K1});var yh=y((hP,ph)=>{"use strict";var fh=Be(),S1=(r,e,t,n,i)=>{typeof t=="string"&&(i=n,n=t,t=void 0);try{return new fh(r instanceof fh?r.version:r,t).inc(e,n,i).version}catch{return null}};ph.exports=S1});var bh=y((mP,mh)=>{"use strict";var hh=Yr(),E1=(r,e)=>{let t=hh(r,null,!0),n=hh(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"};mh.exports=E1});var vh=y((bP,gh)=>{"use strict";var k1=Be(),I1=(r,e)=>new k1(r,e).major;gh.exports=I1});var Sh=y((gP,Kh)=>{"use strict";var x1=Be(),w1=(r,e)=>new x1(r,e).minor;Kh.exports=w1});var kh=y((vP,Eh)=>{"use strict";var T1=Be(),j1=(r,e)=>new T1(r,e).patch;Eh.exports=j1});var xh=y((KP,Ih)=>{"use strict";var A1=Yr(),D1=(r,e)=>{let t=A1(r,e);return t&&t.prerelease.length?t.prerelease:null};Ih.exports=D1});var St=y((SP,Th)=>{"use strict";var wh=Be(),R1=(r,e,t)=>new wh(r,t).compare(new wh(e,t));Th.exports=R1});var Ah=y((EP,jh)=>{"use strict";var O1=St(),C1=(r,e,t)=>O1(e,r,t);jh.exports=C1});var Rh=y((kP,Dh)=>{"use strict";var _1=St(),M1=(r,e)=>_1(r,e,!0);Dh.exports=M1});var Ps=y((IP,Ch)=>{"use strict";var Oh=Be(),P1=(r,e,t)=>{let n=new Oh(r,t),i=new Oh(e,t);return n.compare(i)||n.compareBuild(i)};Ch.exports=P1});var Mh=y((xP,_h)=>{"use strict";var N1=Ps(),L1=(r,e)=>r.sort((t,n)=>N1(t,n,e));_h.exports=L1});var Nh=y((wP,Ph)=>{"use strict";var q1=Ps(),J1=(r,e)=>r.sort((t,n)=>q1(n,t,e));Ph.exports=J1});var fi=y((TP,Lh)=>{"use strict";var F1=St(),V1=(r,e,t)=>F1(r,e,t)>0;Lh.exports=V1});var Ns=y((jP,qh)=>{"use strict";var G1=St(),Y1=(r,e,t)=>G1(r,e,t)<0;qh.exports=Y1});var Qc=y((AP,Jh)=>{"use strict";var B1=St(),W1=(r,e,t)=>B1(r,e,t)===0;Jh.exports=W1});var Zc=y((DP,Fh)=>{"use strict";var U1=St(),z1=(r,e,t)=>U1(r,e,t)!==0;Fh.exports=z1});var Ls=y((RP,Vh)=>{"use strict";var $1=St(),H1=(r,e,t)=>$1(r,e,t)>=0;Vh.exports=H1});var qs=y((OP,Gh)=>{"use strict";var Q1=St(),Z1=(r,e,t)=>Q1(r,e,t)<=0;Gh.exports=Z1});var Xc=y((CP,Yh)=>{"use strict";var X1=Qc(),eT=Zc(),tT=fi(),rT=Ls(),nT=Ns(),iT=qs(),sT=(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 X1(r,t,n);case"!=":return eT(r,t,n);case">":return tT(r,t,n);case">=":return rT(r,t,n);case"<":return nT(r,t,n);case"<=":return iT(r,t,n);default:throw new TypeError(`Invalid operator: ${e}`)}};Yh.exports=sT});var Wh=y((_P,Bh)=>{"use strict";var aT=Be(),oT=Yr(),{safeRe:Js,t:Fs}=Rn(),lT=(r,e)=>{if(r instanceof aT)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?Js[Fs.COERCEFULL]:Js[Fs.COERCE]);else{let l=e.includePrerelease?Js[Fs.COERCERTLFULL]:Js[Fs.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 oT(`${n}.${i}.${s}${a}${o}`,e)};Bh.exports=lT});var zh=y((MP,Uh)=>{"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}};Uh.exports=eu});var Et=y((PP,Zh)=>{"use strict";var cT=/\s+/g,tu=class r{constructor(e,t){if(t=dT(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(cT," "),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=>!Hh(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&&gT(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&&mT)|(this.options.loose&&bT))+":"+e,i=$h.get(n);if(i)return i;let s=this.options.loose,a=s?Ze[We.HYPHENRANGELOOSE]:Ze[We.HYPHENRANGE];e=e.replace(a,jT(this.options.includePrerelease)),ke("hyphen replace",e),e=e.replace(Ze[We.COMPARATORTRIM],pT),ke("comparator trim",e),e=e.replace(Ze[We.TILDETRIM],yT),ke("tilde trim",e),e=e.replace(Ze[We.CARETTRIM],hT),ke("caret trim",e);let o=e.split(" ").map(d=>vT(d,this.options)).join(" ").split(/\s+/).map(d=>TT(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(Hh(d))return[d];l.set(d.value,d)}l.size>1&&l.has("")&&l.delete("");let u=[...l.values()];return $h.set(n,u),u}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(n=>Qh(n,t)&&e.set.some(i=>Qh(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 fT(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(AT(this.set[t],e,this.options))return!0;return!1}};Zh.exports=tu;var uT=zh(),$h=new uT,dT=Rs(),ru=pi(),ke=di(),fT=Be(),{safeRe:Ze,t:We,comparatorTrimReplace:pT,tildeTrimReplace:yT,caretTrimReplace:hT}=Rn(),{FLAG_INCLUDE_PRERELEASE:mT,FLAG_LOOSE:bT}=ui(),Hh=r=>r.value==="<0.0.0-0",gT=r=>r.value==="",Qh=(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},vT=(r,e)=>(r=r.replace(Ze[We.BUILD],""),ke("comp",r,e),r=ET(r,e),ke("caret",r),r=KT(r,e),ke("tildes",r),r=IT(r,e),ke("xrange",r),r=wT(r,e),ke("stars",r),r),Xe=r=>!r||r.toLowerCase()==="x"||r==="*",KT=(r,e)=>r.trim().split(/\s+/).map(t=>ST(t,e)).join(" "),ST=(r,e)=>{let t=e.loose?Ze[We.TILDELOOSE]:Ze[We.TILDE];return r.replace(t,(n,i,s,a,o)=>{ke("tilde",r,n,i,s,a,o);let l;return Xe(i)?l="":Xe(s)?l=`>=${i}.0.0 <${+i+1}.0.0-0`:Xe(a)?l=`>=${i}.${s}.0 <${i}.${+s+1}.0-0`:o?(ke("replaceTilde pr",o),l=`>=${i}.${s}.${a}-${o} <${i}.${+s+1}.0-0`):l=`>=${i}.${s}.${a} <${i}.${+s+1}.0-0`,ke("tilde return",l),l})},ET=(r,e)=>r.trim().split(/\s+/).map(t=>kT(t,e)).join(" "),kT=(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})},IT=(r,e)=>(ke("replaceXRanges",r,e),r.split(/\s+/).map(t=>xT(t,e)).join(" ")),xT=(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),p=d;return i==="="&&p&&(i=""),l=e.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&p?(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})},wT=(r,e)=>(ke("replaceStars",r,e),r.trim().replace(Ze[We.STAR],"")),TT=(r,e)=>(ke("replaceGTE0",r,e),r.trim().replace(Ze[e.includePrerelease?We.GTE0PRE:We.GTE0],"")),jT=r=>(e,t,n,i,s,a,o,l,c,u,d,p)=>(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`:p?l=`<=${c}.${u}.${d}-${p}`:r?l=`<${c}.${u}.${+d+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),AT=(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 pi=y((NP,im)=>{"use strict";var yi=Symbol("SemVer ANY"),su=class r{static get ANY(){return yi}constructor(e,t){if(t=Xh(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===yi?this.value="":this.value=this.operator+this.semver.version,iu("comp",this)}parse(e){let t=this.options.loose?em[tm.COMPARATORLOOSE]:em[tm.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 rm(n[2],this.options.loose):this.semver=yi}toString(){return this.value}test(e){if(iu("Comparator.test",e,this.options.loose),this.semver===yi||e===yi)return!0;if(typeof e=="string")try{e=new rm(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 nm(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new nm(this.value,t).test(e.semver):(t=Xh(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(">")))}};im.exports=su;var Xh=Rs(),{safeRe:em,t:tm}=Rn(),nu=Xc(),iu=di(),rm=Be(),nm=Et()});var hi=y((LP,sm)=>{"use strict";var DT=Et(),RT=(r,e,t)=>{try{e=new DT(e,t)}catch{return!1}return e.test(r)};sm.exports=RT});var om=y((qP,am)=>{"use strict";var OT=Et(),CT=(r,e)=>new OT(r,e).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));am.exports=CT});var cm=y((JP,lm)=>{"use strict";var _T=Be(),MT=Et(),PT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new MT(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===-1)&&(n=a,i=new _T(n,t))}),n};lm.exports=PT});var dm=y((FP,um)=>{"use strict";var NT=Be(),LT=Et(),qT=(r,e,t)=>{let n=null,i=null,s=null;try{s=new LT(e,t)}catch{return null}return r.forEach(a=>{s.test(a)&&(!n||i.compare(a)===1)&&(n=a,i=new NT(n,t))}),n};um.exports=qT});var ym=y((VP,pm)=>{"use strict";var au=Be(),JT=Et(),fm=fi(),FT=(r,e)=>{r=new JT(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||fm(o,s))&&(s=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),s&&(!t||fm(t,s))&&(t=s)}return t&&r.test(t)?t:null};pm.exports=FT});var mm=y((GP,hm)=>{"use strict";var VT=Et(),GT=(r,e)=>{try{return new VT(r,e).range||"*"}catch{return null}};hm.exports=GT});var Vs=y((YP,Km)=>{"use strict";var YT=Be(),vm=pi(),{ANY:BT}=vm,WT=Et(),UT=hi(),bm=fi(),gm=Ns(),zT=qs(),$T=Ls(),HT=(r,e,t,n)=>{r=new YT(r,n),e=new WT(e,n);let i,s,a,o,l;switch(t){case">":i=bm,s=zT,a=gm,o=">",l=">=";break;case"<":i=gm,s=$T,a=bm,o="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(UT(r,e,n))return!1;for(let c=0;c<e.set.length;++c){let u=e.set[c],d=null,p=null;if(u.forEach(f=>{f.semver===BT&&(f=new vm(">=0.0.0")),d=d||f,p=p||f,i(f.semver,d.semver,n)?d=f:a(f.semver,p.semver,n)&&(p=f)}),d.operator===o||d.operator===l||(!p.operator||p.operator===o)&&s(r,p.semver))return!1;if(p.operator===l&&a(r,p.semver))return!1}return!0};Km.exports=HT});var Em=y((BP,Sm)=>{"use strict";var QT=Vs(),ZT=(r,e,t)=>QT(r,e,">",t);Sm.exports=ZT});var Im=y((WP,km)=>{"use strict";var XT=Vs(),ej=(r,e,t)=>XT(r,e,"<",t);km.exports=ej});var Tm=y((UP,wm)=>{"use strict";var xm=Et(),tj=(r,e,t)=>(r=new xm(r,t),e=new xm(e,t),r.intersects(e,t));wm.exports=tj});var Am=y((zP,jm)=>{"use strict";var rj=hi(),nj=St();jm.exports=(r,e,t)=>{let n=[],i=null,s=null,a=r.sort((u,d)=>nj(u,d,t));for(let u of a)rj(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 Mm=y(($P,_m)=>{"use strict";var Dm=Et(),lu=pi(),{ANY:ou}=lu,mi=hi(),cu=St(),ij=(r,e,t={})=>{if(r===e)return!0;r=new Dm(r,t),e=new Dm(e,t);let n=!1;e:for(let i of r.set){for(let s of e.set){let a=aj(i,s,t);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},sj=[new lu(">=0.0.0-0")],Rm=[new lu(">=0.0.0")],aj=(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=sj:r=Rm}if(e.length===1&&e[0].semver===ou){if(t.includePrerelease)return!0;e=Rm}let n=new Set,i,s;for(let f of r)f.operator===">"||f.operator===">="?i=Om(i,f,t):f.operator==="<"||f.operator==="<="?s=Cm(s,f,t):n.add(f.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 f of n){if(i&&!mi(f,String(i),t)||s&&!mi(f,String(s),t))return null;for(let h of e)if(!mi(f,String(h),t))return!1;return!0}let o,l,c,u,d=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,p=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 f of e){if(u=u||f.operator===">"||f.operator===">=",c=c||f.operator==="<"||f.operator==="<=",i){if(p&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===p.major&&f.semver.minor===p.minor&&f.semver.patch===p.patch&&(p=!1),f.operator===">"||f.operator===">="){if(o=Om(i,f,t),o===f&&o!==i)return!1}else if(i.operator===">="&&!mi(i.semver,String(f),t))return!1}if(s){if(d&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===d.major&&f.semver.minor===d.minor&&f.semver.patch===d.patch&&(d=!1),f.operator==="<"||f.operator==="<="){if(l=Cm(s,f,t),l===f&&l!==s)return!1}else if(s.operator==="<="&&!mi(s.semver,String(f),t))return!1}if(!f.operator&&(s||i)&&a!==0)return!1}return!(i&&c&&!s&&a!==0||s&&u&&!i&&a!==0||p||d)},Om=(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},Cm=(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};_m.exports=ij});var qm=y((HP,Lm)=>{"use strict";var uu=Rn(),Pm=ui(),oj=Be(),Nm=zc(),lj=Yr(),cj=ch(),uj=dh(),dj=yh(),fj=bh(),pj=vh(),yj=Sh(),hj=kh(),mj=xh(),bj=St(),gj=Ah(),vj=Rh(),Kj=Ps(),Sj=Mh(),Ej=Nh(),kj=fi(),Ij=Ns(),xj=Qc(),wj=Zc(),Tj=Ls(),jj=qs(),Aj=Xc(),Dj=Wh(),Rj=pi(),Oj=Et(),Cj=hi(),_j=om(),Mj=cm(),Pj=dm(),Nj=ym(),Lj=mm(),qj=Vs(),Jj=Em(),Fj=Im(),Vj=Tm(),Gj=Am(),Yj=Mm();Lm.exports={parse:lj,valid:cj,clean:uj,inc:dj,diff:fj,major:pj,minor:yj,patch:hj,prerelease:mj,compare:bj,rcompare:gj,compareLoose:vj,compareBuild:Kj,sort:Sj,rsort:Ej,gt:kj,lt:Ij,eq:xj,neq:wj,gte:Tj,lte:jj,cmp:Aj,coerce:Dj,Comparator:Rj,Range:Oj,satisfies:Cj,toComparators:_j,maxSatisfying:Mj,minSatisfying:Pj,minVersion:Nj,validRange:Lj,outside:qj,gtr:Jj,ltr:Fj,intersects:Vj,simplifyRange:Gj,subset:Yj,SemVer:oj,re:uu.re,src:uu.src,tokens:uu.t,SEMVER_SPEC_VERSION:Pm.SEMVER_SPEC_VERSION,RELEASE_TYPES:Pm.RELEASE_TYPES,compareIdentifiers:Nm.compareIdentifiers,rcompareIdentifiers:Nm.rcompareIdentifiers}});var ct=y(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.QUEUE_EVENT_SUFFIX=H.toString=H.errorToJSON=H.parseObjectValues=H.isRedisVersionLowerThan=H.childSend=H.asyncSend=H.DELAY_TIME_1=H.DELAY_TIME_5=H.clientCommandMessageReg=H.optsEncodeMap=H.optsDecodeMap=H.errorObject=void 0;H.tryCatch=Uj;H.lengthInUtf8Bytes=zj;H.isEmpty=$j;H.array2obj=Hj;H.objectToFlatArray=Qj;H.delay=Zj;H.increaseMaxListeners=Jm;H.invertObject=Fm;H.isRedisInstance=Vm;H.isRedisCluster=Xj;H.decreaseMaxListeners=eA;H.removeAllQueueData=tA;H.getParentKey=rA;H.isNotConnectionError=Gm;H.removeUndefinedFields=dA;H.trace=fA;H.randomUUID=pA;var Bj=hs(),du=Y("crypto"),Wj=Oe(),fu=qm(),pu=st();H.errorObject={value:null};function Uj(r,e,t){try{return r.apply(e,t)}catch(n){return H.errorObject.value=n,H.errorObject}}function zj(r){return Buffer.byteLength(r,"utf8")}function $j(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e))return!1;return!0}function Hj(r){let e={};for(let t=0;t<r.length;t+=2)e[r[t]]=r[t+1];return e}function Qj(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 Zj(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 Jm(r,e){let t=r.getMaxListeners();r.setMaxListeners(t+e)}function Fm(r){return Object.entries(r).reduce((e,[t,n])=>(e[n]=t,e),{})}H.optsDecodeMap={de:"deduplication",fpof:"failParentOnFailure",cpof:"continueParentOnFailure",idof:"ignoreDependencyOnFailure",kl:"keepLogs",rdof:"removeDependencyOnFailure"};H.optsEncodeMap=Object.assign(Object.assign({},Fm(H.optsDecodeMap)),{debounce:"de"});function Vm(r){return r?["connect","disconnect","duplicate"].every(t=>typeof r[t]=="function"):!1}function Xj(r){return Vm(r)&&r.isCluster}function eA(r,e){Jm(r,-e)}async function tA(r,e,t=process.env.BULLMQ_TEST_PREFIX||"bull"){if(r instanceof Bj.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(Gm(s))throw s}}function rA(r){if(r)return`${r.queue}:${r.id}`}H.clientCommandMessageReg=/ERR unknown command ['`]\s*client\s*['`]/;H.DELAY_TIME_5=5e3;H.DELAY_TIME_1=100;function Gm(r){let{code:e,message:t}=r;return t!==Wj.CONNECTION_CLOSED_ERROR_MSG&&!t.includes("ECONNREFUSED")&&e!=="ECONNREFUSED"}var nA=(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()});H.asyncSend=nA;var iA=(r,e)=>(0,H.asyncSend)(r,e);H.childSend=iA;var sA=(r,e,t,n="redis")=>{if(t===n){let i=fu.valid(fu.coerce(r));return fu.lt(i,e)}return!1};H.isRedisVersionLowerThan=sA;var aA=r=>{let e={};for(let t of Object.entries(r))e[t[0]]=JSON.parse(t[1]);return e};H.parseObjectValues=aA;var oA=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}},lA=r=>{let e={};return Object.getOwnPropertyNames(r).forEach(function(t){e[t]=r[t]}),JSON.parse(JSON.stringify(e,oA(r)))};H.errorToJSON=lA;var cA=1/0,uA=r=>{if(r==null)return"";if(typeof r=="string")return r;if(Array.isArray(r))return`${r.map(t=>t==null?t:(0,H.toString)(t))}`;if(typeof r=="symbol"||Object.prototype.toString.call(r)=="[object Symbol]")return r.toString();let e=`${r}`;return e==="0"&&1/r===-cA?"-0":e};H.toString=uA;H.QUEUE_EVENT_SUFFIX=":qe";function dA(r){let e={};for(let t in r)r[t]!==void 0&&(e[t]=r[t]);return e}async function fA(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,p=o.startSpan(d,{kind:e},u);try{p.setAttributes({[pu.TelemetryAttributes.QueueName]:t,[pu.TelemetryAttributes.QueueOperation]:n});let f,h;return e===pu.SpanKind.CONSUMER&&u?f=p.setSpanOnContext(u):f=p.setSpanOnContext(c),s.length==2&&(h=l.getMetadata(f)),await l.with(f,()=>s(p,h))}catch(f){throw p.recordException(f),f}finally{p.end()}}else return s()}function pA(){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 Ym=y(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});Gs.ChildProcessor=void 0;var yA=Ds(),et=st(),yu=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 bi=process.env.NODE_ENV==="test"?500:5e3,hu=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,yu.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,yu.errorToJSON)(new Error("cannot start a not idling child process"))});this.status=Er.Started,this.abortController=new yA.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,yu.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}}),gi(a,this.receiver,bi,"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}),gi(i,this.receiver,bi,"getChildrenValues")},getIgnoredChildrenFailures:async()=>{let i=Math.random().toString(36).substring(2,15);return await t({requestId:i,cmd:et.ParentCommand.GetIgnoredChildrenFailures}),gi(i,this.receiver,bi,"getIgnoredChildrenFailures")},getDependenciesCount:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependenciesCount,value:i}),gi(s,this.receiver,bi,"getDependenciesCount")},getDependencies:async i=>{let s=Math.random().toString(36).substring(2,15);return await t({requestId:s,cmd:et.ParentCommand.GetDependencies,value:i}),gi(s,this.receiver,bi,"getDependencies")}});return n}};Gs.ChildProcessor=hu;var gi=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 Bm=y(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.DelayedError=Br.DELAYED_ERROR=void 0;Br.DELAYED_ERROR="bullmq:movedToDelayed";var mu=class extends Error{constructor(e=Br.DELAYED_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Br.DelayedError=mu});var Wm=y(Wr=>{"use strict";Object.defineProperty(Wr,"__esModule",{value:!0});Wr.RateLimitError=Wr.RATE_LIMIT_ERROR=void 0;Wr.RATE_LIMIT_ERROR="bullmq:rateLimitExceeded";var bu=class extends Error{constructor(e=Wr.RATE_LIMIT_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Wr.RateLimitError=bu});var vu=y(Ur=>{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.UnrecoverableError=Ur.UNRECOVERABLE_ERROR=void 0;Ur.UNRECOVERABLE_ERROR="bullmq:unrecoverable";var gu=class extends Error{constructor(e=Ur.UNRECOVERABLE_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};Ur.UnrecoverableError=gu});var Um=y(zr=>{"use strict";Object.defineProperty(zr,"__esModule",{value:!0});zr.WaitingChildrenError=zr.WAITING_CHILDREN_ERROR=void 0;zr.WAITING_CHILDREN_ERROR="bullmq:movedToWaitingChildren";var Ku=class extends Error{constructor(e=zr.WAITING_CHILDREN_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};zr.WaitingChildrenError=Ku});var zm=y($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.WaitingError=$r.WAITING_ERROR=void 0;$r.WAITING_ERROR="bullmq:movedToWait";var Su=class extends Error{constructor(e=$r.WAITING_ERROR){super(e),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}};$r.WaitingError=Su});var Ys=y(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});var vi=(Qe(),nt(He));vi.__exportStar(Bm(),Hr);vi.__exportStar(Wm(),Hr);vi.__exportStar(vu(),Hr);vi.__exportStar(Um(),Hr);vi.__exportStar(zm(),Hr)});var Qm=y((sN,Hm)=>{"use strict";var $m=()=>process.platform==="linux",Bs=null,hA=()=>{if(!Bs)if($m()&&process.report){let r=process.report.excludeNetwork;process.report.excludeNetwork=!0,Bs=process.report.getReport(),process.report.excludeNetwork=r}else Bs={};return Bs};Hm.exports={isLinux:$m,getReport:hA}});var Xm=y((aN,Zm)=>{"use strict";var On=Y("fs"),mA="/usr/bin/ldd",bA="/proc/self/exe",Ws=2048,gA=r=>{let e=On.openSync(r,"r"),t=Buffer.alloc(Ws),n=On.readSync(e,t,0,Ws,0);return On.close(e,()=>{}),t.subarray(0,n)},vA=r=>new Promise((e,t)=>{On.open(r,"r",(n,i)=>{if(n)t(n);else{let s=Buffer.alloc(Ws);On.read(i,s,0,Ws,0,(a,o)=>{e(s.subarray(0,o)),On.close(i,()=>{})})}})});Zm.exports={LDD_PATH:mA,SELF_PATH:bA,readFileSync:gA,readFile:vA}});var tb=y((oN,eb)=>{"use strict";var KA=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};eb.exports={interpreterPath:KA}});var Kb=y((lN,vb)=>{"use strict";var nb=Y("child_process"),{isLinux:Cn,getReport:ib}=Qm(),{LDD_PATH:Us,SELF_PATH:sb,readFile:Eu,readFileSync:ku}=Xm(),{interpreterPath:ab}=tb(),Ft,Vt,Gt,ob="getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true",kr="",lb=()=>kr||new Promise(r=>{nb.exec(ob,(e,t)=>{kr=e?" ":t,r(kr)})}),cb=()=>{if(!kr)try{kr=nb.execSync(ob,{encoding:"utf8"})}catch{kr=" "}return kr},Xt="glibc",ub=/LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i,Qr="musl",SA=r=>r.includes("libc.musl-")||r.includes("ld-musl-"),db=()=>{let r=ib();return r.header&&r.header.glibcVersionRuntime?Xt:Array.isArray(r.sharedObjects)&&r.sharedObjects.some(SA)?Qr:null},fb=r=>{let[e,t]=r.split(/[\r\n]+/);return e&&e.includes(Xt)?Xt:t&&t.includes(Qr)?Qr:null},pb=r=>{if(r){if(r.includes("/ld-musl-"))return Qr;if(r.includes("/ld-linux-"))return Xt}return null},yb=r=>(r=r.toString(),r.includes("musl")?Qr:r.includes("GNU C Library")?Xt:null),EA=async()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=await Eu(Us);Vt=yb(r)}catch{}return Vt},kA=()=>{if(Vt!==void 0)return Vt;Vt=null;try{let r=ku(Us);Vt=yb(r)}catch{}return Vt},IA=async()=>{if(Ft!==void 0)return Ft;Ft=null;try{let r=await Eu(sb),e=ab(r);Ft=pb(e)}catch{}return Ft},xA=()=>{if(Ft!==void 0)return Ft;Ft=null;try{let r=ku(sb),e=ab(r);Ft=pb(e)}catch{}return Ft},hb=async()=>{let r=null;if(Cn()&&(r=await IA(),!r&&(r=await EA(),r||(r=db()),!r))){let e=await lb();r=fb(e)}return r},mb=()=>{let r=null;if(Cn()&&(r=xA(),!r&&(r=kA(),r||(r=db()),!r))){let e=cb();r=fb(e)}return r},wA=async()=>Cn()&&await hb()!==Xt,TA=()=>Cn()&&mb()!==Xt,jA=async()=>{if(Gt!==void 0)return Gt;Gt=null;try{let e=(await Eu(Us)).match(ub);e&&(Gt=e[1])}catch{}return Gt},AA=()=>{if(Gt!==void 0)return Gt;Gt=null;try{let e=ku(Us).match(ub);e&&(Gt=e[1])}catch{}return Gt},bb=()=>{let r=ib();return r.header&&r.header.glibcVersionRuntime?r.header.glibcVersionRuntime:null},rb=r=>r.trim().split(/\s+/)[1],gb=r=>{let[e,t,n]=r.split(/[\r\n]+/);return e&&e.includes(Xt)?rb(e):t&&n&&t.includes(Qr)?rb(n):null},DA=async()=>{let r=null;if(Cn()&&(r=await jA(),r||(r=bb()),!r)){let e=await lb();r=gb(e)}return r},RA=()=>{let r=null;if(Cn()&&(r=AA(),r||(r=bb()),!r)){let e=cb();r=gb(e)}return r};vb.exports={GLIBC:Xt,MUSL:Qr,family:hb,familySync:mb,isNonGlibcLinux:wA,isNonGlibcLinuxSync:TA,version:DA,versionSync:RA}});var _b=y((cN,Cb)=>{var OA=Y("fs"),Dt=Y("path"),CA=Y("url"),kb=Y("os"),Ib=typeof __webpack_require__=="function"?__non_webpack_require__:Y,_A=process.config&&process.config.variables||{},MA=!!process.env.PREBUILDS_ONLY,ju=process.versions,xu=ju.modules;(ju.deno||process.isBun)&&(xu="unsupported");var Iu=LA()?"electron":NA()?"node-webkit":"node",zs=process.env.npm_config_arch||kb.arch(),$s=process.env.npm_config_platform||kb.platform(),xb=process.env.LIBC||(qA($s)?"musl":"glibc"),wu=process.env.ARM_VERSION||(zs==="arm64"?"8":_A.arm_version)||"",wb=(ju.uv||"").split(".")[0];Cb.exports=Yt;function Yt(r){return Ib(Yt.resolve(r))}Yt.resolve=Yt.path=function(r){r=Dt.resolve(r||".");var e="",t;try{e=Ib(Dt.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(!MA){var i=Sb(Dt.join(r,"build/Release"),Eb);if(i)return i;var s=Sb(Dt.join(r,"build/Debug"),Eb);if(s)return s}var a=f(r);if(a)return a;var o=f(Dt.dirname(process.execPath));if(o)return o;var l=(e[0]=="@"?"":"@"+e+"/")+e+"-"+$s+"-"+zs,c;try{var u=Dt.dirname(Y("module").createRequire(CA.pathToFileURL(Dt.join(r,"package.json"))).resolve(l));return h(u)}catch(g){c=g}var d=["platform="+$s,"arch="+zs,"runtime="+Iu,"abi="+xu,"uv="+wb,wu?"armv="+wu:"","libc="+xb,"node="+process.versions.node,process.versions.electron?"electron="+process.versions.electron:"",typeof __webpack_require__=="function"?"webpack=true":""].filter(Boolean).join(" ");let p="No native build was found for "+d+`
|
|
162
162
|
attempted loading from: `+r+" and package: "+l+`
|
|
163
|
-
`;throw t&&(
|
|
164
|
-
`),c&&(
|
|
165
|
-
`),new Error(f);function p(g){var E=Au(At.join(g,"prebuilds")).map(xb),k=E.filter(wb(Us,Ws)).sort(Tb)[0];if(k)return m(At.join(g,"prebuilds",k.name))}function m(g){var E=Au(g).map(jb),k=E.filter(Ab(wu,Tu)),I=k.sort(Db(wu))[0];if(I)return At.join(g,I.file)}};function Au(r){try{return jA.readdirSync(r)}catch{return[]}}function vb(r,e){var t=Au(r).filter(e);return t[0]&&At.join(r,t[0])}function Kb(r){return/\.node$/.test(r)}function xb(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 wb(r,e){return function(t){return t==null||t.platform!==r?!1:t.architectures.includes(e)}}function Tb(r,e){return r.architectures.length-e.architectures.length}function jb(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 Ab(r,e){return function(t){return!(t==null||t.runtime!==r&&!OA(t)||t.abi!==e&&!t.napi||t.uv&&t.uv!==Ib||t.armv&&t.armv!==ju||t.libc&&t.libc!==kb)}}function OA(r){return r.runtime==="node"&&r.napi}function Db(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 CA(){return!!(process.versions&&process.versions.nw)}function _A(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}function MA(r){if(r!=="linux")return!1;let{familySync:e,MUSL:t}=gb();return e()===t}Gt.parseTags=jb;Gt.matchTags=Ab;Gt.compareTags=Db;Gt.parseTuple=xb;Gt.matchTuple=wb;Gt.compareTuples=Tb});var Cb=y((oN,Ou)=>{var Ru=typeof __webpack_require__=="function"?__non_webpack_require__:Y;typeof Ru.addon=="function"?Ou.exports=Ru.addon.bind(Ru):Ou.exports=Ob()});var Mb=y((cN,_b)=>{_b.exports=Cb()(__dirname)});var fg=y(fe=>{"use strict";var Hb=Y("stream"),PA=Y("module"),Pu;try{Pu=new TextDecoder}catch{}var O,dt,b=0,Nu=[],Zr=Nu,Si=0,ye={},ce,Xt,ut=0,kt=0,Me,er,ze=[],le,Pb={useRecords:!1,mapsAsObjects:!0},Qs=class{},Lu=new Qs;Lu.name="MessagePack 0xC1";var Ir=!1,Nb=2,tr=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(O)return sg(()=>(Xs(),this?this.unpack(e,t):r.prototype.unpack.call(Pb,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),Si=0,kt=0,Xt=null,Zr=Nu,Me=null,O=e;try{le=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(n){throw O=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(ye=this,this.structures)return ce=this.structures,zs(t);(!ce||ce.length>0)&&(ce=[])}else ye=Pb,(!ce||ce.length>0)&&(ce=[]);return zs(t)}unpackMultiple(e,t){let n,i=0;try{Ir=!0;let s=e.length,a=this?this.unpack(e,s):sa.unpack(e,s);if(t){if(t(a,i,b)===!1)return;for(;b<s;)if(i=b,t(zs(),i,b)===!1)return}else{for(n=[a];b<s;)i=b,n.push(zs());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Ir=!1,Xs()}}_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 zs(r){try{if(!ye.trusted&&!Ir){let t=ce.sharedLength||0;t<ce.length&&(ce.length=t)}let e;if(ye._readStruct&&O[b]<64&&O[b]>=32?(e=ye._readStruct(O,b,dt),O=null,!(r&&r.lazy)&&e&&(e=e.toJSON()),b=dt):e=De(),Me&&(b=Me.postBundlePosition,Me=null),Ir&&(ce.restoreStructures=null),b==dt)ce&&ce.restoreStructures&&Lb(),ce=null,O=null,er&&(er=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 ce&&ce.restoreStructures&&Lb(),Xs(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")||b>dt)&&(e.incomplete=!0),e}}function Lb(){for(let r in ce.restoreStructures)ce[r]=ce.restoreStructures[r];ce.restoreStructures=null}function De(){let r=O[b++];if(r<160)if(r<128){if(r<64)return r;{let e=ce[r&63]||ye.getStructures&&Qb()[r&63];return e?(e.read||(e.read=qu(e,r&63)),e.read()):r}}else if(r<144)if(r-=128,ye.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=rg();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 ye.freezeData?Object.freeze(e):e}else if(r<192){let e=r-160;if(kt>=b)return Xt.slice(b-ut,(b+=e)-ut);if(kt==0&&dt<140){let t=e<16?Ju(e):tg(e);if(t!=null)return t}return Zs(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)):Lu;case 194:return!1;case 195:return!0;case 196:if(e=O[b++],e===void 0)throw new Error("Unexpected end of buffer");return Cu(e);case 197:return e=le.getUint16(b),b+=2,Cu(e);case 198:return e=le.getUint32(b),b+=4,Cu(e);case 199:return Qr(O[b++]);case 200:return e=le.getUint16(b),b+=2,Qr(e);case 201:return e=le.getUint32(b),b+=4,Qr(e);case 202:if(e=le.getFloat32(b),ye.useFloat32>2){let t=ia[(O[b]&127)<<1|O[b+1]>>7];return b+=4,(t*e+(e>0?.5:-.5)>>0)/t}return b+=4,e;case 203:return e=le.getFloat64(b),b+=8,e;case 204:return O[b++];case 205:return e=le.getUint16(b),b+=2,e;case 206:return e=le.getUint32(b),b+=4,e;case 207:return ye.int64AsType==="number"?(e=le.getUint32(b)*4294967296,e+=le.getUint32(b+4)):ye.int64AsType==="string"?e=le.getBigUint64(b).toString():ye.int64AsType==="auto"?(e=le.getBigUint64(b),e<=BigInt(2)<<BigInt(52)&&(e=Number(e))):e=le.getBigUint64(b),b+=8,e;case 208:return le.getInt8(b++);case 209:return e=le.getInt16(b),b+=2,e;case 210:return e=le.getInt32(b),b+=4,e;case 211:return ye.int64AsType==="number"?(e=le.getInt32(b)*4294967296,e+=le.getUint32(b+4)):ye.int64AsType==="string"?e=le.getBigInt64(b).toString():ye.int64AsType==="auto"?(e=le.getBigInt64(b),e>=BigInt(-2)<<BigInt(52)&&e<=BigInt(2)<<BigInt(52)&&(e=Number(e))):e=le.getBigInt64(b),b+=8,e;case 212:if(e=O[b++],e==114)return Yb(O[b++]&63);{let t=ze[e];if(t)return t.read?(b++,t.read(De())):t.noBuffer?(b++,t()):t(O.subarray(b,++b));throw new Error("Unknown extension "+e)}case 213:return e=O[b],e==114?(b++,Yb(O[b++]&63,O[b++])):Qr(2);case 214:return Qr(4);case 215:return Qr(8);case 216:return Qr(16);case 217:return e=O[b++],kt>=b?Xt.slice(b-ut,(b+=e)-ut):Zb(e);case 218:return e=le.getUint16(b),b+=2,kt>=b?Xt.slice(b-ut,(b+=e)-ut):Xb(e);case 219:return e=le.getUint32(b),b+=4,kt>=b?Xt.slice(b-ut,(b+=e)-ut):eg(e);case 220:return e=le.getUint16(b),b+=2,Jb(e);case 221:return e=le.getUint32(b),b+=4,Jb(e);case 222:return e=le.getUint16(b),b+=2,Fb(e);case 223:return e=le.getUint32(b),b+=4,Fb(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 NA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function qu(r,e){function t(){if(t.count++>Nb){let i;try{i=r.read=new Function("r","return function(){return "+(ye.freezeData?"Object.freeze":"")+"({"+r.map(s=>s==="__proto__"?"__proto_:r()":NA.test(s)?s+":r()":"["+JSON.stringify(s)+"]:r()").join(",")+"})}")(De)}catch{return Nb=1/0,t()}return r.highByte===0&&(r.read=qb(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 ye.freezeData?Object.freeze(n):n}return t.count=0,r.highByte===0?qb(e,t):t}var qb=(r,e)=>function(){let t=O[b++];if(t===0)return e();let n=r<32?-(r+(t<<5)):r+(t<<5),i=ce[n]||Qb()[n];if(!i)throw new Error("Record id is not defined for "+n);return i.read||(i.read=qu(i,r)),i.read()};function Qb(){let r=sg(()=>(O=null,ye.getStructures()));return ce=ye._mergeStructures(r,ce)}var Zs=Mn,Zb=Mn,Xb=Mn,eg=Mn;fe.isNativeAccelerationEnabled=!1;function LA(r){fe.isNativeAccelerationEnabled=!0,Zs=e(1),Zb=e(2),Xb=e(3),eg=e(5);function e(t){return function(i){let s=Zr[Si++];if(s==null){if(Me)return Mn(i);let o=O.byteOffset,l=r(b-t+o,dt+o,O.buffer);if(typeof l=="string")s=l,Zr=Nu;else if(Zr=l,Si=1,kt=1,s=Zr[0],s===void 0)throw new Error("Unexpected end of buffer")}let a=s.length;return a<=i?(b+=i,s):(Xt=s,ut=b,kt=b+a,b+=i,s.slice(0,i))}}}function Mn(r){let e;if(r<16&&(e=Ju(r)))return e;if(r>64&&Pu)return Pu.decode(O.subarray(b,b+=r));let t=b+r,n=[];for(e="";b<t;){let i=O[b++];if((i&128)===0)n.push(i);else if((i&224)===192){let s=O[b++]&63,a=(i&31)<<6|s;a<128?n.push(65533):n.push(a)}else if((i&240)===224){let s=O[b++]&63,a=O[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=O[b++]&63,a=O[b++]&63,o=O[b++]&63,l=(i&7)<<18|s<<12|a<<6|o;l<65536||l>1114111?n.push(65533):(l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|l&1023),n.push(l))}else n.push(65533);n.length>=4096&&(e+=Je.apply(String,n),n.length=0)}return n.length>0&&(e+=Je.apply(String,n)),e}function Jb(r){let e=new Array(r);for(let t=0;t<r;t++)e[t]=De();return ye.freezeData?Object.freeze(e):e}function Fb(r){if(ye.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=rg();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 tg(r){let e=b,t=new Array(r);for(let n=0;n<r;n++){let i=O[b++];if((i&128)>0){b=e;return}t[n]=i}return Je.apply(String,t)}function Ju(r){if(r<4)if(r<2){if(r===0)return"";{let e=O[b++];if((e&128)>1){b-=1;return}return Je(e)}}else{let e=O[b++],t=O[b++];if((e&128)>0||(t&128)>0){b-=2;return}if(r<3)return Je(e,t);let n=O[b++];if((n&128)>0){b-=3;return}return Je(e,t,n)}else{let e=O[b++],t=O[b++],n=O[b++],i=O[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=O[b++];if((s&128)>0){b-=5;return}return Je(e,t,n,i,s)}}else if(r<8){let s=O[b++],a=O[b++];if((s&128)>0||(a&128)>0){b-=6;return}if(r<7)return Je(e,t,n,i,s,a);let o=O[b++];if((o&128)>0){b-=7;return}return Je(e,t,n,i,s,a,o)}else{let s=O[b++],a=O[b++],o=O[b++],l=O[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=O[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=O[b++],u=O[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=O[b++];if((d&128)>0){b-=11;return}return Je(e,t,n,i,s,a,o,l,c,u,d)}else{let c=O[b++],u=O[b++],d=O[b++],f=O[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=O[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=O[b++],m=O[b++];if((p&128)>0||(m&128)>0){b-=14;return}if(r<15)return Je(e,t,n,i,s,a,o,l,c,u,d,f,p,m);let g=O[b++];if((g&128)>0){b-=15;return}return Je(e,t,n,i,s,a,o,l,c,u,d,f,p,m,g)}}}}}function Vb(){let r=O[b++],e;if(r<192)e=r-160;else switch(r){case 217:e=O[b++];break;case 218:e=le.getUint16(b),b+=2;break;case 219:e=le.getUint32(b),b+=4;break;default:throw new Error("Expected string")}return Mn(e)}function Cu(r){return ye.copyBuffers?Uint8Array.prototype.slice.call(O,b,b+=r):O.subarray(b,b+=r)}function Qr(r){let e=O[b++];if(ze[e]){let t;return ze[e](O.subarray(b,t=b+=r),n=>{b=n;try{return De()}finally{b=t}})}else throw new Error("Unknown extension type "+e)}var Gb=new Array(4096);function rg(){let r=O[b++];if(r>=160&&r<192){if(r=r-160,kt>=b)return Xt.slice(b-ut,(b+=r)-ut);if(!(kt==0&&dt<180))return Zs(r)}else return b--,ng(De());let e=(r<<5^(r>1?le.getUint16(b):r>0?O[b]:0))&4095,t=Gb[e],n=b,i=b+r-3,s,a=0;if(t&&t.bytes==r){for(;n<i;){if(s=le.getUint32(n),s!=t[a++]){n=1879048192;break}n+=4}for(i+=3;n<i;)if(s=O[n++],s!=t[a++]){n=1879048192;break}if(n===i)return b=n,t.string;i-=3,n=b}for(t=[],Gb[e]=t,t.bytes=r;n<i;)s=le.getUint32(n),t.push(s),n+=4;for(i+=3;n<i;)s=O[n++],t.push(s);let o=r<16?Ju(r):tg(r);return o!=null?t.string=o:t.string=Zs(r)}function ng(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(ye.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 Yb=(r,e)=>{let t=De().map(ng),n=r;e!==void 0&&(r=r<32?-((e<<5)+r):(e<<5)+r,t.highByte=e);let i=ce[r];return i&&(i.isShared||Ir)&&((ce.restoreStructures||(ce.restoreStructures=[]))[r]=i),ce[r]=t,t.read=qu(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 Bb={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError:typeof AggregateError=="function"?AggregateError:null};ze[101]=()=>{let r=De();if(!Bb[r[0]]){let e=Error(r[1],{cause:r[2]});return e.name=r[0],e}return Bb[r[0]](r[1],{cause:r[2]})};ze[105]=r=>{if(ye.structuredClone===!1)throw new Error("Structured clone extension is disabled");let e=le.getUint32(b-4);er||(er=new Map);let t=O[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)&&O[b+1]===115?n=new Set:n={};let i={target:n};er.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(ye.structuredClone===!1)throw new Error("Structured clone extension is disabled");let e=le.getUint32(b-4),t=er.get(e);return t.used=!0,t.target};ze[115]=()=>new Set(De());var ig=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(r=>r+"Array"),qA=typeof globalThis=="object"?globalThis:window;ze[116]=r=>{let e=r[0],t=Uint8Array.prototype.slice.call(r,1).buffer,n=ig[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 qA[n](t)};ze[120]=()=>{let r=De();return new RegExp(r[0],r[1])};var JA=[];ze[98]=r=>{let e=(r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3],t=b;return b+=e-r.length,Me=JA,Me=[Vb(),Vb()],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 sg(r){ye&&ye._onSaveState&&ye._onSaveState();let e=dt,t=b,n=Si,i=ut,s=kt,a=Xt,o=Zr,l=er,c=Me,u=new Uint8Array(O.slice(0,dt)),d=ce,f=ce.slice(0,ce.length),p=ye,m=Ir,g=r();return dt=e,b=t,Si=n,ut=i,kt=s,Xt=a,Zr=o,er=l,Me=c,O=u,Ir=m,ce=d,ce.splice(0,ce.length,...f),ye=p,le=new DataView(O.buffer,O.byteOffset,O.byteLength),g}function Xs(){O=null,er=null,ce=null}function FA(r){r.unpack?ze[r.type]=r.unpack:ze[r.type]=r}var ia=new Array(147);for(let r=0;r<256;r++)ia[r]=+("1e"+Math.floor(45.15-r*.30103));var VA=tr,sa=new tr({useRecords:!1}),GA=sa.unpack,YA=sa.unpackMultiple,BA=sa.unpack,ag={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},og=new Float32Array(1),Wb=new Uint8Array(og.buffer,0,4);function WA(r){og[0]=r;let e=ia[(Wb[3]&127)<<1|Wb[2]>>7];return(e*r+(r>0?.5:-.5)>>0)/e}tr.SUPPORTS_STRUCT_HOOKS=!0;var Hs;try{Hs=new TextEncoder}catch{}var ea,ta,_n=typeof Buffer<"u",$s=_n?function(r){return Buffer.allocUnsafeSlow(r)}:Uint8Array,lg=_n?Buffer:Uint8Array,Ub=_n?4294967296:2144337920,S,Ki,ge,v=0,Ue,Te=null,UA=21760,zA=/[\u0080-\uFFFF]/,Cn=Symbol("record-id"),rr=class extends tr{constructor(e){super(e),this.offset=0;let t,n,i,s,a=lg.prototype.utf8Write?function(h,T){return S.utf8Write(h,T,S.byteLength-T)}:Hs&&Hs.encodeInto?function(h,T){return Hs.encodeInto(h,S.subarray(T)).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,m=u+d+64;if(m>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let g=[],E=0,k=0;this.pack=this.encode=function(h,T){if(S||(S=new $s(8192),ge=S.dataView||(S.dataView=new DataView(S.buffer,0,8192)),v=0),Ue=S.length-10,Ue-v<2048?(S=new $s(S.length),ge=S.dataView||(S.dataView=new DataView(S.buffer,0,S.length)),Ue=S.length-10,v=0):v=v+7&2147483640,t=v,T&pg&&(v+=T&255),s=o.structuredClone?new Map:null,o.bundleStrings&&typeof h!="string"?(Te=[],Te.size=1/0):Te=null,i=o.structures,i){i.uninitialized&&(i=o._mergeStructures(o.getStructures()));let w=i.sharedLength||0;if(w>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 j=0;j<w;j++){let V=i[j];if(!V)continue;let B,C=i.transitions;for(let ae=0,re=V.length;ae<re;ae++){let Tt=V[ae];B=C[Tt],B||(B=C[Tt]=Object.create(null)),C=B}C[Cn]=j+64}this.lastNamedStructuresLength=w}l||(i.nextId=w+64)}n&&(n=!1);let x;try{o._writeStruct&&h&&typeof h=="object"?h.constructor===Object?K(h):h.constructor!==Map&&!Array.isArray(h)&&!ta.some(j=>h instanceof j)?K(h.toJSON?h.toJSON():h):D(h):D(h);let w=Te;if(Te&&$b(t,D,0),s&&s.idsToInsert){let j=s.idsToInsert.sort((ae,re)=>ae.offset>re.offset?1:-1),V=j.length,B=-1;for(;w&&V>0;){let ae=j[--V].offset+t;ae<w.stringsPosition+t&&B===-1&&(B=0),ae>w.position+t?B>=0&&(B+=6):(B>=0&&(ge.setUint32(w.position+t,ge.getUint32(w.position+t)+B),B=-1),w=w.previous,V++)}B>=0&&w&&ge.setUint32(w.position+t,ge.getUint32(w.position+t)+B),v+=j.length*6,v>Ue&&P(v),o.offset=v;let C=$A(S.subarray(t,v),j);return s=null,C}return o.offset=v,T&ug?(S.start=t,S.end=v,S):S.subarray(t,v)}catch(w){throw x=w,w}finally{if(i&&(I(),n&&o.saveStructures)){let w=i.sharedLength||0,j=S.subarray(t,v),V=(o._prepareStructures||QA)(i,o);if(!x)return o.saveStructures(V,V.isCompatible)===!1?o.pack(h,T):(o.lastNamedStructuresLength=w,S.length>1073741824&&(S=null),j)}S.length>1073741824&&(S=null),T&dg&&(v=t)}};let I=()=>{k<10&&k++;let h=i.sharedLength||0;if(i.length>h&&!l&&(i.length=h),E>1e4)i.transitions=null,k=0,E=0,g.length>0&&(g=[]);else if(g.length>0&&!l){for(let T=0,x=g.length;T<x;T++)g[T][Cn]=0;g=[]}},R=h=>{var T=h.length;T<16?S[v++]=144|T:T<65536?(S[v++]=220,S[v++]=T>>8,S[v++]=T&255):(S[v++]=221,ge.setUint32(v,T),v+=4);for(let x=0;x<T;x++)D(h[x])},D=h=>{v>Ue&&(S=P(v));var T=typeof h,x;if(T==="string"){let w=h.length;if(Te&&w>=4&&w<4096){if((Te.size+=w)>UA){let C,ae=(Te[0]?Te[0].length*3+Te[1].length:0)+10;v+ae>Ue&&(S=P(v+ae));let re;Te.position?(re=Te,S[v]=200,v+=3,S[v++]=98,C=v-t,v+=4,$b(t,D,0),ge.setUint16(C+t-3,v-t-C)):(S[v++]=214,S[v++]=98,C=v-t,v+=4),Te=["",""],Te.previous=re,Te.size=0,Te.position=C}let B=zA.test(h);Te[B?0:1]+=h,S[v++]=193,D(B?-w:w);return}let j;w<32?j=1:w<256?j=2:w<65536?j=3:j=5;let V=w*3;if(v+V>Ue&&(S=P(v+V)),w<64||!a){let B,C,ae,re=v+j;for(B=0;B<w;B++)C=h.charCodeAt(B),C<128?S[re++]=C:C<2048?(S[re++]=C>>6|192,S[re++]=C&63|128):(C&64512)===55296&&((ae=h.charCodeAt(B+1))&64512)===56320?(C=65536+((C&1023)<<10)+(ae&1023),B++,S[re++]=C>>18|240,S[re++]=C>>12&63|128,S[re++]=C>>6&63|128,S[re++]=C&63|128):(S[re++]=C>>12|224,S[re++]=C>>6&63|128,S[re++]=C&63|128);x=re-v-j}else x=a(h,v+j);x<32?S[v++]=160|x:x<256?(j<2&&S.copyWithin(v+2,v+1,v+1+x),S[v++]=217,S[v++]=x):x<65536?(j<3&&S.copyWithin(v+3,v+2,v+2+x),S[v++]=218,S[v++]=x>>8,S[v++]=x&255):(j<5&&S.copyWithin(v+5,v+3,v+3+x),S[v++]=219,ge.setUint32(v,x),v+=4),v+=x}else if(T==="number")if(h>>>0===h)h<32||h<128&&this.useRecords===!1||h<64&&!this._writeStruct?S[v++]=h:h<256?(S[v++]=204,S[v++]=h):h<65536?(S[v++]=205,S[v++]=h>>8,S[v++]=h&255):(S[v++]=206,ge.setUint32(v,h),v+=4);else if(h>>0===h)h>=-32?S[v++]=256+h:h>=-128?(S[v++]=208,S[v++]=h+256):h>=-32768?(S[v++]=209,ge.setInt16(v,h),v+=2):(S[v++]=210,ge.setInt32(v,h),v+=4);else{let w;if((w=this.useFloat32)>0&&h<4294967296&&h>=-2147483648){S[v++]=202,ge.setFloat32(v,h);let j;if(w<4||(j=h*ia[(S[v]&127)<<1|S[v+1]>>7])>>0===j){v+=4;return}else v--}S[v++]=203,ge.setFloat64(v,h),v+=8}else if(T==="object"||T==="function")if(!h)S[v++]=192;else{if(s){let j=s.get(h);if(j){if(!j.id){let V=s.idsToInsert||(s.idsToInsert=[]);j.id=V.push(j)}S[v++]=214,S[v++]=112,ge.setUint32(v,j.id),v+=4;return}else s.set(h,{offset:v-t})}let w=h.constructor;if(w===Object)A(h);else if(w===Array)R(h);else if(w===Map)if(this.mapAsEmptyObject)S[v++]=128;else{x=h.size,x<16?S[v++]=128|x:x<65536?(S[v++]=222,S[v++]=x>>8,S[v++]=x&255):(S[v++]=223,ge.setUint32(v,x),v+=4);for(let[j,V]of h)D(j),D(V)}else{for(let j=0,V=ea.length;j<V;j++){let B=ta[j];if(h instanceof B){let C=ea[j];if(C.write){C.type&&(S[v++]=212,S[v++]=C.type,S[v++]=0);let ur=C.write.call(this,h);ur===h?Array.isArray(h)?R(h):A(h):D(ur);return}let ae=S,re=ge,Tt=v;S=null;let Ut;try{Ut=C.pack.call(this,h,ur=>(S=ae,ae=null,v+=ur,v>Ue&&P(v),{target:S,targetView:ge,position:v-ur}),D)}finally{ae&&(S=ae,ge=re,v=Tt,Ue=S.length-10)}Ut&&(Ut.length+v>Ue&&P(Ut.length+v),v=zb(Ut,S,v,C.type));return}}if(Array.isArray(h))R(h);else{if(h.toJSON){let j=h.toJSON();if(j!==h)return D(j)}if(T==="function")return D(this.writeFunction&&this.writeFunction(h));A(h)}}}else if(T==="boolean")S[v++]=h?195:194;else if(T==="bigint"){if(h<9223372036854776e3&&h>=-9223372036854776e3)S[v++]=211,ge.setBigInt64(v,h);else if(h<18446744073709552e3&&h>0)S[v++]=207,ge.setBigUint64(v,h);else if(this.largeBigIntToFloat)S[v++]=203,ge.setFloat64(v,Number(h));else{if(this.largeBigIntToString)return D(h.toString());if(this.useBigIntExtension||this.moreTypes){let w=h<0?BigInt(-1):BigInt(0),j;if(h>>BigInt(65536)===w){let V=BigInt(18446744073709552e3)-BigInt(1),B=[];for(;B.push(h&V),h>>BigInt(63)!==w;)h>>=BigInt(64);j=new Uint8Array(new BigUint64Array(B).buffer),j.reverse()}else{let V=h<0,B=(V?~h:h).toString(16);if(B.length%2?B="0"+B:parseInt(B.charAt(0),16)>=8&&(B="00"+B),_n)j=Buffer.from(B,"hex");else{j=new Uint8Array(B.length/2);for(let C=0;C<j.length;C++)j[C]=parseInt(B.slice(C*2,C*2+2),16)}if(V)for(let C=0;C<j.length;C++)j[C]=~j[C]}j.length+v>Ue&&P(j.length+v),v=zb(j,S,v,66);return}else throw new RangeError(h+" 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(T==="undefined")this.encodeUndefinedAsNil?S[v++]=192:(S[v++]=212,S[v++]=0,S[v++]=0);else throw new Error("Unknown type: "+T)},J=this.variableMapSize||this.coercibleKeyAsNumber||this.skipValues?h=>{let T;if(this.skipValues){T=[];for(let j in h)(typeof h.hasOwnProperty!="function"||h.hasOwnProperty(j))&&!this.skipValues.includes(h[j])&&T.push(j)}else T=Object.keys(h);let x=T.length;x<16?S[v++]=128|x:x<65536?(S[v++]=222,S[v++]=x>>8,S[v++]=x&255):(S[v++]=223,ge.setUint32(v,x),v+=4);let w;if(this.coercibleKeyAsNumber)for(let j=0;j<x;j++){w=T[j];let V=Number(w);D(isNaN(V)?w:V),D(h[w])}else for(let j=0;j<x;j++)D(w=T[j]),D(h[w])}:h=>{S[v++]=222;let T=v-t;v+=2;let x=0;for(let w in h)(typeof h.hasOwnProperty!="function"||h.hasOwnProperty(w))&&(D(w),D(h[w]),x++);if(x>65535)throw new Error('Object is too large to serialize with fast 16-bit map size, use the "variableMapSize" option to serialize this object');S[T+++t]=x>>8,S[T+t]=x&255},oe=this.useRecords===!1?J:e.progressiveRecords&&!f?h=>{let T,x=i.transitions||(i.transitions=Object.create(null)),w=v++-t,j;for(let V in h)if(typeof h.hasOwnProperty!="function"||h.hasOwnProperty(V)){if(T=x[V],T)x=T;else{let B=Object.keys(h),C=x;x=i.transitions;let ae=0;for(let re=0,Tt=B.length;re<Tt;re++){let Ut=B[re];T=x[Ut],T||(T=x[Ut]=Object.create(null),ae++),x=T}w+t+1==v?(v--,G(x,B,ae)):F(x,B,w,ae),j=!0,x=C[V]}D(h[V])}if(!j){let V=x[Cn];V?S[w+t]=V:F(x,Object.keys(h),w,0)}}:h=>{let T,x=i.transitions||(i.transitions=Object.create(null)),w=0;for(let V in h)(typeof h.hasOwnProperty!="function"||h.hasOwnProperty(V))&&(T=x[V],T||(T=x[V]=Object.create(null),w++),x=T);let j=x[Cn];j?j>=96&&f?(S[v++]=((j-=96)&31)+96,S[v++]=j>>5):S[v++]=j:G(x,x.__keys__||Object.keys(h),w);for(let V in h)(typeof h.hasOwnProperty!="function"||h.hasOwnProperty(V))&&D(h[V])},z=typeof this.useRecords=="function"&&this.useRecords,A=z?h=>{z(h)?oe(h):J(h)}:oe,K=h=>{let T=o._writeStruct(h,S,t,v,i,P,(x,w,j)=>{if(j)return n=!0;v=w;let V=S;return D(x),I(),V!==S?{position:v,targetView:ge,target:S}:v});if(T===0)return A(h);v=T},P=h=>{let T;if(h>16777216){if(h-t>Ub)throw new Error("Packed buffer would be larger than maximum buffer size");T=Math.min(Ub,Math.round(Math.max((h-t)*(h>67108864?1.25:2),4194304)/4096)*4096)}else T=(Math.max(h-t<<2,S.length-1)>>12)+1<<12;let x=new $s(T);return ge=x.dataView||(x.dataView=new DataView(x.buffer,0,T)),h=Math.min(h,S.length),S.copy?S.copy(x,0,t,h):x.set(S.slice(t,h)),v-=t,t=0,Ue=x.length-10,S=x},G=(h,T,x)=>{let w=i.nextId;w||(w=64),w<p&&this.shouldShareStructure&&!this.shouldShareStructure(T)?(w=i.nextOwnId,w<m||(w=p),i.nextOwnId=w+1):(w>=m&&(w=p),i.nextId=w+1);let j=T.highByte=w>=96&&f?w-96>>5:-1;h[Cn]=w,h.__keys__=T,i[w-64]=T,w<p?(T.isShared=!0,i.sharedLength=w-63,n=!0,j>=0?(S[v++]=(w&31)+96,S[v++]=j):S[v++]=w):(j>=0?(S[v++]=213,S[v++]=114,S[v++]=(w&31)+96,S[v++]=j):(S[v++]=212,S[v++]=114,S[v++]=w),x&&(E+=k*x),g.length>=d&&(g.shift()[Cn]=0),g.push(h),D(T))},F=(h,T,x,w)=>{let j=S,V=v,B=Ue,C=t;S=Ki,v=0,t=0,S||(Ki=S=new $s(8192)),Ue=S.length-10,G(h,T,w),Ki=S;let ae=v;if(S=j,v=V,Ue=B,t=C,ae>1){let re=v+ae-1;re>Ue&&P(re);let Tt=x+t;S.copyWithin(Tt+ae,Tt+1,v),S.set(Ki.slice(0,ae),Tt),v=re}else S[x+t]=Ki[0]}}useBuffer(e){S=e,S.dataView||(S.dataView=new DataView(S.buffer,S.byteOffset,S.byteLength)),ge=S.dataView,v=0}set position(e){v=e}get position(){return v}clearSharedData(){this.structures&&(this.structures=[]),this.typedStructs&&(this.typedStructs=[])}};ta=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,DataView,Qs];ea=[{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?_u(r,16,e):Mu(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let t=r.constructor;t!==lg&&this.moreTypes?_u(r,ig.indexOf(t.name),e):Mu(r,e)}},{pack(r,e){this.moreTypes?_u(r,17,e):Mu(_n?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let{target:t,position:n}=e(1);t[n]=193}}];function _u(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 Mu(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 zb(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 $A(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 $b(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 HA(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)");ta.unshift(r.Class),ea.unshift(r)}FA(r)}function QA(r,e){return r.isCompatible=t=>{let n=!t||(e.lastNamedStructuresLength||0)===t.length;return n||e._mergeStructures(t),n},r}rr.SUPPORTS_STRUCT_HOOKS=!0;var cg=new rr({useRecords:!1}),ZA=cg.pack,XA=cg.pack,eD=rr,{NEVER:tD,ALWAYS:rD,DECIMAL_ROUND:nD,DECIMAL_FIT:iD}=ag,ug=512,dg=1024,pg=2048,ra=class extends Hb.Transform{constructor(e){e||(e={}),e.writableObjectMode=!0,super(e),e.sequential=!0,this.packr=e.packr||new rr(e)}_transform(e,t,n){this.push(this.packr.pack(e)),n()}},na=class extends Hb.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 tr(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 sD(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 aD(r,e);if(typeof r.then=="function"||typeof r[Symbol.asyncIterator]=="function")return oD(r,e);throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a Promise")}function*aD(r,e){let t=new rr(e);for(let n of r)yield t.pack(n)}async function*oD(r,e){let t=new rr(e);for await(let n of r)yield t.pack(n)}function lD(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 tr(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 cD=lD,uD=sD,dD=!1,pD=!0,fD=process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!fD){let r;try{typeof Y=="function"?r=Mb():r=PA.createRequire(typeof document>"u"?new(Y("url")).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("node.cjs",document.baseURI).href)("msgpackr-extract"),r&&LA(r.extractStrings)}catch{}}fe.ALWAYS=rD;fe.C1=Lu;fe.DECIMAL_FIT=iD;fe.DECIMAL_ROUND=nD;fe.Decoder=VA;fe.DecoderStream=na;fe.Encoder=eD;fe.EncoderStream=ra;fe.FLOAT32_OPTIONS=ag;fe.NEVER=tD;fe.Packr=rr;fe.PackrStream=ra;fe.RESERVE_START_SPACE=pg;fe.RESET_BUFFER_MODE=dg;fe.REUSE_BUFFER_MODE=ug;fe.Unpackr=tr;fe.UnpackrStream=na;fe.addExtension=HA;fe.clearSource=Xs;fe.decode=BA;fe.decodeIter=cD;fe.encode=XA;fe.encodeIter=uD;fe.mapsAsObjects=pD;fe.pack=ZA;fe.roundFloat32=WA;fe.unpack=GA;fe.unpackMultiple=YA;fe.useRecords=dD});var oa=y(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.version=void 0;aa.version="5.76.6"});var Vu=y(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.Scripts=void 0;Ei.raw2NextJobData=la;var hD=fg(),yD=new hD.Packr({useRecords:!1,encodeUndefinedAsNil:!0}),Pe=yD.pack,Dt=st(),xr=ct(),mD=oa(),bD=Vs(),Fu=class{constructor(e){this.queue=e,this.version=mD.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,m,g,E;let k=this.queue.keys,I=this.queue.opts,R=s==="completed"?I.removeOnComplete:I.removeOnFail,D=this.queue.toKey(`metrics:${s}`),J=this.moveToFinishedKeys;J[10]=k[s],J[11]=this.queue.toKey((u=e.id)!==null&&u!==void 0?u:""),J[12]=D,J[13]=this.queue.keys.marker;let oe=this.getKeepJobs(i,R),z=[e.id,o,n,typeof t>"u"?"null":t,s,!l||this.queue.closing?0:1,k[""],Pe({token:a,name:I.name,keepJobs:oe,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:!!(!((m=e.opts)===null||m===void 0)&&m.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 J.concat(z)}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 la(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 la(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 la(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 m=[t.start+f.length,t.end,o,l,s];t.fetchJobs&&m.push(1),[o,l,c,u,d]=await this.execCommand(n,"paginate",i.concat(m)),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 m=[];for(let g=0;g<f.length;g++){let[E,k]=f[g];try{m.push({id:E,v:JSON.parse(k)})}catch(I){m.push({id:E,err:I.message})}}return{cursor:o,items:m,total:u,jobs:p}}else return{cursor:o,items:f.map(m=>({id:m})),total:u,jobs:p}}finishedErrors({code:e,jobId:t,parentKey:n,command:i,state:s}){let a;switch(e){case Dt.ErrorCode.JobNotExist:a=new Error(`Missing key for job ${t}. ${i}`);break;case Dt.ErrorCode.JobLockNotExist:a=new Error(`Missing lock for job ${t}. ${i}`);break;case Dt.ErrorCode.JobNotInState:a=new Error(`Job ${t} is not in the ${s} state. ${i}`);break;case Dt.ErrorCode.JobPendingChildren:a=new Error(`Job ${t} has pending dependencies. ${i}`);break;case Dt.ErrorCode.ParentJobNotExist:a=new Error(`Missing key for parent job ${n}. ${i}`);break;case Dt.ErrorCode.JobLockMismatch:a=new Error(`Lock mismatch for job ${t}. Cmd ${i} from ${s}`);break;case Dt.ErrorCode.ParentJobCannotBeReplaced:a=new Error(`The parent job ${n} cannot be replaced. ${i}`);break;case Dt.ErrorCode.JobBelongsToJobScheduler:a=new Error(`Job ${t} belongs to a job scheduler and cannot be removed directly. ${i}`);break;case Dt.ErrorCode.JobHasFailedChildren:a=new bD.UnrecoverableError(`Cannot complete job ${t} because it has at least one failed child. ${i}`);break;case Dt.ErrorCode.SchedulerJobIdCollision:a=new Error(`Cannot create job scheduler iteration - job ID already exists. ${i}`);break;case Dt.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)}};Ei.Scripts=Fu;function la(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 ua=y(ca=>{"use strict";Object.defineProperty(ca,"__esModule",{value:!0});ca.createScripts=void 0;var gD=Vu(),vD=r=>new gD.Scripts({keys:r.keys,client:r.client,get redisVersion(){return r.redisVersion},toKey:r.toKey,opts:r.opts,closing:r.closing,databaseType:r.databaseType});ca.createScripts=vD});var Pn=y(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.Job=wr.PRIORITY_LIMIT=void 0;var hg=(Qe(),nt(He)),KD=Y("util"),tt=ct(),SD=ua(),yg=Jc(),ED=Su(),at=st(),kD=(0,KD.debuglog)("bull");wr.PRIORITY_LIMIT=2**21;var Gu=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=hg.__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=yg.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=ID(t.stacktrace),typeof t.returnvalue=="string"&&(a.returnvalue=mg(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,SD.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 hg.__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 ED.UnrecoverableError||e.name=="UnrecoverableError")){let t=this.queue.opts,n=await yg.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 m=this.scripts.moveToFailedArgs(this,this.failedReason,this.opts.removeOnFail,t,n,f);d=await this.scripts.moveToFinished(this.id,m),p=m[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,m;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]);m=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:m,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:mg(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=Gu;function ID(r){if(!r)return[];let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);return e===tt.errorObject||!(e instanceof Array)?[]:e}function mg(r){let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);if(e!==tt.errorObject)return e;kD("corrupted returnvalue: "+r,e)}});var pa=y(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.QueueKeys=void 0;var Yu=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}`}};da.QueueKeys=Yu});var bg=y(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.addDelayedJob=void 0;var xD=`--[[
|
|
163
|
+
`;throw t&&(p+="Error finding package.json: "+t.message+`
|
|
164
|
+
`),c&&(p+="Error resolving package: "+c.message+`
|
|
165
|
+
`),new Error(p);function f(g){var k=Tu(Dt.join(g,"prebuilds")).map(Tb),E=k.filter(jb($s,zs)).sort(Ab)[0];if(E)return h(Dt.join(g,"prebuilds",E.name))}function h(g){var k=Tu(g).map(Db),E=k.filter(Rb(Iu,xu)),I=E.sort(Ob(Iu))[0];if(I)return Dt.join(g,I.file)}};function Tu(r){try{return OA.readdirSync(r)}catch{return[]}}function Sb(r,e){var t=Tu(r).filter(e);return t[0]&&Dt.join(r,t[0])}function Eb(r){return/\.node$/.test(r)}function Tb(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 jb(r,e){return function(t){return t==null||t.platform!==r?!1:t.architectures.includes(e)}}function Ab(r,e){return r.architectures.length-e.architectures.length}function Db(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 Rb(r,e){return function(t){return!(t==null||t.runtime!==r&&!PA(t)||t.abi!==e&&!t.napi||t.uv&&t.uv!==wb||t.armv&&t.armv!==wu||t.libc&&t.libc!==xb)}}function PA(r){return r.runtime==="node"&&r.napi}function Ob(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 NA(){return!!(process.versions&&process.versions.nw)}function LA(){return process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE?!0:typeof window<"u"&&window.process&&window.process.type==="renderer"}function qA(r){if(r!=="linux")return!1;let{familySync:e,MUSL:t}=Kb();return e()===t}Yt.parseTags=Db;Yt.matchTags=Rb;Yt.compareTags=Ob;Yt.parseTuple=Tb;Yt.matchTuple=jb;Yt.compareTuples=Ab});var Mb=y((dN,Du)=>{var Au=typeof __webpack_require__=="function"?__non_webpack_require__:Y;typeof Au.addon=="function"?Du.exports=Au.addon.bind(Au):Du.exports=_b()});var Nb=y((pN,Pb)=>{Pb.exports=Mb()(__dirname)});var hg=y(fe=>{"use strict";var Zb=Y("stream"),JA=Y("module"),_u;try{_u=new TextDecoder}catch{}var C,dt,b=0,Mu=[],Xr=Mu,Si=0,ye={},le,er,ut=0,kt=0,Me,tr,ze=[],oe,Lb={useRecords:!1,mapsAsObjects:!0},Xs=class{},Pu=new Xs;Pu.name="MessagePack 0xC1";var Ir=!1,qb=2,rr=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(C)return og(()=>(ta(),this?this.unpack(e,t):r.prototype.unpack.call(Lb,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),Si=0,kt=0,er=null,Xr=Mu,Me=null,C=e;try{oe=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(n){throw C=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(ye=this,this.structures)return le=this.structures,Hs(t);(!le||le.length>0)&&(le=[])}else ye=Lb,(!le||le.length>0)&&(le=[]);return Hs(t)}unpackMultiple(e,t){let n,i=0;try{Ir=!0;let s=e.length,a=this?this.unpack(e,s):oa.unpack(e,s);if(t){if(t(a,i,b)===!1)return;for(;b<s;)if(i=b,t(Hs(),i,b)===!1)return}else{for(n=[a];b<s;)i=b,n.push(Hs());return n}}catch(s){throw s.lastPosition=i,s.values=n,s}finally{Ir=!1,ta()}}_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 Hs(r){try{if(!ye.trusted&&!Ir){let t=le.sharedLength||0;t<le.length&&(le.length=t)}let e;if(ye._readStruct&&C[b]<64&&C[b]>=32?(e=ye._readStruct(C,b,dt),C=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&&Jb(),le=null,C=null,tr&&(tr=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&&Jb(),ta(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")||b>dt)&&(e.incomplete=!0),e}}function Jb(){for(let r in le.restoreStructures)le[r]=le.restoreStructures[r];le.restoreStructures=null}function De(){let r=C[b++];if(r<160)if(r<128){if(r<64)return r;{let e=le[r&63]||ye.getStructures&&Xb()[r&63];return e?(e.read||(e.read=Nu(e,r&63)),e.read()):r}}else if(r<144)if(r-=128,ye.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=ig();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 ye.freezeData?Object.freeze(e):e}else if(r<192){let e=r-160;if(kt>=b)return er.slice(b-ut,(b+=e)-ut);if(kt==0&&dt<140){let t=e<16?Lu(e):ng(e);if(t!=null)return t}return ea(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=C[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 Zr(C[b++]);case 200:return e=oe.getUint16(b),b+=2,Zr(e);case 201:return e=oe.getUint32(b),b+=4,Zr(e);case 202:if(e=oe.getFloat32(b),ye.useFloat32>2){let t=aa[(C[b]&127)<<1|C[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 C[b++];case 205:return e=oe.getUint16(b),b+=2,e;case 206:return e=oe.getUint32(b),b+=4,e;case 207:return ye.int64AsType==="number"?(e=oe.getUint32(b)*4294967296,e+=oe.getUint32(b+4)):ye.int64AsType==="string"?e=oe.getBigUint64(b).toString():ye.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 ye.int64AsType==="number"?(e=oe.getInt32(b)*4294967296,e+=oe.getUint32(b+4)):ye.int64AsType==="string"?e=oe.getBigInt64(b).toString():ye.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=C[b++],e==114)return Wb(C[b++]&63);{let t=ze[e];if(t)return t.read?(b++,t.read(De())):t.noBuffer?(b++,t()):t(C.subarray(b,++b));throw new Error("Unknown extension "+e)}case 213:return e=C[b],e==114?(b++,Wb(C[b++]&63,C[b++])):Zr(2);case 214:return Zr(4);case 215:return Zr(8);case 216:return Zr(16);case 217:return e=C[b++],kt>=b?er.slice(b-ut,(b+=e)-ut):eg(e);case 218:return e=oe.getUint16(b),b+=2,kt>=b?er.slice(b-ut,(b+=e)-ut):tg(e);case 219:return e=oe.getUint32(b),b+=4,kt>=b?er.slice(b-ut,(b+=e)-ut):rg(e);case 220:return e=oe.getUint16(b),b+=2,Vb(e);case 221:return e=oe.getUint32(b),b+=4,Vb(e);case 222:return e=oe.getUint16(b),b+=2,Gb(e);case 223:return e=oe.getUint32(b),b+=4,Gb(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 FA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Nu(r,e){function t(){if(t.count++>qb){let i;try{i=r.read=new Function("r","return function(){return "+(ye.freezeData?"Object.freeze":"")+"({"+r.map(s=>s==="__proto__"?"__proto_:r()":FA.test(s)?s+":r()":"["+JSON.stringify(s)+"]:r()").join(",")+"})}")(De)}catch{return qb=1/0,t()}return r.highByte===0&&(r.read=Fb(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 ye.freezeData?Object.freeze(n):n}return t.count=0,r.highByte===0?Fb(e,t):t}var Fb=(r,e)=>function(){let t=C[b++];if(t===0)return e();let n=r<32?-(r+(t<<5)):r+(t<<5),i=le[n]||Xb()[n];if(!i)throw new Error("Record id is not defined for "+n);return i.read||(i.read=Nu(i,r)),i.read()};function Xb(){let r=og(()=>(C=null,ye.getStructures()));return le=ye._mergeStructures(r,le)}var ea=Pn,eg=Pn,tg=Pn,rg=Pn;fe.isNativeAccelerationEnabled=!1;function VA(r){fe.isNativeAccelerationEnabled=!0,ea=e(1),eg=e(2),tg=e(3),rg=e(5);function e(t){return function(i){let s=Xr[Si++];if(s==null){if(Me)return Pn(i);let o=C.byteOffset,l=r(b-t+o,dt+o,C.buffer);if(typeof l=="string")s=l,Xr=Mu;else if(Xr=l,Si=1,kt=1,s=Xr[0],s===void 0)throw new Error("Unexpected end of buffer")}let a=s.length;return a<=i?(b+=i,s):(er=s,ut=b,kt=b+a,b+=i,s.slice(0,i))}}}function Pn(r){let e;if(r<16&&(e=Lu(r)))return e;if(r>64&&_u)return _u.decode(C.subarray(b,b+=r));let t=b+r,n=[];for(e="";b<t;){let i=C[b++];if((i&128)===0)n.push(i);else if((i&224)===192){let s=C[b++]&63,a=(i&31)<<6|s;a<128?n.push(65533):n.push(a)}else if((i&240)===224){let s=C[b++]&63,a=C[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=C[b++]&63,a=C[b++]&63,o=C[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 Vb(r){let e=new Array(r);for(let t=0;t<r;t++)e[t]=De();return ye.freezeData?Object.freeze(e):e}function Gb(r){if(ye.mapsAsObjects){let e={};for(let t=0;t<r;t++){let n=ig();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 ng(r){let e=b,t=new Array(r);for(let n=0;n<r;n++){let i=C[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=C[b++];if((e&128)>1){b-=1;return}return Je(e)}}else{let e=C[b++],t=C[b++];if((e&128)>0||(t&128)>0){b-=2;return}if(r<3)return Je(e,t);let n=C[b++];if((n&128)>0){b-=3;return}return Je(e,t,n)}else{let e=C[b++],t=C[b++],n=C[b++],i=C[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=C[b++];if((s&128)>0){b-=5;return}return Je(e,t,n,i,s)}}else if(r<8){let s=C[b++],a=C[b++];if((s&128)>0||(a&128)>0){b-=6;return}if(r<7)return Je(e,t,n,i,s,a);let o=C[b++];if((o&128)>0){b-=7;return}return Je(e,t,n,i,s,a,o)}else{let s=C[b++],a=C[b++],o=C[b++],l=C[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=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=C[b++],u=C[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=C[b++];if((d&128)>0){b-=11;return}return Je(e,t,n,i,s,a,o,l,c,u,d)}else{let c=C[b++],u=C[b++],d=C[b++],p=C[b++];if((c&128)>0||(u&128)>0||(d&128)>0||(p&128)>0){b-=12;return}if(r<14){if(r===12)return Je(e,t,n,i,s,a,o,l,c,u,d,p);{let f=C[b++];if((f&128)>0){b-=13;return}return Je(e,t,n,i,s,a,o,l,c,u,d,p,f)}}else{let f=C[b++],h=C[b++];if((f&128)>0||(h&128)>0){b-=14;return}if(r<15)return Je(e,t,n,i,s,a,o,l,c,u,d,p,f,h);let g=C[b++];if((g&128)>0){b-=15;return}return Je(e,t,n,i,s,a,o,l,c,u,d,p,f,h,g)}}}}}function Yb(){let r=C[b++],e;if(r<192)e=r-160;else switch(r){case 217:e=C[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 Pn(e)}function Ru(r){return ye.copyBuffers?Uint8Array.prototype.slice.call(C,b,b+=r):C.subarray(b,b+=r)}function Zr(r){let e=C[b++];if(ze[e]){let t;return ze[e](C.subarray(b,t=b+=r),n=>{b=n;try{return De()}finally{b=t}})}else throw new Error("Unknown extension type "+e)}var Bb=new Array(4096);function ig(){let r=C[b++];if(r>=160&&r<192){if(r=r-160,kt>=b)return er.slice(b-ut,(b+=r)-ut);if(!(kt==0&&dt<180))return ea(r)}else return b--,sg(De());let e=(r<<5^(r>1?oe.getUint16(b):r>0?C[b]:0))&4095,t=Bb[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=C[n++],s!=t[a++]){n=1879048192;break}if(n===i)return b=n,t.string;i-=3,n=b}for(t=[],Bb[e]=t,t.bytes=r;n<i;)s=oe.getUint32(n),t.push(s),n+=4;for(i+=3;n<i;)s=C[n++],t.push(s);let o=r<16?Lu(r):ng(r);return o!=null?t.string=o:t.string=ea(r)}function sg(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(ye.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 Wb=(r,e)=>{let t=De().map(sg),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 p=s+8;p<a;p+=8)d<<=BigInt(64),d|=n.getBigUint64(p);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 Ub={Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError:typeof AggregateError=="function"?AggregateError:null};ze[101]=()=>{let r=De();if(!Ub[r[0]]){let e=Error(r[1],{cause:r[2]});return e.name=r[0],e}return Ub[r[0]](r[1],{cause:r[2]})};ze[105]=r=>{if(ye.structuredClone===!1)throw new Error("Structured clone extension is disabled");let e=oe.getUint32(b-4);tr||(tr=new Map);let t=C[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)&&C[b+1]===115?n=new Set:n={};let i={target:n};tr.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(ye.structuredClone===!1)throw new Error("Structured clone extension is disabled");let e=oe.getUint32(b-4),t=tr.get(e);return t.used=!0,t.target};ze[115]=()=>new Set(De());var ag=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(r=>r+"Array"),GA=typeof globalThis=="object"?globalThis:window;ze[116]=r=>{let e=r[0],t=Uint8Array.prototype.slice.call(r,1).buffer,n=ag[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 GA[n](t)};ze[120]=()=>{let r=De();return new RegExp(r[0],r[1])};var YA=[];ze[98]=r=>{let e=(r[0]<<24)+(r[1]<<16)+(r[2]<<8)+r[3],t=b;return b+=e-r.length,Me=YA,Me=[Yb(),Yb()],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 og(r){ye&&ye._onSaveState&&ye._onSaveState();let e=dt,t=b,n=Si,i=ut,s=kt,a=er,o=Xr,l=tr,c=Me,u=new Uint8Array(C.slice(0,dt)),d=le,p=le.slice(0,le.length),f=ye,h=Ir,g=r();return dt=e,b=t,Si=n,ut=i,kt=s,er=a,Xr=o,tr=l,Me=c,C=u,Ir=h,le=d,le.splice(0,le.length,...p),ye=f,oe=new DataView(C.buffer,C.byteOffset,C.byteLength),g}function ta(){C=null,tr=null,le=null}function BA(r){r.unpack?ze[r.type]=r.unpack:ze[r.type]=r}var aa=new Array(147);for(let r=0;r<256;r++)aa[r]=+("1e"+Math.floor(45.15-r*.30103));var WA=rr,oa=new rr({useRecords:!1}),UA=oa.unpack,zA=oa.unpackMultiple,$A=oa.unpack,lg={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},cg=new Float32Array(1),zb=new Uint8Array(cg.buffer,0,4);function HA(r){cg[0]=r;let e=aa[(zb[3]&127)<<1|zb[2]>>7];return(e*r+(r>0?.5:-.5)>>0)/e}rr.SUPPORTS_STRUCT_HOOKS=!0;var Zs;try{Zs=new TextEncoder}catch{}var ra,na,Mn=typeof Buffer<"u",Qs=Mn?function(r){return Buffer.allocUnsafeSlow(r)}:Uint8Array,ug=Mn?Buffer:Uint8Array,$b=Mn?4294967296:2144337920,S,Ki,ge,v=0,Ue,Te=null,QA=21760,ZA=/[\u0080-\uFFFF]/,_n=Symbol("record-id"),nr=class extends rr{constructor(e){super(e),this.offset=0;let t,n,i,s,a=ug.prototype.utf8Write?function(m,T){return S.utf8Write(m,T,S.byteLength-T)}:Zs&&Zs.encodeInto?function(m,T){return Zs.encodeInto(m,S.subarray(T)).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 p=u>32||d+u>64,f=u+64,h=u+d+64;if(h>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let g=[],k=0,E=0;this.pack=this.encode=function(m,T){if(S||(S=new Qs(8192),ge=S.dataView||(S.dataView=new DataView(S.buffer,0,8192)),v=0),Ue=S.length-10,Ue-v<2048?(S=new Qs(S.length),ge=S.dataView||(S.dataView=new DataView(S.buffer,0,S.length)),Ue=S.length-10,v=0):v=v+7&2147483640,t=v,T&yg&&(v+=T&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 R=0;R<j;R++){let W=i[R];if(!W)continue;let q,G=i.transitions;for(let re=0,me=W.length;re<me;re++){let Tt=W[re];q=G[Tt],q||(q=G[Tt]=Object.create(null)),G=q}G[_n]=R+64}this.lastNamedStructuresLength=j}l||(i.nextId=j+64)}n&&(n=!1);let x;try{o._writeStruct&&m&&typeof m=="object"?m.constructor===Object?M(m):m.constructor!==Map&&!Array.isArray(m)&&!na.some(R=>m instanceof R)?M(m.toJSON?m.toJSON():m):D(m):D(m);let j=Te;if(Te&&Qb(t,D,0),s&&s.idsToInsert){let R=s.idsToInsert.sort((re,me)=>re.offset>me.offset?1:-1),W=R.length,q=-1;for(;j&&W>0;){let re=R[--W].offset+t;re<j.stringsPosition+t&&q===-1&&(q=0),re>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+=R.length*6,v>Ue&&V(v),o.offset=v;let G=XA(S.subarray(t,v),R);return s=null,G}return o.offset=v,T&fg?(S.start=t,S.end=v,S):S.subarray(t,v)}catch(j){throw x=j,j}finally{if(i&&(I(),n&&o.saveStructures)){let j=i.sharedLength||0,R=S.subarray(t,v),W=(o._prepareStructures||tD)(i,o);if(!x)return o.saveStructures(W,W.isCompatible)===!1?o.pack(m,T):(o.lastNamedStructuresLength=j,S.length>1073741824&&(S=null),R)}S.length>1073741824&&(S=null),T&pg&&(v=t)}};let I=()=>{E<10&&E++;let m=i.sharedLength||0;if(i.length>m&&!l&&(i.length=m),k>1e4)i.transitions=null,E=0,k=0,g.length>0&&(g=[]);else if(g.length>0&&!l){for(let T=0,x=g.length;T<x;T++)g[T][_n]=0;g=[]}},O=m=>{var T=m.length;T<16?S[v++]=144|T:T<65536?(S[v++]=220,S[v++]=T>>8,S[v++]=T&255):(S[v++]=221,ge.setUint32(v,T),v+=4);for(let x=0;x<T;x++)D(m[x])},D=m=>{v>Ue&&(S=V(v));var T=typeof m,x;if(T==="string"){let j=m.length;if(Te&&j>=4&&j<4096){if((Te.size+=j)>QA){let G,re=(Te[0]?Te[0].length*3+Te[1].length:0)+10;v+re>Ue&&(S=V(v+re));let me;Te.position?(me=Te,S[v]=200,v+=3,S[v++]=98,G=v-t,v+=4,Qb(t,D,0),ge.setUint16(G+t-3,v-t-G)):(S[v++]=214,S[v++]=98,G=v-t,v+=4),Te=["",""],Te.previous=me,Te.size=0,Te.position=G}let q=ZA.test(m);Te[q?0:1]+=m,S[v++]=193,D(q?-j:j);return}let R;j<32?R=1:j<256?R=2:j<65536?R=3:R=5;let W=j*3;if(v+W>Ue&&(S=V(v+W)),j<64||!a){let q,G,re,me=v+R;for(q=0;q<j;q++)G=m.charCodeAt(q),G<128?S[me++]=G:G<2048?(S[me++]=G>>6|192,S[me++]=G&63|128):(G&64512)===55296&&((re=m.charCodeAt(q+1))&64512)===56320?(G=65536+((G&1023)<<10)+(re&1023),q++,S[me++]=G>>18|240,S[me++]=G>>12&63|128,S[me++]=G>>6&63|128,S[me++]=G&63|128):(S[me++]=G>>12|224,S[me++]=G>>6&63|128,S[me++]=G&63|128);x=me-v-R}else x=a(m,v+R);x<32?S[v++]=160|x:x<256?(R<2&&S.copyWithin(v+2,v+1,v+1+x),S[v++]=217,S[v++]=x):x<65536?(R<3&&S.copyWithin(v+3,v+2,v+2+x),S[v++]=218,S[v++]=x>>8,S[v++]=x&255):(R<5&&S.copyWithin(v+5,v+3,v+3+x),S[v++]=219,ge.setUint32(v,x),v+=4),v+=x}else if(T==="number")if(m>>>0===m)m<32||m<128&&this.useRecords===!1||m<64&&!this._writeStruct?S[v++]=m:m<256?(S[v++]=204,S[v++]=m):m<65536?(S[v++]=205,S[v++]=m>>8,S[v++]=m&255):(S[v++]=206,ge.setUint32(v,m),v+=4);else if(m>>0===m)m>=-32?S[v++]=256+m:m>=-128?(S[v++]=208,S[v++]=m+256):m>=-32768?(S[v++]=209,ge.setInt16(v,m),v+=2):(S[v++]=210,ge.setInt32(v,m),v+=4);else{let j;if((j=this.useFloat32)>0&&m<4294967296&&m>=-2147483648){S[v++]=202,ge.setFloat32(v,m);let R;if(j<4||(R=m*aa[(S[v]&127)<<1|S[v+1]>>7])>>0===R){v+=4;return}else v--}S[v++]=203,ge.setFloat64(v,m),v+=8}else if(T==="object"||T==="function")if(!m)S[v++]=192;else{if(s){let R=s.get(m);if(R){if(!R.id){let W=s.idsToInsert||(s.idsToInsert=[]);R.id=W.push(R)}S[v++]=214,S[v++]=112,ge.setUint32(v,R.id),v+=4;return}else s.set(m,{offset:v-t})}let j=m.constructor;if(j===Object)K(m);else if(j===Array)O(m);else if(j===Map)if(this.mapAsEmptyObject)S[v++]=128;else{x=m.size,x<16?S[v++]=128|x:x<65536?(S[v++]=222,S[v++]=x>>8,S[v++]=x&255):(S[v++]=223,ge.setUint32(v,x),v+=4);for(let[R,W]of m)D(R),D(W)}else{for(let R=0,W=ra.length;R<W;R++){let q=na[R];if(m instanceof q){let G=ra[R];if(G.write){G.type&&(S[v++]=212,S[v++]=G.type,S[v++]=0);let zt=G.write.call(this,m);zt===m?Array.isArray(m)?O(m):K(m):D(zt);return}let re=S,me=ge,Tt=v;S=null;let jt;try{jt=G.pack.call(this,m,zt=>(S=re,re=null,v+=zt,v>Ue&&V(v),{target:S,targetView:ge,position:v-zt}),D)}finally{re&&(S=re,ge=me,v=Tt,Ue=S.length-10)}jt&&(jt.length+v>Ue&&V(jt.length+v),v=Hb(jt,S,v,G.type));return}}if(Array.isArray(m))O(m);else{if(m.toJSON){let R=m.toJSON();if(R!==m)return D(R)}if(T==="function")return D(this.writeFunction&&this.writeFunction(m));K(m)}}}else if(T==="boolean")S[v++]=m?195:194;else if(T==="bigint"){if(m<9223372036854776e3&&m>=-9223372036854776e3)S[v++]=211,ge.setBigInt64(v,m);else if(m<18446744073709552e3&&m>0)S[v++]=207,ge.setBigUint64(v,m);else if(this.largeBigIntToFloat)S[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),R;if(m>>BigInt(65536)===j){let W=BigInt(18446744073709552e3)-BigInt(1),q=[];for(;q.push(m&W),m>>BigInt(63)!==j;)m>>=BigInt(64);R=new Uint8Array(new BigUint64Array(q).buffer),R.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),Mn)R=Buffer.from(q,"hex");else{R=new Uint8Array(q.length/2);for(let G=0;G<R.length;G++)R[G]=parseInt(q.slice(G*2,G*2+2),16)}if(W)for(let G=0;G<R.length;G++)R[G]=~R[G]}R.length+v>Ue&&V(R.length+v),v=Hb(R,S,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(T==="undefined")this.encodeUndefinedAsNil?S[v++]=192:(S[v++]=212,S[v++]=0,S[v++]=0);else throw new Error("Unknown type: "+T)},B=this.variableMapSize||this.coercibleKeyAsNumber||this.skipValues?m=>{let T;if(this.skipValues){T=[];for(let R in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(R))&&!this.skipValues.includes(m[R])&&T.push(R)}else T=Object.keys(m);let x=T.length;x<16?S[v++]=128|x:x<65536?(S[v++]=222,S[v++]=x>>8,S[v++]=x&255):(S[v++]=223,ge.setUint32(v,x),v+=4);let j;if(this.coercibleKeyAsNumber)for(let R=0;R<x;R++){j=T[R];let W=Number(j);D(isNaN(W)?j:W),D(m[j])}else for(let R=0;R<x;R++)D(j=T[R]),D(m[j])}:m=>{S[v++]=222;let T=v-t;v+=2;let x=0;for(let j in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(j))&&(D(j),D(m[j]),x++);if(x>65535)throw new Error('Object is too large to serialize with fast 16-bit map size, use the "variableMapSize" option to serialize this object');S[T+++t]=x>>8,S[T+t]=x&255},ae=this.useRecords===!1?B:e.progressiveRecords&&!p?m=>{let T,x=i.transitions||(i.transitions=Object.create(null)),j=v++-t,R;for(let W in m)if(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(W)){if(T=x[W],T)x=T;else{let q=Object.keys(m),G=x;x=i.transitions;let re=0;for(let me=0,Tt=q.length;me<Tt;me++){let jt=q[me];T=x[jt],T||(T=x[jt]=Object.create(null),re++),x=T}j+t+1==v?(v--,_(x,q,re)):A(x,q,j,re),R=!0,x=G[W]}D(m[W])}if(!R){let W=x[_n];W?S[j+t]=W:A(x,Object.keys(m),j,0)}}:m=>{let T,x=i.transitions||(i.transitions=Object.create(null)),j=0;for(let W in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(W))&&(T=x[W],T||(T=x[W]=Object.create(null),j++),x=T);let R=x[_n];R?R>=96&&p?(S[v++]=((R-=96)&31)+96,S[v++]=R>>5):S[v++]=R:_(x,x.__keys__||Object.keys(m),j);for(let W in m)(typeof m.hasOwnProperty!="function"||m.hasOwnProperty(W))&&D(m[W])},w=typeof this.useRecords=="function"&&this.useRecords,K=w?m=>{w(m)?ae(m):B(m)}:ae,M=m=>{let T=o._writeStruct(m,S,t,v,i,V,(x,j,R)=>{if(R)return n=!0;v=j;let W=S;return D(x),I(),W!==S?{position:v,targetView:ge,target:S}:v});if(T===0)return K(m);v=T},V=m=>{let T;if(m>16777216){if(m-t>$b)throw new Error("Packed buffer would be larger than maximum buffer size");T=Math.min($b,Math.round(Math.max((m-t)*(m>67108864?1.25:2),4194304)/4096)*4096)}else T=(Math.max(m-t<<2,S.length-1)>>12)+1<<12;let x=new Qs(T);return ge=x.dataView||(x.dataView=new DataView(x.buffer,0,T)),m=Math.min(m,S.length),S.copy?S.copy(x,0,t,m):x.set(S.slice(t,m)),v-=t,t=0,Ue=x.length-10,S=x},_=(m,T,x)=>{let j=i.nextId;j||(j=64),j<f&&this.shouldShareStructure&&!this.shouldShareStructure(T)?(j=i.nextOwnId,j<h||(j=f),i.nextOwnId=j+1):(j>=h&&(j=f),i.nextId=j+1);let R=T.highByte=j>=96&&p?j-96>>5:-1;m[_n]=j,m.__keys__=T,i[j-64]=T,j<f?(T.isShared=!0,i.sharedLength=j-63,n=!0,R>=0?(S[v++]=(j&31)+96,S[v++]=R):S[v++]=j):(R>=0?(S[v++]=213,S[v++]=114,S[v++]=(j&31)+96,S[v++]=R):(S[v++]=212,S[v++]=114,S[v++]=j),x&&(k+=E*x),g.length>=d&&(g.shift()[_n]=0),g.push(m),D(T))},A=(m,T,x,j)=>{let R=S,W=v,q=Ue,G=t;S=Ki,v=0,t=0,S||(Ki=S=new Qs(8192)),Ue=S.length-10,_(m,T,j),Ki=S;let re=v;if(S=R,v=W,Ue=q,t=G,re>1){let me=v+re-1;me>Ue&&V(me);let Tt=x+t;S.copyWithin(Tt+re,Tt+1,v),S.set(Ki.slice(0,re),Tt),v=me}else S[x+t]=Ki[0]}}useBuffer(e){S=e,S.dataView||(S.dataView=new DataView(S.buffer,S.byteOffset,S.byteLength)),ge=S.dataView,v=0}set position(e){v=e}get position(){return v}clearSharedData(){this.structures&&(this.structures=[]),this.typedStructs&&(this.typedStructs=[])}};na=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,DataView,Xs];ra=[{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(Mn?Buffer.from(r):new Uint8Array(r),e)}},{pack(r,e){let t=r.constructor;t!==ug&&this.moreTypes?Ou(r,ag.indexOf(t.name),e):Cu(r,e)}},{pack(r,e){this.moreTypes?Ou(r,17,e):Cu(Mn?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 Hb(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 XA(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 Qb(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 eD(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)");na.unshift(r.Class),ra.unshift(r)}BA(r)}function tD(r,e){return r.isCompatible=t=>{let n=!t||(e.lastNamedStructuresLength||0)===t.length;return n||e._mergeStructures(t),n},r}nr.SUPPORTS_STRUCT_HOOKS=!0;var dg=new nr({useRecords:!1}),rD=dg.pack,nD=dg.pack,iD=nr,{NEVER:sD,ALWAYS:aD,DECIMAL_ROUND:oD,DECIMAL_FIT:lD}=lg,fg=512,pg=1024,yg=2048,ia=class extends Zb.Transform{constructor(e){e||(e={}),e.writableObjectMode=!0,super(e),e.sequential=!0,this.packr=e.packr||new nr(e)}_transform(e,t,n){this.push(this.packr.pack(e)),n()}},sa=class extends Zb.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 rr(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 cD(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 uD(r,e);if(typeof r.then=="function"||typeof r[Symbol.asyncIterator]=="function")return dD(r,e);throw new Error("first argument must be an Iterable, Async Iterable, Iterator, Async Iterator, or a Promise")}function*uD(r,e){let t=new nr(e);for(let n of r)yield t.pack(n)}async function*dD(r,e){let t=new nr(e);for await(let n of r)yield t.pack(n)}function fD(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 rr(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 pD=fD,yD=cD,hD=!1,mD=!0,bD=process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!bD){let r;try{typeof Y=="function"?r=Nb():r=JA.createRequire(typeof document>"u"?new(Y("url")).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("node.cjs",document.baseURI).href)("msgpackr-extract"),r&&VA(r.extractStrings)}catch{}}fe.ALWAYS=aD;fe.C1=Pu;fe.DECIMAL_FIT=lD;fe.DECIMAL_ROUND=oD;fe.Decoder=WA;fe.DecoderStream=sa;fe.Encoder=iD;fe.EncoderStream=ia;fe.FLOAT32_OPTIONS=lg;fe.NEVER=sD;fe.Packr=nr;fe.PackrStream=ia;fe.RESERVE_START_SPACE=yg;fe.RESET_BUFFER_MODE=pg;fe.REUSE_BUFFER_MODE=fg;fe.Unpackr=rr;fe.UnpackrStream=sa;fe.addExtension=eD;fe.clearSource=ta;fe.decode=$A;fe.decodeIter=pD;fe.encode=nD;fe.encodeIter=yD;fe.mapsAsObjects=mD;fe.pack=rD;fe.roundFloat32=HA;fe.unpack=UA;fe.unpackMultiple=zA;fe.useRecords=hD});var ca=y(la=>{"use strict";Object.defineProperty(la,"__esModule",{value:!0});la.version=void 0;la.version="5.76.6"});var Ju=y(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.Scripts=void 0;Ei.raw2NextJobData=ua;var gD=hg(),vD=new gD.Packr({useRecords:!1,encodeUndefinedAsNil:!0}),Pe=vD.pack,Rt=st(),xr=ct(),KD=ca(),SD=Ys(),qu=class{constructor(e){this.queue=e,this.version=KD.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):""],p=await this.execCommand(l,"addJobScheduler",u.concat(d));if(typeof p=="number"&&p<0)throw this.finishedErrors({code:p,command:"addJobScheduler"});return p}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,p,f,h,g,k;let E=this.queue.keys,I=this.queue.opts,O=s==="completed"?I.removeOnComplete:I.removeOnFail,D=this.queue.toKey(`metrics:${s}`),B=this.moveToFinishedKeys;B[10]=E[s],B[11]=this.queue.toKey((u=e.id)!==null&&u!==void 0?u:""),B[12]=D,B[13]=this.queue.keys.marker;let ae=this.getKeepJobs(i,O),w=[e.id,o,n,typeof t>"u"?"null":t,s,!l||this.queue.closing?0:1,E[""],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?(p=I.metrics)===null||p===void 0?void 0:p.maxDataPoints:"",fpof:!!(!((f=e.opts)===null||f===void 0)&&f.failParentOnFailure),cpof:!!(!((h=e.opts)===null||h===void 0)&&h.continueParentOnFailure),idof:!!(!((g=e.opts)===null||g===void 0)&&g.ignoreDependencyOnFailure),rdof:!!(!((k=e.opts)===null||k===void 0)&&k.removeDependencyOnFailure)}),c?Pe((0,xr.objectToFlatArray)(c)):void 0];return B.concat(w)}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 ua(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 ua(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 ua(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,p=[],f=[];do{let h=[t.start+p.length,t.end,o,l,s];t.fetchJobs&&h.push(1),[o,l,c,u,d]=await this.execCommand(n,"paginate",i.concat(h)),p=p.concat(c),d&&d.length&&(f=f.concat(d.map(xr.array2obj)))}while(o!="0"&&p.length<a);if(p.length&&Array.isArray(p[0])){let h=[];for(let g=0;g<p.length;g++){let[k,E]=p[g];try{h.push({id:k,v:JSON.parse(E)})}catch(I){h.push({id:k,err:I.message})}}return{cursor:o,items:h,total:u,jobs:f}}else return{cursor:o,items:p.map(h=>({id:h})),total:u,jobs:f}}finishedErrors({code:e,jobId:t,parentKey:n,command:i,state:s}){let a;switch(e){case Rt.ErrorCode.JobNotExist:a=new Error(`Missing key for job ${t}. ${i}`);break;case Rt.ErrorCode.JobLockNotExist:a=new Error(`Missing lock for job ${t}. ${i}`);break;case Rt.ErrorCode.JobNotInState:a=new Error(`Job ${t} is not in the ${s} state. ${i}`);break;case Rt.ErrorCode.JobPendingChildren:a=new Error(`Job ${t} has pending dependencies. ${i}`);break;case Rt.ErrorCode.ParentJobNotExist:a=new Error(`Missing key for parent job ${n}. ${i}`);break;case Rt.ErrorCode.JobLockMismatch:a=new Error(`Lock mismatch for job ${t}. Cmd ${i} from ${s}`);break;case Rt.ErrorCode.ParentJobCannotBeReplaced:a=new Error(`The parent job ${n} cannot be replaced. ${i}`);break;case Rt.ErrorCode.JobBelongsToJobScheduler:a=new Error(`Job ${t} belongs to a job scheduler and cannot be removed directly. ${i}`);break;case Rt.ErrorCode.JobHasFailedChildren:a=new SD.UnrecoverableError(`Cannot complete job ${t} because it has at least one failed child. ${i}`);break;case Rt.ErrorCode.SchedulerJobIdCollision:a=new Error(`Cannot create job scheduler iteration - job ID already exists. ${i}`);break;case Rt.ErrorCode.SchedulerJobSlotsBusy:a=new Error(`Cannot create job scheduler iteration - current and next time slots already have jobs. ${i}`);break;default:a=new Error(`Unknown code ${e} error for ${t}. ${i}`)}return a.code=e,a}async removeOrphanedJobs(e,t,n){let i=await this.queue.client,s=[this.queue.toKey(""),t.length,...t,n.length,...n,...e];return this.execCommand(i,"removeOrphanedJobs",s)}};Ei.Scripts=qu;function ua(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 fa=y(da=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});da.createScripts=void 0;var ED=Ju(),kD=r=>new ED.Scripts({keys:r.keys,client:r.client,get redisVersion(){return r.redisVersion},toKey:r.toKey,opts:r.opts,closing:r.closing,databaseType:r.databaseType});da.createScripts=kD});var Nn=y(wr=>{"use strict";Object.defineProperty(wr,"__esModule",{value:!0});wr.Job=wr.PRIORITY_LIMIT=void 0;var mg=(Qe(),nt(He)),ID=Y("util"),tt=ct(),xD=fa(),bg=Lc(),wD=vu(),at=st(),TD=(0,ID.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=mg.__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=bg.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=jD(t.stacktrace),typeof t.returnvalue=="string"&&(a.returnvalue=gg(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,xD.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 mg.__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 wD.UnrecoverableError||e.name=="UnrecoverableError")){let t=this.queue.opts,n=await bg.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 p={failedReason:this.failedReason,stacktrace:JSON.stringify(this.stacktrace),tm:u},f;if(i)s?(d=await this.scripts.moveToDelayed(this.id,Date.now(),s,t,{fieldsToUpdate:p,fetchNext:n}),this.recordJobMetrics("delayed")):(d=await this.scripts.retryJob(this.id,this.opts.lifo,t,{fieldsToUpdate:p}),this.recordJobMetrics("retried"));else{let h=this.scripts.moveToFailedArgs(this,this.failedReason,this.opts.removeOnFail,t,n,p);d=await this.scripts.moveToFinished(this.id,h),f=h[this.scripts.moveToFinishedKeys.length+1],this.recordJobMetrics("failed")}return f&&typeof f=="number"&&(this.finishedOn=f),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,p,f,h;return s.forEach((g,k)=>{switch(g){case"processed":{l=o[k][1][0];let E=o[k][1][1],I={};for(let O=0;O<E.length;++O)O%2&&(I[E[O-1]]=JSON.parse(E[O]));c=I;break}case"failed":{p=o[k][1];break}case"ignored":{f=o[k][1][0];let E=o[k][1][1],I={};for(let O=0;O<E.length;++O)O%2&&(I[E[O-1]]=E[O]);h=I;break}case"unprocessed":{u=o[k][1][0],d=o[k][1][1];break}}}),Object.assign(Object.assign(Object.assign(Object.assign({},l?{processed:c,nextProcessedCursor:Number(l)}:{}),f?{ignored:h,nextIgnoredCursor:Number(f)}:{}),a?{failed:p,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[p,f]=await this.scripts.isFinished(n,!0);p!=0&&(p==-1||p==2?l({failedReason:f}):o({returnvalue:gg(f)}))})}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 p=u.filter(f=>this.opts[f]);if(p.length>1){let f=p.join(", ");throw new Error(`The following options cannot be used together: ${f}`)}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 jD(r){if(!r)return[];let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);return e===tt.errorObject||!(e instanceof Array)?[]:e}function gg(r){let e=(0,tt.tryCatch)(JSON.parse,JSON,[r]);if(e!==tt.errorObject)return e;TD("corrupted returnvalue: "+r,e)}});var ya=y(pa=>{"use strict";Object.defineProperty(pa,"__esModule",{value:!0});pa.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}`}};pa.QueueKeys=Vu});var vg=y(ha=>{"use strict";Object.defineProperty(ha,"__esModule",{value:!0});ha.addDelayedJob=void 0;var AD=`--[[
|
|
166
166
|
Adds a delayed job to the queue by doing the following:
|
|
167
167
|
- Increases the job counter if needed.
|
|
168
168
|
- Creates a new job key with the job data.
|
|
@@ -730,7 +730,7 @@ if parentDependenciesKey ~= nil then
|
|
|
730
730
|
rcall("SADD", parentDependenciesKey, jobIdKey)
|
|
731
731
|
end
|
|
732
732
|
return jobId .. "" -- convert to string
|
|
733
|
-
`;
|
|
733
|
+
`;ha.addDelayedJob={name:"addDelayedJob",content:AD,keys:6}});var Kg=y(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.addJobScheduler=void 0;var DD=`--[[
|
|
734
734
|
Adds a job scheduler, i.e. a job factory that creates jobs based on a given schedule (repeat options).
|
|
735
735
|
Input:
|
|
736
736
|
KEYS[1] 'repeat' key
|
|
@@ -1304,7 +1304,7 @@ if ARGV[9] ~= "" then
|
|
|
1304
1304
|
rcall("HSET", ARGV[9], "nrjid", jobId)
|
|
1305
1305
|
end
|
|
1306
1306
|
return {jobId .. "", delay}
|
|
1307
|
-
`;
|
|
1307
|
+
`;ma.addJobScheduler={name:"addJobScheduler",content:DD,keys:11}});var Sg=y(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.addLog=void 0;var RD=`--[[
|
|
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
|
-
`;
|
|
1330
|
+
`;ba.addLog={name:"addLog",content:RD,keys:2}});var Eg=y(ga=>{"use strict";Object.defineProperty(ga,"__esModule",{value:!0});ga.addParentJob=void 0;var OD=`--[[
|
|
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
|
-
`;
|
|
1795
|
+
`;ga.addParentJob={name:"addParentJob",content:OD,keys:6}});var kg=y(va=>{"use strict";Object.defineProperty(va,"__esModule",{value:!0});va.addPrioritizedJob=void 0;var CD=`--[[
|
|
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
|
-
`;
|
|
2333
|
+
`;va.addPrioritizedJob={name:"addPrioritizedJob",content:CD,keys:9}});var Ig=y(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});Ka.addRepeatableJob=void 0;var _D=`--[[
|
|
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
|
-
`;
|
|
2561
|
+
`;Ka.addRepeatableJob={name:"addRepeatableJob",content:_D,keys:2}});var xg=y(Sa=>{"use strict";Object.defineProperty(Sa,"__esModule",{value:!0});Sa.addStandardJob=void 0;var MD=`--[[
|
|
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
|
-
`;
|
|
3103
|
+
`;Sa.addStandardJob={name:"addStandardJob",content:MD,keys:9}});var wg=y(Ea=>{"use strict";Object.defineProperty(Ea,"__esModule",{value:!0});Ea.changeDelay=void 0;var PD=`--[[
|
|
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`;
|
|
3200
|
+
end`;Ea.changeDelay={name:"changeDelay",content:PD,keys:4}});var Tg=y(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.changePriority=void 0;var ND=`--[[
|
|
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
|
-
`;
|
|
3318
|
+
`;ka.changePriority={name:"changePriority",content:ND,keys:7}});var jg=y(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.cleanJobsInSet=void 0;var LD=`--[[
|
|
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
|
-
`;
|
|
3677
|
+
`;Ia.cleanJobsInSet={name:"cleanJobsInSet",content:LD,keys:3}});var Ag=y(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.drain=void 0;var qD=`--[[
|
|
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
|
-
`;
|
|
3942
|
+
`;xa.drain={name:"drain",content:qD,keys:5}});var Dg=y(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.extendLock=void 0;var JD=`--[[
|
|
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
|
-
`;
|
|
3962
|
+
`;wa.extendLock={name:"extendLock",content:JD,keys:2}});var Rg=y(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.extendLocks=void 0;var FD=`--[[
|
|
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
|
-
`;
|
|
4002
|
+
`;Ta.extendLocks={name:"extendLocks",content:FD,keys:1}});var Og=y(ja=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});ja.getCounts=void 0;var VD=`--[[
|
|
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
|
-
`;
|
|
4034
|
+
`;ja.getCounts={name:"getCounts",content:VD,keys:1}});var Cg=y(Aa=>{"use strict";Object.defineProperty(Aa,"__esModule",{value:!0});Aa.getCountsPerPriority=void 0;var GD=`--[[
|
|
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
|
-
`;
|
|
4070
|
+
`;Aa.getCountsPerPriority={name:"getCountsPerPriority",content:GD,keys:4}});var _g=y(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.getDependencyCounts=void 0;var YD=`--[[
|
|
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
|
-
`;
|
|
4097
|
+
`;Da.getDependencyCounts={name:"getDependencyCounts",content:YD,keys:4}});var Mg=y(Ra=>{"use strict";Object.defineProperty(Ra,"__esModule",{value:!0});Ra.getJobScheduler=void 0;var BD=`--[[
|
|
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
|
-
`;
|
|
4110
|
+
`;Ra.getJobScheduler={name:"getJobScheduler",content:BD,keys:1}});var Pg=y(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.getMetrics=void 0;var WD=`--[[
|
|
4111
4111
|
Get metrics
|
|
4112
4112
|
Input:
|
|
4113
4113
|
KEYS[1] 'metrics' key
|
|
@@ -4122,7 +4122,7 @@ local metrics = rcall("HMGET", metricsKey, "count", "prevTS", "prevCount")
|
|
|
4122
4122
|
local data = rcall("LRANGE", dataKey, tonumber(ARGV[1]), tonumber(ARGV[2]))
|
|
4123
4123
|
local numPoints = rcall("LLEN", dataKey)
|
|
4124
4124
|
return {metrics, data, numPoints}
|
|
4125
|
-
`;
|
|
4125
|
+
`;Oa.getMetrics={name:"getMetrics",content:WD,keys:2}});var Ng=y(Ca=>{"use strict";Object.defineProperty(Ca,"__esModule",{value:!0});Ca.getRanges=void 0;var UD=`--[[
|
|
4126
4126
|
Get job ids per provided states
|
|
4127
4127
|
Input:
|
|
4128
4128
|
KEYS[1] 'prefix'
|
|
@@ -4185,7 +4185,7 @@ for i = 4, #ARGV do
|
|
|
4185
4185
|
end
|
|
4186
4186
|
end
|
|
4187
4187
|
return results
|
|
4188
|
-
`;
|
|
4188
|
+
`;Ca.getRanges={name:"getRanges",content:UD,keys:1}});var Lg=y(_a=>{"use strict";Object.defineProperty(_a,"__esModule",{value:!0});_a.getRateLimitTtl=void 0;var zD=`--[[
|
|
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
|
-
`;
|
|
4222
|
+
`;_a.getRateLimitTtl={name:"getRateLimitTtl",content:zD,keys:2}});var qg=y(Ma=>{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.getState=void 0;var $D=`--[[
|
|
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
|
-
`;
|
|
4285
|
+
`;Ma.getState={name:"getState",content:$D,keys:8}});var Jg=y(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.getStateV2=void 0;var HD=`--[[
|
|
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
|
-
`;
|
|
4332
|
+
`;Pa.getStateV2={name:"getStateV2",content:HD,keys:8}});var Fg=y(Na=>{"use strict";Object.defineProperty(Na,"__esModule",{value:!0});Na.isFinished=void 0;var QD=`--[[
|
|
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
|
-
`;
|
|
4371
|
+
`;Na.isFinished={name:"isFinished",content:QD,keys:3}});var Vg=y(La=>{"use strict";Object.defineProperty(La,"__esModule",{value:!0});La.isJobInList=void 0;var ZD=`--[[
|
|
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
|
-
`;
|
|
4393
|
+
`;La.isJobInList={name:"isJobInList",content:ZD,keys:1}});var Gg=y(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.isMaxed=void 0;var XD=`--[[
|
|
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
|
-
`;
|
|
4417
|
+
`;qa.isMaxed={name:"isMaxed",content:XD,keys:2}});var Yg=y(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.moveJobFromActiveToWait=void 0;var eR=`--[[
|
|
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
|
-
`;
|
|
4541
|
+
`;Ja.moveJobFromActiveToWait={name:"moveJobFromActiveToWait",content:eR,keys:9}});var Bg=y(Fa=>{"use strict";Object.defineProperty(Fa,"__esModule",{value:!0});Fa.moveJobsToWait=void 0;var tR=`--[[
|
|
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
|
-
`;
|
|
4649
|
+
`;Fa.moveJobsToWait={name:"moveJobsToWait",content:tR,keys:8}});var Wg=y(Va=>{"use strict";Object.defineProperty(Va,"__esModule",{value:!0});Va.moveStalledJobsToWait=void 0;var rR=`--[[
|
|
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
|
-
`;
|
|
4824
|
+
`;Va.moveStalledJobsToWait={name:"moveStalledJobsToWait",content:rR,keys:8}});var Ug=y(Ga=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});Ga.moveToActive=void 0;var nR=`--[[
|
|
4825
4825
|
Move next job to be processed to active, lock it and fetch its data. The job
|
|
4826
4826
|
may be delayed, in that case we need to move it to the delayed set instead.
|
|
4827
4827
|
This operation guarantees that the worker owns the job during the lock
|
|
@@ -5055,7 +5055,7 @@ end
|
|
|
5055
5055
|
local nextTimestamp = getNextDelayedTimestamp(delayedKey)
|
|
5056
5056
|
if nextTimestamp ~= nil then return {0, 0, 0, nextTimestamp} end
|
|
5057
5057
|
return {0, 0, 0, 0}
|
|
5058
|
-
`;
|
|
5058
|
+
`;Ga.moveToActive={name:"moveToActive",content:nR,keys:11}});var zg=y(Ya=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});Ya.moveToDelayed=void 0;var iR=`--[[
|
|
5059
5059
|
Moves job from active to delayed set.
|
|
5060
5060
|
Input:
|
|
5061
5061
|
KEYS[1] marker key
|
|
@@ -5444,7 +5444,7 @@ if rcall("EXISTS", jobKey) == 1 then
|
|
|
5444
5444
|
else
|
|
5445
5445
|
return -1
|
|
5446
5446
|
end
|
|
5447
|
-
`;
|
|
5447
|
+
`;Ya.moveToDelayed={name:"moveToDelayed",content:iR,keys:12}});var $g=y(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.moveToFinished=void 0;var sR=`--[[
|
|
5448
5448
|
Move job from active to a finished status (completed o failed)
|
|
5449
5449
|
A job can only be moved to completed if it was active.
|
|
5450
5450
|
The job must be locked before it can be moved to a finished status,
|
|
@@ -6471,7 +6471,7 @@ if rcall("EXISTS", jobIdKey) == 1 then -- Make sure job exists
|
|
|
6471
6471
|
else
|
|
6472
6472
|
return -1
|
|
6473
6473
|
end
|
|
6474
|
-
`;
|
|
6474
|
+
`;Ba.moveToFinished={name:"moveToFinished",content:sR,keys:14}});var Hg=y(Wa=>{"use strict";Object.defineProperty(Wa,"__esModule",{value:!0});Wa.moveToWaitingChildren=void 0;var aR=`--[[
|
|
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
|
-
`;
|
|
6571
|
+
`;Wa.moveToWaitingChildren={name:"moveToWaitingChildren",content:aR,keys:7}});var Qg=y(Ua=>{"use strict";Object.defineProperty(Ua,"__esModule",{value:!0});Ua.obliterate=void 0;var oR=`--[[
|
|
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
|
-
`;
|
|
6905
|
+
`;Ua.obliterate={name:"obliterate",content:oR,keys:2}});var Zg=y(za=>{"use strict";Object.defineProperty(za,"__esModule",{value:!0});za.paginate=void 0;var lR=`--[[
|
|
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
|
-
`;
|
|
7005
|
+
`;za.paginate={name:"paginate",content:lR,keys:1}});var Xg=y($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});$a.pause=void 0;var cR=`--[[
|
|
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
|
-
|
|
7062
|
+
`;$a.pause={name:"pause",content:cR,keys:7}});var e0=y(Ha=>{"use strict";Object.defineProperty(Ha,"__esModule",{value:!0});Ha.promote=void 0;var uR=`--[[
|
|
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
|
-
`;
|
|
7162
|
+
`;Ha.promote={name:"promote",content:uR,keys:9}});var t0=y(Qa=>{"use strict";Object.defineProperty(Qa,"__esModule",{value:!0});Qa.releaseLock=void 0;var dR=`--[[
|
|
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
|
-
|
|
7177
|
+
`;Qa.releaseLock={name:"releaseLock",content:dR,keys:1}});var r0=y(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.removeChildDependency=void 0;var fR=`--[[
|
|
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`;
|
|
7332
|
+
end`;Za.removeChildDependency={name:"removeChildDependency",content:fR,keys:1}});var n0=y(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.removeDeduplicationKey=void 0;var pR=`--[[
|
|
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
|
-
`;
|
|
7349
|
+
`;Xa.removeDeduplicationKey={name:"removeDeduplicationKey",content:pR,keys:1}});var i0=y(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.removeJob=void 0;var yR=`--[[
|
|
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
|
-
`;
|
|
7691
|
+
`;eo.removeJob={name:"removeJob",content:yR,keys:2}});var s0=y(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.removeJobScheduler=void 0;var hR=`--[[
|
|
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
|
-
`;
|
|
7730
|
+
`;to.removeJobScheduler={name:"removeJobScheduler",content:hR,keys:3}});var a0=y(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.removeOrphanedJobs=void 0;var mR=`--[[
|
|
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
|
-
`;
|
|
7797
|
+
`;ro.removeOrphanedJobs={name:"removeOrphanedJobs",content:mR,keys:1}});var o0=y(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.removeRepeatable=void 0;var bR=`--[[
|
|
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
|
-
`;
|
|
7850
|
+
`;no.removeRepeatable={name:"removeRepeatable",content:bR,keys:3}});var l0=y(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.removeUnprocessedChildren=void 0;var gR=`--[[
|
|
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
|
-
`;
|
|
8182
|
+
`;io.removeUnprocessedChildren={name:"removeUnprocessedChildren",content:gR,keys:2}});var c0=y(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.reprocessJob=void 0;var vR=`--[[
|
|
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
|
-
`;
|
|
8291
|
+
`;so.reprocessJob={name:"reprocessJob",content:vR,keys:8}});var u0=y(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.retryJob=void 0;var KR=`--[[
|
|
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
|
-
`;
|
|
8495
|
+
`;ao.retryJob={name:"retryJob",content:KR,keys:11}});var d0=y(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.saveStacktrace=void 0;var SR=`--[[
|
|
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
|
-
`;
|
|
8512
|
+
`;oo.saveStacktrace={name:"saveStacktrace",content:SR,keys:1}});var f0=y(lo=>{"use strict";Object.defineProperty(lo,"__esModule",{value:!0});lo.updateData=void 0;var ER=`--[[
|
|
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
|
-
`;
|
|
8528
|
+
`;lo.updateData={name:"updateData",content:ER,keys:1}});var p0=y(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.updateJobScheduler=void 0;var kR=`--[[
|
|
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
|
-
`;
|
|
8850
|
+
`;co.updateJobScheduler={name:"updateJobScheduler",content:kR,keys:12}});var y0=y(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.updateProgress=void 0;var IR=`--[[
|
|
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
|
-
`;
|
|
8886
|
+
`;uo.updateProgress={name:"updateProgress",content:IR,keys:3}});var h0=y(fo=>{"use strict";Object.defineProperty(fo,"__esModule",{value:!0});fo.updateRepeatableJobMillis=void 0;var xR=`--[[
|
|
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
|
-
`;
|
|
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[Bu]))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[po]=n,t[Wu]=i,t[Bu]=!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[po]&&e.bzpopmin===e[Wu]&&(e.bzpopmin=e[po]),delete e[Nn],delete e[Xr],delete e[po],delete e[Wu],delete e[Bu],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[uo]||(e[uo]=(async()=>{e.disconnect(!1),await e.connect()})().finally(()=>{e[uo]=null})),await e[uo])}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}};fo.RedisConnection=ki;ki.minimumVersion="5.0.0";ki.recommendedMinimumVersion="6.2.0"});var b0=y(yo=>{"use strict";Object.defineProperty(yo,"__esModule",{value:!0});yo.FlowProducer=void 0;var jR=Y("events"),Tr=ct(),AR=Pn(),ho=pa(),DR=Ii(),Yt=st(),Uu=class extends jR.EventEmitter{constructor(e={connection:{}},t=DR.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 ho.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 AR.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,Yt.SpanKind.PRODUCER,e.queueName,"addFlow",e.queueName,async c=>{c?.setAttributes({[Yt.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,m]=f;if(p)throw p;if(typeof m=="number"&&m<0)throw this.toFlowError(m,o);typeof m=="string"&&(u.job.id=m)}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,Yt.SpanKind.PRODUCER,"","addBulkFlows","",async i=>{i?.setAttributes({[Yt.TelemetryAttributes.BulkCount]:e.length,[Yt.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 ho.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,Yt.SpanKind.PRODUCER,t.queueName,"addNode",t.queueName,async(f,p)=>{var m,g;f?.setAttributes({[Yt.TelemetryAttributes.JobName]:t.name,[Yt.TelemetryAttributes.JobId]:d});let E=t.opts,k=E?.telemetry;if(p&&E){let D=(m=E.telemetry)===null||m===void 0?void 0:m.omitContext,J=((g=E.telemetry)===null||g===void 0?void 0:g.metadata)||!D&&p;(J||D)&&(k={metadata:J,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,J=new ho.QueueKeys(t.prefix||this.opts.prefix);await I.addJob(e,{parentDependenciesKey:n?.parentDependenciesKey,addToWaitingChildren:!0,parentKey:R});let oe=`${J.toKey(t.queueName,D)}:dependencies`,z=await this.addChildren({multi:e,nodes:t.children,parent:{parentOpts:{id:D,queue:J.getQueueQualifiedName(t.queueName)},parentDependenciesKey:oe},queuesOpts:i});return{job:I,children:z}}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 ho.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 Yt.ErrorCode.ParentJobNotExist:n=new Error(`Missing key for parent job ${t}. addJob`);break;case Yt.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()}};yo.FlowProducer=Uu});var Uv=y(mt=>{"use strict";Object.defineProperty(mt,"__esModule",{value:!0});var ir=class extends Error{},nd=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},id=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},sd=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Dr=class extends ir{},ko=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},Fe=class extends ir{},Bt=class extends ir{constructor(){super("Zone is an abstract class")}},M="numeric",Ct="short",ht="long",Io={year:M,month:M,day:M},z0={year:M,month:Ct,day:M},RR={year:M,month:Ct,day:M,weekday:Ct},$0={year:M,month:ht,day:M},H0={year:M,month:ht,day:M,weekday:ht},Q0={hour:M,minute:M},Z0={hour:M,minute:M,second:M},X0={hour:M,minute:M,second:M,timeZoneName:Ct},ev={hour:M,minute:M,second:M,timeZoneName:ht},tv={hour:M,minute:M,hourCycle:"h23"},rv={hour:M,minute:M,second:M,hourCycle:"h23"},nv={hour:M,minute:M,second:M,hourCycle:"h23",timeZoneName:Ct},iv={hour:M,minute:M,second:M,hourCycle:"h23",timeZoneName:ht},sv={year:M,month:M,day:M,hour:M,minute:M},av={year:M,month:M,day:M,hour:M,minute:M,second:M},ov={year:M,month:Ct,day:M,hour:M,minute:M},lv={year:M,month:Ct,day:M,hour:M,minute:M,second:M},OR={year:M,month:Ct,day:M,weekday:Ct,hour:M,minute:M},cv={year:M,month:ht,day:M,hour:M,minute:M,timeZoneName:Ct},uv={year:M,month:ht,day:M,hour:M,minute:M,second:M,timeZoneName:Ct},dv={year:M,month:ht,day:M,weekday:ht,hour:M,minute:M,timeZoneName:ht},pv={year:M,month:ht,day:M,weekday:ht,hour:M,minute:M,second:M,timeZoneName:ht},Or=class{get type(){throw new Bt}get name(){throw new Bt}get ianaName(){return this.name}get isUniversal(){throw new Bt}offsetName(e,t){throw new Bt}formatOffset(e,t){throw new Bt}offset(e){throw new Bt}equals(e){throw new Bt}get isValid(){throw new Bt}},zu=null,Di=class r extends Or{static get instance(){return zu===null&&(zu=new r),zu}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return kv(e,t,n)}formatOffset(e,t){return Ai(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},ad=new Map;function CR(r){let e=ad.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"}),ad.set(r,e)),e}var _R={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function MR(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 PR(r,e){let t=r.formatToParts(e),n=[];for(let i=0;i<t.length;i++){let{type:s,value:a}=t[i],o=_R[s];s==="era"?n[o]=a:Z(o)||(n[o]=parseInt(a,10))}return n}var $u=new Map,sr=class r extends Or{static create(e){let t=$u.get(e);return t===void 0&&$u.set(e,t=new r(e)),t}static resetCache(){$u.clear(),ad.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 kv(e,t,n,this.name)}formatOffset(e,t){return Ai(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=CR(this.name),[i,s,a,o,l,c,u]=n.formatToParts?PR(n,t):MR(n,t);o==="BC"&&(i=-Math.abs(i)+1);let f=Ro({year:i,month:s,day:a,hour:l===24?0:l,minute:c,second:u,millisecond:0}),p=+t,m=p%1e3;return p-=m>=0?m:1e3+m,(f-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},g0={};function NR(r,e={}){let t=JSON.stringify([r,e]),n=g0[t];return n||(n=new Intl.ListFormat(r,e),g0[t]=n),n}var od=new Map;function ld(r,e={}){let t=JSON.stringify([r,e]),n=od.get(t);return n===void 0&&(n=new Intl.DateTimeFormat(r,e),od.set(t,n)),n}var cd=new Map;function LR(r,e={}){let t=JSON.stringify([r,e]),n=cd.get(t);return n===void 0&&(n=new Intl.NumberFormat(r,e),cd.set(t,n)),n}var ud=new Map;function qR(r,e={}){let{base:t,...n}=e,i=JSON.stringify([r,n]),s=ud.get(i);return s===void 0&&(s=new Intl.RelativeTimeFormat(r,e),ud.set(i,s)),s}var wi=null;function JR(){return wi||(wi=new Intl.DateTimeFormat().resolvedOptions().locale,wi)}var dd=new Map;function fv(r){let e=dd.get(r);return e===void 0&&(e=new Intl.DateTimeFormat(r).resolvedOptions(),dd.set(r,e)),e}var pd=new Map;function FR(r){let e=pd.get(r);if(!e){let t=new Intl.Locale(r);e="getWeekInfo"in t?t.getWeekInfo():t.weekInfo,"minimalDays"in e||(e={...hv,...e}),pd.set(r,e)}return e}function VR(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=ld(r).resolvedOptions(),i=r}catch{let l=r.substring(0,t);n=ld(l).resolvedOptions(),i=l}let{numberingSystem:s,calendar:a}=n;return[i,s,a]}}function GR(r,e,t){return(t||e)&&(r.includes("-u-")||(r+="-u"),t&&(r+=`-ca-${t}`),e&&(r+=`-nu-${e}`)),r}function YR(r){let e=[];for(let t=1;t<=12;t++){let n=xe.utc(2009,t,1);e.push(r(n))}return e}function BR(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 mo(r,e,t,n){let i=r.listingMode();return i==="error"?null:i==="en"?t(e):n(e)}function WR(r){return r.numberingSystem&&r.numberingSystem!=="latn"?!1:r.numberingSystem==="latn"||!r.locale||r.locale.startsWith("en")||fv(r.locale).numberingSystem==="latn"}var fd=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=LR(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):Id(e,3);return Ce(t,this.padTo)}}},hd=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&&sr.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=ld(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()}},yd=class{constructor(e,t,n){this.opts={style:"long",...n},!t&&Sv()&&(this.rtf=qR(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):fO(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},hv={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":JR()),l=t||Ie.defaultNumberingSystem,c=n||Ie.defaultOutputCalendar,u=bd(i)||Ie.defaultWeekSettings;return new r(o,l,c,u,a)}static resetCache(){wi=null,od.clear(),cd.clear(),ud.clear(),dd.clear(),pd.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]=VR(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||l||null,this.weekSettings=i,this.intl=GR(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=WR(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,bd(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 mo(this,e,wv,()=>{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]=YR(a)}return this.monthsCache[s][e]})}weekdays(e,t=!1){return mo(this,e,Av,()=>{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]=BR(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return mo(this,void 0,()=>Dv,()=>{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 mo(this,e,Rv,()=>{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 fd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new hd(e,this.intl,t)}relFormatter(e={}){return new yd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return NR(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||fv(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Ev()?FR(this.locale):hv}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})`}},Hu=null,yt=class r extends Or{static get utcInstance(){return Hu===null&&(Hu=new r(0)),Hu}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(Oo(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Ai(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Ai(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return Ai(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}},xo=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(Z(r)||r===null)return e;if(r instanceof Or)return r;if(ZR(r)){let t=r.toLowerCase();return t==="default"?e:t==="local"||t==="system"?Di.instance:t==="utc"||t==="gmt"?yt.utcInstance:yt.parseSpecifier(t)||sr.create(r)}else return Rr(r)?yt.instance(r):typeof r=="object"&&"offset"in r&&typeof r.offset=="function"?r:new xo(r)}var Kd={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"},v0={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]},UR=Kd.hanidec.replace(/[\[|\]]/g,"").split("");function zR(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(Kd.hanidec)!==-1)e+=UR.indexOf(r[t]);else for(let i in v0){let[s,a]=v0[i];n>=s&&n<=a&&(e+=n-s)}}return parseInt(e,10)}else return e}var md=new Map;function $R(){md.clear()}function Rt({numberingSystem:r},e=""){let t=r||"latn",n=md.get(t);n===void 0&&(n=new Map,md.set(t,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${Kd[t]}${e}`),n.set(e,i)),i}var K0=()=>Date.now(),S0="system",E0=null,k0=null,I0=null,x0=60,w0,T0=null,Ie=class{static get now(){return K0}static set now(e){K0=e}static set defaultZone(e){S0=e}static get defaultZone(){return Ar(S0,Di.instance)}static get defaultLocale(){return E0}static set defaultLocale(e){E0=e}static get defaultNumberingSystem(){return k0}static set defaultNumberingSystem(e){k0=e}static get defaultOutputCalendar(){return I0}static set defaultOutputCalendar(e){I0=e}static get defaultWeekSettings(){return T0}static set defaultWeekSettings(e){T0=bd(e)}static get twoDigitCutoffYear(){return x0}static set twoDigitCutoffYear(e){x0=e%100}static get throwOnInvalid(){return w0}static set throwOnInvalid(e){w0=e}static resetCaches(){ve.resetCache(),sr.resetCache(),xe.resetCache(),$R()}},ft=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},yv=[0,31,59,90,120,151,181,212,243,273,304,334],mv=[0,31,60,91,121,152,182,213,244,274,305,335];function xt(r,e){return new ft("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${r}, which is invalid`)}function Sd(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 bv(r,e,t){return t+(Oi(r)?mv:yv)[e-1]}function gv(r,e){let t=Oi(r)?mv:yv,n=t.findIndex(s=>s<e),i=e-t[n];return{month:n+1,day:i}}function Ed(r,e){return(r-e+7)%7+1}function wo(r,e=4,t=1){let{year:n,month:i,day:s}=r,a=bv(n,i,s),o=Ed(Sd(n,i,s),t),l=Math.floor((a-o+14-e)/7),c;return l<1?(c=n-1,l=Ri(c,e,t)):l>Ri(n,e,t)?(c=n+1,l=1):c=n,{weekYear:c,weekNumber:l,weekday:o,...Co(r)}}function j0(r,e=4,t=1){let{weekYear:n,weekNumber:i,weekday:s}=r,a=Ed(Sd(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}=gv(c,l);return{year:c,month:u,day:d,...Co(r)}}function Qu(r){let{year:e,month:t,day:n}=r,i=bv(e,t,n);return{year:e,ordinal:i,...Co(r)}}function A0(r){let{year:e,ordinal:t}=r,{month:n,day:i}=gv(e,t);return{year:e,month:n,day:i,...Co(r)}}function D0(r,e){if(!Z(r.localWeekday)||!Z(r.localWeekNumber)||!Z(r.localWeekYear)){if(!Z(r.weekday)||!Z(r.weekNumber)||!Z(r.weekYear))throw new Dr("Cannot mix locale-based week fields with ISO-based week fields");return Z(r.localWeekday)||(r.weekday=r.localWeekday),Z(r.localWeekNumber)||(r.weekNumber=r.localWeekNumber),Z(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 HR(r,e=4,t=1){let n=Do(r.weekYear),i=wt(r.weekNumber,1,Ri(r.weekYear,e,t)),s=wt(r.weekday,1,7);return n?i?s?!1:xt("weekday",r.weekday):xt("week",r.weekNumber):xt("weekYear",r.weekYear)}function QR(r){let e=Do(r.year),t=wt(r.ordinal,1,Fn(r.year));return e?t?!1:xt("ordinal",r.ordinal):xt("year",r.year)}function vv(r){let e=Do(r.year),t=wt(r.month,1,12),n=wt(r.day,1,To(r.year,r.month));return e?t?n?!1:xt("day",r.day):xt("month",r.month):xt("year",r.year)}function Kv(r){let{hour:e,minute:t,second:n,millisecond:i}=r,s=wt(e,0,23)||e===24&&t===0&&n===0&&i===0,a=wt(t,0,59),o=wt(n,0,59),l=wt(i,0,999);return s?a?o?l?!1:xt("millisecond",i):xt("second",n):xt("minute",t):xt("hour",e)}function Z(r){return typeof r>"u"}function Rr(r){return typeof r=="number"}function Do(r){return typeof r=="number"&&r%1===0}function ZR(r){return typeof r=="string"}function XR(r){return Object.prototype.toString.call(r)==="[object Date]"}function Sv(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Ev(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function eO(r){return Array.isArray(r)?r:[r]}function R0(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 tO(r,e){return e.reduce((t,n)=>(t[n]=r[n],t),{})}function Gn(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function bd(r){if(r==null)return null;if(typeof r!="object")throw new Fe("Week settings must be an object");if(!wt(r.firstDay,1,7)||!wt(r.minimalDays,1,7)||!Array.isArray(r.weekend)||r.weekend.some(e=>!wt(e,1,7)))throw new Fe("Invalid week settings");return{firstDay:r.firstDay,minimalDays:r.minimalDays,weekend:Array.from(r.weekend)}}function wt(r,e,t){return Do(r)&&r>=e&&r<=t}function rO(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(!(Z(r)||r===null||r===""))return parseInt(r,10)}function en(r){if(!(Z(r)||r===null||r===""))return parseFloat(r)}function kd(r){if(!(Z(r)||r===null||r==="")){let e=parseFloat("0."+r)*1e3;return Math.floor(e)}}function Id(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 Oi(r){return r%4===0&&(r%100!==0||r%400===0)}function Fn(r){return Oi(r)?366:365}function To(r,e){let t=rO(e-1,12)+1,n=r+(e-t)/12;return t===2?Oi(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function Ro(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 O0(r,e,t){return-Ed(Sd(r,1,e),t)+e-1}function Ri(r,e=4,t=1){let n=O0(r,e,t),i=O0(r+1,e,t);return(Fn(r)-n+i)/7}function gd(r){return r>99?r:r>Ie.twoDigitCutoffYear?1900+r:2e3+r}function kv(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 Oo(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 Iv(r){let e=Number(r);if(typeof r=="boolean"||r===""||!Number.isFinite(e))throw new Fe(`Invalid unit value ${r}`);return e}function jo(r,e){let t={};for(let n in r)if(Gn(r,n)){let i=r[n];if(i==null)continue;t[e(n)]=Iv(i)}return t}function Ai(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 Co(r){return tO(r,["hour","minute","second","millisecond"])}var nO=["January","February","March","April","May","June","July","August","September","October","November","December"],xv=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],iO=["J","F","M","A","M","J","J","A","S","O","N","D"];function wv(r){switch(r){case"narrow":return[...iO];case"short":return[...xv];case"long":return[...nO];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 Tv=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],jv=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],sO=["M","T","W","T","F","S","S"];function Av(r){switch(r){case"narrow":return[...sO];case"short":return[...jv];case"long":return[...Tv];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Dv=["AM","PM"],aO=["Before Christ","Anno Domini"],oO=["BC","AD"],lO=["B","A"];function Rv(r){switch(r){case"narrow":return[...lO];case"short":return[...oO];case"long":return[...aO];default:return null}}function cO(r){return Dv[r.hour<12?0:1]}function uO(r,e){return Av(e)[r.weekday-1]}function dO(r,e){return wv(e)[r.month-1]}function pO(r,e){return Rv(e)[r.year<0?0:1]}function fO(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 C0(r,e){let t="";for(let n of r)n.literal?t+=n.val:t+=e(n.val);return t}var hO={D:Io,DD:z0,DDD:$0,DDDD:H0,t:Q0,tt:Z0,ttt:X0,tttt:ev,T:tv,TT:rv,TTT:nv,TTTT:iv,f:sv,ff:ov,fff:cv,ffff:dv,F:av,FF:lv,FFF:uv,FFFF:pv},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 hO[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0,n=void 0){if(this.opts.forceSimple)return Ce(e,t);let i={...this.opts};return t>0&&(i.padTo=t),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,t){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,m)=>this.loc.extract(e,p,m),a=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",o=()=>n?cO(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(p,m)=>n?dO(e,p):s(m?{month:p}:{month:p,day:"numeric"},"month"),c=(p,m)=>n?uO(e,p):s(m?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),u=p=>{let m=r.macroTokenToFormatOpts(p);return m?this.formatWithSystemDefault(e,m):p},d=p=>n?pO(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 C0(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 m=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)*m,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 C0(a,s(l,c))}},Ov=/[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 Cv(...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 _v=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,yO=`(?:${_v.source}?(?:\\[(${Ov.source})\\])?)?`,xd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Mv=RegExp(`${xd.source}${yO}`),wd=RegExp(`(?:[Tt]${Mv.source})?`),mO=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,bO=/(\d{4})-?W(\d\d)(?:-?(\d))?/,gO=/(\d{4})-?(\d{3})/,vO=Cv("weekYear","weekNumber","weekDay"),KO=Cv("year","ordinal"),SO=/(\d{4})-(\d\d)-(\d\d)/,Pv=RegExp(`${xd.source} ?(?:${_v.source}|(${Ov.source}))?`),EO=RegExp(`(?: ${Pv.source})?`);function Vn(r,e,t){let n=r[e];return Z(n)?t:jr(n)}function kO(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:kd(r[e+3])},null,e+4]}function Ci(r,e){let t=!r[e]&&!r[e+1],n=Oo(r[e+1],r[e+2]),i=t?null:yt.instance(n);return[{},i,e+3]}function _i(r,e){let t=r[e]?sr.create(r[e]):null;return[{},t,e+1]}var IO=RegExp(`^T?${xd.source}$`),xO=/^-?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 wO(r){let[e,t,n,i,s,a,o,l,c]=r,u=e[0]==="-",d=l&&l[0]==="-",f=(p,m=!1)=>p!==void 0&&(m||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(kd(c),d)}]}var TO={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Td(r,e,t,n,i,s,a){let o={year:e.length===2?gd(jr(e)):jr(e),month:xv.indexOf(t)+1,day:jr(n),hour:jr(i),minute:jr(s)};return a&&(o.second=jr(a)),r&&(o.weekday=r.length>3?Tv.indexOf(r)+1:jv.indexOf(r)+1),o}var jO=/^(?:(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 AO(r){let[,e,t,n,i,s,a,o,l,c,u,d]=r,f=Td(e,i,n,t,s,a,o),p;return l?p=TO[l]:c?p=0:p=Oo(u,d),[f,new yt(p)]}function DO(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var RO=/^(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$/,OO=/^(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$/,CO=/^(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 _0(r){let[,e,t,n,i,s,a,o]=r;return[Td(e,i,n,t,s,a,o),yt.utcInstance]}function _O(r){let[,e,t,n,i,s,a,o]=r;return[Td(e,o,t,n,i,s,a),yt.utcInstance]}var MO=Yn(mO,wd),PO=Yn(bO,wd),NO=Yn(gO,wd),LO=Yn(Mv),Nv=Bn(kO,Un,Ci,_i),qO=Bn(vO,Un,Ci,_i),JO=Bn(KO,Un,Ci,_i),FO=Bn(Un,Ci,_i);function VO(r){return Wn(r,[MO,Nv],[PO,qO],[NO,JO],[LO,FO])}function GO(r){return Wn(DO(r),[jO,AO])}function YO(r){return Wn(r,[RO,_0],[OO,_0],[CO,_O])}function BO(r){return Wn(r,[xO,wO])}var WO=Bn(Un);function UO(r){return Wn(r,[IO,WO])}var zO=Yn(SO,EO),$O=Yn(Pv),HO=Bn(Un,Ci,_i);function QO(r){return Wn(r,[zO,Nv],[$O,HO])}var M0="Invalid Duration",Lv={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}},ZO={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},...Lv},It=146097/400,Ln=146097/4800,XO={years:{quarters:4,months:12,weeks:It/7,days:It,hours:It*24,minutes:It*24*60,seconds:It*24*60*60,milliseconds:It*24*60*60*1e3},quarters:{months:3,weeks:It/28,days:It/4,hours:It*24/4,minutes:It*24*60/4,seconds:It*24*60*60/4,milliseconds:It*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},...Lv},rn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],eC=rn.slice(0).reverse();function nr(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 qv(r,e){var t;let n=(t=e.milliseconds)!=null?t:0;for(let i of eC.slice(1))e[i]&&(n+=e[i]*r[i].milliseconds);return n}function P0(r,e){let t=qv(r,e)<0?-1:1;rn.reduceRight((n,i)=>{if(Z(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(Z(e[i]))return n;if(n){let s=e[n]%1;e[n]-=s,e[i]+=s*r[n][i]}return i},null)}function N0(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?XO:ZO;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:jo(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]=BO(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]=UO(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 sd(n);return new r({invalid:n})}static normalizeUnit(e){let t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!t)throw new ko(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let n={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?pt.create(this.loc,n).formatDurationFromString(this,e):M0}toHuman(e={}){if(!this.isValid)return M0;let t=e.showZeros!==!1,n=rn.map(i=>{let s=this.values[i];return Z(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+=Id(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?qv(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 nr(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]=Iv(e(this.values[n],n));return nr(this,{values:t},!0)}get(e){return this[r.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let t={...this.values,...jo(e,r.normalizeUnit)};return nr(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 nr(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return P0(this.matrix,e),nr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=N0(this.normalize().shiftToAll().toObject());return nr(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 P0(this.matrix,t),nr(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 nr(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=N0(this.values);return nr(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 tC(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 id(n);return new r({invalid:n})}static fromDateTimes(e,t){let n=xi(e),i=xi(t),s=tC(n,i);return s??new r({start:n,end:i})}static after(e,t){let n=Ne.fromDurationLike(t),i=xi(e);return r.fromDateTimes(i,i.plus(n))}static before(e,t){let n=Ne.fromDurationLike(t),i=xi(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(xi).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=Io,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 sr.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:Sv(),localeWeek:Ev()}}};function L0(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 rC(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=L0(l,c);return(u-u%7)/7}],["days",L0]],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 nC(r,e,t,n){let[i,s,a,o]=rC(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 iC="missing Intl.DateTimeFormat.formatToParts support";function he(r,e=t=>t){return{regex:r,deser:([t])=>e(zR(t))}}var sC="\xA0",Jv=`[ ${sC}]`,Fv=new RegExp(Jv,"g");function aC(r){return r.replace(/\./g,"\\.?").replace(Fv,Jv)}function q0(r){return r.replace(/\./g,"").replace(Fv," ").toLowerCase()}function Ot(r,e){return r===null?null:{regex:RegExp(r.map(aC).join("|")),deser:([t])=>r.findIndex(n=>q0(t)===q0(n))+e}}function J0(r,e){return{regex:r,deser:([,t,n])=>Oo(t,n),groups:e}}function bo(r){return{regex:r,deser:([e])=>e}}function oC(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function lC(r,e){let t=Rt(e),n=Rt(e,"{2}"),i=Rt(e,"{3}"),s=Rt(e,"{4}"),a=Rt(e,"{6}"),o=Rt(e,"{1,2}"),l=Rt(e,"{1,3}"),c=Rt(e,"{1,6}"),u=Rt(e,"{1,9}"),d=Rt(e,"{2,4}"),f=Rt(e,"{4,6}"),p=E=>({regex:RegExp(oC(E.val)),deser:([k])=>k,literal:!0}),g=(E=>{if(r.literal)return p(E);switch(E.val){case"G":return Ot(e.eras("short"),0);case"GG":return Ot(e.eras("long"),0);case"y":return he(c);case"yy":return he(d,gd);case"yyyy":return he(s);case"yyyyy":return he(f);case"yyyyyy":return he(a);case"M":return he(o);case"MM":return he(n);case"MMM":return Ot(e.months("short",!0),1);case"MMMM":return Ot(e.months("long",!0),1);case"L":return he(o);case"LL":return he(n);case"LLL":return Ot(e.months("short",!1),1);case"LLLL":return Ot(e.months("long",!1),1);case"d":return he(o);case"dd":return he(n);case"o":return he(l);case"ooo":return he(i);case"HH":return he(n);case"H":return he(o);case"hh":return he(n);case"h":return he(o);case"mm":return he(n);case"m":return he(o);case"q":return he(o);case"qq":return he(n);case"s":return he(o);case"ss":return he(n);case"S":return he(l);case"SSS":return he(i);case"u":return bo(u);case"uu":return bo(o);case"uuu":return he(t);case"a":return Ot(e.meridiems(),0);case"kkkk":return he(s);case"kk":return he(d,gd);case"W":return he(o);case"WW":return he(n);case"E":case"c":return he(t);case"EEE":return Ot(e.weekdays("short",!1),1);case"EEEE":return Ot(e.weekdays("long",!1),1);case"ccc":return Ot(e.weekdays("short",!0),1);case"cccc":return Ot(e.weekdays("long",!0),1);case"Z":case"ZZ":return J0(new RegExp(`([+-]${o.source})(?::(${n.source}))?`),2);case"ZZZ":return J0(new RegExp(`([+-]${o.source})(${n.source})?`),2);case"z":return bo(/[a-z_+-/]{1,256}?/i);case" ":return bo(/[^\S\n\r]/);default:return p(E)}})(r)||{invalidReason:iC};return g.token=r,g}var cC={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 uC(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=cC[a];if(typeof o=="object"&&(o=o[s]),o)return{literal:!1,val:o}}function dC(r){return[`^${r.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,r]}function pC(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 fC(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 Z(r.z)||(t=sr.create(r.z)),Z(r.Z)||(t||(t=new yt(r.Z)),n=r.Z),Z(r.q)||(r.M=(r.q-1)*3+1),Z(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),Z(r.u)||(r.S=kd(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 hC(){return Zu||(Zu=xe.fromMillis(1555555555555)),Zu}function yC(r,e){if(r.literal)return r;let t=pt.macroTokenToFormatOpts(r.val),n=Yv(t,e);return n==null||n.includes(void 0)?r:n}function Vv(r,e){return Array.prototype.concat(...r.map(t=>yC(t,e)))}var Ao=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Vv(pt.parseFormat(t),e),this.units=this.tokens.map(n=>lC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=dC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[t,n]=pC(e,this.regex,this.handlers),[i,s,a]=n?fC(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 Gv(r,e,t){return new Ao(r,t).explainFromTokens(e)}function mC(r,e,t){let{result:n,zone:i,specificOffset:s,invalidReason:a}=Gv(r,e,t);return[n,i,s,a]}function Yv(r,e){if(!r)return null;let n=pt.create(e,r).dtFormatter(hC()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(a=>uC(a,r,s))}var Xu="Invalid DateTime",F0=864e13;function Ti(r){return new ft("unsupported zone",`the zone "${r.name}" is not supported`)}function ed(r){return r.weekData===null&&(r.weekData=wo(r.c)),r.weekData}function td(r){return r.localWeekData===null&&(r.localWeekData=wo(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 Bv(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 go(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 Ko(r,e,t){return Bv(Ro(r),e,t)}function V0(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,To(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=Ro(s),[l,c]=Bv(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 vo(r,e,t=!0){return r.isValid?pt.create(ve.create("en-US"),{allowZ:t,forceSimple:!0}).formatDateTimeFromString(r,e):null}function rd(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 G0(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 Wv={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},bC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},gC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},So=["year","month","day","hour","minute","second","millisecond"],vC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],KC=["year","ordinal","hour","minute","second","millisecond"];function Eo(r){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[r.toLowerCase()];if(!e)throw new ko(r);return e}function Y0(r){switch(r.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Eo(r)}}function SC(r){if(ji===void 0&&(ji=Ie.now()),r.type!=="iana")return r.offset(ji);let e=r.name,t=vd.get(e);return t===void 0&&(t=r.offset(ji),vd.set(e,t)),t}function B0(r,e){let t=Ar(e.zone,Ie.defaultZone);if(!t.isValid)return xe.invalid(Ti(t));let n=ve.fromObject(e),i,s;if(Z(r.year))i=Ie.now();else{for(let l of So)Z(r[l])&&(r[l]=Wv[l]);let a=vv(r)||Kv(r);if(a)return xe.invalid(a);let o=SC(t);[i,s]=Ko(r,o,t)}return new xe({ts:i,zone:t,loc:n,o:s})}function W0(r,e,t){let n=Z(t.round)?!0:t.round,i=Z(t.rounding)?"trunc":t.rounding,s=(o,l)=>(o=Id(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 U0(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 ji,vd=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:Ti(t));this.ts=Z(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=go(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]=U0(arguments),[n,i,s,a,o,l,c]=t;return B0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static utc(){let[e,t]=U0(arguments),[n,i,s,a,o,l,c]=t;return e.zone=yt.utcInstance,B0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static fromJSDate(e,t={}){let n=XR(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(Ti(i))}static fromMillis(e,t={}){if(Rr(e))return e<-F0||e>F0?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(Ti(n));let i=ve.fromObject(t),s=jo(e,Y0),{minDaysInFirstWeek:a,startOfWeek:o}=D0(s,i),l=Ie.now(),c=Z(t.specificOffset)?n.offset(l):t.specificOffset,u=!Z(s.ordinal),d=!Z(s.year),f=!Z(s.month)||!Z(s.day),p=d||f,m=s.weekYear||s.weekNumber;if((p||u)&&m)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=m||s.weekday&&!p,E,k,I=go(l,c);g?(E=vC,k=bC,I=wo(I,a,o)):u?(E=KC,k=gC,I=Qu(I)):(E=So,k=Wv);let R=!1;for(let P of E){let G=s[P];Z(G)?R?s[P]=k[P]:s[P]=I[P]:R=!0}let D=g?HR(s,a,o):u?QR(s):vv(s),J=D||Kv(s);if(J)return r.invalid(J);let oe=g?j0(s,a,o):u?A0(s):s,[z,A]=Ko(oe,c,n),K=new r({ts:z,zone:n,o:A,loc:i});return s.weekday&&p&&e.weekday!==K.weekday?r.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${K.toISO()}`):K.isValid?K:r.invalid(K.invalid)}static fromISO(e,t={}){let[n,i]=VO(e);return Jn(n,i,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[n,i]=GO(e);return Jn(n,i,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[n,i]=YO(e);return Jn(n,i,t,"HTTP",t)}static fromFormat(e,t,n={}){if(Z(e)||Z(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]=mC(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]=QO(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 nd(n);return new r({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=Yv(e,ve.fromObject(t));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,t={}){return Vv(pt.parseFormat(e),ve.fromObject(t)).map(i=>i.val).join("")}static resetCache(){ji=void 0,vd.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?ed(this).weekYear:NaN}get weekNumber(){return this.isValid?ed(this).weekNumber:NaN}get weekday(){return this.isValid?ed(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?td(this).weekday:NaN}get localWeekNumber(){return this.isValid?td(this).weekNumber:NaN}get localWeekYear(){return this.isValid?td(this).weekYear:NaN}get ordinal(){return this.isValid?Qu(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=Ro(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=go(l,a),d=go(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 Oi(this.year)}get daysInMonth(){return To(this.year,this.month)}get daysInYear(){return this.isValid?Fn(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ri(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Ri(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]=Ko(a,s,e)}return tn(this,{ts:i,zone:e})}else return r.invalid(Ti(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=jo(e,Y0),{minDaysInFirstWeek:n,startOfWeek:i}=D0(t,this.loc),s=!Z(t.weekYear)||!Z(t.weekNumber)||!Z(t.weekday),a=!Z(t.ordinal),o=!Z(t.year),l=!Z(t.month)||!Z(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=j0({...wo(this.c,n,i),...t},n,i):Z(t.ordinal)?(d={...this.toObject(),...t},Z(t.day)&&(d.day=Math.min(To(d.year,d.month),d.day))):d=A0({...Qu(this.c),...t});let[f,p]=Ko(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,V0(this,t))}minus(e){if(!this.isValid)return this;let t=Ne.fromDurationLike(e).negate();return tn(this,V0(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):Xu}toLocaleString(e=Io,t={}){return this.isValid?pt.create(this.loc.clone(t),e).formatDateTime(this):Xu}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=Eo(a);let o=e==="extended",l=rd(this,o,a);return So.indexOf(a)>=3&&(l+="T"),l+=G0(this,o,t,n,i,s,a),l}toISODate({format:e="extended",precision:t="day"}={}){return this.isValid?rd(this,e==="extended",Eo(t)):null}toISOWeekDate(){return vo(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=Eo(o),(i&&So.indexOf(o)>=3?"T":"")+G0(this,a==="extended",t,e,n,s,o)):null}toRFC2822(){return vo(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return vo(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?rd(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")),vo(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Xu}[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=eO(t).map(Ne.normalizeUnit),a=e.valueOf()>this.valueOf(),o=a?this:e,l=a?e:this,c=nC(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),W0(t,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?W0(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 R0(e,t=>t.valueOf(),Math.min)}static max(...e){if(!e.every(r.isDateTime))throw new Fe("max requires all arguments be DateTimes");return R0(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 Gv(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 Ao(s,e)}static fromFormatParser(e,t,n={}){if(Z(e)||Z(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 Io}static get DATE_MED(){return z0}static get DATE_MED_WITH_WEEKDAY(){return RR}static get DATE_FULL(){return $0}static get DATE_HUGE(){return H0}static get TIME_SIMPLE(){return Q0}static get TIME_WITH_SECONDS(){return Z0}static get TIME_WITH_SHORT_OFFSET(){return X0}static get TIME_WITH_LONG_OFFSET(){return ev}static get TIME_24_SIMPLE(){return tv}static get TIME_24_WITH_SECONDS(){return rv}static get TIME_24_WITH_SHORT_OFFSET(){return nv}static get TIME_24_WITH_LONG_OFFSET(){return iv}static get DATETIME_SHORT(){return sv}static get DATETIME_SHORT_WITH_SECONDS(){return av}static get DATETIME_MED(){return ov}static get DATETIME_MED_WITH_SECONDS(){return lv}static get DATETIME_MED_WITH_WEEKDAY(){return OR}static get DATETIME_FULL(){return cv}static get DATETIME_FULL_WITH_SECONDS(){return uv}static get DATETIME_HUGE(){return dv}static get DATETIME_HUGE_WITH_SECONDS(){return pv}};function xi(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 EC="3.7.2";mt.DateTime=xe;mt.Duration=Ne;mt.FixedOffsetZone=yt;mt.IANAZone=sr;mt.Info=nn;mt.Interval=sn;mt.InvalidZone=xo;mt.Settings=Ie;mt.SystemZone=Di;mt.VERSION=EC;mt.Zone=Or});var $v=y((gL,zv)=>{"use strict";var an=Uv();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))}zv.exports=X});var Zv=y((vL,Qv)=>{"use strict";function on(r){return{start:r,count:1}}function Hv(r,e){r.end=e,r.step=e-r.start,r.count=2}function jd(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 kC(r){for(var e=[],t=void 0,n=0;n<r.length;n++){var i=r[n];typeof i!="number"?(jd(e,t,on(i)),t=void 0):t?t.count===1?Hv(t,i):t.step===i-t.end?(t.count++,t.end=i):t.count===2?(e.push(on(t.start)),t=on(t.end),Hv(t,i)):(jd(e,t),t=on(i)):t=on(i)}return jd(e,t),e}Qv.exports=kC});var eK=y((KL,Xv)=>{"use strict";var IC=Zv();function xC(r,e,t){var n=IC(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 m=c.start+p;return(m-c.start)%c.step===0?m: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(",")}Xv.exports=xC});var nK=y((SL,rK)=>{"use strict";var ln=$v(),wC=eK(),tK=1e4;function N(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=N._freezeFields(r)}N.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];N.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};N.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"]}];N.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];N.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}};N.parseDefaults=["0","*","*","*","*","*"];N.standardValidCharacters=/^[,*\d/-]+$/;N.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;N.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;N.validCharacters={second:N.standardValidCharacters,minute:N.standardValidCharacters,hour:N.standardValidCharacters,dayOfMonth:N.dayOfMonthValidCharacters,month:N.standardValidCharacters,dayOfWeek:N.dayOfWeekValidCharacters};N._isValidConstraintChar=function(e,t){return typeof t!="string"?!1:e.chars.some(function(n){return t.indexOf(n)>-1})};N._parseField=function(e,t,n){switch(e){case"month":case"dayOfWeek":var i=N.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(!N.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(m){if(m instanceof Array)for(var g=0,E=m.length;g<E;g++){var k=m[g];if(N._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(N._isValidConstraintChar(n,m)){c.push(m);return}var I=+m;if(Number.isNaN(I)||I<n.min||I>n.max)throw new Error("Constraint error, got value "+m+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(I=I%7),c.push(I)}}var d=l.split(",");if(!d.every(function(m){return m.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(N._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 m=+c;if(Number.isNaN(m)||m<=0)throw new Error("Constraint error, cannot repeat at every "+m+" 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&&m>0&&m%c===0?(m=1,u.push(g)):m++}return u}return Number.isNaN(+l)?l:+l}return s(t)};N._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)};N._handleMaxDaysInMonth=function(r){if(r.month.length===1){var e=N.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(N._sortCompareFn)}};N._freezeFields=function(r){for(var e=0,t=N.map.length;e<t;++e){var n=N.map[e],i=r[n];r[n]=Object.freeze(i)}return Object.freeze(r)};N.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)}};N.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,J=Math.floor(D/7)+R;return J===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<tK;){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 m=this.fields.dayOfMonth.length>=N.daysInMonth[a.getMonth()],g=this.fields.dayOfWeek.length===N.constraints[5].max-N.constraints[5].min+1,E=a.getHours();if(!f&&(!p||g)){this._applyTimezoneShift(a,s,"Day");continue}if(!m&&g&&!f){this._applyTimezoneShift(a,s,"Day");continue}if(m&&!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>=tK)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new ln(a,this._tz),this._hasIterated=!0,a};N.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};N.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};N.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}};N.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}};N.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};N.prototype.reset=function(e){this._currentDate=new ln(e||this._options.currentDate)};N.prototype.stringify=function(e){for(var t=[],n=e?0:1,i=N.map.length;n<i;++n){var s=N.map[n],a=this.fields[s],o=N.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?o={min:1,max:N.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(wC(a,o.min,o.max))}return t.join(" ")};N.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)),N.predefined[s]&&(s=N.predefined[s]);var o=[],l=(s+"").trim().split(/\s+/);if(l.length>6)throw new Error("Invalid cron expression");for(var c=N.map.length-l.length,u=0,d=N.map.length;u<d;++u){var f=N.map[u],p=l[l.length>d?u:u-c];if(u<c||!p)o.push(N._parseField(f,N.parseDefaults[u],N.constraints[u]));else{var m=f==="dayOfWeek"?I(p):p;o.push(N._parseField(f,m,N.constraints[u]))}}for(var g={},u=0,d=N.map.length;u<d;u++){var E=N.map[u];g[E]=o[u]}var k=N._handleMaxDaysInMonth(g);return g.dayOfMonth=k||g.dayOfMonth,new N(g,a);function I(R){var D=R.split("#");if(D.length>1){var J=+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(J)||J<1||J>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=J,D[0]}return R}}return i(e,t)};N.fieldsToExpression=function(e,t){function n(f,p,m){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(!N._isValidConstraintChar(m,k)&&(typeof k!="number"||Number.isNaN(k)||k<m.min||k>m.max))throw new Error("Constraint error, got value "+k+" expected range "+m.min+"-"+m.max)}}for(var i={},s=0,a=N.map.length;s<a;++s){var o=N.map[s],l=e[o];n(o,l,N.constraints[s]);for(var c=[],u=-1;++u<l.length;)c[u]=l[u];if(l=c.sort(N._sortCompareFn).filter(function(f,p,m){return!p||f!==m[p-1]}),l.length!==c.length)throw new Error("Validation error, Field "+o+" contains duplicate values");i[o]=l}var d=N._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new N(i,t||{})};rK.exports=N});var Ad=y((EL,iK)=>{"use strict";var _o=nK();function Cr(){}Cr._parseEntry=function(e){var t=e.split(" ");if(t.length===6)return{interval:_o.parse(e)};if(t.length>6)return{interval:_o.parse(t.slice(0,6).join(" ")),command:t.slice(6,t.length)};throw new Error("Invalid entry: "+e)};Cr.parseExpression=function(e,t){return _o.parse(e,t)};Cr.fieldsToExpression=function(e,t){return _o.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){Y("fs").readFile(e,function(n,i){if(n){t(n);return}return t(null,Cr.parseString(i.toString()))})};iK.exports=Cr});var _r=y(Mo=>{"use strict";Object.defineProperty(Mo,"__esModule",{value:!0});Mo.QueueBase=void 0;var TC=Y("events"),Mi=ct(),jC=ua(),AC=Ii(),DC=Pn(),RC=pa(),Dd=class extends TC.EventEmitter{constructor(e,t={connection:{}},n=AC.RedisConnection,i=!1){if(super(),this.name=e,this.opts=t,this.closed=!1,this.hasBlockingConnection=!1,this.hasBlockingConnection=i,this.opts=Object.assign({prefix:"bull"},t),!e)throw new Error("Queue name must be provided");if(e.includes(":"))throw new Error("Queue name cannot contain :");this.connection=new n(t.connection,{shared:(0,Mi.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 RC.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,jC.createScripts)(this)}get redisVersion(){return this.connection.redisVersion}get databaseType(){return this.connection.databaseType}get Job(){return DC.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=Mi.DELAY_TIME_5){try{return await e()}catch(n){if((0,Mi.isNotConnectionError)(n)&&this.emit("error",n),!this.closing&&t)await(0,Mi.delay)(t);else return}}trace(e,t,n,i,s){return(0,Mi.trace)(this.opts.telemetry,e,this.name,t,n,i,s)}};Mo.QueueBase=Dd});var No=y(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.defaultRepeatStrategy=cn.JobScheduler=void 0;var OC=(Qe(),nt(He)),CC=Ad(),Po=Pn(),_C=_r(),Pi=st(),MC=ct(),Rd=class extends _C.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:m}=t;if(m&&p>new Date(m).getTime())return;let g=s.prevMillis||0;p=g<p?p:g;let{immediately:E}=t,k=OC.__rest(t,["immediately"]),I,R=null;if(u&&(I=await this.repeatStrategy(p,t,n),I<p&&(I=p)),I||l)return this.trace(Pi.SpanKind.PRODUCER,"add",`${this.name}.${n}`,async(D,J)=>{var oe,z;let A=s.telemetry;if(J){let P=(oe=s.telemetry)===null||oe===void 0?void 0:oe.omitContext,G=((z=s.telemetry)===null||z===void 0?void 0:z.metadata)||!P&&J;(G||P)&&(A={metadata:G,omitContext:P})}let K=this.getNextJobOpts(I,e,Object.assign(Object.assign({},s),{repeat:k,telemetry:A}),f,R);if(a){I<p&&(I=p);let[P,G]=await this.scripts.addJobScheduler(e,I,JSON.stringify(typeof i>"u"?{}:i),Po.Job.optsAsJSON(s),{name:n,startDate:t.startDate?new Date(t.startDate).getTime():void 0,endDate:m?new Date(m).getTime():void 0,tz:t.tz,pattern:u,every:l,limit:c,offset:R},Po.Job.optsAsJSON(K),o),F=typeof G=="string"?parseInt(G,10):G,h=new this.Job(this,n,i,Object.assign(Object.assign({},K),{delay:F}),P);return h.id=P,D?.setAttributes({[Pi.TelemetryAttributes.JobSchedulerId]:e,[Pi.TelemetryAttributes.JobId]:h.id}),h}else{let P=await this.scripts.updateJobSchedulerNextMillis(e,I,JSON.stringify(typeof i>"u"?{}:i),Po.Job.optsAsJSON(K),o);if(P){let G=new this.Job(this,n,i,K,P);return G.id=P,D?.setAttributes({[Pi.TelemetryAttributes.JobSchedulerId]:e,[Pi.TelemetryAttributes.JobId]:G.id}),G}}})}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,MC.array2obj)(t):null,n?parseInt(n):null)}getTemplateFromJSON(e,t){let n={};return e&&(n.data=JSON.parse(e)),t&&(n.opts=Po.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=Rd;var PC=(r,e)=>{let{pattern:t}=e,n=new Date(r),i=e.startDate&&new Date(e.startDate),s=i>n?i:n,a=(0,CC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:s}));try{return e.immediately?new Date().getTime():a.next().getTime()}catch{}};cn.defaultRepeatStrategy=PC});var Cd=y(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.LockManager=void 0;var NC=js(),Lo=st(),Od=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(Lo.SpanKind.INTERNAL,"extendLocks",this.worker.name,async t=>{t?.setAttributes({[Lo.TelemetryAttributes.WorkerId]:this.opts.workerId,[Lo.TelemetryAttributes.WorkerName]:this.opts.workerName,[Lo.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 NC.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())}};qo.LockManager=Od});var aK=y(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.QueueEvents=void 0;var sK=(Qe(),nt(He)),Jo=ct(),LC=_r(),_d=class extends LC.QueueBase{constructor(e,t={connection:{}},n){var i,{connection:s,autorun:a=!0}=t,o=sK.__rest(t,["connection","autorun"]);super(e,Object.assign(Object.assign({},o),{connection:(0,Jo.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(Jo.QUEUE_EVENT_SUFFIX))}catch(t){if(!Jo.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,Jo.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=sK.__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}};Fo.QueueEvents=_d});var oK=y(Vo=>{"use strict";Object.defineProperty(Vo,"__esModule",{value:!0});Vo.QueueEventsProducer=void 0;var qC=(Qe(),nt(He)),JC=_r(),Md=class extends JC.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=qC.__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}};Vo.QueueEventsProducer=Md});var Ld=y(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.QueueGetters=void 0;var FC=(Qe(),nt(He)),VC=_r(),lK=ct(),Pd=st();function cK(r){return String(r).replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}var Nd=class extends VC.QueueBase{getJob(e){return this.Job.fromId(this,e)}commandByType(e,t,n){return e.map(i=>{i=i==="waiting"?"wait":i;let s=this.toKey(i);switch(i){case"completed":case"failed":case"delayed":case"prioritized":case"repeat":case"waiting-children":return n(s,t?"zcard":"zrange");case"active":case"wait":case"paused":return n(s,t?"llen":"lrange")}})}sanitizeJobTypes(e){let t=typeof e=="string"?[e]:e;if(Array.isArray(t)&&t.length>0){let n=[...t];return n.indexOf("waiting")!==-1&&n.push("paused"),[...new Set(n)]}return["active","completed","delayed","failed","paused","prioritized","waiting","waiting-children"]}async count(){return await this.getJobCountByTypes("waiting","paused","delayed","prioritized","waiting-children")}async getRateLimitTtl(e){return this.scripts.getRateLimitTtl(e)}async getDebounceJobId(e){return(await this.client).get(`${this.keys.de}:${e}`)}async getDeduplicationJobId(e){return(await this.client).get(`${this.keys.de}:${e}`)}async getGlobalConcurrency(){let t=await(await this.client).hget(this.keys.meta,"concurrency");return t?Number(t):null}async getGlobalRateLimit(){let e=await this.client,[t,n]=await e.hmget(this.keys.meta,"max","duration");return t&&n?{max:Number(t),duration:Number(n)}:null}async getJobCountByTypes(...e){let t=await this.getJobCounts(...e);return Object.values(t).reduce((n,i)=>n+i,0)}async getJobCounts(...e){let t=this.sanitizeJobTypes(e),n=await this.scripts.getCounts(t),i={};return n.forEach((s,a)=>{i[t[a]]=s||0}),i}async recordJobCountsMetric(...e){var t;let n=await this.getJobCounts(...e),i=(t=this.opts.telemetry)===null||t===void 0?void 0:t.meter;if(i&&typeof i.createGauge=="function"){let s=i.createGauge(Pd.MetricNames.QueueJobsCount,{description:"Number of jobs in the queue by state",unit:"{jobs}"});for(let[a,o]of Object.entries(n))s.record(o,{[Pd.TelemetryAttributes.QueueName]:this.name,[Pd.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=FC.__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(!lK.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()}${lK.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=cK(this.name),s=e?Object.keys(e).reduce((l,c)=>`${l}, ${c}="${cK(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
|
-
`)}};Go.QueueGetters=Nd});var Yo=y(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.getNextMillis=un.Repeat=void 0;var GC=(Qe(),nt(He)),YC=Ad(),BC=Y("crypto"),WC=_r(),qd=class extends WC.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:m}=o,g=!!((p||m)&&o.immediately),E=g&&p?c-f:void 0;if(f){!d&&n.jobId&&(o.jobId=n.jobId);let k=uK(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:m,every:p},k);else{let oe=await this.client;R=await this.scripts.updateRepeatableJobMillis(oe,I,f,k)}let{immediately:D}=o,J=GC.__rest(o,["immediately"]);return this.createNextJob(e,f,R,Object.assign(Object.assign({},n),{repeat:Object.assign({offset:E},J)}),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=uK(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,BC.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=qd;function uK(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 UC=(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,YC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:n}));try{return e.immediately?new Date().getTime():i.next().getTime()}catch{}};un.getNextMillis=UC});var dK=y(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.Queue=void 0;var zC=Pn(),$C=Ld(),HC=Yo(),ie=st(),QC=No(),ZC=oa(),XC=ct(),Jd=class extends $C.QueueGetters{constructor(e,t,n){var i;super(e,Object.assign({},t),n),this.token=(0,XC.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}:${ZC.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 HC.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 QC.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(ie.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({[ie.TelemetryAttributes.JobName]:e,[ie.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(ie.SpanKind.PRODUCER,"addBulk",this.name,async(t,n)=>(t&&t.setAttributes({[ie.TelemetryAttributes.BulkNames]:e.map(i=>i.name),[ie.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,m=((c=(l=i.opts)===null||l===void 0?void 0:l.telemetry)===null||c===void 0?void 0:c.metadata)||!p&&n;(m||p)&&(d={metadata:m,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(ie.SpanKind.INTERNAL,"pause",this.name,async()=>{await this.scripts.pause(!0),this.emit("paused")})}async close(){await this.trace(ie.SpanKind.INTERNAL,"close",this.name,async()=>{this.closing||this._repeat&&await this._repeat.close(),await super.close()})}async rateLimit(e){await this.trace(ie.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[ie.TelemetryAttributes.QueueRateLimit]:e}),await this.client.then(n=>n.set(this.keys.limiter,Number.MAX_SAFE_INTEGER,"PX",e))})}async resume(){await this.trace(ie.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(ie.SpanKind.INTERNAL,"removeRepeatable",`${this.name}.${e}`,async i=>(i?.setAttributes({[ie.TelemetryAttributes.JobName]:e,[ie.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(ie.SpanKind.INTERNAL,"removeDebounceKey",`${this.name}`,async t=>(t?.setAttributes({[ie.TelemetryAttributes.JobKey]:e}),await(await this.client).del(`${this.keys.de}:${e}`)))}async removeDeduplicationKey(e){return this.trace(ie.SpanKind.INTERNAL,"removeDeduplicationKey",`${this.name}`,async t=>(t?.setAttributes({[ie.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(ie.SpanKind.INTERNAL,"removeRepeatableByKey",`${this.name}`,async t=>(t?.setAttributes({[ie.TelemetryAttributes.JobKey]:e}),!await(await this.repeat).removeRepeatableByKey(e)))}async remove(e,{removeChildren:t=!0}={}){return this.trace(ie.SpanKind.INTERNAL,"remove",this.name,async n=>{n?.setAttributes({[ie.TelemetryAttributes.JobId]:e,[ie.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(ie.SpanKind.INTERNAL,"updateJobProgress",this.name,async n=>{n?.setAttributes({[ie.TelemetryAttributes.JobId]:e,[ie.TelemetryAttributes.JobProgress]:JSON.stringify(t)}),await this.scripts.updateProgress(e,t),this.emit("progress",e,t)})}async addJobLog(e,t,n){return zC.Job.addJobLog(this,e,t,n)}async drain(e=!1){await this.trace(ie.SpanKind.INTERNAL,"drain",this.name,async t=>{t?.setAttributes({[ie.TelemetryAttributes.QueueDrainDelay]:e}),await this.scripts.drain(e)})}async clean(e,t,n="completed"){return this.trace(ie.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({[ie.TelemetryAttributes.QueueGrace]:e,[ie.TelemetryAttributes.JobType]:n,[ie.TelemetryAttributes.QueueCleanLimit]:s,[ie.TelemetryAttributes.JobIds]:c}),c})}async obliterate(e){await this.trace(ie.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(ie.SpanKind.PRODUCER,"retryJobs",this.name,async t=>{t?.setAttributes({[ie.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(ie.SpanKind.INTERNAL,"promoteJobs",this.name,async t=>{t?.setAttributes({[ie.TelemetryAttributes.QueueOptions]:JSON.stringify(e)});let n=0;do n=await this.scripts.promoteJobs(e.count);while(n)})}async trimEvents(e){return this.trace(ie.SpanKind.INTERNAL,"trimEvents",this.name,async t=>(t?.setAttributes({[ie.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 m=await this.scripts.removeOrphanedJobs([...p],s,a);if(c+=m||0,t>0&&c>=t)break}while(u!=="0");return c}};Bo.Queue=Jd});var Vd=y(Fd=>{"use strict";Object.defineProperty(Fd,"__esModule",{value:!0});var _e=st(),e_=(r,e)=>async function(n,i,s){let a,o,l,c;try{let u=new Promise((d,f)=>{(async()=>{try{l=(m,g)=>{f(new Error("Unexpected exit code: "+m+" signal: "+g))},a=await e.retain(r),a.on("exit",l),o=async m=>{var g,E,k,I,R;try{switch(m.cmd){case _e.ParentCommand.Completed:d(m.value);break;case _e.ParentCommand.Failed:case _e.ParentCommand.Error:{let D=new Error;Object.assign(D,m.value),f(D);break}case _e.ParentCommand.Progress:await n.updateProgress(m.value);break;case _e.ParentCommand.Log:await n.log(m.value);break;case _e.ParentCommand.MoveToDelayed:await n.moveToDelayed((g=m.value)===null||g===void 0?void 0:g.timestamp,(E=m.value)===null||E===void 0?void 0:E.token);break;case _e.ParentCommand.MoveToWait:await n.moveToWait((k=m.value)===null||k===void 0?void 0:k.token);break;case _e.ParentCommand.MoveToWaitingChildren:{let D=await n.moveToWaitingChildren((I=m.value)===null||I===void 0?void 0:I.token,(R=m.value)===null||R===void 0?void 0:R.opts);a.send({requestId:m.requestId,cmd:_e.ChildCommand.MoveToWaitingChildrenResponse,value:D})}break;case _e.ParentCommand.Update:await n.updateData(m.value);break;case _e.ParentCommand.GetChildrenValues:{let D=await n.getChildrenValues();a.send({requestId:m.requestId,cmd:_e.ChildCommand.GetChildrenValuesResponse,value:D})}break;case _e.ParentCommand.GetIgnoredChildrenFailures:{let D=await n.getIgnoredChildrenFailures();a.send({requestId:m.requestId,cmd:_e.ChildCommand.GetIgnoredChildrenFailuresResponse,value:D})}break;case _e.ParentCommand.GetDependenciesCount:{let D=await n.getDependenciesCount(m.value);a.send({requestId:m.requestId,cmd:_e.ChildCommand.GetDependenciesCountResponse,value:D})}break;case _e.ParentCommand.GetDependencies:{let D=await n.getDependencies(m.value);a.send({requestId:m.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(m){f(m)}})()});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))}};Fd.default=e_});var fK=y((Uo,pK)=>{"use strict";Object.defineProperty(Uo,"__esModule",{value:!0});Uo.Worker=void 0;var Wo=Y("fs"),t_=Y("url"),Ni=Y("path"),r_=js(),zn=ct(),n_=_r(),i_=Yo(),s_=Bc(),a_=Ii(),o_=Vd(),l_=qc(),$n=Vs(),se=st(),c_=No(),u_=Cd(),d_=10,Gd=class extends n_.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 t_.URL){if(!Wo.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(Ni.extname(t))?"":".js");if(!Wo.existsSync(f))throw new Error(`File ${f} does not exist`)}let o=Ni.dirname(pK.filename||__filename),l=Ni.join(o,"main-worker.js"),c=Ni.join(o,"main.js"),u=this.opts.useWorkerThreads?l:c;try{Wo.statSync(u)}catch{let f=this.opts.useWorkerThreads?"main-worker.js":"main.js";u=Ni.join(process.cwd(),`dist/cjs/classes/${f}`),Wo.statSync(u)}this.childPool=new s_.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 a_.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 u_.LockManager(this,{lockRenewTime:this.opts.lockRenewTime,lockDuration:this.opts.lockDuration,workerId:this.id,workerName:this.opts.name})}createSandbox(e){this.processFn=(0,o_.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 i_.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 c_.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 r_.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 l_.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(se.SpanKind.INTERNAL,"getNextJob",this.name,async a=>(a?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.QueueName]:this.name,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.TelemetryAttributes.WorkerOptions]:JSON.stringify({block:t}),[se.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(se.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.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,d_)}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(se.SpanKind.CONSUMER,"process",this.name,async o=>{o?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.TelemetryAttributes.JobId]:e.id,[se.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({[se.TelemetryAttributes.JobFinishedTimestamp]:c,[se.TelemetryAttributes.JobAttemptFinishedTimestamp]:e.finishedOn||c,[se.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",{[se.TelemetryAttributes.JobResult]:JSON.stringify(e)}),s?.setAttributes({[se.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",{[se.TelemetryAttributes.JobFailedReason]:e.message}),s?.setAttributes({[se.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(se.SpanKind.INTERNAL,"pause",this.name,async t=>{var n;t?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.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(se.SpanKind.INTERNAL,"resume",this.name,e=>{e?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.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(se.SpanKind.INTERNAL,"close",this.name,async t=>{var n,i;t?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.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(se.SpanKind.INTERNAL,"startStalledCheckTimer",this.name,async e=>{e?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.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(se.SpanKind.INTERNAL,"moveStalledJobsToWait",this.name,async e=>{let t=await this.scripts.moveStalledJobsToWait();e?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.TelemetryAttributes.WorkerStalledJobs]:t}),t.forEach(n=>{e?.addEvent("job stalled",{[se.TelemetryAttributes.JobId]:n}),this.emit("stalled",n,"active")})})}moveLimitedBackToWait(e,t){return e.moveToWait(t)}};Uo.Worker=Gd});var hK=y(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});var Re=(Qe(),nt(He));Re.__exportStar(qc(),je);Re.__exportStar(Jc(),je);Re.__exportStar(Vc(),je);Re.__exportStar(Bc(),je);Re.__exportStar(Vm(),je);Re.__exportStar(Vs(),je);Re.__exportStar(b0(),je);Re.__exportStar(Pn(),je);Re.__exportStar(No(),je);Re.__exportStar(Cd(),je);Re.__exportStar(_r(),je);Re.__exportStar(aK(),je);Re.__exportStar(oK(),je);Re.__exportStar(Ld(),je);Re.__exportStar(pa(),je);Re.__exportStar(dK(),je);Re.__exportStar(Ii(),je);Re.__exportStar(Yo(),je);Re.__exportStar(Vd(),je);Re.__exportStar(Vu(),je);Re.__exportStar(fK(),je)});var mK=y(yK=>{"use strict";Object.defineProperty(yK,"__esModule",{value:!0})});var gK=y(bK=>{"use strict";Object.defineProperty(bK,"__esModule",{value:!0})});var KK=y(vK=>{"use strict";Object.defineProperty(vK,"__esModule",{value:!0})});var EK=y(SK=>{"use strict";Object.defineProperty(SK,"__esModule",{value:!0})});var IK=y(kK=>{"use strict";Object.defineProperty(kK,"__esModule",{value:!0})});var wK=y(xK=>{"use strict";Object.defineProperty(xK,"__esModule",{value:!0})});var jK=y(TK=>{"use strict";Object.defineProperty(TK,"__esModule",{value:!0})});var DK=y(AK=>{"use strict";Object.defineProperty(AK,"__esModule",{value:!0})});var OK=y(RK=>{"use strict";Object.defineProperty(RK,"__esModule",{value:!0})});var _K=y(CK=>{"use strict";Object.defineProperty(CK,"__esModule",{value:!0})});var PK=y(MK=>{"use strict";Object.defineProperty(MK,"__esModule",{value:!0})});var LK=y(NK=>{"use strict";Object.defineProperty(NK,"__esModule",{value:!0})});var JK=y(qK=>{"use strict";Object.defineProperty(qK,"__esModule",{value:!0})});var VK=y(FK=>{"use strict";Object.defineProperty(FK,"__esModule",{value:!0})});var YK=y(GK=>{"use strict";Object.defineProperty(GK,"__esModule",{value:!0})});var WK=y(BK=>{"use strict";Object.defineProperty(BK,"__esModule",{value:!0})});var zK=y(UK=>{"use strict";Object.defineProperty(UK,"__esModule",{value:!0})});var HK=y($K=>{"use strict";Object.defineProperty($K,"__esModule",{value:!0})});var ZK=y(zo=>{"use strict";Object.defineProperty(zo,"__esModule",{value:!0});zo.ClientType=void 0;var QK;(function(r){r.blocking="blocking",r.normal="normal"})(QK||(zo.ClientType=QK={}))});var eS=y(XK=>{"use strict";Object.defineProperty(XK,"__esModule",{value:!0})});var rS=y(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0})});var iS=y(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0})});var aS=y(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0})});var lS=y(oS=>{"use strict";Object.defineProperty(oS,"__esModule",{value:!0})});var uS=y(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0})});var pS=y(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0})});var hS=y(fS=>{"use strict";Object.defineProperty(fS,"__esModule",{value:!0})});var mS=y(yS=>{"use strict";Object.defineProperty(yS,"__esModule",{value:!0})});var gS=y(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0})});var KS=y(vS=>{"use strict";Object.defineProperty(vS,"__esModule",{value:!0})});var ES=y(SS=>{"use strict";Object.defineProperty(SS,"__esModule",{value:!0})});var IS=y(kS=>{"use strict";Object.defineProperty(kS,"__esModule",{value:!0})});var wS=y(xS=>{"use strict";Object.defineProperty(xS,"__esModule",{value:!0})});var TS=y(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});var de=(Qe(),nt(He));de.__exportStar(mK(),ue);de.__exportStar(gK(),ue);de.__exportStar(KK(),ue);de.__exportStar(EK(),ue);de.__exportStar(IK(),ue);de.__exportStar(wK(),ue);de.__exportStar(jK(),ue);de.__exportStar(DK(),ue);de.__exportStar(OK(),ue);de.__exportStar(_K(),ue);de.__exportStar(PK(),ue);de.__exportStar(LK(),ue);de.__exportStar(JK(),ue);de.__exportStar(VK(),ue);de.__exportStar(YK(),ue);de.__exportStar(WK(),ue);de.__exportStar(zK(),ue);de.__exportStar(HK(),ue);de.__exportStar(ZK(),ue);de.__exportStar(eS(),ue);de.__exportStar(rS(),ue);de.__exportStar(iS(),ue);de.__exportStar(aS(),ue);de.__exportStar(lS(),ue);de.__exportStar(uS(),ue);de.__exportStar(pS(),ue);de.__exportStar(hS(),ue);de.__exportStar(mS(),ue);de.__exportStar(gS(),ue);de.__exportStar(KS(),ue);de.__exportStar(ES(),ue);de.__exportStar(IS(),ue);de.__exportStar(wS(),ue)});var AS=y(jS=>{"use strict";Object.defineProperty(jS,"__esModule",{value:!0})});var RS=y(DS=>{"use strict";Object.defineProperty(DS,"__esModule",{value:!0})});var CS=y(OS=>{"use strict";Object.defineProperty(OS,"__esModule",{value:!0})});var MS=y(_S=>{"use strict";Object.defineProperty(_S,"__esModule",{value:!0})});var NS=y(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0})});var qS=y(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0})});var FS=y(JS=>{"use strict";Object.defineProperty(JS,"__esModule",{value:!0})});var GS=y(VS=>{"use strict";Object.defineProperty(VS,"__esModule",{value:!0})});var BS=y(YS=>{"use strict";Object.defineProperty(YS,"__esModule",{value:!0})});var US=y(WS=>{"use strict";Object.defineProperty(WS,"__esModule",{value:!0})});var $S=y(zS=>{"use strict";Object.defineProperty(zS,"__esModule",{value:!0})});var HS=y(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});var _t=(Qe(),nt(He));_t.__exportStar(AS(),bt);_t.__exportStar(RS(),bt);_t.__exportStar(CS(),bt);_t.__exportStar(MS(),bt);_t.__exportStar(NS(),bt);_t.__exportStar(qS(),bt);_t.__exportStar(FS(),bt);_t.__exportStar(GS(),bt);_t.__exportStar(BS(),bt);_t.__exportStar(US(),bt);_t.__exportStar($S(),bt)});var ZS=y(QS=>{"use strict";Object.defineProperty(QS,"__esModule",{value:!0})});var XS=y(ar=>{"use strict";Object.defineProperty(ar,"__esModule",{value:!0});var dn=(Qe(),nt(He));dn.__exportStar(hK(),ar);dn.__exportStar(st(),ar);dn.__exportStar(TS(),ar);dn.__exportStar(HS(),ar);dn.__exportStar(ct(),ar);dn.__exportStar(ZS(),ar);dn.__exportStar(ua(),ar)});var $d=rp(fs(),1);var Hn=rp(XS(),1);import{MessageId as b_}from"@workflow/world";import $o from"node:crypto";var Li="0123456789ABCDEFGHJKMNPQRSTVWXYZ",qi=32;var rE=16,Ho=10,eE=0xffffffffffff;var or;(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"})(or||(or={}));var lr=class extends Error{constructor(e,t){super(`${t} (${e})`),this.name="ULIDError",this.code=e}};function p_(r){let e=Math.floor(r()*qi)%qi;return Li.charAt(e)}function tE(r,e,t){return e>r.length-1?r:r.substr(0,e)+t+r.substr(e+1)}function f_(r){let e,t=r.length,n,i,s=r,a=qi-1;for(;!e&&t-->=0;){if(n=s[t],i=Li.indexOf(n),i===-1)throw new lr(or.Base32IncorrectEncoding,"Incorrectly encoded string");if(i===a){s=tE(s,t,Li[0]);continue}e=tE(s,t,Li[i+1])}if(typeof e=="string")return e;throw new lr(or.Base32IncorrectEncoding,"Failed incrementing string")}function nE(r){let e=h_(),t=e&&(e.crypto||e.msCrypto)||(typeof $o<"u"?$o: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($o?.randomBytes)return()=>$o.randomBytes(1).readUInt8()/256;throw new lr(or.PRNGDetectFailure,"Failed to find a reliable PRNG")}function h_(){return y_()?self:typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:null}function iE(r,e){let t="";for(;r>0;r--)t=p_(e)+t;return t}function Yd(r,e=Ho){if(isNaN(r))throw new lr(or.EncodeTimeValueMalformed,`Time must be a number: ${r}`);if(r>eE)throw new lr(or.EncodeTimeSizeExceeded,`Cannot encode a time larger than ${eE}: ${r}`);if(r<0)throw new lr(or.EncodeTimeNegative,`Time must be positive: ${r}`);if(Number.isInteger(r)===!1)throw new lr(or.EncodeTimeValueMalformed,`Time must be an integer: ${r}`);let t,n="";for(let i=e;i>0;i--)t=r%qi,n=Li.charAt(t)+n,r=(r-t)/qi;return n}function y_(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function Qo(r){let e=r||nE(),t=0,n;return function(s){let a=!s||isNaN(s)?Date.now():s;if(a<=t){let l=n=f_(n);return Yd(t,Ho)+l}t=a;let o=n=iE(rE,e);return Yd(a,Ho)+o}}function Zo(r,e){let t=e||nE(),n=!r||isNaN(r)?Date.now():r;return Yd(n,Ho)+iE(rE,t)}var Xo=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 el=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 m_(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
|
|
8909
|
+
`;fo.updateRepeatableJobMillis={name:"updateRepeatableJobMillis",content:xR,keys:1}});var m0=y(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});var $=(Qe(),nt(He));$.__exportStar(vg(),z);$.__exportStar(Kg(),z);$.__exportStar(Sg(),z);$.__exportStar(Eg(),z);$.__exportStar(kg(),z);$.__exportStar(Ig(),z);$.__exportStar(xg(),z);$.__exportStar(wg(),z);$.__exportStar(Tg(),z);$.__exportStar(jg(),z);$.__exportStar(Ag(),z);$.__exportStar(Dg(),z);$.__exportStar(Rg(),z);$.__exportStar(Og(),z);$.__exportStar(Cg(),z);$.__exportStar(_g(),z);$.__exportStar(Mg(),z);$.__exportStar(Pg(),z);$.__exportStar(Ng(),z);$.__exportStar(Lg(),z);$.__exportStar(qg(),z);$.__exportStar(Jg(),z);$.__exportStar(Fg(),z);$.__exportStar(Vg(),z);$.__exportStar(Gg(),z);$.__exportStar(Yg(),z);$.__exportStar(Bg(),z);$.__exportStar(Wg(),z);$.__exportStar(Ug(),z);$.__exportStar(zg(),z);$.__exportStar($g(),z);$.__exportStar(Hg(),z);$.__exportStar(Qg(),z);$.__exportStar(Zg(),z);$.__exportStar(Xg(),z);$.__exportStar(e0(),z);$.__exportStar(t0(),z);$.__exportStar(r0(),z);$.__exportStar(n0(),z);$.__exportStar(i0(),z);$.__exportStar(s0(),z);$.__exportStar(a0(),z);$.__exportStar(o0(),z);$.__exportStar(l0(),z);$.__exportStar(c0(),z);$.__exportStar(u0(),z);$.__exportStar(d0(),z);$.__exportStar(f0(),z);$.__exportStar(p0(),z);$.__exportStar(y0(),z);$.__exportStar(h0(),z)});var Ii=y(ho=>{"use strict";Object.defineProperty(ho,"__esModule",{value:!0});ho.RedisConnection=void 0;var wR=(Qe(),nt(He)),TR=Y("events"),b0=hs(),g0=Oe(),rt=ct(),jR=ca(),AR=m0(),DR=["BullMQ: WARNING! Your redis options maxRetriesPerRequest must be null","and will be overridden by BullMQ."].join(" "),RR="BullMQ: Your redis options maxRetriesPerRequest must be null.",po=Symbol("bullmqClusterReconnectPromise"),Gu=Symbol("bullmqClusterPatchedForBlocking"),yo=Symbol("bullmqClusterOriginalBzpopmin"),Yu=Symbol("bullmqClusterWrappedBzpopmin"),Ln=Symbol("bullmqClusterPatchRefCount"),en=Symbol("bullmqClusterClosingRefCount"),ki=class r extends TR.EventEmitter{constructor(e,t){if(super(),this.extraOptions=t,this.capabilities={canDoubleTimeout:!1,canBlockFor1Ms:!0},this.status="initializing",this.dbType="redis",this.packageVersion=jR.version,this.disabledBlockingClusterReconnect=!1,this.extraOptions=Object.assign({shared:!1,blocking:!0,skipVersionCheck:!1,skipWaitingForReady:!1},t),!(0,rt.isRedisInstance)(e))this.checkBlockingOptions(DR,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(RR,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(g0.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(g0.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||AR;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=wR.__rest(e,["url"]);this._client=t?new b0.default(t,n):new b0.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[Ln]=(t[Ln]||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[yo]=n,t[Yu]=i,t[Gu]=!0,t.bzpopmin=i}disableBlockingClusterReconnect(){let e=this.patchedBlockingClusterClient;!e||this.disabledBlockingClusterReconnect||(e[en]=(e[en]||0)+1,this.disabledBlockingClusterReconnect=!0)}releaseBlockingClusterClientPatch(){let e=this.patchedBlockingClusterClient;if(!e)return;if(this.disabledBlockingClusterReconnect){let n=(e[en]||1)-1;n>0?e[en]=n:delete e[en],this.disabledBlockingClusterReconnect=!1}let t=(e[Ln]||1)-1;if(t>0){e[Ln]=t,this.patchedBlockingClusterClient=void 0;return}e[yo]&&e.bzpopmin===e[Yu]&&(e.bzpopmin=e[yo]),delete e[Ln],delete e[en],delete e[yo],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[Ln]||0,n=e[en]||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[po]||(e[po]=(async()=>{e.disconnect(!1),await e.connect()})().finally(()=>{e[po]=null})),await e[po])}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}};ho.RedisConnection=ki;ki.minimumVersion="5.0.0";ki.recommendedMinimumVersion="6.2.0"});var v0=y(bo=>{"use strict";Object.defineProperty(bo,"__esModule",{value:!0});bo.FlowProducer=void 0;var OR=Y("events"),Tr=ct(),CR=Nn(),mo=ya(),_R=Ii(),Bt=st(),Bu=class extends OR.EventEmitter{constructor(e={connection:{}},t=_R.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 mo.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 CR.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,Bt.SpanKind.PRODUCER,e.queueName,"addFlow",e.queueName,async c=>{c?.setAttributes({[Bt.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(),[p]=d||[];if(p){let[f,h]=p;if(f)throw f;if(typeof h=="number"&&h<0)throw this.toFlowError(h,o);typeof h=="string"&&(u.job.id=h)}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,Bt.SpanKind.PRODUCER,"","addBulkFlows","",async i=>{i?.setAttributes({[Bt.TelemetryAttributes.BulkCount]:e.length,[Bt.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 mo.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,Bt.SpanKind.PRODUCER,t.queueName,"addNode",t.queueName,async(p,f)=>{var h,g;p?.setAttributes({[Bt.TelemetryAttributes.JobName]:t.name,[Bt.TelemetryAttributes.JobId]:d});let k=t.opts,E=k?.telemetry;if(f&&k){let D=(h=k.telemetry)===null||h===void 0?void 0:h.omitContext,B=((g=k.telemetry)===null||g===void 0?void 0:g.metadata)||!D&&f;(B||D)&&(E={metadata:B,omitContext:D})}let I=new this.Job(l,t.name,t.data,Object.assign(Object.assign(Object.assign({},u),k),{parent:n?.parentOpts,telemetry:E}),d),O=(0,Tr.getParentKey)(n?.parentOpts);if(t.children&&t.children.length>0){let D=d,B=new mo.QueueKeys(t.prefix||this.opts.prefix);await I.addJob(e,{parentDependenciesKey:n?.parentDependenciesKey,addToWaitingChildren:!0,parentKey:O});let ae=`${B.toKey(t.queueName,D)}:dependencies`,w=await this.addChildren({multi:e,nodes:t.children,parent:{parentOpts:{id:D,queue:B.getQueueQualifiedName(t.queueName)},parentDependenciesKey:ae},queuesOpts:i});return{job:I,children:w}}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 mo.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,p=t.depth-1;if(d>0&&p){let f=await this.getChildren(e,[...c,...a,...o,...u],p,t.maxChildren);return{job:i,children:f}}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 Bt.ErrorCode.ParentJobNotExist:n=new Error(`Missing key for parent job ${t}. addJob`);break;case Bt.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()}};bo.FlowProducer=Bu});var $v=y(mt=>{"use strict";Object.defineProperty(mt,"__esModule",{value:!0});var sr=class extends Error{},td=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},rd=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},nd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Dr=class extends sr{},xo=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Fe=class extends sr{},Wt=class extends sr{constructor(){super("Zone is an abstract class")}},N="numeric",_t="short",yt="long",wo={year:N,month:N,day:N},H0={year:N,month:_t,day:N},MR={year:N,month:_t,day:N,weekday:_t},Q0={year:N,month:yt,day:N},Z0={year:N,month:yt,day:N,weekday:yt},X0={hour:N,minute:N},ev={hour:N,minute:N,second:N},tv={hour:N,minute:N,second:N,timeZoneName:_t},rv={hour:N,minute:N,second:N,timeZoneName:yt},nv={hour:N,minute:N,hourCycle:"h23"},iv={hour:N,minute:N,second:N,hourCycle:"h23"},sv={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:_t},av={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:yt},ov={year:N,month:N,day:N,hour:N,minute:N},lv={year:N,month:N,day:N,hour:N,minute:N,second:N},cv={year:N,month:_t,day:N,hour:N,minute:N},uv={year:N,month:_t,day:N,hour:N,minute:N,second:N},PR={year:N,month:_t,day:N,weekday:_t,hour:N,minute:N},dv={year:N,month:yt,day:N,hour:N,minute:N,timeZoneName:_t},fv={year:N,month:yt,day:N,hour:N,minute:N,second:N,timeZoneName:_t},pv={year:N,month:yt,day:N,weekday:yt,hour:N,minute:N,timeZoneName:yt},yv={year:N,month:yt,day:N,weekday:yt,hour:N,minute:N,second:N,timeZoneName:yt},Or=class{get type(){throw new Wt}get name(){throw new Wt}get ianaName(){return this.name}get isUniversal(){throw new Wt}offsetName(e,t){throw new Wt}formatOffset(e,t){throw new Wt}offset(e){throw new Wt}equals(e){throw new Wt}get isValid(){throw new Wt}},Wu=null,Di=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 xv(e,t,n)}formatOffset(e,t){return Ai(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 NR(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 LR={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function qR(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 JR(r,e){let t=r.formatToParts(e),n=[];for(let i=0;i<t.length;i++){let{type:s,value:a}=t[i],o=LR[s];s==="era"?n[o]=a:Z(o)||(n[o]=parseInt(a,10))}return n}var Uu=new Map,ar=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 xv(e,t,n,this.name)}formatOffset(e,t){return Ai(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=NR(this.name),[i,s,a,o,l,c,u]=n.formatToParts?JR(n,t):qR(n,t);o==="BC"&&(i=-Math.abs(i)+1);let p=Co({year:i,month:s,day:a,hour:l===24?0:l,minute:c,second:u,millisecond:0}),f=+t,h=f%1e3;return f-=h>=0?h:1e3+h,(p-f)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},K0={};function FR(r,e={}){let t=JSON.stringify([r,e]),n=K0[t];return n||(n=new Intl.ListFormat(r,e),K0[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 VR(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 GR(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 wi=null;function YR(){return wi||(wi=new Intl.DateTimeFormat().resolvedOptions().locale,wi)}var cd=new Map;function hv(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 BR(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={...mv,...e}),ud.set(r,e)}return e}function WR(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 UR(r,e,t){return(t||e)&&(r.includes("-u-")||(r+="-u"),t&&(r+=`-ca-${t}`),e&&(r+=`-nu-${e}`)),r}function zR(r){let e=[];for(let t=1;t<=12;t++){let n=xe.utc(2009,t,1);e.push(r(n))}return e}function $R(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 go(r,e,t,n){let i=r.listingMode();return i==="error"?null:i==="en"?t(e):n(e)}function HR(r){return r.numberingSystem&&r.numberingSystem!=="latn"?!1:r.numberingSystem==="latn"||!r.locale||r.locale.startsWith("en")||hv(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=VR(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)}}},fd=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&&ar.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()}},pd=class{constructor(e,t,n){this.opts={style:"long",...n},!t&&kv()&&(this.rtf=GR(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):bO(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},mv={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":YR()),l=t||Ie.defaultNumberingSystem,c=n||Ie.defaultOutputCalendar,u=hd(i)||Ie.defaultWeekSettings;return new r(o,l,c,u,a)}static resetCache(){wi=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]=WR(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||l||null,this.weekSettings=i,this.intl=UR(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=HR(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,hd(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 go(this,e,jv,()=>{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]=zR(a)}return this.monthsCache[s][e]})}weekdays(e,t=!1){return go(this,e,Rv,()=>{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]=$R(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return go(this,void 0,()=>Ov,()=>{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 go(this,e,Cv,()=>{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 fd(e,this.intl,t)}relFormatter(e={}){return new pd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return FR(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||hv(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Iv()?BR(this.locale):mv}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,ht=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(_o(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Ai(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Ai(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return Ai(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}},To=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(Z(r)||r===null)return e;if(r instanceof Or)return r;if(rO(r)){let t=r.toLowerCase();return t==="default"?e:t==="local"||t==="system"?Di.instance:t==="utc"||t==="gmt"?ht.utcInstance:ht.parseSpecifier(t)||ar.create(r)}else return Rr(r)?ht.instance(r):typeof r=="object"&&"offset"in r&&typeof r.offset=="function"?r:new To(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"},S0={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]},QR=gd.hanidec.replace(/[\[|\]]/g,"").split("");function ZR(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+=QR.indexOf(r[t]);else for(let i in S0){let[s,a]=S0[i];n>=s&&n<=a&&(e+=n-s)}}return parseInt(e,10)}else return e}var yd=new Map;function XR(){yd.clear()}function Ot({numberingSystem:r},e=""){let t=r||"latn",n=yd.get(t);n===void 0&&(n=new Map,yd.set(t,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${gd[t]}${e}`),n.set(e,i)),i}var E0=()=>Date.now(),k0="system",I0=null,x0=null,w0=null,T0=60,j0,A0=null,Ie=class{static get now(){return E0}static set now(e){E0=e}static set defaultZone(e){k0=e}static get defaultZone(){return Ar(k0,Di.instance)}static get defaultLocale(){return I0}static set defaultLocale(e){I0=e}static get defaultNumberingSystem(){return x0}static set defaultNumberingSystem(e){x0=e}static get defaultOutputCalendar(){return w0}static set defaultOutputCalendar(e){w0=e}static get defaultWeekSettings(){return A0}static set defaultWeekSettings(e){A0=hd(e)}static get twoDigitCutoffYear(){return T0}static set twoDigitCutoffYear(e){T0=e%100}static get throwOnInvalid(){return j0}static set throwOnInvalid(e){j0=e}static resetCaches(){ve.resetCache(),ar.resetCache(),xe.resetCache(),XR()}},pt=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},bv=[0,31,59,90,120,151,181,212,243,273,304,334],gv=[0,31,60,91,121,152,182,213,244,274,305,335];function xt(r,e){return new pt("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 vv(r,e,t){return t+(Oi(r)?gv:bv)[e-1]}function Kv(r,e){let t=Oi(r)?gv:bv,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 jo(r,e=4,t=1){let{year:n,month:i,day:s}=r,a=vv(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=Ri(c,e,t)):l>Ri(n,e,t)?(c=n+1,l=1):c=n,{weekYear:c,weekNumber:l,weekday:o,...Mo(r)}}function D0(r,e=4,t=1){let{weekYear:n,weekNumber:i,weekday:s}=r,a=Kd(vd(n,1,e),t),o=Vn(n),l=i*7+s-a-7+e,c;l<1?(c=n-1,l+=Vn(c)):l>o?(c=n+1,l-=Vn(n)):c=n;let{month:u,day:d}=Kv(c,l);return{year:c,month:u,day:d,...Mo(r)}}function $u(r){let{year:e,month:t,day:n}=r,i=vv(e,t,n);return{year:e,ordinal:i,...Mo(r)}}function R0(r){let{year:e,ordinal:t}=r,{month:n,day:i}=Kv(e,t);return{year:e,month:n,day:i,...Mo(r)}}function O0(r,e){if(!Z(r.localWeekday)||!Z(r.localWeekNumber)||!Z(r.localWeekYear)){if(!Z(r.weekday)||!Z(r.weekNumber)||!Z(r.weekYear))throw new Dr("Cannot mix locale-based week fields with ISO-based week fields");return Z(r.localWeekday)||(r.weekday=r.localWeekday),Z(r.localWeekNumber)||(r.weekNumber=r.localWeekNumber),Z(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 eO(r,e=4,t=1){let n=Oo(r.weekYear),i=wt(r.weekNumber,1,Ri(r.weekYear,e,t)),s=wt(r.weekday,1,7);return n?i?s?!1:xt("weekday",r.weekday):xt("week",r.weekNumber):xt("weekYear",r.weekYear)}function tO(r){let e=Oo(r.year),t=wt(r.ordinal,1,Vn(r.year));return e?t?!1:xt("ordinal",r.ordinal):xt("year",r.year)}function Sv(r){let e=Oo(r.year),t=wt(r.month,1,12),n=wt(r.day,1,Ao(r.year,r.month));return e?t?n?!1:xt("day",r.day):xt("month",r.month):xt("year",r.year)}function Ev(r){let{hour:e,minute:t,second:n,millisecond:i}=r,s=wt(e,0,23)||e===24&&t===0&&n===0&&i===0,a=wt(t,0,59),o=wt(n,0,59),l=wt(i,0,999);return s?a?o?l?!1:xt("millisecond",i):xt("second",n):xt("minute",t):xt("hour",e)}function Z(r){return typeof r>"u"}function Rr(r){return typeof r=="number"}function Oo(r){return typeof r=="number"&&r%1===0}function rO(r){return typeof r=="string"}function nO(r){return Object.prototype.toString.call(r)==="[object Date]"}function kv(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Iv(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function iO(r){return Array.isArray(r)?r:[r]}function C0(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 sO(r,e){return e.reduce((t,n)=>(t[n]=r[n],t),{})}function Yn(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function hd(r){if(r==null)return null;if(typeof r!="object")throw new Fe("Week settings must be an object");if(!wt(r.firstDay,1,7)||!wt(r.minimalDays,1,7)||!Array.isArray(r.weekend)||r.weekend.some(e=>!wt(e,1,7)))throw new Fe("Invalid week settings");return{firstDay:r.firstDay,minimalDays:r.minimalDays,weekend:Array.from(r.weekend)}}function wt(r,e,t){return Oo(r)&&r>=e&&r<=t}function aO(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(!(Z(r)||r===null||r===""))return parseInt(r,10)}function tn(r){if(!(Z(r)||r===null||r===""))return parseFloat(r)}function Sd(r){if(!(Z(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 Oi(r){return r%4===0&&(r%100!==0||r%400===0)}function Vn(r){return Oi(r)?366:365}function Ao(r,e){let t=aO(e-1,12)+1,n=r+(e-t)/12;return t===2?Oi(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][t-1]}function Co(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 _0(r,e,t){return-Kd(vd(r,1,e),t)+e-1}function Ri(r,e=4,t=1){let n=_0(r,e,t),i=_0(r+1,e,t);return(Vn(r)-n+i)/7}function md(r){return r>99?r:r>Ie.twoDigitCutoffYear?1900+r:2e3+r}function xv(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 _o(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 wv(r){let e=Number(r);if(typeof r=="boolean"||r===""||!Number.isFinite(e))throw new Fe(`Invalid unit value ${r}`);return e}function Do(r,e){let t={};for(let n in r)if(Yn(r,n)){let i=r[n];if(i==null)continue;t[e(n)]=wv(i)}return t}function Ai(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 Mo(r){return sO(r,["hour","minute","second","millisecond"])}var oO=["January","February","March","April","May","June","July","August","September","October","November","December"],Tv=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],lO=["J","F","M","A","M","J","J","A","S","O","N","D"];function jv(r){switch(r){case"narrow":return[...lO];case"short":return[...Tv];case"long":return[...oO];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 Av=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Dv=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],cO=["M","T","W","T","F","S","S"];function Rv(r){switch(r){case"narrow":return[...cO];case"short":return[...Dv];case"long":return[...Av];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Ov=["AM","PM"],uO=["Before Christ","Anno Domini"],dO=["BC","AD"],fO=["B","A"];function Cv(r){switch(r){case"narrow":return[...fO];case"short":return[...dO];case"long":return[...uO];default:return null}}function pO(r){return Ov[r.hour<12?0:1]}function yO(r,e){return Rv(e)[r.weekday-1]}function hO(r,e){return jv(e)[r.month-1]}function mO(r,e){return Cv(e)[r.year<0?0:1]}function bO(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 M0(r,e){let t="";for(let n of r)n.literal?t+=n.val:t+=e(n.val);return t}var gO={D:wo,DD:H0,DDD:Q0,DDDD:Z0,t:X0,tt:ev,ttt:tv,tttt:rv,T:nv,TT:iv,TTT:sv,TTTT:av,f:ov,ff:cv,fff:dv,ffff:pv,F:lv,FF:uv,FFF:fv,FFFF:yv},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 gO[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=(f,h)=>this.loc.extract(e,f,h),a=f=>e.isOffsetFixed&&e.offset===0&&f.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,f.format):"",o=()=>n?pO(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),l=(f,h)=>n?hO(e,f):s(h?{month:f}:{month:f,day:"numeric"},"month"),c=(f,h)=>n?yO(e,f):s(h?{weekday:f}:{weekday:f,month:"long",day:"numeric"},"weekday"),u=f=>{let h=r.macroTokenToFormatOpts(f);return h?this.formatWithSystemDefault(e,h):f},d=f=>n?mO(e,f):s({era:f},"era"),p=f=>{switch(f){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(f)}};return M0(r.parseFormat(t),p)}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)=>p=>{let f=i(p);if(f){let h=d.isNegativeDuration&&f!==d.largestUnit?n:1,g;return this.opts.signMode==="negativeLargestOnly"&&f!==d.largestUnit?g="never":this.opts.signMode==="all"?g="always":g="auto",this.num(u.get(f)*h,p.length,g)}else return p},a=r.parseFormat(t),o=a.reduce((u,{literal:d,val:p})=>d?u:u.concat(p),[]),l=e.shiftTo(...o.map(i).filter(u=>u)),c={isNegativeDuration:l<0,largestUnit:Object.keys(l.values)[0]};return M0(a,s(l,c))}},_v=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Bn(...r){let e=r.reduce((t,n)=>t+n.source,"");return RegExp(`^${e}$`)}function Wn(...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 Un(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 Mv(...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 Pv=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,vO=`(?:${Pv.source}?(?:\\[(${_v.source})\\])?)?`,kd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Nv=RegExp(`${kd.source}${vO}`),Id=RegExp(`(?:[Tt]${Nv.source})?`),KO=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,SO=/(\d{4})-?W(\d\d)(?:-?(\d))?/,EO=/(\d{4})-?(\d{3})/,kO=Mv("weekYear","weekNumber","weekDay"),IO=Mv("year","ordinal"),xO=/(\d{4})-(\d\d)-(\d\d)/,Lv=RegExp(`${kd.source} ?(?:${Pv.source}|(${_v.source}))?`),wO=RegExp(`(?: ${Lv.source})?`);function Gn(r,e,t){let n=r[e];return Z(n)?t:jr(n)}function TO(r,e){return[{year:Gn(r,e),month:Gn(r,e+1,1),day:Gn(r,e+2,1)},null,e+3]}function zn(r,e){return[{hours:Gn(r,e,0),minutes:Gn(r,e+1,0),seconds:Gn(r,e+2,0),milliseconds:Sd(r[e+3])},null,e+4]}function Ci(r,e){let t=!r[e]&&!r[e+1],n=_o(r[e+1],r[e+2]),i=t?null:ht.instance(n);return[{},i,e+3]}function _i(r,e){let t=r[e]?ar.create(r[e]):null;return[{},t,e+1]}var jO=RegExp(`^T?${kd.source}$`),AO=/^-?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 DO(r){let[e,t,n,i,s,a,o,l,c]=r,u=e[0]==="-",d=l&&l[0]==="-",p=(f,h=!1)=>f!==void 0&&(h||f&&u)?-f:f;return[{years:p(tn(t)),months:p(tn(n)),weeks:p(tn(i)),days:p(tn(s)),hours:p(tn(a)),minutes:p(tn(o)),seconds:p(tn(l),l==="-0"),milliseconds:p(Sd(c),d)}]}var RO={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:Tv.indexOf(t)+1,day:jr(n),hour:jr(i),minute:jr(s)};return a&&(o.second=jr(a)),r&&(o.weekday=r.length>3?Av.indexOf(r)+1:Dv.indexOf(r)+1),o}var OO=/^(?:(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 CO(r){let[,e,t,n,i,s,a,o,l,c,u,d]=r,p=xd(e,i,n,t,s,a,o),f;return l?f=RO[l]:c?f=0:f=_o(u,d),[p,new ht(f)]}function _O(r){return r.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var MO=/^(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$/,PO=/^(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$/,NO=/^(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 P0(r){let[,e,t,n,i,s,a,o]=r;return[xd(e,i,n,t,s,a,o),ht.utcInstance]}function LO(r){let[,e,t,n,i,s,a,o]=r;return[xd(e,o,t,n,i,s,a),ht.utcInstance]}var qO=Bn(KO,Id),JO=Bn(SO,Id),FO=Bn(EO,Id),VO=Bn(Nv),qv=Wn(TO,zn,Ci,_i),GO=Wn(kO,zn,Ci,_i),YO=Wn(IO,zn,Ci,_i),BO=Wn(zn,Ci,_i);function WO(r){return Un(r,[qO,qv],[JO,GO],[FO,YO],[VO,BO])}function UO(r){return Un(_O(r),[OO,CO])}function zO(r){return Un(r,[MO,P0],[PO,P0],[NO,LO])}function $O(r){return Un(r,[AO,DO])}var HO=Wn(zn);function QO(r){return Un(r,[jO,HO])}var ZO=Bn(xO,wO),XO=Bn(Lv),eC=Wn(zn,Ci,_i);function tC(r){return Un(r,[ZO,qv],[XO,eC])}var N0="Invalid Duration",Jv={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}},rC={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},...Jv},It=146097/400,qn=146097/4800,nC={years:{quarters:4,months:12,weeks:It/7,days:It,hours:It*24,minutes:It*24*60,seconds:It*24*60*60,milliseconds:It*24*60*60*1e3},quarters:{months:3,weeks:It/28,days:It/4,hours:It*24/4,minutes:It*24*60/4,seconds:It*24*60*60/4,milliseconds:It*24*60*60*1e3/4},months:{weeks:qn/7,days:qn,hours:qn*24,minutes:qn*24*60,seconds:qn*24*60*60,milliseconds:qn*24*60*60*1e3},...Jv},nn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],iC=nn.slice(0).reverse();function ir(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 Fv(r,e){var t;let n=(t=e.milliseconds)!=null?t:0;for(let i of iC.slice(1))e[i]&&(n+=e[i]*r[i].milliseconds);return n}function L0(r,e){let t=Fv(r,e)<0?-1:1;nn.reduceRight((n,i)=>{if(Z(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),nn.reduce((n,i)=>{if(Z(e[i]))return n;if(n){let s=e[n]%1;e[n]-=s,e[i]+=s*r[n][i]}return i},null)}function q0(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?nC:rC;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:Do(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]=$O(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]=QO(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 pt?e:new pt(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 xo(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):N0}toHuman(e={}){if(!this.isValid)return N0;let t=e.showZeros!==!1,n=nn.map(i=>{let s=this.values[i];return Z(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?Fv(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 nn)(Yn(t.values,i)||Yn(this.values,i))&&(n[i]=t.get(i)+this.get(i));return ir(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]=wv(e(this.values[n],n));return ir(this,{values:t},!0)}get(e){return this[r.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let t={...this.values,...Do(e,r.normalizeUnit)};return ir(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 ir(this,a)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return L0(this.matrix,e),ir(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=q0(this.normalize().shiftToAll().toObject());return ir(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 nn)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 L0(this.matrix,t),ir(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 ir(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=q0(this.values);return ir(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 nn)if(!t(this.values[n],e.values[n]))return!1;return!0}},Jn="Invalid Interval";function sC(r,e){return!r||!r.isValid?an.invalid("missing or invalid start"):!e||!e.isValid?an.invalid("missing or invalid end"):e<r?an.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 an=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 pt?e:new pt(e,t);if(Ie.throwOnInvalid)throw new rd(n);return new r({invalid:n})}static fromDateTimes(e,t){let n=xi(e),i=xi(t),s=sC(n,i);return s??new r({start:n,end:i})}static after(e,t){let n=Ne.fromDurationLike(t),i=xi(e);return r.fromDateTimes(i,i.plus(n))}static before(e,t){let n=Ne.fromDurationLike(t),i=xi(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(xi).filter(a=>this.contains(a)).sort((a,o)=>a.toMillis()-o.toMillis()),n=[],{s:i}=this,s=0;for(;i<this.e;){let a=t[s]||this.e,o=+a>+this.e?this.e:a;n.push(r.fromDateTimes(i,o)),i=o,s+=1}return n}splitBy(e){let t=Ne.fromDurationLike(e);if(!this.isValid||!t.isValid||t.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,a=[];for(;n<this.e;){let o=this.start.plus(t.mapUnits(l=>l*i));s=+o>+this.e?this.e:o,a.push(r.fromDateTimes(n,s)),n=s,i+=1}return a}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let t=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return t>=n?null:r.fromDateTimes(t,n)}union(e){if(!this.isValid)return this;let t=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return r.fromDateTimes(t,n)}static merge(e){let[t,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],a)=>s?s.overlaps(a)||s.abutsStart(a)?[i,s.union(a)]:[i.concat([s]),a]:[i,a],[[],null]);return n&&t.push(n),t}static xor(e){let t=null,n=0,i=[],s=e.map(l=>[{time:l.s,type:"s"},{time:l.e,type:"e"}]),a=Array.prototype.concat(...s),o=a.sort((l,c)=>l.time-c.time);for(let l of o)n+=l.type==="s"?1:-1,n===1?t=l.time:(t&&+t!=+l.time&&i.push(r.fromDateTimes(t,l.time)),t=null);return r.merge(i)}difference(...e){return r.xor([this].concat(e)).map(t=>this.intersection(t)).filter(t=>t&&!t.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Jn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=wo,t={}){return this.isValid?ft.create(this.s.loc.clone(t),e).formatInterval(this):Jn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Jn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Jn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Jn}toFormat(e,{separator:t=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Jn}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Ne.invalid(this.invalidReason)}mapEndpoints(e){return r.fromDateTimes(e(this.s),e(this.e))}},sn=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 ar.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:kv(),localeWeek:Iv()}}};function J0(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 aC(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=J0(l,c);return(u-u%7)/7}],["days",J0]],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 oC(r,e,t,n){let[i,s,a,o]=aC(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 lC="missing Intl.DateTimeFormat.formatToParts support";function pe(r,e=t=>t){return{regex:r,deser:([t])=>e(ZR(t))}}var cC="\xA0",Vv=`[ ${cC}]`,Gv=new RegExp(Vv,"g");function uC(r){return r.replace(/\./g,"\\.?").replace(Gv,Vv)}function F0(r){return r.replace(/\./g,"").replace(Gv," ").toLowerCase()}function Ct(r,e){return r===null?null:{regex:RegExp(r.map(uC).join("|")),deser:([t])=>r.findIndex(n=>F0(t)===F0(n))+e}}function V0(r,e){return{regex:r,deser:([,t,n])=>_o(t,n),groups:e}}function vo(r){return{regex:r,deser:([e])=>e}}function dC(r){return r.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function fC(r,e){let t=Ot(e),n=Ot(e,"{2}"),i=Ot(e,"{3}"),s=Ot(e,"{4}"),a=Ot(e,"{6}"),o=Ot(e,"{1,2}"),l=Ot(e,"{1,3}"),c=Ot(e,"{1,6}"),u=Ot(e,"{1,9}"),d=Ot(e,"{2,4}"),p=Ot(e,"{4,6}"),f=k=>({regex:RegExp(dC(k.val)),deser:([E])=>E,literal:!0}),g=(k=>{if(r.literal)return f(k);switch(k.val){case"G":return Ct(e.eras("short"),0);case"GG":return Ct(e.eras("long"),0);case"y":return pe(c);case"yy":return pe(d,md);case"yyyy":return pe(s);case"yyyyy":return pe(p);case"yyyyyy":return pe(a);case"M":return pe(o);case"MM":return pe(n);case"MMM":return Ct(e.months("short",!0),1);case"MMMM":return Ct(e.months("long",!0),1);case"L":return pe(o);case"LL":return pe(n);case"LLL":return Ct(e.months("short",!1),1);case"LLLL":return Ct(e.months("long",!1),1);case"d":return pe(o);case"dd":return pe(n);case"o":return pe(l);case"ooo":return pe(i);case"HH":return pe(n);case"H":return pe(o);case"hh":return pe(n);case"h":return pe(o);case"mm":return pe(n);case"m":return pe(o);case"q":return pe(o);case"qq":return pe(n);case"s":return pe(o);case"ss":return pe(n);case"S":return pe(l);case"SSS":return pe(i);case"u":return vo(u);case"uu":return vo(o);case"uuu":return pe(t);case"a":return Ct(e.meridiems(),0);case"kkkk":return pe(s);case"kk":return pe(d,md);case"W":return pe(o);case"WW":return pe(n);case"E":case"c":return pe(t);case"EEE":return Ct(e.weekdays("short",!1),1);case"EEEE":return Ct(e.weekdays("long",!1),1);case"ccc":return Ct(e.weekdays("short",!0),1);case"cccc":return Ct(e.weekdays("long",!0),1);case"Z":case"ZZ":return V0(new RegExp(`([+-]${o.source})(?::(${n.source}))?`),2);case"ZZZ":return V0(new RegExp(`([+-]${o.source})(${n.source})?`),2);case"z":return vo(/[a-z_+-/]{1,256}?/i);case" ":return vo(/[^\S\n\r]/);default:return f(k)}})(r)||{invalidReason:lC};return g.token=r,g}var pC={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 yC(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=pC[a];if(typeof o=="object"&&(o=o[s]),o)return{literal:!1,val:o}}function hC(r){return[`^${r.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,r]}function mC(r,e,t){let n=r.match(e);if(n){let i={},s=1;for(let a in t)if(Yn(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 bC(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 Z(r.z)||(t=ar.create(r.z)),Z(r.Z)||(t||(t=new ht(r.Z)),n=r.Z),Z(r.q)||(r.M=(r.q-1)*3+1),Z(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),Z(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 gC(){return Hu||(Hu=xe.fromMillis(1555555555555)),Hu}function vC(r,e){if(r.literal)return r;let t=ft.macroTokenToFormatOpts(r.val),n=Wv(t,e);return n==null||n.includes(void 0)?r:n}function Yv(r,e){return Array.prototype.concat(...r.map(t=>vC(t,e)))}var Ro=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Yv(ft.parseFormat(t),e),this.units=this.tokens.map(n=>fC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=hC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[t,n]=mC(e,this.regex,this.handlers),[i,s,a]=n?bC(n):[null,null,void 0];if(Yn(n,"a")&&Yn(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 Bv(r,e,t){return new Ro(r,t).explainFromTokens(e)}function KC(r,e,t){let{result:n,zone:i,specificOffset:s,invalidReason:a}=Bv(r,e,t);return[n,i,s,a]}function Wv(r,e){if(!r)return null;let n=ft.create(e,r).dtFormatter(gC()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(a=>yC(a,r,s))}var Qu="Invalid DateTime",G0=864e13;function Ti(r){return new pt("unsupported zone",`the zone "${r.name}" is not supported`)}function Zu(r){return r.weekData===null&&(r.weekData=jo(r.c)),r.weekData}function Xu(r){return r.localWeekData===null&&(r.localWeekData=jo(r.c,r.loc.getMinDaysInFirstWeek(),r.loc.getStartOfWeek())),r.localWeekData}function rn(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 Uv(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 Ko(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 Eo(r,e,t){return Uv(Co(r),e,t)}function Y0(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,Ao(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=Co(s),[l,c]=Uv(o,t,r.zone);return a!==0&&(l+=a,c=r.zone.offset(l)),{ts:l,o:c}}function Fn(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 pt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function So(r,e,t=!0){return r.isValid?ft.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 B0(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 zv={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},SC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},EC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ko=["year","month","day","hour","minute","second","millisecond"],kC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],IC=["year","ordinal","hour","minute","second","millisecond"];function Io(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 xo(r);return e}function W0(r){switch(r.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Io(r)}}function xC(r){if(ji===void 0&&(ji=Ie.now()),r.type!=="iana")return r.offset(ji);let e=r.name,t=bd.get(e);return t===void 0&&(t=r.offset(ji),bd.set(e,t)),t}function U0(r,e){let t=Ar(e.zone,Ie.defaultZone);if(!t.isValid)return xe.invalid(Ti(t));let n=ve.fromObject(e),i,s;if(Z(r.year))i=Ie.now();else{for(let l of ko)Z(r[l])&&(r[l]=zv[l]);let a=Sv(r)||Ev(r);if(a)return xe.invalid(a);let o=xC(t);[i,s]=Eo(r,o,t)}return new xe({ts:i,zone:t,loc:n,o:s})}function z0(r,e,t){let n=Z(t.round)?!0:t.round,i=Z(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 $0(r){let e={},t;return r.length>0&&typeof r[r.length-1]=="object"?(e=r[r.length-1],t=Array.from(r).slice(0,r.length-1)):t=Array.from(r),[e,t]}var ji,bd=new Map,xe=class r{constructor(e){let t=e.zone||Ie.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new pt("invalid input"):null)||(t.isValid?null:Ti(t));this.ts=Z(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=Ko(this.ts,o),n=Number.isNaN(i.year)?new pt("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]=$0(arguments),[n,i,s,a,o,l,c]=t;return U0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static utc(){let[e,t]=$0(arguments),[n,i,s,a,o,l,c]=t;return e.zone=ht.utcInstance,U0({year:n,month:i,day:s,hour:a,minute:o,second:l,millisecond:c},e)}static fromJSDate(e,t={}){let n=nO(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(Ti(i))}static fromMillis(e,t={}){if(Rr(e))return e<-G0||e>G0?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(Ti(n));let i=ve.fromObject(t),s=Do(e,W0),{minDaysInFirstWeek:a,startOfWeek:o}=O0(s,i),l=Ie.now(),c=Z(t.specificOffset)?n.offset(l):t.specificOffset,u=!Z(s.ordinal),d=!Z(s.year),p=!Z(s.month)||!Z(s.day),f=d||p,h=s.weekYear||s.weekNumber;if((f||u)&&h)throw new Dr("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&u)throw new Dr("Can't mix ordinal dates with month/day");let g=h||s.weekday&&!f,k,E,I=Ko(l,c);g?(k=kC,E=SC,I=jo(I,a,o)):u?(k=IC,E=EC,I=$u(I)):(k=ko,E=zv);let O=!1;for(let V of k){let _=s[V];Z(_)?O?s[V]=E[V]:s[V]=I[V]:O=!0}let D=g?eO(s,a,o):u?tO(s):Sv(s),B=D||Ev(s);if(B)return r.invalid(B);let ae=g?D0(s,a,o):u?R0(s):s,[w,K]=Eo(ae,c,n),M=new r({ts:w,zone:n,o:K,loc:i});return s.weekday&&f&&e.weekday!==M.weekday?r.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${M.toISO()}`):M.isValid?M:r.invalid(M.invalid)}static fromISO(e,t={}){let[n,i]=WO(e);return Fn(n,i,t,"ISO 8601",e)}static fromRFC2822(e,t={}){let[n,i]=UO(e);return Fn(n,i,t,"RFC 2822",e)}static fromHTTP(e,t={}){let[n,i]=zO(e);return Fn(n,i,t,"HTTP",t)}static fromFormat(e,t,n={}){if(Z(e)||Z(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]=KC(a,e,t);return u?r.invalid(u):Fn(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]=tC(e);return Fn(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 pt?e:new pt(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=Wv(e,ve.fromObject(t));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,t={}){return Yv(ft.parseFormat(e),ve.fromObject(t)).map(i=>i.val).join("")}static resetCache(){ji=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?sn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?sn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?sn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?sn.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=Co(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=Ko(l,a),d=Ko(c,o);return u.hour===d.hour&&u.minute===d.minute&&u.second===d.second&&u.millisecond===d.millisecond?[rn(this,{ts:l}),rn(this,{ts:c})]:[this]}get isInLeapYear(){return Oi(this.year)}get daysInMonth(){return Ao(this.year,this.month)}get daysInYear(){return this.isValid?Vn(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ri(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Ri(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(ht.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]=Eo(a,s,e)}return rn(this,{ts:i,zone:e})}else return r.invalid(Ti(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return rn(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=Do(e,W0),{minDaysInFirstWeek:n,startOfWeek:i}=O0(t,this.loc),s=!Z(t.weekYear)||!Z(t.weekNumber)||!Z(t.weekday),a=!Z(t.ordinal),o=!Z(t.year),l=!Z(t.month)||!Z(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=D0({...jo(this.c,n,i),...t},n,i):Z(t.ordinal)?(d={...this.toObject(),...t},Z(t.day)&&(d.day=Math.min(Ao(d.year,d.month),d.day))):d=R0({...$u(this.c),...t});let[p,f]=Eo(d,this.o,this.zone);return rn(this,{ts:p,o:f})}plus(e){if(!this.isValid)return this;let t=Ne.fromDurationLike(e);return rn(this,Y0(this,t))}minus(e){if(!this.isValid)return this;let t=Ne.fromDurationLike(e).negate();return rn(this,Y0(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):Qu}toLocaleString(e=wo,t={}){return this.isValid?ft.create(this.loc.clone(t),e).formatDateTime(this):Qu}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=Io(a);let o=e==="extended",l=ed(this,o,a);return ko.indexOf(a)>=3&&(l+="T"),l+=B0(this,o,t,n,i,s,a),l}toISODate({format:e="extended",precision:t="day"}={}){return this.isValid?ed(this,e==="extended",Io(t)):null}toISOWeekDate(){return So(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=Io(o),(i&&ko.indexOf(o)>=3?"T":"")+B0(this,a==="extended",t,e,n,s,o)):null}toRFC2822(){return So(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return So(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")),So(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=iO(t).map(Ne.normalizeUnit),a=e.valueOf()>this.valueOf(),o=a?this:e,l=a?e:this,c=oC(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?an.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),z0(t,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?z0(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 C0(e,t=>t.valueOf(),Math.min)}static max(...e){if(!e.every(r.isDateTime))throw new Fe("max requires all arguments be DateTimes");return C0(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 Bv(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 Ro(s,e)}static fromFormatParser(e,t,n={}){if(Z(e)||Z(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):Fn(o,l,n,`format ${t.format}`,e,c)}static get DATE_SHORT(){return wo}static get DATE_MED(){return H0}static get DATE_MED_WITH_WEEKDAY(){return MR}static get DATE_FULL(){return Q0}static get DATE_HUGE(){return Z0}static get TIME_SIMPLE(){return X0}static get TIME_WITH_SECONDS(){return ev}static get TIME_WITH_SHORT_OFFSET(){return tv}static get TIME_WITH_LONG_OFFSET(){return rv}static get TIME_24_SIMPLE(){return nv}static get TIME_24_WITH_SECONDS(){return iv}static get TIME_24_WITH_SHORT_OFFSET(){return sv}static get TIME_24_WITH_LONG_OFFSET(){return av}static get DATETIME_SHORT(){return ov}static get DATETIME_SHORT_WITH_SECONDS(){return lv}static get DATETIME_MED(){return cv}static get DATETIME_MED_WITH_SECONDS(){return uv}static get DATETIME_MED_WITH_WEEKDAY(){return PR}static get DATETIME_FULL(){return dv}static get DATETIME_FULL_WITH_SECONDS(){return fv}static get DATETIME_HUGE(){return pv}static get DATETIME_HUGE_WITH_SECONDS(){return yv}};function xi(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 wC="3.7.2";mt.DateTime=xe;mt.Duration=Ne;mt.FixedOffsetZone=ht;mt.IANAZone=ar;mt.Info=sn;mt.Interval=an;mt.InvalidZone=To;mt.Settings=Ie;mt.SystemZone=Di;mt.VERSION=wC;mt.Zone=Or});var Qv=y((EL,Hv)=>{"use strict";var on=$v();X.prototype.addYear=function(){this._date=this._date.plus({years:1})};X.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};X.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};X.prototype.addHour=function(){var r=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=r&&(this._date=this._date.plus({hours:1}))};X.prototype.addMinute=function(){var r=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<r&&(this._date=this._date.plus({hours:1}))};X.prototype.addSecond=function(){var r=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<r&&(this._date=this._date.plus({hours:1}))};X.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};X.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};X.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};X.prototype.subtractHour=function(){var r=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=r&&(this._date=this._date.minus({hours:1}))};X.prototype.subtractMinute=function(){var r=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>r&&(this._date=this._date.minus({hours:1}))};X.prototype.subtractSecond=function(){var r=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>r&&(this._date=this._date.minus({hours:1}))};X.prototype.getDate=function(){return this._date.day};X.prototype.getFullYear=function(){return this._date.year};X.prototype.getDay=function(){var r=this._date.weekday;return r==7?0:r};X.prototype.getMonth=function(){return this._date.month-1};X.prototype.getHours=function(){return this._date.hour};X.prototype.getMinutes=function(){return this._date.minute};X.prototype.getSeconds=function(){return this._date.second};X.prototype.getMilliseconds=function(){return this._date.millisecond};X.prototype.getTime=function(){return this._date.valueOf()};X.prototype.getUTCDate=function(){return this._getUTC().day};X.prototype.getUTCFullYear=function(){return this._getUTC().year};X.prototype.getUTCDay=function(){var r=this._getUTC().weekday;return r==7?0:r};X.prototype.getUTCMonth=function(){return this._getUTC().month-1};X.prototype.getUTCHours=function(){return this._getUTC().hour};X.prototype.getUTCMinutes=function(){return this._getUTC().minute};X.prototype.getUTCSeconds=function(){return this._getUTC().second};X.prototype.toISOString=function(){return this._date.toUTC().toISO()};X.prototype.toJSON=function(){return this._date.toJSON()};X.prototype.setDate=function(r){this._date=this._date.set({day:r})};X.prototype.setFullYear=function(r){this._date=this._date.set({year:r})};X.prototype.setDay=function(r){this._date=this._date.set({weekday:r})};X.prototype.setMonth=function(r){this._date=this._date.set({month:r+1})};X.prototype.setHours=function(r){this._date=this._date.set({hour:r})};X.prototype.setMinutes=function(r){this._date=this._date.set({minute:r})};X.prototype.setSeconds=function(r){this._date=this._date.set({second:r})};X.prototype.setMilliseconds=function(r){this._date=this._date.set({millisecond:r})};X.prototype._getUTC=function(){return this._date.toUTC()};X.prototype.toString=function(){return this.toDate().toString()};X.prototype.toDate=function(){return this._date.toJSDate()};X.prototype.isLastDayOfMonth=function(){var r=this._date.plus({days:1}).startOf("day");return this._date.month!==r.month};X.prototype.isLastWeekdayOfMonth=function(){var r=this._date.plus({days:7}).startOf("day");return this._date.month!==r.month};function X(r,e){var t={zone:e};if(r?r instanceof X?this._date=r._date:r instanceof Date?this._date=on.DateTime.fromJSDate(r,t):typeof r=="number"?this._date=on.DateTime.fromMillis(r,t):typeof r=="string"&&(this._date=on.DateTime.fromISO(r,t),this._date.isValid||(this._date=on.DateTime.fromRFC2822(r,t)),this._date.isValid||(this._date=on.DateTime.fromSQL(r,t)),this._date.isValid||(this._date=on.DateTime.fromFormat(r,"EEE, d MMM yyyy HH:mm:ss",t))):this._date=on.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))}Hv.exports=X});var eK=y((kL,Xv)=>{"use strict";function ln(r){return{start:r,count:1}}function Zv(r,e){r.end=e,r.step=e-r.start,r.count=2}function wd(r,e,t){e&&(e.count===2?(r.push(ln(e.start)),r.push(ln(e.end))):r.push(e)),t&&r.push(t)}function TC(r){for(var e=[],t=void 0,n=0;n<r.length;n++){var i=r[n];typeof i!="number"?(wd(e,t,ln(i)),t=void 0):t?t.count===1?Zv(t,i):t.step===i-t.end?(t.count++,t.end=i):t.count===2?(e.push(ln(t.start)),t=ln(t.end),Zv(t,i)):(wd(e,t),t=ln(i)):t=ln(i)}return wd(e,t),e}Xv.exports=TC});var rK=y((IL,tK)=>{"use strict";var jC=eK();function AC(r,e,t){var n=jC(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(p,f){var h=c.start+f;return(h-c.start)%c.step===0?h:null}).filter(function(p){return p!=null})):c.end===t-c.step+1?a.push(c.start+"/"+c.step):a.push(c.start+"-"+c.end+"/"+c.step)}return a.join(",")}tK.exports=AC});var sK=y((xL,iK)=>{"use strict";var cn=Qv(),DC=rK(),nK=1e4;function L(r,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new cn(e.currentDate,this._tz),this._startDate=e.startDate?new cn(e.startDate,this._tz):null,this._endDate=e.endDate?new cn(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(h){if(h instanceof Array)for(var g=0,k=h.length;g<k;g++){var E=h[g];if(L._isValidConstraintChar(n,E)){c.push(E);continue}if(typeof E!="number"||Number.isNaN(E)||E<n.min||E>n.max)throw new Error("Constraint error, got value "+E+" expected range "+n.min+"-"+n.max);c.push(E)}else{if(L._isValidConstraintChar(n,h)){c.push(h);return}var I=+h;if(Number.isNaN(I)||I<n.min||I>n.max)throw new Error("Constraint error, got value "+h+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(I=I%7),c.push(I)}}var d=l.split(",");if(!d.every(function(h){return h.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var p=0,f=d.length;p<f;p++)u(a(d[p]));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 p=+d[0],f=+d[1];if(Number.isNaN(p)||Number.isNaN(f)||p<n.min||f>n.max)throw new Error("Constraint error, got range "+p+"-"+f+" expected range "+n.min+"-"+n.max);if(p>f)throw new Error("Invalid range: "+l);var h=+c;if(Number.isNaN(h)||h<=0)throw new Error("Constraint error, cannot repeat at every "+h+" time.");e==="dayOfWeek"&&f%7===0&&u.push(0);for(var g=p,k=f;g<=k;g++){var E=u.indexOf(g)!==-1;!E&&h>0&&h%c===0?(h=1,u.push(g)):h++}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(E,I){for(var O=0,D=I.length;O<D;O++)if(I[O]>=E)return I[O]===E;return I[0]===E}function n(E,I){if(I<6){if(E.getDate()<8&&I===1)return!0;var O=E.getDate()%7?1:0,D=E.getDate()-E.getDate()%7,B=Math.floor(D/7)+O;return B===I}return!1}function i(E){return E.length>0&&E.some(function(I){return typeof I=="string"&&I.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",a=new cn(this._currentDate,this._tz),o=this._startDate,l=this._endDate,c=a.getTime(),u=0;function d(E){return E.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<nK;){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 p=t(a.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(p=p||a.isLastDayOfMonth());var f=t(a.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(f=f||d(this.fields.dayOfWeek));var h=this.fields.dayOfMonth.length>=L.daysInMonth[a.getMonth()],g=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,k=a.getHours();if(!p&&(!f||g)){this._applyTimezoneShift(a,s,"Day");continue}if(!h&&g&&!p){this._applyTimezoneShift(a,s,"Day");continue}if(h&&!g&&!f){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(k,this.fields.hour)){if(this._dstEnd===k&&!e){this._dstEnd=null,this._applyTimezoneShift(a,"add","Hour");continue}}else if(this._dstStart!==k){this._dstStart=null,this._applyTimezoneShift(a,s,"Hour");continue}else if(!t(k-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>=nK)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new cn(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 cn(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(DC(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 cn(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 p=L.map[u],f=l[l.length>d?u:u-c];if(u<c||!f)o.push(L._parseField(p,L.parseDefaults[u],L.constraints[u]));else{var h=p==="dayOfWeek"?I(f):f;o.push(L._parseField(p,h,L.constraints[u]))}}for(var g={},u=0,d=L.map.length;u<d;u++){var k=L.map[u];g[k]=o[u]}var E=L._handleMaxDaysInMonth(g);return g.dayOfMonth=E||g.dayOfMonth,new L(g,a);function I(O){var D=O.split("#");if(D.length>1){var B=+D[D.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(D.length>2||Number.isNaN(B)||B<1||B>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return a.nthDayOfWeek=B,D[0]}return O}}return i(e,t)};L.fieldsToExpression=function(e,t){function n(p,f,h){if(!f)throw new Error("Validation error, Field "+p+" is missing");if(f.length===0)throw new Error("Validation error, Field "+p+" contains no values");for(var g=0,k=f.length;g<k;g++){var E=f[g];if(!L._isValidConstraintChar(h,E)&&(typeof E!="number"||Number.isNaN(E)||E<h.min||E>h.max))throw new Error("Constraint error, got value "+E+" expected range "+h.min+"-"+h.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(p,f,h){return!f||p!==h[f-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||{})};iK.exports=L});var Td=y((wL,aK)=>{"use strict";var Po=sK();function Cr(){}Cr._parseEntry=function(e){var t=e.split(" ");if(t.length===6)return{interval:Po.parse(e)};if(t.length>6)return{interval:Po.parse(t.slice(0,6).join(" ")),command:t.slice(6,t.length)};throw new Error("Invalid entry: "+e)};Cr.parseExpression=function(e,t){return Po.parse(e,t)};Cr.fieldsToExpression=function(e,t){return Po.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){Y("fs").readFile(e,function(n,i){if(n){t(n);return}return t(null,Cr.parseString(i.toString()))})};aK.exports=Cr});var _r=y(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.QueueBase=void 0;var RC=Y("events"),Mi=ct(),OC=fa(),CC=Ii(),_C=Nn(),MC=ya(),jd=class extends RC.EventEmitter{constructor(e,t={connection:{}},n=CC.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,Mi.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 MC.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,OC.createScripts)(this)}get redisVersion(){return this.connection.redisVersion}get databaseType(){return this.connection.databaseType}get Job(){return _C.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=Mi.DELAY_TIME_5){try{return await e()}catch(n){if((0,Mi.isNotConnectionError)(n)&&this.emit("error",n),!this.closing&&t)await(0,Mi.delay)(t);else return}}trace(e,t,n,i,s){return(0,Mi.trace)(this.opts.telemetry,e,this.name,t,n,i,s)}};No.QueueBase=jd});var qo=y(un=>{"use strict";Object.defineProperty(un,"__esModule",{value:!0});un.defaultRepeatStrategy=un.JobScheduler=void 0;var PC=(Qe(),nt(He)),NC=Td(),Lo=Nn(),LC=_r(),Pi=st(),qC=ct(),Ad=class extends LC.QueueBase{constructor(e,t,n){super(e,t,n),this.repeatStrategy=t.settings&&t.settings.repeatStrategy||un.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 p=t.count?t.count+1:1;if(typeof t.limit<"u"&&p>t.limit)return;let f=Date.now(),{endDate:h}=t;if(h&&f>new Date(h).getTime())return;let g=s.prevMillis||0;f=g<f?f:g;let{immediately:k}=t,E=PC.__rest(t,["immediately"]),I,O=null;if(u&&(I=await this.repeatStrategy(f,t,n),I<f&&(I=f)),I||l)return this.trace(Pi.SpanKind.PRODUCER,"add",`${this.name}.${n}`,async(D,B)=>{var ae,w;let K=s.telemetry;if(B){let V=(ae=s.telemetry)===null||ae===void 0?void 0:ae.omitContext,_=((w=s.telemetry)===null||w===void 0?void 0:w.metadata)||!V&&B;(_||V)&&(K={metadata:_,omitContext:V})}let M=this.getNextJobOpts(I,e,Object.assign(Object.assign({},s),{repeat:E,telemetry:K}),p,O);if(a){I<f&&(I=f);let[V,_]=await this.scripts.addJobScheduler(e,I,JSON.stringify(typeof i>"u"?{}:i),Lo.Job.optsAsJSON(s),{name:n,startDate:t.startDate?new Date(t.startDate).getTime():void 0,endDate:h?new Date(h).getTime():void 0,tz:t.tz,pattern:u,every:l,limit:c,offset:O},Lo.Job.optsAsJSON(M),o),A=typeof _=="string"?parseInt(_,10):_,m=new this.Job(this,n,i,Object.assign(Object.assign({},M),{delay:A}),V);return m.id=V,D?.setAttributes({[Pi.TelemetryAttributes.JobSchedulerId]:e,[Pi.TelemetryAttributes.JobId]:m.id}),m}else{let V=await this.scripts.updateJobSchedulerNextMillis(e,I,JSON.stringify(typeof i>"u"?{}:i),Lo.Job.optsAsJSON(M),o);if(V){let _=new this.Job(this,n,i,M,V);return _.id=V,D?.setAttributes({[Pi.TelemetryAttributes.JobSchedulerId]:e,[Pi.TelemetryAttributes.JobId]:_.id}),_}}})}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,qC.array2obj)(t):null,n?parseInt(n):null)}getTemplateFromJSON(e,t){let n={};return e&&(n.data=JSON.parse(e)),t&&(n.opts=Lo.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}`}};un.JobScheduler=Ad;var JC=(r,e)=>{let{pattern:t}=e,n=new Date(r),i=e.startDate&&new Date(e.startDate),s=i>n?i:n,a=(0,NC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:s}));try{return e.immediately?new Date().getTime():a.next().getTime()}catch{}};un.defaultRepeatStrategy=JC});var Rd=y(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.LockManager=void 0;var FC=Ds(),Jo=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(Jo.SpanKind.INTERNAL,"extendLocks",this.worker.name,async t=>{t?.setAttributes({[Jo.TelemetryAttributes.WorkerId]:this.opts.workerId,[Jo.TelemetryAttributes.WorkerName]:this.opts.workerName,[Jo.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 FC.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())}};Fo.LockManager=Dd});var lK=y(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.QueueEvents=void 0;var oK=(Qe(),nt(He)),Vo=ct(),VC=_r(),Od=class extends VC.QueueBase{constructor(e,t={connection:{}},n){var i,{connection:s,autorun:a=!0}=t,o=oK.__rest(t,["connection","autorun"]);super(e,Object.assign(Object.assign({},o),{connection:(0,Vo.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(Vo.QUEUE_EVENT_SUFFIX))}catch(t){if(!Vo.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,Vo.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=oK.__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}};Go.QueueEvents=Od});var cK=y(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.QueueEventsProducer=void 0;var GC=(Qe(),nt(He)),YC=_r(),Cd=class extends YC.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=GC.__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}};Yo.QueueEventsProducer=Cd});var Pd=y(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.QueueGetters=void 0;var BC=(Qe(),nt(He)),WC=_r(),uK=ct(),_d=st();function dK(r){return String(r).replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n")}var Md=class extends WC.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=BC.__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(!uK.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()}${uK.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),p=c.substring(u+1);a[d]=p});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=dK(this.name),s=e?Object.keys(e).reduce((l,c)=>`${l}, ${c}="${dK(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
|
+
`)}};Bo.QueueGetters=Md});var Wo=y(dn=>{"use strict";Object.defineProperty(dn,"__esModule",{value:!0});dn.getNextMillis=dn.Repeat=void 0;var UC=(Qe(),nt(He)),zC=Td(),$C=Y("crypto"),HC=_r(),Nd=class extends HC.QueueBase{constructor(e,t,n){super(e,t,n),this.repeatStrategy=t.settings&&t.settings.repeatStrategy||dn.getNextMillis,this.repeatKeyHashAlgorithm=t.settings&&t.settings.repeatKeyHashAlgorithm||"md5"}async updateRepeatableJob(e,t,n,{override:i}){var s,a;let o=Object.assign({},n.repeat);(s=o.pattern)!==null&&s!==void 0||(o.pattern=o.cron),delete o.cron;let l=o.count?o.count+1:1;if(typeof o.limit<"u"&&l>o.limit)return;let c=Date.now(),{endDate:u}=o;if(u&&c>new Date(u).getTime())return;let d=n.prevMillis||0;c=d<c?c:d;let p=await this.repeatStrategy(c,o,e),{every:f,pattern:h}=o,g=!!((f||h)&&o.immediately),k=g&&f?c-p:void 0;if(p){!d&&n.jobId&&(o.jobId=n.jobId);let E=fK(e,o),I=(a=n.repeat.key)!==null&&a!==void 0?a:this.hash(E),O;if(i)O=await this.scripts.addRepeatableJob(I,p,{name:e,endDate:u?new Date(u).getTime():void 0,tz:o.tz,pattern:h,every:f},E);else{let ae=await this.client;O=await this.scripts.updateRepeatableJobMillis(ae,I,p,E)}let{immediately:D}=o,B=UC.__rest(o,["immediately"]);return this.createNextJob(e,p,O,Object.assign(Object.assign({},n),{repeat:Object.assign({offset:k},B)}),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=fK(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,$C.createHash)(this.repeatKeyHashAlgorithm).update(e).digest("hex")}getRepeatDelayedJobId({nextMillis:e,customKey:t}){return`repeat:${t}:${e}`}getRepeatJobId({name:e,nextMillis:t,namespace:n,jobId:i,key:s}){return`repeat:${s??this.hash(`${e}${i||""}${n}`)}:${t}`}};dn.Repeat=Nd;function fK(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 QC=(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,zC.parseExpression)(t,Object.assign(Object.assign({},e),{currentDate:n}));try{return e.immediately?new Date().getTime():i.next().getTime()}catch{}};dn.getNextMillis=QC});var pK=y(Uo=>{"use strict";Object.defineProperty(Uo,"__esModule",{value:!0});Uo.Queue=void 0;var ZC=Nn(),XC=Pd(),e_=Wo(),ie=st(),t_=qo(),r_=ca(),n_=ct(),Ld=class extends XC.QueueGetters{constructor(e,t,n){var i;super(e,Object.assign({},t),n),this.token=(0,n_.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}:${r_.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 e_.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 t_.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(ie.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({[ie.TelemetryAttributes.JobName]:e,[ie.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(ie.SpanKind.PRODUCER,"addBulk",this.name,async(t,n)=>(t&&t.setAttributes({[ie.TelemetryAttributes.BulkNames]:e.map(i=>i.name),[ie.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 f=(o=(a=i.opts)===null||a===void 0?void 0:a.telemetry)===null||o===void 0?void 0:o.omitContext,h=((c=(l=i.opts)===null||l===void 0?void 0:l.telemetry)===null||c===void 0?void 0:c.metadata)||!f&&n;(h||f)&&(d={metadata:h,omitContext:f})}let p=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:p}}))))}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(ie.SpanKind.INTERNAL,"pause",this.name,async()=>{await this.scripts.pause(!0),this.emit("paused")})}async close(){await this.trace(ie.SpanKind.INTERNAL,"close",this.name,async()=>{this.closing||this._repeat&&await this._repeat.close(),await super.close()})}async rateLimit(e){await this.trace(ie.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[ie.TelemetryAttributes.QueueRateLimit]:e}),await this.client.then(n=>n.set(this.keys.limiter,Number.MAX_SAFE_INTEGER,"PX",e))})}async resume(){await this.trace(ie.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(ie.SpanKind.INTERNAL,"removeRepeatable",`${this.name}.${e}`,async i=>(i?.setAttributes({[ie.TelemetryAttributes.JobName]:e,[ie.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(ie.SpanKind.INTERNAL,"removeDebounceKey",`${this.name}`,async t=>(t?.setAttributes({[ie.TelemetryAttributes.JobKey]:e}),await(await this.client).del(`${this.keys.de}:${e}`)))}async removeDeduplicationKey(e){return this.trace(ie.SpanKind.INTERNAL,"removeDeduplicationKey",`${this.name}`,async t=>(t?.setAttributes({[ie.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(ie.SpanKind.INTERNAL,"removeRepeatableByKey",`${this.name}`,async t=>(t?.setAttributes({[ie.TelemetryAttributes.JobKey]:e}),!await(await this.repeat).removeRepeatableByKey(e)))}async remove(e,{removeChildren:t=!0}={}){return this.trace(ie.SpanKind.INTERNAL,"remove",this.name,async n=>{n?.setAttributes({[ie.TelemetryAttributes.JobId]:e,[ie.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(ie.SpanKind.INTERNAL,"updateJobProgress",this.name,async n=>{n?.setAttributes({[ie.TelemetryAttributes.JobId]:e,[ie.TelemetryAttributes.JobProgress]:JSON.stringify(t)}),await this.scripts.updateProgress(e,t),this.emit("progress",e,t)})}async addJobLog(e,t,n){return ZC.Job.addJobLog(this,e,t,n)}async drain(e=!1){await this.trace(ie.SpanKind.INTERNAL,"drain",this.name,async t=>{t?.setAttributes({[ie.TelemetryAttributes.QueueDrainDelay]:e}),await this.scripts.drain(e)})}async clean(e,t,n="completed"){return this.trace(ie.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({[ie.TelemetryAttributes.QueueGrace]:e,[ie.TelemetryAttributes.JobType]:n,[ie.TelemetryAttributes.QueueCleanLimit]:s,[ie.TelemetryAttributes.JobIds]:c}),c})}async obliterate(e){await this.trace(ie.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(ie.SpanKind.PRODUCER,"retryJobs",this.name,async t=>{t?.setAttributes({[ie.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(ie.SpanKind.INTERNAL,"promoteJobs",this.name,async t=>{t?.setAttributes({[ie.TelemetryAttributes.QueueOptions]:JSON.stringify(e)});let n=0;do n=await this.scripts.promoteJobs(e.count);while(n)})}async trimEvents(e){return this.trace(ie.SpanKind.INTERNAL,"trimEvents",this.name,async t=>(t?.setAttributes({[ie.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,p]=await n.scan(u,"MATCH",l,"COUNT",e);u=d;let f=new Set;for(let g of p){let k=g.slice(o.length);if(i.has(k))continue;let E=k.indexOf(":");if(E!==-1){let O=k.slice(0,E);if(i.has(O))continue}let I=E===-1?k:k.slice(0,E);if(E!==-1){let O=k.slice(E+1);if(!a.includes(O))continue}f.add(I)}if(f.size===0)continue;let h=await this.scripts.removeOrphanedJobs([...f],s,a);if(c+=h||0,t>0&&c>=t)break}while(u!=="0");return c}};Uo.Queue=Ld});var Jd=y(qd=>{"use strict";Object.defineProperty(qd,"__esModule",{value:!0});var _e=st(),i_=(r,e)=>async function(n,i,s){let a,o,l,c;try{let u=new Promise((d,p)=>{(async()=>{try{l=(h,g)=>{p(new Error("Unexpected exit code: "+h+" signal: "+g))},a=await e.retain(r),a.on("exit",l),o=async h=>{var g,k,E,I,O;try{switch(h.cmd){case _e.ParentCommand.Completed:d(h.value);break;case _e.ParentCommand.Failed:case _e.ParentCommand.Error:{let D=new Error;Object.assign(D,h.value),p(D);break}case _e.ParentCommand.Progress:await n.updateProgress(h.value);break;case _e.ParentCommand.Log:await n.log(h.value);break;case _e.ParentCommand.MoveToDelayed:await n.moveToDelayed((g=h.value)===null||g===void 0?void 0:g.timestamp,(k=h.value)===null||k===void 0?void 0:k.token);break;case _e.ParentCommand.MoveToWait:await n.moveToWait((E=h.value)===null||E===void 0?void 0:E.token);break;case _e.ParentCommand.MoveToWaitingChildren:{let D=await n.moveToWaitingChildren((I=h.value)===null||I===void 0?void 0:I.token,(O=h.value)===null||O===void 0?void 0:O.opts);a.send({requestId:h.requestId,cmd:_e.ChildCommand.MoveToWaitingChildrenResponse,value:D})}break;case _e.ParentCommand.Update:await n.updateData(h.value);break;case _e.ParentCommand.GetChildrenValues:{let D=await n.getChildrenValues();a.send({requestId:h.requestId,cmd:_e.ChildCommand.GetChildrenValuesResponse,value:D})}break;case _e.ParentCommand.GetIgnoredChildrenFailures:{let D=await n.getIgnoredChildrenFailures();a.send({requestId:h.requestId,cmd:_e.ChildCommand.GetIgnoredChildrenFailuresResponse,value:D})}break;case _e.ParentCommand.GetDependenciesCount:{let D=await n.getDependenciesCount(h.value);a.send({requestId:h.requestId,cmd:_e.ChildCommand.GetDependenciesCountResponse,value:D})}break;case _e.ParentCommand.GetDependencies:{let D=await n.getDependencies(h.value);a.send({requestId:h.requestId,cmd:_e.ChildCommand.GetDependenciesResponse,value:D})}break}}catch(D){p(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(h){p(h)}})()});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=i_});var hK=y(($o,yK)=>{"use strict";Object.defineProperty($o,"__esModule",{value:!0});$o.Worker=void 0;var zo=Y("fs"),s_=Y("url"),Ni=Y("path"),a_=Ds(),$n=ct(),o_=_r(),l_=Wo(),c_=Gc(),u_=Ii(),d_=Jd(),f_=Nc(),Hn=Ys(),se=st(),p_=qo(),y_=Rd(),h_=10,Fd=class extends o_.QueueBase{static RateLimitError(){return new Hn.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,$n.randomUUID)(),this.createLockManager(),t){if(typeof t=="function")this.processFn=t,this.processorAcceptsSignal=t.length>=3;else{if(t instanceof s_.URL){if(!zo.existsSync(t))throw new Error(`URL ${t} does not exist in the local file system`);t=t.href}else{let p=t+([".js",".ts",".flow",".cjs",".mjs"].includes(Ni.extname(t))?"":".js");if(!zo.existsSync(p))throw new Error(`File ${p} does not exist`)}let o=Ni.dirname(yK.filename||__filename),l=Ni.join(o,"main-worker.js"),c=Ni.join(o,"main.js"),u=this.opts.useWorkerThreads?l:c;try{zo.statSync(u)}catch{let p=this.opts.useWorkerThreads?"main-worker.js":"main.js";u=Ni.join(process.cwd(),`dist/cjs/classes/${p}`),zo.statSync(u)}this.childPool=new c_.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 u_.RedisConnection((0,$n.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 y_.LockManager(this,{lockRenewTime:this.opts.lockRenewTime,lockDuration:this.opts.lockDuration,workerId:this.id,workerName:this.opts.name})}createSandbox(e){this.processFn=(0,d_.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 l_.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 p_.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 a_.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 f_.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(se.SpanKind.INTERNAL,"getNextJob",this.name,async a=>(a?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.QueueName]:this.name,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.TelemetryAttributes.WorkerOptions]:JSON.stringify({block:t}),[se.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(se.SpanKind.INTERNAL,"rateLimit",this.name,async t=>{t?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.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,$n.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,h_)}else return Math.max(t.drainDelay,this.minimumBlockTimeout)}getRateLimitDelay(e){return Math.min(e,this.opts.maximumRateLimitDelay)}async delay(e,t){await(0,$n.delay)(e||$n.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(se.SpanKind.CONSUMER,"process",this.name,async o=>{o?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.TelemetryAttributes.JobId]:e.id,[se.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 Hn.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({[se.TelemetryAttributes.JobFinishedTimestamp]:c,[se.TelemetryAttributes.JobAttemptFinishedTimestamp]:e.finishedOn||c,[se.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",{[se.TelemetryAttributes.JobResult]:JSON.stringify(e)}),s?.setAttributes({[se.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===Hn.RATE_LIMIT_ERROR){let o=await this.moveLimitedBackToWait(t,n);this.limitUntil=o>0?Date.now()+o:0;return}if(e instanceof Hn.DelayedError||e.name=="DelayedError"||e instanceof Hn.WaitingError||e.name=="WaitingError"||e instanceof Hn.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",{[se.TelemetryAttributes.JobFailedReason]:e.message}),s?.setAttributes({[se.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(se.SpanKind.INTERNAL,"pause",this.name,async t=>{var n;t?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.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(se.SpanKind.INTERNAL,"resume",this.name,e=>{e?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.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(se.SpanKind.INTERNAL,"close",this.name,async t=>{var n,i;t?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.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(se.SpanKind.INTERNAL,"startStalledCheckTimer",this.name,async e=>{e?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.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,$n.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(se.SpanKind.INTERNAL,"moveStalledJobsToWait",this.name,async e=>{let t=await this.scripts.moveStalledJobsToWait();e?.setAttributes({[se.TelemetryAttributes.WorkerId]:this.id,[se.TelemetryAttributes.WorkerName]:this.opts.name,[se.TelemetryAttributes.WorkerStalledJobs]:t}),t.forEach(n=>{e?.addEvent("job stalled",{[se.TelemetryAttributes.JobId]:n}),this.emit("stalled",n,"active")})})}moveLimitedBackToWait(e,t){return e.moveToWait(t)}};$o.Worker=Fd});var mK=y(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(Ym(),je);Re.__exportStar(Ys(),je);Re.__exportStar(v0(),je);Re.__exportStar(Nn(),je);Re.__exportStar(qo(),je);Re.__exportStar(Rd(),je);Re.__exportStar(_r(),je);Re.__exportStar(lK(),je);Re.__exportStar(cK(),je);Re.__exportStar(Pd(),je);Re.__exportStar(ya(),je);Re.__exportStar(pK(),je);Re.__exportStar(Ii(),je);Re.__exportStar(Wo(),je);Re.__exportStar(Jd(),je);Re.__exportStar(Ju(),je);Re.__exportStar(hK(),je)});var gK=y(bK=>{"use strict";Object.defineProperty(bK,"__esModule",{value:!0})});var KK=y(vK=>{"use strict";Object.defineProperty(vK,"__esModule",{value:!0})});var EK=y(SK=>{"use strict";Object.defineProperty(SK,"__esModule",{value:!0})});var IK=y(kK=>{"use strict";Object.defineProperty(kK,"__esModule",{value:!0})});var wK=y(xK=>{"use strict";Object.defineProperty(xK,"__esModule",{value:!0})});var jK=y(TK=>{"use strict";Object.defineProperty(TK,"__esModule",{value:!0})});var DK=y(AK=>{"use strict";Object.defineProperty(AK,"__esModule",{value:!0})});var OK=y(RK=>{"use strict";Object.defineProperty(RK,"__esModule",{value:!0})});var _K=y(CK=>{"use strict";Object.defineProperty(CK,"__esModule",{value:!0})});var PK=y(MK=>{"use strict";Object.defineProperty(MK,"__esModule",{value:!0})});var LK=y(NK=>{"use strict";Object.defineProperty(NK,"__esModule",{value:!0})});var JK=y(qK=>{"use strict";Object.defineProperty(qK,"__esModule",{value:!0})});var VK=y(FK=>{"use strict";Object.defineProperty(FK,"__esModule",{value:!0})});var YK=y(GK=>{"use strict";Object.defineProperty(GK,"__esModule",{value:!0})});var WK=y(BK=>{"use strict";Object.defineProperty(BK,"__esModule",{value:!0})});var zK=y(UK=>{"use strict";Object.defineProperty(UK,"__esModule",{value:!0})});var HK=y($K=>{"use strict";Object.defineProperty($K,"__esModule",{value:!0})});var ZK=y(QK=>{"use strict";Object.defineProperty(QK,"__esModule",{value:!0})});var eS=y(Ho=>{"use strict";Object.defineProperty(Ho,"__esModule",{value:!0});Ho.ClientType=void 0;var XK;(function(r){r.blocking="blocking",r.normal="normal"})(XK||(Ho.ClientType=XK={}))});var rS=y(tS=>{"use strict";Object.defineProperty(tS,"__esModule",{value:!0})});var iS=y(nS=>{"use strict";Object.defineProperty(nS,"__esModule",{value:!0})});var aS=y(sS=>{"use strict";Object.defineProperty(sS,"__esModule",{value:!0})});var lS=y(oS=>{"use strict";Object.defineProperty(oS,"__esModule",{value:!0})});var uS=y(cS=>{"use strict";Object.defineProperty(cS,"__esModule",{value:!0})});var fS=y(dS=>{"use strict";Object.defineProperty(dS,"__esModule",{value:!0})});var yS=y(pS=>{"use strict";Object.defineProperty(pS,"__esModule",{value:!0})});var mS=y(hS=>{"use strict";Object.defineProperty(hS,"__esModule",{value:!0})});var gS=y(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0})});var KS=y(vS=>{"use strict";Object.defineProperty(vS,"__esModule",{value:!0})});var ES=y(SS=>{"use strict";Object.defineProperty(SS,"__esModule",{value:!0})});var IS=y(kS=>{"use strict";Object.defineProperty(kS,"__esModule",{value:!0})});var wS=y(xS=>{"use strict";Object.defineProperty(xS,"__esModule",{value:!0})});var jS=y(TS=>{"use strict";Object.defineProperty(TS,"__esModule",{value:!0})});var AS=y(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});var ue=(Qe(),nt(He));ue.__exportStar(gK(),ce);ue.__exportStar(KK(),ce);ue.__exportStar(EK(),ce);ue.__exportStar(IK(),ce);ue.__exportStar(wK(),ce);ue.__exportStar(jK(),ce);ue.__exportStar(DK(),ce);ue.__exportStar(OK(),ce);ue.__exportStar(_K(),ce);ue.__exportStar(PK(),ce);ue.__exportStar(LK(),ce);ue.__exportStar(JK(),ce);ue.__exportStar(VK(),ce);ue.__exportStar(YK(),ce);ue.__exportStar(WK(),ce);ue.__exportStar(zK(),ce);ue.__exportStar(HK(),ce);ue.__exportStar(ZK(),ce);ue.__exportStar(eS(),ce);ue.__exportStar(rS(),ce);ue.__exportStar(iS(),ce);ue.__exportStar(aS(),ce);ue.__exportStar(lS(),ce);ue.__exportStar(uS(),ce);ue.__exportStar(fS(),ce);ue.__exportStar(yS(),ce);ue.__exportStar(mS(),ce);ue.__exportStar(gS(),ce);ue.__exportStar(KS(),ce);ue.__exportStar(ES(),ce);ue.__exportStar(IS(),ce);ue.__exportStar(wS(),ce);ue.__exportStar(jS(),ce)});var RS=y(DS=>{"use strict";Object.defineProperty(DS,"__esModule",{value:!0})});var CS=y(OS=>{"use strict";Object.defineProperty(OS,"__esModule",{value:!0})});var MS=y(_S=>{"use strict";Object.defineProperty(_S,"__esModule",{value:!0})});var NS=y(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0})});var qS=y(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0})});var FS=y(JS=>{"use strict";Object.defineProperty(JS,"__esModule",{value:!0})});var GS=y(VS=>{"use strict";Object.defineProperty(VS,"__esModule",{value:!0})});var BS=y(YS=>{"use strict";Object.defineProperty(YS,"__esModule",{value:!0})});var US=y(WS=>{"use strict";Object.defineProperty(WS,"__esModule",{value:!0})});var $S=y(zS=>{"use strict";Object.defineProperty(zS,"__esModule",{value:!0})});var QS=y(HS=>{"use strict";Object.defineProperty(HS,"__esModule",{value:!0})});var ZS=y(bt=>{"use strict";Object.defineProperty(bt,"__esModule",{value:!0});var Mt=(Qe(),nt(He));Mt.__exportStar(RS(),bt);Mt.__exportStar(CS(),bt);Mt.__exportStar(MS(),bt);Mt.__exportStar(NS(),bt);Mt.__exportStar(qS(),bt);Mt.__exportStar(FS(),bt);Mt.__exportStar(GS(),bt);Mt.__exportStar(BS(),bt);Mt.__exportStar(US(),bt);Mt.__exportStar($S(),bt);Mt.__exportStar(QS(),bt)});var eE=y(XS=>{"use strict";Object.defineProperty(XS,"__esModule",{value:!0})});var tE=y(or=>{"use strict";Object.defineProperty(or,"__esModule",{value:!0});var fn=(Qe(),nt(He));fn.__exportStar(mK(),or);fn.__exportStar(st(),or);fn.__exportStar(AS(),or);fn.__exportStar(ZS(),or);fn.__exportStar(ct(),or);fn.__exportStar(eE(),or);fn.__exportStar(fa(),or)});var Qd=sf(hs(),1);var Mr=sf(tE(),1);import{MessageId as S_}from"@workflow/world";import Qo from"node:crypto";var Li="0123456789ABCDEFGHJKMNPQRSTVWXYZ",qi=32;var iE=16,Zo=10,rE=0xffffffffffff;var lr;(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"})(lr||(lr={}));var cr=class extends Error{constructor(e,t){super(`${t} (${e})`),this.name="ULIDError",this.code=e}};function m_(r){let e=Math.floor(r()*qi)%qi;return Li.charAt(e)}function nE(r,e,t){return e>r.length-1?r:r.substr(0,e)+t+r.substr(e+1)}function b_(r){let e,t=r.length,n,i,s=r,a=qi-1;for(;!e&&t-->=0;){if(n=s[t],i=Li.indexOf(n),i===-1)throw new cr(lr.Base32IncorrectEncoding,"Incorrectly encoded string");if(i===a){s=nE(s,t,Li[0]);continue}e=nE(s,t,Li[i+1])}if(typeof e=="string")return e;throw new cr(lr.Base32IncorrectEncoding,"Failed incrementing string")}function sE(r){let e=g_(),t=e&&(e.crypto||e.msCrypto)||(typeof Qo<"u"?Qo: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(Qo?.randomBytes)return()=>Qo.randomBytes(1).readUInt8()/256;throw new cr(lr.PRNGDetectFailure,"Failed to find a reliable PRNG")}function g_(){return v_()?self:typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:null}function aE(r,e){let t="";for(;r>0;r--)t=m_(e)+t;return t}function Vd(r,e=Zo){if(isNaN(r))throw new cr(lr.EncodeTimeValueMalformed,`Time must be a number: ${r}`);if(r>rE)throw new cr(lr.EncodeTimeSizeExceeded,`Cannot encode a time larger than ${rE}: ${r}`);if(r<0)throw new cr(lr.EncodeTimeNegative,`Time must be positive: ${r}`);if(Number.isInteger(r)===!1)throw new cr(lr.EncodeTimeValueMalformed,`Time must be an integer: ${r}`);let t,n="";for(let i=e;i>0;i--)t=r%qi,n=Li.charAt(t)+n,r=(r-t)/qi;return n}function v_(){return typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope}function Xo(r){let e=r||sE(),t=0,n;return function(s){let a=!s||isNaN(s)?Date.now():s;if(a<=t){let l=n=b_(n);return Vd(t,Zo)+l}t=a;let o=n=aE(iE,e);return Vd(a,Zo)+o}}function el(r,e){let t=e||sE(),n=!r||isNaN(r)?Date.now():r;return Vd(n,Zo)+aE(iE,t)}function Ee(r){let e={};for(let t in r)r[t]!==null?e[t]=r[t]:e[t]=void 0;return e}function K_(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 Gd=K_("stackbone-workflow-world");function oE(r){return new Promise(e=>setTimeout(e,r))}var E_=r=>r instanceof Error&&r.code===-2&&r.message.startsWith("Missing lock for job"),Yd=9e5,k_=(r,e,t)=>r?.name!=="TimeoutError"?r instanceof Error?r:new Error(String(r)):new Mr.UnrecoverableError(`Step dispatch to ${e} exceeded ${t}ms and was abandoned. The step may still be running there, so it is NOT retried \u2014 a retry would run a second copy alongside it. Raise WORKFLOW_HTTP_TIMEOUT_MS if the step legitimately needs longer.`),I_={workflow:"flow",step:"step"},x_=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 lE(r,e){return Promise.race([r,new Promise(t=>{setTimeout(t,e).unref?.()})])}function w_(r){return r.baseUrl?r.baseUrl:process.env.WORKFLOW_BASE_URL?process.env.WORKFLOW_BASE_URL:`http://localhost:${process.env.PORT??"3000"}`}function cE(r,e){let t=Xo(),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??Yd,c=e.stalledInterval??3e4,u=e.maxStalledCount??1,d=e.idempotencyTtlMs??6e4,p=e.closeTimeoutMs??5e3,f={...r.options,maxRetriesPerRequest:null,keyPrefix:void 0},h=new Map,g=new Map;for(let[w,K]of Object.entries(i))h.set(w,new Mr.Queue(K,{connection:f}));let k=async(w,K,M)=>{let V=x_(w),_=h.get(V);if(!_)throw new Error(`No BullMQ queue registered for kind ${V}`);let A=S_.parse(`msg_${t()}`),m=M?.delaySeconds?Math.max(0,M.delaySeconds*1e3):void 0;return await _.add(w,{queueName:w,message:K},{jobId:A,delay:m,attempts:s,backoff:{type:a,delay:o},...M?.idempotencyKey&&{deduplication:{id:M.idempotencyKey,ttl:d}},removeOnComplete:{age:86400,count:1e3},removeOnFail:{age:7*86400}}),{messageId:A}};function E(w){let K=I_[w];return async M=>{let _=`${w_(e)}/.well-known/workflow/v1/${K}`,A=M.id??`msg_${t()}`,m;try{m=await fetch(_,{method:"POST",headers:{...e.dispatchHeaders,"content-type":"application/json","x-vqs-queue-name":M.data.queueName,"x-vqs-message-id":A,"x-vqs-message-attempt":String(M.attemptsMade+1)},body:JSON.stringify(M.data.message),signal:AbortSignal.timeout(l)})}catch(x){throw k_(x,_,l)}if(m.ok)return;let T=await m.text();if(m.status===503){let x;try{let j=JSON.parse(T);typeof j?.timeoutSeconds=="number"&&(x=j.timeoutSeconds)}catch{}if(x!==void 0)throw await M.moveToDelayed(Date.now()+x*1e3,M.token),new Mr.DelayedError}throw new Error(`HTTP ${m.status}: ${T}`)}}let I=(w,K)=>async M=>{let V=M.headers.get("x-vqs-queue-name"),_=M.headers.get("x-vqs-message-id"),A=M.headers.get("x-vqs-message-attempt");if(!V||!_||!A||!M.body)return Response.json({error:"Missing required headers or body"},{status:400});if(!V.startsWith(w))return Response.json({error:"Unhandled queue"},{status:400});let m=Number.parseInt(A,10);try{let T=await M.json(),x=await K(T,{attempt:m,queueName:V,messageId:_});return x&&typeof x.timeoutSeconds=="number"?Response.json({timeoutSeconds:x.timeoutSeconds},{status:503}):Response.json({ok:!0})}catch(T){return Gd("queue handler error:",T),Response.json({error:String(T)},{status:500})}},O=async()=>"redis";async function D(){let w=e.queueConcurrency||10;for(let[K,M]of Object.entries(i)){let V=new Mr.Worker(M,E(K),{connection:f,concurrency:w,stalledInterval:c,maxStalledCount:u,drainDelay:300});V.on("failed",(_,A)=>{console.error(`Job ${_?.id} failed:`,A)}),V.on("error",_=>{if(E_(_)){Gd("worker lock race (auto-recovered):",_ instanceof Error?_.message:_);return}console.error("Worker error:",_)}),g.set(K,V)}await Promise.all(Array.from(g.values()).map(K=>K.waitUntilReady()))}async function B(){let w={waiting:0,active:0,completed:0,failed:0,delayed:0};for(let K of h.values()){let M=await K.getJobCounts("waiting","active","completed","failed","delayed");w.waiting+=M.waiting,w.active+=M.active,w.completed+=M.completed,w.failed+=M.failed,w.delayed+=M.delayed}return w}async function ae(){await Promise.all(Array.from(g.values()).map(w=>lE(w.close(),p).catch(()=>{}))),await Promise.all(Array.from(h.values()).map(w=>lE(w.close(),p).catch(()=>{})))}return{createQueueHandler:I,getDeploymentId:O,queue:k,getQueueStats:B,async start(){await D()},async stop(){await ae()}}}var uE=r=>`${r}events_notify`;function T_(r){let e;try{e=JSON.parse(r)}catch{return null}if(!e||typeof e!="object")return null;let{runId:t,eventId:n,eventType:i,correlationId:s}=e;return typeof t!="string"||typeof n!="string"||typeof i!="string"?null:{runId:t,eventId:n,eventType:i,...typeof s=="string"?{correlationId:s}:{}}}async function dE(r,e,t){try{await r.publish(uE(e),JSON.stringify(t))}catch{}}function fE(r){let{redis:e,keyPrefix:t}=r,n=uE(t),i=e.duplicate(),s=new Set,a=i.subscribe(n).then(()=>{});return i.on("message",(o,l)=>{if(o!==n)return;let c=T_(l);if(c)for(let 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 j_=3e4,A_=`-- 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'`,
|
|
8918
|
+
return 'queued'`,D_=`-- 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`,
|
|
8928
|
+
return nil`,R_=`-- 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`,
|
|
8933
|
+
return 0`,O_=`-- 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`,Qn="__fifoEnc";function Wd(r){if(r instanceof Uint8Array)return{[Qn]:"u8",d:Array.from(r)};if(r instanceof Date)return{[Qn]:"date",d:r.toISOString()};if(Array.isArray(r))return r.map(Wd);if(r&&typeof r=="object"){let e={};for(let[t,n]of Object.entries(r))e[t]=Wd(n);return Qn in e?{[Qn]:"esc",d:e}:e}return r}function dE(r){let e={};for(let[t,n]of Object.entries(r))e[t]=Ud(n);return e}function Ud(r){if(Array.isArray(r))return r.map(Ud);if(r&&typeof r=="object"){let e=r;if(Qn in e)switch(e[Qn]){case"u8":return new Uint8Array(e.d);case"date":return new Date(e.d);case"esc":return dE(e.d)}return dE(e)}return r}function pE(r){return JSON.stringify(Wd(r))}function fE(r){return Ud(JSON.parse(r))}function hE(r,e={}){let{redis:t,keyPrefix:n}=r,i=e.lockTtlMs??I_,s=o=>`${n}serial:lock:${o}`,a=o=>`${n}serial:wait:${o}`;return{async tryAdmit(o,l){let c=Zo();return await t.eval(x_,2,s(o),a(o),c,pE(l),String(i))==="admitted"?{admitted:!0,token:c}:{admitted:!1}},async release(o,l){let c=Zo(),u=await t.eval(w_,2,s(o),a(o),l,c,String(i));return u===null?null:{trigger:fE(u),token:c}},async renew(o,l){return await t.eval(T_,1,s(o),l,String(i))===1},async recoverOrphans(o){let l=Zo(),c=await t.eval(j_,2,s(o),a(o),l,String(i));return c===null?null:{trigger:fE(c),token:l}},async requeue(o,l){await t.rpush(a(o),pE(l))}}}import{EntityConflictError as Zn,HookNotFoundError as A_,RunExpiredError as yE,TooEarlyError as D_,WorkflowWorldError as cr}from"@workflow/errors";import{EventSchema as pn,HookSchema as rl,isLegacySpecVersion as R_,requiresNewerWorld as O_,SPEC_VERSION_CURRENT as zd,StepSchema as Mr,WorkflowRunSchema as Wt}from"@workflow/world";var C_=3,__=30,M_=new Set(["createdAt","updatedAt","startedAt","completedAt","retryAfter"]);function P_(r,e){if(M_.has(r)&&typeof e=="string"){let t=new Date(e);return Number.isNaN(t.getTime())?e:t}return e}function N_(r,e){return e instanceof Uint8Array?{__uint8array:!0,data:Array.from(e)}:e}function L_(r,e){let t=P_(r,e);return t&&typeof t=="object"&&t.__uint8array===!0?new Uint8Array(t.data):t}function Ve(r){return JSON.stringify(r,N_)}function me(r){return JSON.parse(r,L_)}function q_(){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 gE(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=me(c);o.del(n(l)),o.del(i(u.token))}}o.del(s),await o.exec()}function mE(r,e){if(e==="none"&&"metadata"in r){let{metadata:t,...n}=r;return{metadata:void 0,...n}}return r}function bE(r,e){if(e==="none"){let{input:t,output:n,...i}=r;return{input:void 0,output:void 0,...i}}return r}function nl(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 vE(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 m=me(p[1]),g=!d?.status||m.status===d.status,E=!d?.workflowName||m.workflowName===d.workflowName;if(g&&E){let k=d?.resolveData??"all",I=Wt.parse(Ee(m));f.push(nl(I,k))}}return f}return{get:(async(u,d)=>{let f=await e.get(n(u));if(!f)throw new cr(`Run not found: ${u}`,{status:404});let p=me(f),m=Wt.parse(Ee(p)),g=d?.resolveData??"all";return nl(m,g)}),list:(async u=>{let d=u?.pagination?.limit??20,f=u?.pagination?.cursor,p=o(u),m=await l(p,f),g=await e.zrevrange(p,m,m+d),E=e.pipeline();for(let J of g)E.get(n(J));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 KE(r){let{redis:e,keyPrefix:t}=r,n=Qo(),i=A=>`${t}event:${A}`,s=A=>`${t}events:by_run:${A}`,a=A=>`${t}events:by_correlation:${A}`,o=A=>`${t}run:${A}`,l=()=>`${t}runs:index`,c=A=>`${t}runs:by_name:${A}`,u=A=>`${t}runs:by_status:${A}`,d=(A,K)=>`${t}step:${A}:${K}`,f=A=>`${t}steps:by_run:${A}`,p=A=>`${t}hook:${A}`,m=A=>`${t}hooks:by_token:${A}`,g=A=>`${t}hooks:by_run:${A}`;async function E(A){await gE(e,t,A)}async function k(A,K,P){return K?(await e[P==="desc"?"zrevrank":"zrank"](A,K)??0)+1:0}async function I(A,K,P,G){return e[G==="desc"?"zrevrange":"zrange"](A,K,K+P)}function R(A){let K=[];for(let P of A??[])if(P?.[1]){let G=me(P[1]);K.push(G)}return K}async function D(A,K,P,G,F){let h=F?.resolveData??"all";switch(P.eventType){case"run_cancelled":{let T=new Date,x=await e.get(o(A));if(x){let w=me(x),j={...w,status:"cancelled",completedAt:T,updatedAt:T};await e.set(o(A),Ve(j));let V=e.pipeline();V.zrem(u(w.status),A),V.zadd(u("cancelled"),T.getTime(),A),await V.exec(),await E(A);let B=Wt.parse(Ee(j));return{run:nl(B,h)}}return{}}case"wait_completed":case"hook_received":{let T=new Date,x={...P,runId:A,eventId:K,createdAt:T,specVersion:zd};await e.set(i(K),Ve(x));let w=T.getTime(),j=e.pipeline();j.zadd(s(A),w,K),P.correlationId&&j.zadd(a(P.correlationId),w,K),await j.exec();let V=pn.parse(x);return{event:fn(V,h)}}default:throw new Error(`Event type '${P.eventType}' not supported for legacy runs (specVersion: ${G.specVersion||"undefined"}). Please upgrade @workflow packages.`)}}async function J(A,K){if(await e.zcard(a(A))>0)throw new Zn(`${K} "${A}" already created`)}let oe=q_(),z=async(A,K,P)=>{let G=`wevt_${n()}`,F=new Date,h;if(K.eventType==="run_created"&&(!A||A===""))h=`wrun_${n()}`;else if(A)h=A;else throw new Error("runId is required for non-run_created events");let T=K.specVersion??zd,x,w,j,V=_=>["completed","failed","cancelled"].includes(_),B=_=>["completed","failed","cancelled"].includes(_),C=null,ae=["step_completed","step_retrying"];if(K.eventType!=="run_created"&&!ae.includes(K.eventType)){let _=await e.get(o(h));if(_){let W=me(_);C={status:W.status,specVersion:W.specVersion}}}if(K.eventType==="run_started"&&!C&&"eventData"in K&&K.eventData){let _=K.eventData;if(_.deploymentId&&_.workflowName&&_.input!==void 0){let W={runId:h,deploymentId:_.deploymentId,workflowName:_.workflowName,specVersion:T,input:_.input,executionContext:_.executionContext,status:"pending",output:void 0,error:void 0,completedAt:void 0,startedAt:void 0,createdAt:F,updatedAt:F};if(await e.setnx(o(h),Ve(W))===1){let Q=F.getTime();await e.pipeline().zadd(l(),Q,h).zadd(c(_.workflowName),Q,h).zadd(u("pending"),Q,h).exec();let pe=`wevt_${n()}`,Mt={eventType:"run_created",eventData:{deploymentId:_.deploymentId,workflowName:_.workflowName,input:_.input,executionContext:_.executionContext},runId:h,eventId:pe,createdAt:F,specVersion:T};await e.set(i(pe),Ve(Mt)),await e.zadd(s(h),F.getTime(),pe),C={status:"pending",specVersion:T}}else{let Q=await e.get(o(h));if(Q){let pe=me(Q);C={status:pe.status,specVersion:pe.specVersion}}}}}if(C){if(O_(C.specVersion))throw new(await import("@workflow/errors")).RunNotSupportedError(C.specVersion,zd);if(R_(C.specVersion))return D(h,G,K,C,P)}if(C&&V(C.status)){let _=["run_started","run_completed","run_failed"];if(K.eventType==="run_cancelled"&&C.status==="cancelled"){let W=await e.get(o(h)),te=new Date,Q={...K,runId:h,eventId:G,createdAt:te,specVersion:T};await e.set(i(G),Ve(Q));let pe=te.getTime();await e.zadd(s(h),pe,G);let Mt=pn.parse(Q),ol=P?.resolveData??"all";return{event:fn(Mt,ol),run:W?me(W):void 0}}if(K.eventType==="run_started")throw new yE(`Workflow run "${h}" is already in terminal state "${C.status}"`);if(_.includes(K.eventType)||K.eventType==="run_cancelled")throw new Zn(`Cannot transition run from terminal state "${C.status}"`);if(K.eventType==="step_created"||K.eventType==="hook_created")throw new Zn(`Cannot create new entities on run in terminal state "${C.status}"`)}let re=null;if(["step_started","step_retrying"].includes(K.eventType)&&K.correlationId){let _=await e.get(d(h,K.correlationId));if(_){let W=me(_);re={status:W.status,startedAt:W.startedAt,retryAfter:W.retryAfter}}if(!re)throw new cr(`Step "${K.correlationId}" not found`,{status:404});if(B(re.status))throw new Zn(`Cannot modify step in terminal state "${re.status}"`);if(C&&V(C.status)&&re.status!=="running")throw new yE(`Cannot modify non-running step on run in terminal state "${C.status}"`);if(K.eventType==="step_started"&&re.retryAfter){let W=new Date(re.retryAfter).getTime(),te=W-F.getTime();if(Number.isFinite(W)&&te>0)throw new D_(`Step "${K.correlationId}" cannot start before ${new Date(W).toISOString()}`,{retryAfter:Math.ceil(te/1e3)})}}if(["hook_disposed","hook_received"].includes(K.eventType)&&K.correlationId&&!await e.get(p(K.correlationId)))throw new cr(`Hook "${K.correlationId}" not found`,{status:404});if(K.eventType==="run_created"){let _=K.eventData,W={runId:h,deploymentId:_.deploymentId,workflowName:_.workflowName,specVersion:T,input:_.input,executionContext:_.executionContext,status:"pending",output:void 0,error:void 0,completedAt:void 0,startedAt:void 0,createdAt:F,updatedAt:F},te=await e.setnx(o(h),Ve(W)),Q=F.getTime();if(await e.pipeline().zadd(l(),Q,h).zadd(c(_.workflowName),Q,h).zadd(u("pending"),Q,h).exec(),te===1)x=Wt.parse(Ee(W));else{let pe=await e.get(o(h));pe&&(x=Wt.parse(Ee(me(pe))))}}if(K.eventType==="run_started"){if(C?.status==="running"){let W=await e.get(o(h));W&&(x=Wt.parse(Ee(me(W))));let te=P?.resolveData??"all";return{run:x?nl(x,te):void 0}}let _=await e.get(o(h));if(_){let W=me(_),te={...W,status:"running",startedAt:F,updatedAt:F};await e.set(o(h),Ve(te));let Q=e.pipeline();Q.zrem(u(W.status),h),Q.zadd(u("running"),F.getTime(),h),await Q.exec(),x=Wt.parse(Ee(te))}}if(K.eventType==="run_completed"){let _=K.eventData,W=await e.get(o(h));if(W){let te=me(W),Q={...te,status:"completed",output:_.output,completedAt:F,updatedAt:F};await e.set(o(h),Ve(Q));let pe=e.pipeline();pe.zrem(u(te.status),h),pe.zadd(u("completed"),F.getTime(),h),await pe.exec(),await E(h),x=Wt.parse(Ee(Q))}}if(K.eventType==="run_failed"){let _=K.eventData,W=typeof _.error=="string"?_.error:_.error?.message??"Unknown error",te=await e.get(o(h));if(te){let Q=me(te),pe={...Q,status:"failed",error:{message:W,stack:_.error?.stack,code:_.errorCode},completedAt:F,updatedAt:F};await e.set(o(h),Ve(pe));let Mt=e.pipeline();Mt.zrem(u(Q.status),h),Mt.zadd(u("failed"),F.getTime(),h),await Mt.exec(),await E(h),x=Wt.parse(Ee(pe))}}if(K.eventType==="run_cancelled"){let _=await e.get(o(h));if(_){let W=me(_),te={...W,status:"cancelled",completedAt:F,updatedAt:F};await e.set(o(h),Ve(te));let Q=e.pipeline();Q.zrem(u(W.status),h),Q.zadd(u("cancelled"),F.getTime(),h),await Q.exec(),await E(h),x=Wt.parse(Ee(te))}}if(K.eventType==="step_created"){await J(K.correlationId,"Step");let _=K.eventData,W={runId:h,stepId:K.correlationId,stepName:_.stepName,input:_.input,status:"pending",attempt:0,specVersion:T,createdAt:F,updatedAt:F},te=await e.setnx(d(h,K.correlationId),Ve(W));if(await e.zadd(f(h),F.getTime(),K.correlationId),te===1)w=Mr.parse(Ee(W));else{let Q=await e.get(d(h,K.correlationId));Q&&(w=Mr.parse(Ee(me(Q))))}}if(K.eventType==="step_started"){let _=!re?.startedAt,W=await e.get(d(h,K.correlationId));if(W){let te=me(W),Q={...te,status:"running",attempt:te.attempt+1,..._?{startedAt:F}:{},updatedAt:F};await e.set(d(h,K.correlationId),Ve(Q)),w=Mr.parse(Ee(Q))}}if(K.eventType==="step_completed"){let _=K.eventData,W=await e.get(d(h,K.correlationId));if(W){let te=me(W);if(["completed","failed","cancelled"].includes(te.status))throw new Zn(`Cannot modify step in terminal state "${te.status}"`);let Q={...te,status:"completed",output:_.result,completedAt:F,updatedAt:F};await e.set(d(h,K.correlationId),Ve(Q)),w=Mr.parse(Ee(Q))}else throw new cr(`Step "${K.correlationId}" not found`,{status:404})}if(K.eventType==="step_failed"){let _=K.eventData,W=typeof _.error=="string"?_.error:_.error?.message??"Unknown error",te=await e.get(d(h,K.correlationId));if(te){let Q=me(te);if(["completed","failed","cancelled"].includes(Q.status))throw new Zn(`Cannot modify step in terminal state "${Q.status}"`);let pe={...Q,status:"failed",error:{message:W,stack:_.stack},completedAt:F,updatedAt:F};await e.set(d(h,K.correlationId),Ve(pe)),w=Mr.parse(Ee(pe))}else throw new cr(`Step "${K.correlationId}" not found`,{status:404})}if(K.eventType==="step_retrying"){let _=K.eventData,W=typeof _.error=="string"?_.error:_.error?.message??"Unknown error",te=await e.get(d(h,K.correlationId));if(te){let pe={...me(te),status:"pending",error:{message:W,stack:_.stack},retryAfter:_.retryAfter,updatedAt:F};await e.set(d(h,K.correlationId),Ve(pe)),w=Mr.parse(Ee(pe))}}if(K.eventType==="wait_created"&&K.correlationId&&await J(K.correlationId,"Wait"),K.eventType==="hook_created"){let _=K.eventData,W=await e.get(m(_.token));if(W&&W!==K.correlationId){let pe=await e.get(p(W)),Mt=pe?me(pe).runId:void 0,ol={token:_.token,...Mt?{conflictingRunId:Mt}:{}},Zd=new Date,Xd={eventType:"hook_conflict",correlationId:K.correlationId,eventData:ol,runId:h,eventId:G,createdAt:Zd,specVersion:T};await e.set(i(G),Ve(Xd));let ep=Zd.getTime(),ll=e.pipeline();ll.zadd(s(h),ep,G),K.correlationId&&ll.zadd(a(K.correlationId),ep,G),await ll.exec();let TE=pn.parse(Xd),jE=P?.resolveData??"all";return{event:fn(TE,jE),run:x,step:w,hook:void 0}}await J(K.correlationId,"Hook");let te={runId:h,hookId:K.correlationId,token:_.token,ownerId:"",projectId:"",environment:"",metadata:_.metadata,specVersion:T,createdAt:F},Q=await e.setnx(p(K.correlationId),Ve(te));if(await e.pipeline().set(m(_.token),K.correlationId).zadd(g(h),F.getTime(),K.correlationId).exec(),Q===1)j=rl.parse(Ee(te));else{let pe=await e.get(p(K.correlationId));pe&&(j=rl.parse(Ee(me(pe))))}}if(K.eventType==="hook_disposed"&&K.correlationId){let _=await e.get(p(K.correlationId));if(_){let W=me(_);await e.pipeline().del(p(K.correlationId)).del(m(W.token)).zrem(g(h),K.correlationId).exec()}}let ur=new Date,il={...K,runId:h,eventId:G,createdAt:ur,specVersion:T};K.eventType==="run_started"&&delete il.eventData,await e.set(i(G),Ve(il));let Hd=ur.getTime(),sl=e.pipeline();sl.zadd(s(h),Hd,G),K.correlationId&&sl.zadd(a(K.correlationId),Hd,G),await sl.exec(),await cE(e,t,{runId:h,eventId:G,eventType:K.eventType,...K.correlationId?{correlationId:K.correlationId}:{}});let wE=pn.parse(il),Qd=P?.resolveData??"all",al;if(K.eventType==="run_started"&&x){let _=await e.zrange(s(h),0,-1);if(_.length>0){let W=e.pipeline();for(let Q of _)W.get(i(Q));let te=await W.exec();al=R(te).map(Q=>{let pe=pn.parse(Ee(Q));return fn(pe,Qd)})}else al=[]}return{event:fn(wE,Qd),run:x,step:w,hook:j,events:al}};return{create(A,K,P){return A?oe(A,()=>z(A,K,P)):z(A,K,P)},async get(A,K){let P=await e.get(i(K));if(!P)throw new cr(`Event not found: ${K}`,{status:404});return me(P)},async list(A){let K=A?.pagination?.limit??100,P=A.pagination?.sortOrder||"asc",G=A?.pagination?.cursor,F=s(A.runId),h=await k(F,G,P),T=await I(F,h,K,P),x=e.pipeline();for(let ae of T)x.get(i(ae));let w=await x.exec(),j=R(w),V=j.slice(0,K),B=j.length>K,C=A?.resolveData??"all";return{data:V.map(ae=>{let re=pn.parse(Ee(ae));return fn(re,C)}),cursor:V.at(-1)?.eventId??null,hasMore:B}},async listByCorrelationId(A){let K=A?.pagination?.limit??100,P=A.pagination?.sortOrder||"asc",G=A?.pagination?.cursor,F=a(A.correlationId),h=await k(F,G,P),T=await I(F,h,K,P),x=e.pipeline();for(let ae of T)x.get(i(ae));let w=await x.exec(),j=R(w),V=j.slice(0,K),B=j.length>K,C=A?.resolveData??"all";return{data:V.map(ae=>{let re=pn.parse(Ee(ae));return fn(re,C)}),cursor:V.at(-1)?.eventId??null,hasMore:B}}}}function SE(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 cr(`Step not found: ${l}`,{status:404});let d=me(u),f=Mr.parse(Ee(d)),p=c?.resolveData??"all";return bE(f,p)}return{get:(async(o,l,c)=>{if(!o){let u=`${t}step:*:${l}`,d=await s(u);if(!d)throw new cr(`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 m=await p.exec(),g=o?.resolveData??"all",E=[];for(let R of m??[])if(R?.[1]){let D=me(R[1]),J=Mr.parse(Ee(D));E.push(bE(J,g))}let k=E.slice(0,l),I=E.length>l;return{data:k,hasMore:I,cursor:k.at(-1)?.stepId??null}})}}function EE(r){let{redis:e,keyPrefix:t}=r,n=r.hookResolveRetries??C_,i=r.hookResolveRetryMs??__,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 cr(`Hook not found: ${l}`,{status:404});let d=me(u),f=rl.parse(Ee(d)),p=c?.resolveData??"all";return mE(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 A_(l);await sE(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),m=e.pipeline();for(let R of p)m.get(s(R));let g=await m.exec(),E=[];for(let R of g??[])if(R?.[1]){let D=me(R[1]),J=rl.parse(Ee(D)),oe=mE(J,l?.resolveData??"all");E.push(oe)}let k=E.slice(0,c),I=E.length>c;return{data:k,cursor:k.at(-1)?.hookId??null,hasMore:I}}}}var kE=10080*60*1e3;function IE(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,m="0";do{let[g,E]=await n.scan(m,"MATCH",f,"COUNT",200);for(let k of E)p.add(k);m=g}while(m!=="0");return[...p]}return async function(p){let m=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 J=D.slice(c.length);if(J)try{let oe=await n.get(s(J)),z=!1;if(!oe)z=!0;else{let A=me(oe);u.has(A.status)&&(z=!0)}z&&(await gE(n,i,J),k+=1)}catch{}}if(m){let D=await n.zrange(a("running"),0,-1);for(let J of D)try{let oe=await n.get(s(J));if(!oe||me(oe).status!=="running")continue;let A=await n.zrevrange(o(J),0,0,"WITHSCORES"),K=A.length===2?Number(A[1]):void 0;if(K===void 0||Number.isNaN(K)||E()-K<=g)continue;await e.create(J,{eventType:"run_cancelled"}),I+=1}catch{}}return{orphanHookRunsPruned:k,staleRunsCancelled:I}}}import{EventEmitter as J_}from"node:events";function F_(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 xE(r){let{redis:e,keyPrefix:t}=r,n=new J_,i=new Map,s=m=>{let g=i.get(m);return g||(g=new el(async()=>{i.delete(m)}),i.set(m,g)),g.inc(),{mutex:new Xo,[Symbol.dispose]:()=>g?.dec()}},a=m=>`${t}stream:${m}`,o=`${t}stream_notify`,l=e.duplicate(),c=l.subscribe(o).then(()=>{});l.on("message",async(m,g)=>{if(m===o)try{let E=F_(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,J]=R[0],oe=Buffer.from(J[1],"base64"),z=J[3]==="true";n.emit(k,{id:D,data:oe,eof:z})})}catch(E){console.error("Error processing stream notification:",E)}});async function u(m,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(m,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(m,g,E){let k=[];return new ReadableStream({async start(I){let R="",D=E??0,J=[],oe=h=>R>=h,z=()=>D>0?(D--,!0):!1,A=h=>{h.data.byteLength&&I.enqueue(new Uint8Array(h.data)),h.eof&&I.close(),R=h.id};function K(h){oe(h.id)||z()||A(h)}function P(h){if(J){J.push(h);return}K(h)}n.on(`strm:${g}`,P),k.push(()=>{n.off(`strm:${g}`,P)});let G=await e.xrange(a(g),"-","+"),F=[];for(let[h,T]of G){let x=Buffer.from(T[1],"base64"),w=T[3]==="true";F.push({id:h,data:x,eof:w})}for(let h of[...F,...J??[]])K(h);J=null},cancel(){k.forEach(I=>{I()})}})}async function p(m){let g=await e.xrange(a(m),"-","+"),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(m){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(m,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),J=R.slice(I,I+k).map((A,K)=>({index:I+K,data:A})),oe=I+J.length,z=oe<R.length;return{data:J,cursor:z?String(oe):null,hasMore:z,done:D}},async getInfo(m,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 Ji(r,e,t=0){if(r===void 0||r==="")return e;let n=Number.parseInt(r,10);return Number.isNaN(n)?e:Math.max(t,n)}var V_=3600*1e3;function G_(r,e,t,n){let i={redis:r,keyPrefix:e,hookResolveRetries:t,hookResolveRetryMs:n};return{runs:vE(i),events:KE(i),hooks:EE(i),steps:SE(i)}}function Qq(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 $d.Redis(r.redis):new $d.Redis(r.redis),t=r.keyPrefix||"workflow:",n=r.hookResolveRetries??Ji(process.env.WORKFLOW_HOOK_RESOLVE_RETRIES,3),i=r.hookResolveRetryMs??Ji(process.env.WORKFLOW_HOOK_RESOLVE_RETRY_MS,30),s=r.enableRunCancellationGc??process.env.WORKFLOW_ENABLE_RUN_CANCELLATION_GC==="true",a=r.maxRunAgeForCancellationMs??Ji(process.env.WORKFLOW_RUN_CANCELLATION_AGE_MS,kE,V_),o=r.serialLockTtlMs??Ji(process.env.WORKFLOW_SERIAL_LOCK_TTL_MS,3e4,1),l=r.httpTimeoutMs??Ji(process.env.WORKFLOW_HTTP_TIMEOUT_MS,Bd,1e3),c=oE(e,{...r,httpTimeoutMs:l}),u=G_(e,t,n,i),d=hE({redis:e,keyPrefix:t},{lockTtlMs:o}),f=IE({redis:e,keyPrefix:t},u.events,{enableRunCancellation:s,maxRunAgeMs:a}),{stop:p,...m}=xE({redis:e,keyPrefix:t}),g=uE({redis:e,keyPrefix:t});return{...u,...m,...c,eventsSubscriber:g,pruneOrphanState:f,serialGate:d,specVersion:5,processExitTriggersQueueRedelivery:!1,async start(){await c.start()},async close(){try{await c.stop()}catch{}try{await p()}catch{}try{await g.stop()}catch{}try{await e.quit()}catch{}},async resolveLatestDeploymentId(){return"redis"}}}export{Qq as createWorld};
|
|
8942
|
+
return nil`,Qn="__fifoEnc";function Bd(r){if(r instanceof Uint8Array)return{[Qn]:"u8",d:Array.from(r)};if(r instanceof Date)return{[Qn]:"date",d:r.toISOString()};if(Array.isArray(r))return r.map(Bd);if(r&&typeof r=="object"){let e={};for(let[t,n]of Object.entries(r))e[t]=Bd(n);return Qn in e?{[Qn]:"esc",d:e}:e}return r}function pE(r){let e={};for(let[t,n]of Object.entries(r))e[t]=Wd(n);return e}function Wd(r){if(Array.isArray(r))return r.map(Wd);if(r&&typeof r=="object"){let e=r;if(Qn in e)switch(e[Qn]){case"u8":return new Uint8Array(e.d);case"date":return new Date(e.d);case"esc":return pE(e.d)}return pE(e)}return r}function yE(r){return JSON.stringify(Bd(r))}function hE(r){return Wd(JSON.parse(r))}function mE(r,e={}){let{redis:t,keyPrefix:n}=r,i=e.lockTtlMs??j_,s=o=>`${n}serial:lock:${o}`,a=o=>`${n}serial:wait:${o}`;return{async tryAdmit(o,l){let c=el();return await t.eval(A_,2,s(o),a(o),c,yE(l),String(i))==="admitted"?{admitted:!0,token:c}:{admitted:!1}},async release(o,l){let c=el(),u=await t.eval(D_,2,s(o),a(o),l,c,String(i));return u===null?null:{trigger:hE(u),token:c}},async renew(o,l){return await t.eval(R_,1,s(o),l,String(i))===1},async recoverOrphans(o){let l=el(),c=await t.eval(O_,2,s(o),a(o),l,String(i));return c===null?null:{trigger:hE(c),token:l}},async requeue(o,l){await t.rpush(a(o),yE(l))}}}import{EntityConflictError as Zn,HookNotFoundError as C_,RunExpiredError as bE,TooEarlyError as __,WorkflowWorldError as ur}from"@workflow/errors";import{EventSchema as pn,HookSchema as tl,isLegacySpecVersion as M_,requiresNewerWorld as P_,SPEC_VERSION_CURRENT as Ud,StepSchema as Pr,WorkflowRunSchema as Ut}from"@workflow/world";var N_=3,L_=30,q_=1e3,J_=["createdAt","updatedAt","startedAt","completedAt","retryAfter"],Ji="__uint8array";function F_(r){if(!r||typeof r!="object"||r instanceof Uint8Array||r instanceof Date)return r;let{toJSON:e}=r;return typeof e=="function"?e.call(r):r}function zd(r){return V_(F_(r))}function V_(r){if(r instanceof Uint8Array)return{[Ji]:!0,data:Array.from(r)};if(Array.isArray(r))return r.map(zd);if(r&&typeof r=="object"&&!(r instanceof Date)){let e={};for(let[t,n]of Object.entries(r))e[t]=zd(n);return Ji in e?{[Ji]:"esc",d:e}:e}return r}function gE(r){let e={};for(let[t,n]of Object.entries(r))e[t]=$d(n);return e}function $d(r){if(Array.isArray(r))return r.map($d);if(r&&typeof r=="object"){let e=r;if(e[Ji]===!0)return new Uint8Array(e.data);let t=e[Ji]==="esc"?e.d:void 0;return t&&typeof t=="object"&&!Array.isArray(t)?gE(t):gE(e)}return r}function vE(r,e){let t=r[e];if(typeof t!="string")return;let n=new Date(t);Number.isNaN(n.getTime())||(r[e]=n)}function Ve(r){return JSON.stringify(zd(r))}function he(r){let e=$d(JSON.parse(r));for(let n of J_)vE(e,n);let t=e.eventData;return t&&typeof t=="object"&&!Array.isArray(t)&&vE(t,"retryAfter"),e}function Hd(){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 Fi(r,e,t,n="desc"){if(!t)return 0;let i=n==="desc"?await r.zrevrank(e,t):await r.zrank(e,t);return i===null?0:i+1}async function EE(r,e,t){let n=l=>`${e}hook:${l}`,i=l=>`${e}hooks:by_token:${l}`,s=`${e}hooks:by_run:${t}`,a=await r.zrange(s,0,-1),o=r.pipeline();for(let l of a){let c=await r.get(n(l));if(c){let u=he(c);o.del(n(l)),o.del(i(u.token))}}o.del(s),await o.exec()}function KE(r,e){if(e==="none"&&"metadata"in r){let{metadata:t,...n}=r;return{metadata:void 0,...n}}return r}function SE(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 yn(r,e){if(e==="none"&&"eventData"in r){let{eventData:t,...n}=r;return n}return r}function kE(r){let{redis:e,keyPrefix:t}=r,n=r.listScanLimit??q_,i=u=>`${t}run:${u}`,s=()=>`${t}runs:index`,a=u=>`${t}runs:by_name:${u}`,o=u=>`${t}runs:by_status:${u}`;function l(u){return u?.workflowName&&u?.status||u?.workflowName?a(u.workflowName):u?.status?o(u.status):s()}function c(u,d){let p=[];for(let f of u??[]){if(!f?.[1])continue;let h=he(f[1]),g=!d?.status||h.status===d.status,k=!d?.workflowName||h.workflowName===d.workflowName;if(g&&k){let E=d?.resolveData??"all",I=Ut.parse(Ee(h));p.push(rl(I,E))}}return p}return{get:(async(u,d)=>{let p=await e.get(i(u));if(!p)throw new ur(`Run not found: ${u}`,{status:404});let f=he(p),h=Ut.parse(Ee(f)),g=d?.resolveData??"all";return rl(h,g)}),list:(async u=>{let d=u?.pagination?.limit??20,p=l(u),f=await Fi(e,p,u?.pagination?.cursor),h=[],g=0,k,E=!1;for(;;){let D=await e.zrevrange(p,f,f+d);if(D.length===0){E=!0;break}let B=e.pipeline();for(let ae of D)B.get(i(ae));if(h.push(...c(await B.exec(),u)),g+=D.length,k=D.at(-1),D.length<d+1){E=!0;break}if(h.length>d||g>=n)break;f+=D.length}let I=h.slice(0,d),O=!E&&h.length<=d;return{data:I,hasMore:h.length>d||!E,cursor:(O?k:I.at(-1)?.runId)??null}})}}function IE(r){let{redis:e,keyPrefix:t}=r,n=Xo(),i=w=>`${t}event:${w}`,s=w=>`${t}events:by_run:${w}`,a=w=>`${t}events:by_correlation:${w}`,o=w=>`${t}run:${w}`,l=()=>`${t}runs:index`,c=w=>`${t}runs:by_name:${w}`,u=w=>`${t}runs:by_status:${w}`,d=(w,K)=>`${t}step:${w}:${K}`,p=w=>`${t}steps:by_run:${w}`,f=w=>`${t}hook:${w}`,h=w=>`${t}hooks:by_token:${w}`,g=w=>`${t}hooks:by_run:${w}`;async function k(w){await EE(e,t,w)}async function E(w,K,M,V){return e[V==="desc"?"zrevrange":"zrange"](w,K,K+M)}function I(w){let K=[];for(let M of w??[])if(M?.[1]){let V=he(M[1]);K.push(V)}return K}async function O(w,K,M,V,_){let A=_?.resolveData??"all";switch(M.eventType){case"run_cancelled":{let m=new Date,T=await e.get(o(w));if(T){let x=he(T),j={...x,status:"cancelled",completedAt:m,updatedAt:m};await e.set(o(w),Ve(j));let R=e.pipeline();R.zrem(u(x.status),w),R.zadd(u("cancelled"),m.getTime(),w),await R.exec(),await k(w);let W=Ut.parse(Ee(j));return{run:rl(W,A)}}return{}}case"wait_completed":case"hook_received":{let m=new Date,T={...M,runId:w,eventId:K,createdAt:m,specVersion:Ud};await e.set(i(K),Ve(T));let x=m.getTime(),j=e.pipeline();j.zadd(s(w),x,K),M.correlationId&&j.zadd(a(M.correlationId),x,K),await j.exec();let R=pn.parse(T);return{event:yn(R,A)}}default:throw new Error(`Event type '${M.eventType}' not supported for legacy runs (specVersion: ${V.specVersion||"undefined"}). Please upgrade @workflow packages.`)}}async function D(w,K){if(await e.zcard(a(w))>0)throw new Zn(`${K} "${w}" already created`)}let B=Hd(),ae=async(w,K,M)=>{let V=`wevt_${n()}`,_=new Date,A;if(K.eventType==="run_created"&&(!w||w===""))A=`wrun_${n()}`;else if(w)A=w;else throw new Error("runId is required for non-run_created events");let m=K.specVersion??Ud,T,x,j,R=P=>["completed","failed","cancelled"].includes(P),W=P=>["completed","failed","cancelled"].includes(P),q=null,G=["step_completed","step_retrying"];if(K.eventType!=="run_created"&&!G.includes(K.eventType)){let P=await e.get(o(A));if(P){let U=he(P);q={status:U.status,specVersion:U.specVersion}}}if(K.eventType==="run_started"&&!q&&"eventData"in K&&K.eventData){let P=K.eventData;if(P.deploymentId&&P.workflowName&&P.input!==void 0){let U={runId:A,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:_,updatedAt:_};if(await e.setnx(o(A),Ve(U))===1){let Q=_.getTime();await e.pipeline().zadd(l(),Q,A).zadd(c(P.workflowName),Q,A).zadd(u("pending"),Q,A).exec();let de=`wevt_${n()}`,Pt={eventType:"run_created",eventData:{deploymentId:P.deploymentId,workflowName:P.workflowName,input:P.input,executionContext:P.executionContext},runId:A,eventId:de,createdAt:_,specVersion:m};await e.set(i(de),Ve(Pt)),await e.zadd(s(A),_.getTime(),de),q={status:"pending",specVersion:m}}else{let Q=await e.get(o(A));if(Q){let de=he(Q);q={status:de.status,specVersion:de.specVersion}}}}}if(q){if(P_(q.specVersion))throw new(await import("@workflow/errors")).RunNotSupportedError(q.specVersion,Ud);if(M_(q.specVersion))return O(A,V,K,q,M)}if(q&&R(q.status)){let P=["run_started","run_completed","run_failed"];if(K.eventType==="run_cancelled"&&q.status==="cancelled"){let U=await e.get(o(A)),te=new Date,Q={...K,runId:A,eventId:V,createdAt:te,specVersion:m};await e.set(i(V),Ve(Q));let de=te.getTime();await e.zadd(s(A),de,V);let Pt=pn.parse(Q),sl=M?.resolveData??"all";return{event:yn(Pt,sl),run:U?he(U):void 0}}if(K.eventType==="run_started")throw new bE(`Workflow run "${A}" is already in terminal state "${q.status}"`);if(P.includes(K.eventType)||K.eventType==="run_cancelled")throw new Zn(`Cannot transition run from terminal state "${q.status}"`);if(K.eventType==="step_created"||K.eventType==="hook_created")throw new Zn(`Cannot create new entities on run in terminal state "${q.status}"`)}let re=null;if(["step_started","step_retrying"].includes(K.eventType)&&K.correlationId){let P=await e.get(d(A,K.correlationId));if(P){let U=he(P);re={status:U.status,startedAt:U.startedAt,retryAfter:U.retryAfter}}if(!re)throw new ur(`Step "${K.correlationId}" not found`,{status:404});if(W(re.status))throw new Zn(`Cannot modify step in terminal state "${re.status}"`);if(q&&R(q.status)&&re.status!=="running")throw new bE(`Cannot modify non-running step on run in terminal state "${q.status}"`);if(K.eventType==="step_started"&&re.retryAfter){let U=new Date(re.retryAfter).getTime(),te=U-_.getTime();if(Number.isFinite(U)&&te>0)throw new __(`Step "${K.correlationId}" cannot start before ${new Date(U).toISOString()}`,{retryAfter:Math.ceil(te/1e3)})}}if(["hook_disposed","hook_received"].includes(K.eventType)&&K.correlationId&&!await e.get(f(K.correlationId)))throw new ur(`Hook "${K.correlationId}" not found`,{status:404});if(K.eventType==="run_created"){let P=K.eventData,U={runId:A,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:_,updatedAt:_},te=await e.setnx(o(A),Ve(U)),Q=_.getTime();if(await e.pipeline().zadd(l(),Q,A).zadd(c(P.workflowName),Q,A).zadd(u("pending"),Q,A).exec(),te===1)T=Ut.parse(Ee(U));else{let de=await e.get(o(A));de&&(T=Ut.parse(Ee(he(de))))}}if(K.eventType==="run_started"){if(q?.status==="running"){let U=await e.get(o(A));U&&(T=Ut.parse(Ee(he(U))));let te=M?.resolveData??"all";return{run:T?rl(T,te):void 0}}let P=await e.get(o(A));if(P){let U=he(P),te={...U,status:"running",startedAt:_,updatedAt:_};await e.set(o(A),Ve(te));let Q=e.pipeline();Q.zrem(u(U.status),A),Q.zadd(u("running"),_.getTime(),A),await Q.exec(),T=Ut.parse(Ee(te))}}if(K.eventType==="run_completed"){let P=K.eventData,U=await e.get(o(A));if(U){let te=he(U),Q={...te,status:"completed",output:P.output,completedAt:_,updatedAt:_};await e.set(o(A),Ve(Q));let de=e.pipeline();de.zrem(u(te.status),A),de.zadd(u("completed"),_.getTime(),A),await de.exec(),await k(A),T=Ut.parse(Ee(Q))}}if(K.eventType==="run_failed"){let P=K.eventData,U=typeof P.error=="string"?P.error:P.error?.message??"Unknown error",te=await e.get(o(A));if(te){let Q=he(te),de={...Q,status:"failed",error:{message:U,stack:P.error?.stack,code:P.errorCode},completedAt:_,updatedAt:_};await e.set(o(A),Ve(de));let Pt=e.pipeline();Pt.zrem(u(Q.status),A),Pt.zadd(u("failed"),_.getTime(),A),await Pt.exec(),await k(A),T=Ut.parse(Ee(de))}}if(K.eventType==="run_cancelled"){let P=await e.get(o(A));if(P){let U=he(P),te={...U,status:"cancelled",completedAt:_,updatedAt:_};await e.set(o(A),Ve(te));let Q=e.pipeline();Q.zrem(u(U.status),A),Q.zadd(u("cancelled"),_.getTime(),A),await Q.exec(),await k(A),T=Ut.parse(Ee(te))}}if(K.eventType==="step_created"){await D(K.correlationId,"Step");let P=K.eventData,U={runId:A,stepId:K.correlationId,stepName:P.stepName,input:P.input,status:"pending",attempt:0,specVersion:m,createdAt:_,updatedAt:_},te=await e.setnx(d(A,K.correlationId),Ve(U));if(await e.zadd(p(A),_.getTime(),K.correlationId),te===1)x=Pr.parse(Ee(U));else{let Q=await e.get(d(A,K.correlationId));Q&&(x=Pr.parse(Ee(he(Q))))}}if(K.eventType==="step_started"){let P=!re?.startedAt,U=await e.get(d(A,K.correlationId));if(U){let te=he(U),Q={...te,status:"running",attempt:te.attempt+1,...P?{startedAt:_}:{},updatedAt:_};await e.set(d(A,K.correlationId),Ve(Q)),x=Pr.parse(Ee(Q))}}if(K.eventType==="step_completed"){let P=K.eventData,U=await e.get(d(A,K.correlationId));if(U){let te=he(U);if(["completed","failed","cancelled"].includes(te.status))throw new Zn(`Cannot modify step in terminal state "${te.status}"`);let Q={...te,status:"completed",output:P.result,completedAt:_,updatedAt:_};await e.set(d(A,K.correlationId),Ve(Q)),x=Pr.parse(Ee(Q))}else throw new ur(`Step "${K.correlationId}" not found`,{status:404})}if(K.eventType==="step_failed"){let P=K.eventData,U=typeof P.error=="string"?P.error:P.error?.message??"Unknown error",te=await e.get(d(A,K.correlationId));if(te){let Q=he(te);if(["completed","failed","cancelled"].includes(Q.status))throw new Zn(`Cannot modify step in terminal state "${Q.status}"`);let de={...Q,status:"failed",error:{message:U,stack:P.stack},completedAt:_,updatedAt:_};await e.set(d(A,K.correlationId),Ve(de)),x=Pr.parse(Ee(de))}else throw new ur(`Step "${K.correlationId}" not found`,{status:404})}if(K.eventType==="step_retrying"){let P=K.eventData,U=typeof P.error=="string"?P.error:P.error?.message??"Unknown error",te=await e.get(d(A,K.correlationId));if(te){let de={...he(te),status:"pending",error:{message:U,stack:P.stack},retryAfter:P.retryAfter,updatedAt:_};await e.set(d(A,K.correlationId),Ve(de)),x=Pr.parse(Ee(de))}}if(K.eventType==="wait_created"&&K.correlationId&&await D(K.correlationId,"Wait"),K.eventType==="hook_created"){let P=K.eventData,U=await e.get(h(P.token));if(U&&U!==K.correlationId){let de=await e.get(f(U)),Pt=de?he(de).runId:void 0,sl={token:P.token,...Pt?{conflictingRunId:Pt}:{}},ef=new Date,tf={eventType:"hook_conflict",correlationId:K.correlationId,eventData:sl,runId:A,eventId:V,createdAt:ef,specVersion:m};await e.set(i(V),Ve(tf));let rf=ef.getTime(),al=e.pipeline();al.zadd(s(A),rf,V),K.correlationId&&al.zadd(a(K.correlationId),rf,V),await al.exec();let RE=pn.parse(tf),OE=M?.resolveData??"all";return{event:yn(RE,OE),run:T,step:x,hook:void 0}}await D(K.correlationId,"Hook");let te={runId:A,hookId:K.correlationId,token:P.token,ownerId:"",projectId:"",environment:"",metadata:P.metadata,specVersion:m,createdAt:_},Q=await e.setnx(f(K.correlationId),Ve(te));if(await e.pipeline().set(h(P.token),K.correlationId).zadd(g(A),_.getTime(),K.correlationId).exec(),Q===1)j=tl.parse(Ee(te));else{let de=await e.get(f(K.correlationId));de&&(j=tl.parse(Ee(he(de))))}}if(K.eventType==="hook_disposed"&&K.correlationId){let P=await e.get(f(K.correlationId));if(P){let U=he(P);await e.pipeline().del(f(K.correlationId)).del(h(U.token)).zrem(g(A),K.correlationId).exec()}}let jt=new Date,zt={...K,runId:A,eventId:V,createdAt:jt,specVersion:m};K.eventType==="run_started"&&delete zt.eventData,await e.set(i(V),Ve(zt));let Zd=jt.getTime(),nl=e.pipeline();nl.zadd(s(A),Zd,V),K.correlationId&&nl.zadd(a(K.correlationId),Zd,V),await nl.exec(),await dE(e,t,{runId:A,eventId:V,eventType:K.eventType,...K.correlationId?{correlationId:K.correlationId}:{}});let DE=pn.parse(zt),Xd=M?.resolveData??"all",il;if(K.eventType==="run_started"&&T){let P=await e.zrange(s(A),0,-1);if(P.length>0){let U=e.pipeline();for(let Q of P)U.get(i(Q));let te=await U.exec();il=I(te).map(Q=>{let de=pn.parse(Ee(Q));return yn(de,Xd)})}else il=[]}return{event:yn(DE,Xd),run:T,step:x,hook:j,events:il}};return{create(w,K,M){return w?B(w,()=>ae(w,K,M)):ae(w,K,M)},async get(w,K){let M=await e.get(i(K));if(!M)throw new ur(`Event not found: ${K}`,{status:404});return he(M)},async list(w){let K=w?.pagination?.limit??100,M=w.pagination?.sortOrder||"asc",V=w?.pagination?.cursor,_=s(w.runId),A=await Fi(e,_,V,M),m=await E(_,A,K,M),T=e.pipeline();for(let G of m)T.get(i(G));let x=await T.exec(),j=I(x),R=j.slice(0,K),W=j.length>K,q=w?.resolveData??"all";return{data:R.map(G=>{let re=pn.parse(Ee(G));return yn(re,q)}),cursor:R.at(-1)?.eventId??null,hasMore:W}},async listByCorrelationId(w){let K=w?.pagination?.limit??100,M=w.pagination?.sortOrder||"asc",V=w?.pagination?.cursor,_=a(w.correlationId),A=await Fi(e,_,V,M),m=await E(_,A,K,M),T=e.pipeline();for(let G of m)T.get(i(G));let x=await T.exec(),j=I(x),R=j.slice(0,K),W=j.length>K,q=w?.resolveData??"all";return{data:R.map(G=>{let re=pn.parse(Ee(G));return yn(re,q)}),cursor:R.at(-1)?.eventId??null,hasMore:W}}}}function xE(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 ur(`Step not found: ${l}`,{status:404});let d=he(u),p=Pr.parse(Ee(d)),f=c?.resolveData??"all";return SE(p,f)}return{get:(async(o,l,c)=>{if(!o){let u=`${t}step:*:${l}`,d=await s(u);if(!d)throw new ur(`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=await Fi(e,u,c),p=await e.zrevrange(u,d,d+l),f=e.pipeline();for(let O of p)f.get(n(o.runId,O));let h=await f.exec(),g=o?.resolveData??"all",k=[];for(let O of h??[])if(O?.[1]){let D=he(O[1]),B=Pr.parse(Ee(D));k.push(SE(B,g))}let E=k.slice(0,l),I=k.length>l;return{data:E,hasMore:I,cursor:E.at(-1)?.stepId??null}})}}function wE(r){let{redis:e,keyPrefix:t}=r,n=r.hookResolveRetries??N_,i=r.hookResolveRetryMs??L_,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 ur(`Hook not found: ${l}`,{status:404});let d=he(u),p=tl.parse(Ee(d)),f=c?.resolveData??"all";return KE(p,f)},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 C_(l);await oE(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),p=await Fi(e,d,u),f=await e.zrevrange(d,p,p+c),h=e.pipeline();for(let O of f)h.get(s(O));let g=await h.exec(),k=[];for(let O of g??[])if(O?.[1]){let D=he(O[1]),B=tl.parse(Ee(D)),ae=KE(B,l?.resolveData??"all");k.push(ae)}let E=k.slice(0,c),I=k.length>c;return{data:E,cursor:E.at(-1)?.hookId??null,hasMore:I}}}}var TE=10080*60*1e3;function jE(r,e,t){let{redis:n,keyPrefix:i}=r,s=p=>`${i}run:${p}`,a=p=>`${i}runs:by_status:${p}`,o=p=>`${i}events:by_run:${p}`,l=`${i}hooks:by_run:*`,c=`${i}hooks:by_run:`,u=new Set(["completed","failed","cancelled"]);async function d(p){let f=new Set,h="0";do{let[g,k]=await n.scan(h,"MATCH",p,"COUNT",200);for(let E of k)f.add(E);h=g}while(h!=="0");return[...f]}return async function(f){let h=f?.enableRunCancellation??t.enableRunCancellation,g=f?.maxRunAgeMs??t.maxRunAgeMs,k=f?.now??Date.now,E=0,I=0,O=await d(l);for(let D of O){let B=D.slice(c.length);if(B)try{let ae=await n.get(s(B)),w=!1;if(!ae)w=!0;else{let K=he(ae);u.has(K.status)&&(w=!0)}w&&(await EE(n,i,B),E+=1)}catch{}}if(h){let D=await n.zrange(a("running"),0,-1);for(let B of D)try{let ae=await n.get(s(B));if(!ae||he(ae).status!=="running")continue;let K=await n.zrevrange(o(B),0,0,"WITHSCORES"),M=K.length===2?Number(K[1]):void 0;if(M===void 0||Number.isNaN(M)||k()-M<=g)continue;await e.create(B,{eventType:"run_cancelled"}),I+=1}catch{}}return{orphanHookRunsPruned:E,staleRunsCancelled:I}}}import{EventEmitter as G_}from"node:events";function Y_(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 B_(r,e){let[t,n]=r.split("-").map(Number),[i,s]=e.split("-").map(Number);return t===i?n-s:t-i}function AE(r){let{redis:e,keyPrefix:t}=r,n=new G_,i=Hd(),s=f=>`${t}stream:${f}`,a=`${t}stream_notify`,o=e.duplicate(),l=o.subscribe(a).then(()=>{});o.on("message",async(f,h)=>{if(f===a)try{let g=Y_(h);if(!g)return;let k=`strm:${g.streamId}`;if(!n.listenerCount(k))return;await i(k,async()=>{let E=await e.xrange(s(g.streamId),g.entryId,g.entryId);if(E.length===0)return;let[I,O]=E[0],D=Buffer.from(O[1],"base64"),B=O[3]==="true";n.emit(k,{id:I,data:D,eof:B})})}catch(g){console.error("Error processing stream notification:",g)}});async function c(f,h,g){let k=Buffer.isBuffer(g)?g:Buffer.from(g),E=await e.xadd(s(h),"*","data",k.toString("base64"),"eof","false");await l,await e.publish(a,JSON.stringify({streamId:h,entryId:E}))}async function u(f,h){let g=await e.xadd(s(h),"*","data","","eof","true");await l,await e.publish(a,JSON.stringify({streamId:h,entryId:g}))}async function d(f,h,g){let k=[];return new ReadableStream({async start(E){let I="",O=g??0,D=[],B=A=>I!==""&&B_(I,A)>=0,ae=()=>O>0?(O--,!0):!1,w=A=>{A.data.byteLength&&E.enqueue(new Uint8Array(A.data)),A.eof&&(E.close(),k.forEach(m=>{m()})),I=A.id};function K(A){B(A.id)||!A.eof&&ae()||w(A)}function M(A){if(D){D.push(A);return}K(A)}n.on(`strm:${h}`,M),k.push(()=>{n.off(`strm:${h}`,M)});let V=await e.xrange(s(h),"-","+"),_=[];for(let[A,m]of V){let T=Buffer.from(m[1],"base64"),x=m[3]==="true";_.push({id:A,data:T,eof:x})}for(let A of[..._,...D??[]])K(A);D=null},cancel(){k.forEach(E=>{E()})}})}async function p(f){let h=await e.xrange(s(f),"-","+"),g=[],k=!1;for(let[,E]of h){if(E[3]==="true"){k=!0;continue}g.push(new Uint8Array(Buffer.from(E[1],"base64")))}return{chunks:g,done:k}}return{streams:{write:c,close:u,get:d,async list(f){let h=`${t}stream:`,g=[],k="0";do{let[E,I]=await e.scan(k,"MATCH",`${h}*`,"COUNT",200);k=E;for(let O of I)g.push(O.slice(h.length))}while(k!=="0");return g},async getChunks(f,h,g){let k=Math.min(Math.max(g?.limit??100,1),1e3),E=g?.cursor&&Number.parseInt(g.cursor,10)||0,{chunks:I,done:O}=await p(h),D=I.slice(E,E+k).map((w,K)=>({index:E+K,data:w})),B=E+D.length,ae=B<I.length;return{data:D,cursor:ae?String(B):null,hasMore:ae,done:O}},async getInfo(f,h){let{chunks:g,done:k}=await p(h);return{tailIndex:g.length-1,done:k}}},async stop(){o.removeAllListeners("message");try{await o.quit()}catch{o.disconnect()}}}}function Vi(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 W_=3600*1e3;function U_(r,e,t,n){let i={redis:r,keyPrefix:e,hookResolveRetries:t,hookResolveRetryMs:n};return{runs:kE(i),events:IE(i),hooks:wE(i),steps:xE(i)}}function tJ(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 Qd.Redis(r.redis):new Qd.Redis(r.redis),t=r.keyPrefix||"workflow:",n=r.hookResolveRetries??Vi(process.env.WORKFLOW_HOOK_RESOLVE_RETRIES,3),i=r.hookResolveRetryMs??Vi(process.env.WORKFLOW_HOOK_RESOLVE_RETRY_MS,30),s=r.enableRunCancellationGc??process.env.WORKFLOW_ENABLE_RUN_CANCELLATION_GC==="true",a=r.maxRunAgeForCancellationMs??Vi(process.env.WORKFLOW_RUN_CANCELLATION_AGE_MS,TE,W_),o=r.serialLockTtlMs??Vi(process.env.WORKFLOW_SERIAL_LOCK_TTL_MS,3e4,1),l=r.httpTimeoutMs??Vi(process.env.WORKFLOW_HTTP_TIMEOUT_MS,Yd,1e3),c=cE(e,{...r,httpTimeoutMs:l}),u=U_(e,t,n,i),d=mE({redis:e,keyPrefix:t},{lockTtlMs:o}),p=jE({redis:e,keyPrefix:t},u.events,{enableRunCancellation:s,maxRunAgeMs:a}),{stop:f,...h}=AE({redis:e,keyPrefix:t}),g=fE({redis:e,keyPrefix:t});return{...u,...h,...c,eventsSubscriber:g,pruneOrphanState:p,serialGate:d,specVersion:5,processExitTriggersQueueRedelivery:!1,async start(){await c.start()},async close(){try{await c.stop()}catch{}try{await f()}catch{}try{await g.stop()}catch{}try{await e.quit()}catch{}},async resolveLatestDeploymentId(){return"redis"}}}export{tJ as createWorld};
|